Как рассчитать aic регрессионных моделей в python


Информационный критерий Акаике (AIC) — это показатель, используемый для сравнения соответствия различных моделей регрессии.

Он рассчитывается следующим образом:

АИК = 2К – 2 ln (L)

Золото:

  • K: Количество параметров модели. Значение K по умолчанию равно 2, поэтому модель только с одной переменной-предиктором будет иметь значение K 2+1 = 3.
  • ln (L) : Логарифмическое правдоподобие модели. Это говорит нам о вероятности модели с учетом данных.

AIC предназначен для поиска модели, которая объясняет наибольшее разнообразие данных, одновременно наказывая модели, использующие чрезмерное количество параметров.

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

Чтобы вычислить AIC моделей множественной регрессии в Python, мы можем использовать функцию statsmodels.reгрессия.linear_model.OLS() , у которой есть свойство aic , которое сообщает нам значение AIC для данной модели.

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

Пример: рассчитать и интерпретировать AIC на Python

Допустим, мы хотим подогнать две разные модели множественной линейной регрессии , используя переменные из набора данных mtcars .

Сначала мы загрузим этот набор данных:

 from sklearn. linear_model import LinearRegression
import statsmodels. api as sm
import pandas as pd

#define URL where dataset is located
url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv"

#read in data
data = pd. read_csv (url)

#view head of data
data. head ()

        model mpg cyl disp hp drat wt qsec vs am gear carb
0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2

Вот переменные-предикторы, которые мы будем использовать в каждой модели:

  • Переменные-предикторы в модели 1: disp, hp, wt, qsec
  • Переменные-предикторы в модели 2: disp, qsec

Следующий код показывает, как подогнать первую модель и вычислить AIC:

 #define response variable
y = data['mpg']

#define predictor variables
x = data[['disp', 'hp', 'wt', 'qsec']]

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

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

#view AIC of model
print (model. aic )

157.06960941462438

AIC этой модели оказывается 157,07 .

Далее подойдем ко второй модели и рассчитаем AIC:

 #define response variable
y = data['mpg']

#define predictor variables
x = data[['disp', 'qsec']]

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

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

#view AIC of model
print (model. aic )

169.84184864154588

AIC этой модели оказывается равным 169,84 .

Поскольку первая модель имеет более низкое значение AIC, она является наиболее подходящей моделью.

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

Дополнительные ресурсы

Полное руководство по линейной регрессии в Python
Как рассчитать скорректированный R-квадрат в Python

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *