1. python 实现代码
def stepwise_select(data,label,cols_all,method='forward'):
'''
args:
data:数据源,df
label:标签,str
cols_all:逐步回归的全部字段
methrod:方法,forward:向前,backward:向后,both:双向
return:
select_col:最终保留的字段列表,list
summary:模型参数
AIC:aic
'''
import statsmodels.api as sm
if method == 'forward':
add_col = []
AIC_None_value = np.inf
while cols_all:
AIC = {
}
for col in cols_all:
print(col)
X_col = add_col.copy()
X_col.append(col)
X = sm.add_constant(data[X_col])
y = data[label]
LR = sm.Logit(y, X).fit()
AIC[col] = LR.aic
AIC_min_value = min(AIC.values())
AIC_min_key = min(AIC,key=AIC.get)
if AIC_min_value