我有一个 pandas 数据框,其中包含 1963 年至 2012 年各个公司的每日股票收益(近 6000 万行)。我想要估计 CAPM 贝塔值,因此我需要在过去 250 天内对每家公司运行滚动 OLS 回归,并将贝塔值添加到现有数据帧中。
我已经尝试将 pyfinance 包中的 PandasRollingOLS 函数与“groupby”结合起来,但它只返回内存错误。我还尝试编写两个 for 循环,第一个按公司分组(“PERMNO”),第二个 for 循环执行滚动回归。然而,这也行不通
我的数据框如下所示:
PERMNO RET mkt RF
date
1986-01-08 10000 -0.024640 -0.020994 0.00025
1986-01-09 10000 -0.000250 -0.011469 0.00025
1986-01-10 10000 -0.000250 -0.000167 0.00025
1986-01-13 10000 0.049750 0.002499 0.00025
1986-01-14 10000 0.047369 0.000116 0.00025
1986-01-15 10000 0.045205 0.007956 0.00025
1986-01-16 10000 0.043228 0.004452 0.00025
1986-01-17 10000 -0.000250 -0.001991 0.00025
1986-01-20 10000 -0.000250 -0.003985 0.00025
1986-01-21 10000 -0.000250 -0.007242 0.00025 …Run Code Online (Sandbox Code Playgroud)