Линейная регрессия в R Простое пошаговое руководство

Пошаговое руководство по линейной регрессии в R.

Опубликовано 25 февраля 2020 года Ребеккой Беванс. Редакция от 14 декабря 2020 г..

Линейная регрессия — это регрессионная модель, в которой для описания взаимосвязи между переменными используется прямая линия. Он находит линию, наиболее подходящую для ваших данных, путем поиска значения коэффициента (ов) регрессии, который минимизирует общую ошибку модели..

Существует два основных типа линейной регрессии:

Простая линейная регрессия использует только одну независимую переменную Множественная линейная регрессия использует две или более независимых переменных.

В этом пошаговом руководстве мы проведем вас через линейную регрессию в R с использованием двух образцов наборов данных..

Простая линейная регрессия Первый набор данных содержит наблюдения о доходе (в диапазоне от 15 до 75 тысяч долларов) и счастье (по шкале от 1 до 10) в воображаемой выборке из 500 человек. Значения дохода делятся на 10 000, чтобы данные о доходах соответствовали шкале оценок счастья (так, значение 2 доллара США соответствует 20 000 долларов США, 3 доллара США — 30 000 долларов США и т. Д.). Множественная линейная регрессия. работа каждый день, процент курящих и процент людей с сердечными заболеваниями в воображаемой выборке из 500 городов.

Загрузите образцы наборов данных, чтобы попробовать сами.

Оглавление.

Начало работы в R Загрузите данные в R Убедитесь, что ваши данные соответствуют предположениям Выполните анализ линейной регрессии Проверка гомоскедастичности Визуализируйте результаты в виде графика Сообщите о своих результатах.

Начало работы в R.

Начните с загрузки R и RStudio. Затем откройте RStudio и нажмите Файл. > Новый файл > Сценарий R .

По мере прохождения каждого шага вы можете копировать и вставлять код из текстовых полей прямо в свой скрипт. Чтобы запустить код, выделите строки, которые хотите запустить, и нажмите кнопку «Выполнить» в правом верхнем углу текстового редактора (или нажмите ctrl + enter на клавиатуре)..

Чтобы установить пакеты, необходимые для анализа, запустите этот код (это нужно сделать только один раз):

install.packages ("ggplot2") install.packages ("dplyr") install.packages ("метла") install.packages ("ggpubr")

Затем загрузите пакеты в среду R, запустив этот код (вам нужно делать это каждый раз при перезапуске R):

библиотека (ggplot2) библиотека (dplyr) библиотека (broom) библиотека (ggpubr)

Шаг 1. Загрузите данные в R.

Выполните следующие четыре шага для каждого набора данных:

В RStudio перейдите в Файл > Импортировать набор данных > Из текста (база). Выберите файл данных, который вы скачали (yield.data или heart.data), и появится окно «Импорт набора данных». В окне Data Frame вы должны увидеть столбец X (индекс) и столбцы, в которых перечислены данные для каждой из переменных (доход и счастье или езда на велосипеде, курение и болезнь сердца). Нажмите кнопку «Импорт», и файл должен появиться на вкладке «Среда» в правом верхнем углу экрана RStudio..

После того, как вы загрузили данные, убедитесь, что они были правильно прочитаны с помощью summary () .

Простая регрессия.

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

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

Опять же, поскольку переменные являются количественными, запуск кода дает числовую сводку данных для независимых переменных (курение и езда на велосипеде) и зависимой переменной (болезнь сердца):

Какая у вас оценка за плагиат?

Сравните свою статью с более чем 60 миллиардами веб-страниц и 30 миллионами публикаций..

Лучшая программа для проверки плагиата в отчете о плагиате 2020 года & процент Самая большая база данных о плагиате.

Шаг 2. Убедитесь, что ваши данные соответствуют предположениям.

Мы можем использовать R, чтобы проверить, соответствуют ли наши данные четырем основным предположениям линейной регрессии..

Простая регрессия.

Независимость наблюдений (иначе говоря, отсутствие автокорреляции)

Поскольку у нас есть только одна независимая переменная и одна зависимая переменная, нам не нужно проверять какие-либо скрытые связи между переменными..

Если вы знаете, что у вас есть автокорреляция внутри переменных (т. Е. Несколько наблюдений за одним и тем же испытуемым), не переходите к простой линейной регрессии! Вместо этого используйте структурированную модель, например линейную модель со смешанными эффектами..

Нормальность.

Чтобы проверить, подчиняется ли зависимая переменная нормальному распределению, используйте функцию hist ()..

Наблюдения имеют примерно колоколообразную форму (больше наблюдений в середине распределения, меньше на хвостах), поэтому мы можем продолжить линейную регрессию..

Линейность.

