熊猫的成对回归

时间:2014-01-31 08:10:55

标签: python pandas regression

  1. 我的数据框df包含n列。索引是DatetimeIndex。给定参考列ref_col,我希望根据此参考列计算剩余列的n-1一维线性回归。以下内容未实现此目的,而是计算单个n-1 - 维回归:

    pd.ols(y=df[ref_col], x=df.drop(ref_col, axis=1))
    
  2. 现在假设我希望计算所有可能的成对回归,以便生成具有单位对角线的贝塔nxn矩阵。

  3. 可以使用循环相对容易地完成上述两个操作。是否有“矢量化”方式?

1 个答案:

答案 0 :(得分:2)

您可以像这样获取参考列的成对回归列表:

models=[pd.ols(y=df[ref_col],x=df[col]) for col in df if col<>ref_col]

要在所有可能的参考列上获得模型矩阵,下一步将是

models_matrix=[[pd.ols(y=df[ref_col],x=df[col]) for col in df if col<>ref_col] for ref_col in df]

最后,贝塔的矩阵可以像这样实现

betas=[[pd.ols(y=df[ref_col],x=df[col]).beta.x for col in df if col<>ref_col] for ref_col in df]