8

AICを使用して式ベースのモデルを選択するstatsmodelsための R の機能に相当する、または他の Python はありますか?step

4

2 に答える 2

9

あなたは私と同じオンライン コースを受講しているのではないかと思います。次の方法で正しい答えを得ることができます。目の前のタスクがそれほど計算量が多くない場合 (そしてコースに含まれていない場合)、step関数のすべてのスマートな詳細を回避し、予測子のすべてのサブセットを試すことができます。

各サブセットについて、AICを として計算できますACI = 2*nvars - 2*result.llf
そして、最小の AIC を持つサブセットを見つけます。

import itertools
import numpy as np
import pandas as pd
import statsmodels.api as sm
AICs = {}
for k in range(1,len(predictorcols)+1):
    for variables in itertools.combinations(predictorcols, k):
        predictors = train[list(variables)]
        predictors['Intercept'] = 1
        res = sm.OLS(target, predictors).fit()
        AICs[variables] = 2*(k+1) - 2*res.llf
pd.Series(AICs).idxmin()
于 2014-03-15T22:49:15.313 に答える