如何创建具有beta回归系数的数据框

时间:2020-07-15 08:17:18

标签: python pandas dataframe scikit-learn linear-regression

我有以下代码,它采用数据帧HF的每一列并将其适合整个数据帧索引。然后,我感兴趣的是生成一个包含回归系数的数据帧Beta:

col_names = HF.columns
Betas = pd.DataFrame(columns= HF.columns, index = Index.columns)
for name in col_names:
    lm = linear_model.LinearRegression()
    hf = HF[name]
    model = lm.fit(Index, hf)
    Betas.loc[:][name] = lm.coef_

代码可以运行,但是我得到的是只有NaN值的Betas数据框。你能帮忙理解这个问题吗?谢谢

1 个答案:

答案 0 :(得分:1)

问题在于,在.loc之后,您将Betas数据帧切片了两次,而您只需要使用相同的一组方括号来完成一次。

这应该是您的新--周期

for name in col_names:
    lm = linear_model.LinearRegression()
    hf = HF[name]
    lm.fit(Index, hf)
    Betas.loc[:, name] = lm.coef_

作为旁注,由于不必要,我删除了对model的分配;您可以只在fit对象上调用lm方法。