Краткое руководство по линейной регрессии в RStudio

Когда дело доходит до моделей машинного обучения, линейная регрессия является самой простой, но эффективной доступной моделью. Он действительно старый, датируемый 1800-ми годами, но надежный. Если вы только начинаете свое путешествие по науке о данных, вы обязательно столкнетесь с этой моделью. Этот пост призван познакомить вас с линейной регрессией с использованием RStudio. Затрагиваемыми темами являются процесс построения и интерпретация результатов.

Данные

Для этого руководства используемые данные являются вымышленным набором данных.

Чтобы импортировать этот набор данных в RStudio, вы можете использовать следующий код

y<-c(15,32,40,50,70,16,19,65,42,21)
x1<-c(3,7,9,12,10,5,8,21,10,14)
x2<-c(1.5,4,5.5,4,3,1,6,8,3,8)

df<-data.frame(y,x1,x2)

Набор данных будет импортирован в RStudio с именем «df».

Простая линейная регрессия

Первая модель, которую мы собираемся обсудить, — это простая линейная регрессия, в которой используется только одна независимая переменная. Для этого поста используемая модель будет иметь формулу:

Код для построения этой модели выглядит следующим образом:

model1<-lm(y~x1,data=df)

Модель называется «model1», после запуска этого кода модель должна появиться на вкладке среды следующим образом:

Далее мы собираемся посмотреть на модель, для этого используем следующий код

summary(model1)

Результаты будут следующими

Очевидно, что при запуске не будет цветных квадратов! Вот как можно прочитать результаты модели:

Черный ящик: коэффициенты в модели, так как это единственная модель линейной регрессии, коэффициентов всего 2 (пересечение всегда будет одним из них!).

Красное поле: оценки коэффициентов, в основном бета0 и бета1 модели. Следовательно, модель будет иметь вид:

Синее поле: значение t-статистики каждого коэффициента из t-теста.

Зеленое поле: P-значение t-критерия каждого коэффициента. Легче интерпретировать результат теста со значением, чем с самой t-статистикой. Здесь мы видим, что x1 имеет значение!

Оранжевое поле: показатель R-Square для модели. Оценка 0,4033 — это просто ужасно!

Фиолетовое поле: скорректированная оценка R-квадрата для модели. Точно так же, как показатель R-квадрата, 0,3288 ужасен!

Серый ящик: результаты F-теста модели. Обратите внимание, что P-значение такое же, как P-значение t-критерия. Это связано с тем, что в модели есть только одна объясняющая переменная.

Множественная линейная регрессия

Далее мы собираемся создать множественную линейную регрессию, которая в основном представляет собой линейную регрессию с более чем одной независимой переменной. Используемая модель будет иметь формулу:

Код для построения этой модели выглядит следующим образом:

model2<-lm(y~x1+x2,data=df)
summary(model2)

Результаты модели следующие:

Способ чтения этого вывода аналогичен простой линейной регрессии. Формула для этой модели:

Использование модели для прогнозирования

После создания нашей модели, естественно, следующим шагом будет ее использование. Допустим, мы хотим предсказать y для определенных значений x1 и x2. Хотя легко просто подставить значения в формулу, это очень неэффективно. Не волнуйтесь, мы можем легко сделать это в RStudio!

Например, предположим, что мы хотим предсказать значение y для следующей таблицы:

Во-первых, давайте введем эту таблицу в RStudio.

x1_new<-c(13,12,11)
x2_new<-c(5,7,4.5)

df_new<-data.frame(x1=x1_new,x2=x2_new)

Новая таблица называется «df_new». Имейте в виду, что для прогнозирования с помощью модели нам нужно убедиться, что имена столбцов совпадают с именами коэффициентов в модели. Поскольку мы используем имена x1 и x2 при построении модели, нам нужно дать новым столбцам одинаковые имена.

Теперь мы можем предсказать значения y с помощью следующего кода

predictions<-predict(model2,df_new)
df_new$predictions_results<-predictions

Первая строка кода дает вам прогнозы в виде списка значений с именем «прогнозы», вторая строка вставляет эти значения в таблицу «df_new» в виде столбца с именем «predictions_results». Если вы сейчас посмотрите на свою таблицу, она должна быть примерно такой: