AICを使用して式ベースのモデルを選択するstatsmodels
ための R の機能に相当する、または他の Python はありますか?step
3775 次
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 に答える