算法基本思路:首先需要确定一个因变量y以此构建一元回归方程,再找到已通过显著性检验的一元线性回归方程中F值最大的解释变量x0,将其并入回归方程中,再分别将剩余的解释变量与解释变量x0作为OLS函数的自变量集拟合回归方程,同样找出其中F值最大的自变量集,如果该自变量集均能通过显著性检验则将该解释变量并入回归方程中并进行下一轮的迭代,否则舍弃该解释变量,并找出F值第二大的自变量集继续对其进行显著性检验。
import pandas as pd
import numpy as np
import statsmodels.api as sm
def test_significance(data, dv, src_idvs):
model = sm.OLS(data.loc[:, dv], data.loc[:, src_idvs]).fit()
for p in model.pvalues:
if p > 0.05:
return False
else:
return True
def find_max_F(data, dv, idvs, res_idvs):
F_max = -1
idv_F_max = None
res_model = None
for idv in idvs:
new_idvs = res_idvs.copy()
new_idvs.append(idv) # 加入新解释变量找出F最大值
model = sm.OLS(data.loc[:, dv], sm.add_constant(
data.loc[:, new_idvs])).fit()
F = model.fvalue
if F > F_max:
F_max = F
idv_F_max = idv
res_model = model
return F_max, idv_F_max, res_model

该博客详细介绍了如何使用逐步回归方法进行数据分析。通过Python的statsmodels库,逐步回归算法选择最优解释变量,逐步建立一元及多元线性回归模型。在每一步迭代中,算法检查新引入变量的显著性,确保模型的稳定性。最终,该方法用于从大量解释变量中筛选出对目标变量影响最大的变量,生成相应的回归方程式,并将结果输出到.txt文件中。
最低0.47元/天 解锁文章
1115

被折叠的 条评论
为什么被折叠?



