两个识别变量的滚动回归或双分组回归

问题描述

我在要对两个变量进行分组的数据框上应用多元回归时遇到问题。我有一个包含不同月度数据的数据集:公司代码、不同的日期和回报。现在我想对每家公司的每一个日期进行回归。我想在这家公司的每个日期应用以下代码,为我的 Pandas 数据框添加一个分数。回归使用前 36 个月的数据来预测过去 12 个月的残差,以及这些回归的参数。在我对这些残差求和并除以标准差并创建总分之后。我想在每个日期应用以下功能,但分别适用于每个公司。

def regress2(df_merge):
x = df_merge[['MktRF','HML','SMB']]
x = sm.add_constant(x)
y = df_merge['RET']
reg = sm.OLS(y.iloc[-36:-1],x.iloc[-36:-1]).fit(cov_type = 'HAC',cov_kwds = {'maxlags': 11})
pred = reg.predict(x.iloc[-12:-1])
residual_returns = df_merge['RET'].iloc[-12:-1].values - pred.values
score = residual_returns.sum() / residual_returns.std()
return score

我想要的是按公司和日期分组,以便每个日期都有一个基于过去 12 个月数据预测的过去 36 个月数据的残差分数。我想在我的数据框中添加这个分数

dataframe pandas

mf = df_merge.groupby(['mdate','ISIN']).apply(regress2)

这不起作用并给出

“零大小数组到没有标识的缩减操作最大值”

我知道它不会将分数添加到数据框中!首先,我想正确执行这些回归,以获得每个日期和公司的好分数。在我想将这些分数添加到数据框之后。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)