'statsmodels'或其他Python包是否提供与R''step'功能相同的功能?

oro*_*ome 7 r linear-regression model-fitting pandas statsmodels

是否有一个statsmodels或类似的R等效R step用于使用AIC选择基于公式的模型的功能?

Kos*_*tya 8

我真的怀疑你和我一样做同样的在线课程 - 以下内容可以让你得到正确的答案.如果手头的任务计算量不是很大(并且不在课程中),那么我们可以回避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()
Run Code Online (Sandbox Code Playgroud)