Я думаю, что я получаю разные значения AIC и BIC в регрессионной модели, построенной с использованием пакета statsmodel в Python - PullRequest
0 голосов
/ 10 июля 2019

Я построил однофакторную (одномерную регрессию) модель, и когда я делаю

aic = results.aic 

, а когда делаю

aic = results.nobs*np.log(results.ssr/results.nobs) + 4 

, я получаю разные результаты.Какой из них правильный?

Вторая формула дает те же результаты, что и выходные данные SAS Base 9.4

  aic = results.aic #from statsmodel packages
  aic = results.nobs*np.log(results.ssr/results.nobs) + 4

1 Ответ

0 голосов
/ 10 июля 2019

Расчеты между AIC в statsmodels и SAS отличаются, когда дело доходит до интерпретации размеров модели.

В статмоделях AIC выглядит так:

Исходный код Statsmodels Eval_metrics

def aic(llf, nobs, df_modelwc):

    return -2. * llf + 2. * df_modelwc

где df_modelwc -

df_modelwc : int
        number of parameters including constant

в интерпретации SAS:

Документация по смешанным процедурам SAS

AIC выглядит как

-2LL + 2d, где «d - эффективное число оцененных параметров ковариации».

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

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