Связь между независимой и зависимой переменной должна быть линейной. Мы можем проверить это визуально с помощью диаграммы рассеяния, чтобы увидеть, можно ли описать распределение точек данных прямой линией..

доход, данные = доход. данные)

Связь выглядит примерно линейной, поэтому мы можем перейти к линейной модели..

Гомоскедастичность (также известная как однородность дисперсии)

Это означает, что ошибка прогноза существенно не меняется в диапазоне прогнозов модели. Мы можем проверить это предположение позже, после подбора линейной модели..

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

Независимость наблюдений (иначе говоря, отсутствие автокорреляции)

Используйте функцию cor (), чтобы проверить взаимосвязь между вашими независимыми переменными и убедиться, что они не слишком сильно коррелированы..

Когда мы запускаем этот код, на выходе получается 0,015. Корреляция между ездой на велосипеде и курением мала (0,015 — это корреляция всего 1,5%), поэтому мы можем включить оба параметра в нашу модель..

Нормальность.

Используйте функцию hist (), чтобы проверить, соответствует ли ваша зависимая переменная нормальному распределению..

Распределение наблюдений имеет примерно колоколообразную форму, поэтому мы можем продолжить линейную регрессию..

Линейность.

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

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

Гомоскедастичность.

Мы это проверим после того, как сделаем модель.

Шаг 3. Выполните линейный регрессионный анализ.

Теперь, когда вы определили, что ваши данные соответствуют предположениям, вы можете выполнить линейный регрессионный анализ, чтобы оценить взаимосвязь между независимыми и зависимыми переменными..

Простая регрессия: доход и счастье.

Давайте посмотрим, есть ли линейная зависимость между доходом и счастьем в нашем опросе 500 человек с доходом от 15 до 75 тысяч долларов, где счастье измеряется по шкале от 1 до 10..

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

Результат выглядит так:

В этой выходной таблице сначала представлено уравнение модели, а затем суммируются остатки модели (см. Шаг 4)..

В разделе «Коэффициенты» показаны:

Оценки (Estimate) для параметров модели — значение точки пересечения оси y (в данном случае 0,204) и предполагаемое влияние дохода на счастье (0,713). Стандартная ошибка расчетных значений (Std. Error). Тестовая статистика (значение t, в данном случае t-статистика). P -значение (Pr (>| т | )), иначе говоря, вероятность найти данную t-статистику, если нулевая гипотеза об отсутствии связи была верной..

Последние три строки — это диагностика модели — самое важное, что следует отметить, — это значение p (здесь это 2,2e-16, или почти ноль), которое укажет, хорошо ли модель соответствует данным..

