🛠️
Bemind
Инструменты оценки
Инструменты оценки
  • Основные показатели стратегии
  • Инструменты оценки модели линейной регрессии
    • 1. Средняя квадратическая ошибка
    • 2. Средняя абсолютная ошибка
    • 3. Корень из средней квадратической ошибки.
    • 4. Коэффициент детерминации
    • 5. Скорректированный коэффициент детерминации:
    • 6. Коэффициенты модели
    • 7. Проверка гипотез о коэффициентах модели
    • 8. Проверка предположений о модели
  • Инструменты оценки качества обучения классифицирующей нейронной сети
    • Точность (Accuracy)
    • Матрица ошибок (Confusion Matrix)
    • Кривая ROC (Receiver Operating Characteristic)
    • Кросс-энтропийная функция потерь (Cross-Entropy Loss)
    • Precision, Recall, F1-score
    • Разделение данных на тренировочный, валидационный и тестовый наборы
    • Мониторинг метрик на валидационном наборе во время обучения для предотвращения переобучения
  • Линейная, логистическая и регрессия Пуассона.
    • Введение в простую линейную регрессию
    • Введение в регрессию Пуассона для подсчета данных
    • Введение в простую линейную регрессию
    • Полное руководство по линейной регрессии в Python
      • Как создать остаточный график в Python
      • Понимание гетероскедастичности в регрессионном анализе
      • Как выполнить тест Дарбина-Ватсона в Python
      • Четыре допущения линейной регрессии
    • Как рассчитать VIF в Python
    • Руководство по мультиколлинеарности и VIF в регрессии
  • Мультиколлинеарность и коэффициент инфляции дисперсии (VIF) в регрессионной модели (с кодом Python)
    • Фактор инфляции дисперсии в Python
  • Функции потерь в Python — простая реализация
  • CADE — интересный способ поиска аномалий в многомерных данных
  • Как использовать Python для проверки нормальности
  • Анализ карты Пуанкаре
    • Анализ Финансовых Рынков: Автокорреляция и Спектральный Анализ Криптовалют
  • Предсказания цен с использованием постоянной Фейгенбаума
  • Расчет вероятности серии убыточных сделок в серии игр.
  • Анализ данных ставок и результатов с использованием Python
Powered by GitBook
On this page
  1. Линейная, логистическая и регрессия Пуассона.

Полное руководство по линейной регрессии в Python


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

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

Пример: линейная регрессия в Python

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

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

Шаг 1: Введите данные.

Во-первых, мы создадим DataFrame pandas для хранения нашего набора данных:

import pandas as pd

#create data
df = pd.DataFrame({'hours': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6, 5, 3, 4, 6, 2, 1, 2],
 'exams': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2, 4, 4, 4, 5, 1, 0, 1],
 'score': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96, 90, 82, 85, 99, 83, 62, 76]})

#view data 
df

 hours exams score
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72
5 1 2 69
6 5 1 94
7 4 1 94
8 2 0 88
9 4 3 92
10 4 4 90
11 3 3 75
12 6 2 96
13 5 4 90
14 3 4 82
15 4 4 85
16 6 5 99
17 2 1 83
18 1 0 62
19 2 1 76

Шаг 2: Выполните линейную регрессию.

import statsmodels.api as sm

#define response variable
y = df['score']

#define predictor variables
x = df[['hours', 'exams']]

#add constant to predictor variables
x = sm.add_constant(x)

#fit linear regression model
model = sm.OLS(y, x).fit()

#view model summary
print(model.summary())

 OLS Regression Results 
==============================================================================
Dep. Variable: score R-squared: 0.734
Model: OLS Adj. R-squared: 0.703
Method: Least Squares F-statistic: 23.46
Date: Fri, 24 Jul 2020 Prob (F-statistic): 1.29e-05
Time: 13:20:31 Log-Likelihood: -60.354
No. Observations: 20 AIC: 126.7
Df Residuals: 17 BIC: 129.7
Df Model: 2 
Covariance Type: nonrobust 
==============================================================================
 coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
