Python 熊猫的成对回归

Python 熊猫的成对回归,python,pandas,regression,Python,Pandas,Regression,我有一个带有n列的数据帧df。该索引是DatetimeIndex。给定一个参考列ref\u col,我希望计算剩余列对该参考列的n-1一维线性回归。以下并未实现这一点,而是计算单个n-1-维回归: pd.ols(y=df[ref_col], x=df.drop(ref_col, axis=1)) 假设现在我想计算所有可能的两两回归,以产生一个单位对角的β矩阵 使用循环可以相对轻松地完成上述两项。有“矢量化”方法吗?您可以获得参考列的成对回归列表,如下所示: models=[pd.ols(y=

我有一个带有
n
列的数据帧
df
。该索引是DatetimeIndex。给定一个参考列
ref\u col
,我希望计算剩余列对该参考列的
n-1
一维线性回归。以下并未实现这一点,而是计算单个
n-1
-维回归:

pd.ols(y=df[ref_col], x=df.drop(ref_col, axis=1))
  • 假设现在我想计算所有可能的两两回归,以产生一个单位对角的β矩阵


  • 使用循环可以相对轻松地完成上述两项。有“矢量化”方法吗?

    您可以获得参考列的成对回归列表,如下所示:

    models=[pd.ols(y=df[ref_col],x=df[col]) for col in df if col<>ref_col]
    
    models=[pd.ols(y=df[ref\u col],x=df[col]),对于df中的col,如果colref\u 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]
    
    models_matrix=[[pd.ols(y=df[ref_col],x=df[col])表示df中的col,如果colref_col]表示df中的ref_col]
    
    最后,beta矩阵可以这样实现

    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]
    
    betas=[[pd.ols(y=df[ref\u col],x=df[col])。如果colref\u col]表示df中的ref\u col,则beta.x表示df中的col]