在Python中,假设我有一个带有标记为Y,X1,X2,X3的列的pandas数据帧。 我在Y上用X1,X2,X3运行OLS回归。 我想使用循环将回归中的系数存储在列表中。 如何在循环中更改函数的参数? 以下代码不起作用。
import pandas as pd
import statsmodels.api as sm
ols = sm.OLS(df[['Y']],(df[['X_1','X_2','X_3']]))
olsfit = ols.fit(cov_type='HC0')
coef = []
for i in range(4):
coef.append(olsfit.params.X_i)
答案 0 :(得分:0)
答案 1 :(得分:0)
不要迭代整数来构建回归名称,只需在statsmodels RegressionResultsWrapper
params
属性中使用实际名称(这是一个整洁的pd.Series
,索引回归程序名称)以适当过滤 - 如下:
olsfit.params[olsfit.params.index.str.contains('^X_')]