const 67.6735 2.816 24.033 0.000 61.733 73.614
hours 5.5557 0.899 6.179 0.000 3.659 7.453
exams -0.6017 0.914 -0.658 0.519 -2.531 1.327
==============================================================================
Omnibus: 0.341 Durbin-Watson: 1.506
Prob(Omnibus): 0.843 Jarque-Bera (JB): 0.196
Skew: -0.216 Prob(JB): 0.907
Kurtosis: 2.782 Cond. No. 10.8
==============================================================================

Шаг 3: Интерпретируйте результаты.

Вот как интерпретировать наиболее релевантные числа в выводе:

R-квадрат: 0,734.Это известно как коэффициент детерминации. Это доля дисперсии переменной отклика, которая может быть объяснена переменными-предикторами. В этом примере 73,4% вариаций в экзаменационных баллах можно объяснить количеством часов обучения и количеством сданных подготовительных экзаменов.

F-статистика: 23,46.Это общая F-статистика для регрессионной модели.

Вероятность (F-статистика): 1,29e-05. Это p-значение, связанное с общей F-статистикой. Он говорит нам, является ли регрессионная модель в целом статистически значимой. Другими словами, он говорит нам, имеют ли объединенные две предикторные переменные статистически значимую связь с переменной отклика. В этом случае p-значение меньше 0,05, что указывает на то, что переменные-предикторы «учебные часы» и «пройденные подготовительные экзамены» в совокупности имеют статистически значимую связь с экзаменационным баллом.

coef: коэффициенты для каждой переменной-предиктора говорят нам о среднем ожидаемом изменении переменной отклика, предполагая, что другая переменная-предиктор остается постоянной. Например, ожидается, что за каждый дополнительный час, потраченный на учебу, средний экзаменационный балл увеличится на 5,56 при условии, что количество сданных подготовительных экзаменов останется неизменным.

Вот еще один способ подумать об этом: если учащийся A и учащийся B сдают одинаковое количество подготовительных экзаменов, но учащийся A учится на один час больше, то ожидается, что учащийся A наберет на 5,56 балла больше, чем учащийся B.

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

Р>|т|. Отдельные p-значения говорят нам, является ли каждая предикторная переменная статистически значимой. Мы видим, что «часы» статистически значимы (p = 0,00), а «экзамены»(p = 0,52) не является статистически значимым при α = 0,05. Поскольку «экзамены» не являются статистически значимыми, мы можем решить исключить их из модели.

Расчетное уравнение регрессии: мы можем использовать коэффициенты из выходных данных модели, чтобы создать следующее расчетное уравнение регрессии:

экзаменационный балл = 67,67 + 5,56*(часы) – 0,60*(подготовительные экзамены)

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

Имейте в виду, что, поскольку пройденные подготовительные экзамены не были статистически значимыми (p = 0,52), мы можем решить удалить их, поскольку они не улучшают общую модель. В этом случае мы могли бы выполнить простую линейную регрессию, используя только изученные часы в качестве переменной-предиктора.

Шаг 4: Проверьте предположения модели.

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

Предположение № 1: существует линейная связь между переменными-предикторами и переменной-откликом.

Допущение № 2: Независимость остатков.

Допущение № 3: гомоскедастичность остатков.

Допущение № 4: Нормальность остатков.

Предположение № 5: Убедитесь, что мультиколлинеарность не существует среди переменных-предикторов.

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

PreviousВведение в простую линейную регрессиюNextКак создать остаточный график в Python

Last updated 1 year ago

Далее мы будем использовать из библиотеки statsmodels для выполнения обычной регрессии методом наименьших квадратов, используя «часы» и «экзамены» в качестве переменных-предикторов и «оценку» в качестве переменной ответа:

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

Проверьте это предположение, выполнив .

Проверьте это предположение, выполнив .

Проверьте это предположение визуально, используя .

Проверьте это предположение с помощью формальных тестов, таких как тест .

Проверьте это предположение, рассчитав каждой переменной-предиктора.

Вы можете найти полный код Python, использованный в этом руководстве .

функцию OLS()
сгенерировавграфик остатков
тест Дарбина-Ватсона
тест Бреуша-Пагана
график QQ
Харка-Бера или тест
Андерсона-Дарлинга
значение VIF
, здесь