[МУЗЫКА] [МУЗЫКА] Лучший способ понять, как нам надо действовать в тех случаях, когда у нас нет оснований выкидывать из модели взаимодействие, это разобрать конкретный пример. И вот в качестве такового мы возьмем уже знакомый нам датасет, отражающий вес новорожденного у курящих и некурящих матерей разного возраста. Поскольку датасет входит в состав пакета MASS, мы должны сперва активировать этот пакет. Если он у кого-то не установлен, то его надо установить с помощью функции install_packages уже известным вам способом. И далее давайте создадим объект с более коротким названием, это и будет наш рабочий датафрейм. Соответственно, назовем его baby. С помощью функции str мы можем посмотреть на состав этого датафрейма и оценить то, какие переменные в него входят. И в качестве зависимой переменной мы будем рассматривать переменную, которая отражает вес новорожденных baby weight — bwt, а в качестве предикторов этой модели будет непрерывный предиктор age и дискретный предиктор smoke. Однако при анализе дискретных предикторов очень часто бывает, что они кодируются как единица или ноль. Это неудобно, и для того чтобы нам сделать работу более удобной, мы заменим: там, где единица, поставим значение Smoker; а там, где ноль, Non smoker. И соответственно объявим эту переменную фактором, что позволит нам в дальнейшем включать ее в анализ как фактор. И, как всегда, для начала надо посвятить некоторое время изучению данных. И вот в первую очередь необходимо построить диаграмму Кливленда, которая позволит нам увидеть, есть ли выбросы в этом наборе данных. Код для построения этого графика вам уже хорошо знаком, и мы на нем особо останавливаться не будем. На всякий случай мы его здесь привели, вы можете на него посмотреть еще раз глазами. В этом датасете мы видим, что есть один небольшой отскок, то есть одна из женщин имела возраст больше, чем все остальные. Кроме того, мы можем на этой диаграмме увидеть, что пара младенцев имела более высокий вес, чем все остальные младенцы, то есть это тоже небольшой отскок. И соответственно мы дальше должны увидеть, влияли ли эти отскоки на поведение всей модели в целом, но это мы сделаем позже, когда будем диагностировать модель. Для регрессионного анализа очень важно, чтобы выборка была более или менее равномерно распределена вдоль оси, по которой будет отложено значение непрерывного предиктора. И здесь вся шкала предиктора, то есть возраст матери, должна быть более или менее заполненной. И мы видим, что в общем-то это вполне подтверждается: мы с помощью функции table посмотрели, как распределено по всей выборке значение возраста. Да, конечно, у нас какие-то возраста представлены меньше, чем остальные, но тем не менее, в общем-то, более-менее равномерно у нас представлено все вдоль оси x. И это вполне приемлемо. И теперь пришло время построить модель. Полная модель будет выглядеть следующим образом. Как всегда, у нас есть представление о том, что существует некоторая связь в генеральной совокупности, которую мы оцениваем по выборке. И давайте посмотрим, что у нас будет в модели, которую мы построим, анализируя нашу выборку. Здесь b0 — это Intercept для базового уровня, вот он. b1 — это угловой коэффициент для того же базового уровня, который будет описывать связь веса младенцев с возрастом матери. b2, и смотрите, он связан с переменной-индикатором, — это переменная будет соответственно описывать связь с уровнем Smoker, который не является базовым уровнем, и это будет поправочный коэффициент для Interceptor при рассмотрении уровня Smoker. Коэффициент b3, вот он, связан с переменной-индикатором, вот этой, и этот поправочный коэффициент будет изменять угловой коэффициент при рассмотрении уровня Smoker, который не будет базовым уровнем. И вот на языке R эта модель будет описана следующим образом. С помощью функции lm мы подбираем модель, в которой, как всегда, у нас есть формула, и в качестве зависимой переменной мы пишем bwt, а между предикторами ставим не плюсик, а звездочку, которая означает, что мы будем рассматривать здесь взаимодействие между предикторами. [БЕЗ_ЗВУКА]