Python Pandas 股票 Beta 计算

问题描述

我正在尝试使用每日数据的 1 年滚动窗口为许多股票的 4 因子模型计算因子 beta,在每个月末更新 beta 并在下个月使用相同的值.

我曾尝试使用滚动 OLS 程序,但我获得了每只股票的每日贝塔系数。 我的目标是仅在月底对 Beta 进行估计,然后假设 Beta 直到下个月底才会发生变化。

这里是我用来获取每只股票每日更新的 Beta 的代码

非常感谢您的帮助!谢谢:)

def f_macbeth_step1(df):
if df.index.size < 100:
    return None
X = df[['constant','mkt-rf','smb','hml','rmw','cma']] 
Y = df['excess_ret']
model = RollingOLS(Y.astype(float),X.astype(float),window=min(252,df.index.size))
results = model.fit()
return results.params




from statsmodels.regression.rolling import RollingOLS
df_beta_est.loc[:,'constant'] = 1.0
df_beta_est.loc[:,'excess_ret'] = df_beta_est.loc[:,'ret'] - df_beta_est.loc[:,'rf']
res= df_beta_est.groupby(['permno']).apply(f_macbeth_step1)

解决方法

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

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

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