Исходя из этих результатов, мы можем сказать, что существует значимая положительная взаимосвязь между доходом и счастьем (p-значение Множественная регрессия: езда на велосипеде, курение и сердечные заболевания..

Давайте посмотрим, есть ли линейная связь между ездой на велосипеде на работу, курением и сердечными заболеваниями в нашем воображаемом обзоре 500 городов. Частота езды на велосипеде на работу колеблется от 1 до 75%, уровень курения — от 0,5 до 30%, а уровень сердечных заболеваний — от 0,5% до 20,5%..

Чтобы проверить взаимосвязь, мы сначала подобрали линейную модель с сердечными заболеваниями в качестве зависимой переменной и ездой на велосипеде и курением в качестве независимых переменных. Запустите эти две строки кода:

Результат выглядит так:

Расчетное влияние езды на велосипеде на сердечные заболевания составляет -0,2, а расчетное влияние курения — 0,178..

Это означает, что на каждый 1% -ный рост числа людей, ездящих на работу на велосипеде, коррелирует на 0,2% снижение частоты сердечных заболеваний. Между тем, на каждый 1% -ный рост числа курящих увеличивается на 0,178% частота сердечных заболеваний..

Стандартные ошибки для этих коэффициентов регрессии очень малы, а t-статистика очень велика (-147 и 50,4 соответственно). Значения p отражают эти маленькие ошибки и большую t-статистику. Для обоих параметров существует почти нулевая вероятность того, что этот эффект вызван случайностью..

Помните, что эти данные созданы для этого примера, поэтому в реальной жизни эти отношения не были бы столь однозначными.!

Шаг 4. Проверьте гомоскедастичность.

Прежде чем приступить к визуализации данных, мы должны убедиться, что наши модели соответствуют предположению о гомоскедастичности линейной модели..

Простая регрессия.

Мы можем запустить plot (yield.happiness.lm), чтобы проверить, соответствуют ли наблюдаемые данные предположениям нашей модели:

номинал (mfrow = c (2,2)) график (доход.happiness.lm) номинал (mfrow = c (1,1))

Обратите внимание, что команда par (mfrow ()) разделит окно графиков на количество строк и столбцов, указанное в скобках. Таким образом, par (mfrow = c (2,2)) делит его на две строки и два столбца. Чтобы вернуться к построению одного графика во всем окне, снова установите параметры и замените (2,2) на (1,1)..

Это остаточные графики, созданные кодом:

Остатки — это необъяснимая разница. Они не совсем такие же, как ошибка модели, но рассчитываются на ее основе, поэтому наличие смещения в остатках также указывает на смещение ошибки..

Самое важное, на что следует обратить внимание, это то, что красные линии, представляющие среднее значение остатков, в основном горизонтальны и сосредоточены вокруг нуля. Это означает, что в данных нет выбросов или смещений, которые сделали бы линейную регрессию недействительной..

На нормальном графике Q-Q в правом верхнем углу мы видим, что реальные остатки из нашей модели образуют почти идеально однозначную линию с теоретическими остатками из идеальной модели..

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

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

Опять же, мы должны проверить, действительно ли наша модель подходит для данных, и что у нас нет большого разброса ошибки модели, выполнив этот код:

par (mfrow = c (2,2)) plot (heart.disease.lm) par (mfrow = c (1,1))

Результат выглядит так:

Как и в случае с нашей простой регрессией, остатки не показывают систематической ошибки, поэтому мы можем сказать, что наша модель соответствует предположению о гомоскедастичности..

Шаг 5. Визуализируйте результаты в виде графика.

Затем мы можем построить данные и линию регрессии из нашей модели линейной регрессии, чтобы можно было поделиться результатами..

Простая регрессия.

Выполните 4 шага, чтобы визуализировать результаты вашей простой линейной регрессии..

Нанесите точки данных на график.

Добавьте линию линейной регрессии к нанесенным на график данным.

Добавьте линию регрессии с помощью geom_smooth () и введите lm в качестве метода создания линии. Это добавит линию линейной регрессии, а также стандартную ошибку оценки (в данном случае +/- 0,01) в виде светло-серой полосы, окружающей линию:

Добавьте уравнение для линии регрессии.

Подготовьте график к публикации.

Мы можем добавить некоторые параметры стиля с помощью theme_bw () и создать собственные метки с помощью labs () .

Это дает готовый график, который вы можете включить в свои статьи:

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

Шаг визуализации для множественной регрессии сложнее, чем для простой регрессии, потому что теперь у нас есть два предиктора. Один из вариантов — построить самолет, но их трудно читать и они не часто публикуются..

Мы попробуем другой метод: построим график взаимосвязи между ездой на велосипеде и сердечными заболеваниями при разных уровнях курения. В этом примере курение будет рассматриваться как фактор с тремя уровнями только для целей отображения взаимосвязей в наших данных..

Необходимо выполнить 7 шагов.

Создайте новый фрейм данных с информацией, необходимой для построения модели..

Используйте функцию expand.grid (), чтобы создать фрейм данных с указанными вами параметрами. В рамках этой функции мы:

Создайте последовательность от самого низкого до самого высокого значения наблюдаемых данных о велосипедных прогулках; Выберите минимальное, среднее и максимальное значения курения, чтобы сделать 3 уровня курения, по которым можно прогнозировать частоту сердечных заболеваний..

Это не создаст ничего нового в вашей консоли, но вы должны увидеть новый фрейм данных на вкладке Environment. Нажмите на него, чтобы просмотреть.

Предскажите значения сердечных заболеваний на основе вашей линейной модели.

Затем мы сохраним наши «прогнозируемые значения y» в качестве нового столбца в только что созданном наборе данных..

Округлите количество курящих до двух десятичных знаков..

Это облегчит чтение легенды в дальнейшем..

Измените переменную "курение" на коэффициент.

Это позволяет нам отобразить взаимосвязь между ездой на велосипеде и сердечными заболеваниями на каждом из трех выбранных нами уровней курения..

Постройте исходные данные.

Добавьте линии регрессии.

Подготовьте график к публикации.

Поскольку этот график имеет два коэффициента регрессии, функция stat_regline_equation () здесь не работает. Но если мы хотим добавить нашу регрессионную модель к графику, мы можем сделать это следующим образом:

Это готовый график, который вы можете включить в свои статьи.!

Шаг 6. Сообщите о своих результатах.

В дополнение к графику включите краткое заявление, объясняющее результаты регрессионной модели..

Представление результатов простой линейной регрессии Мы обнаружили значительную взаимосвязь между доходом и счастьем (p Сообщение результатов множественной линейной регрессии В нашем опросе 500 городов мы обнаружили значительную взаимосвязь между частотой езды на велосипеде на работу и частотой сердечных заболеваний и частота курения и частота сердечных заболеваний (стр..

Похожие статьи