我有33年的特定股票和S&P500指数回报的每周数据。 我想根据52次每周对股票收益的观察来计算33个年度Beta。
我知道可以使用协方差和方差来计算beta。我发现熊猫有一个功能pd.rolling.cov,但是它不起作用。 模块“ pandas”没有属性“ rolling”
import pandas as pd
import numpy as np
stock=pd.read_excel(r"C:\01.xlsx", '2') #read second sheet of excel file
stock['stockreturn']=np.log(stock.AdjCloseStock / stock.AdjCloseStock.shift(1)) #stock ln return
stock['SP500return']=np.log(stock.AdjCloseSP500 / [enter image description here][1]stock.AdjCloseSP500.shift(1)) #SP500 ln return
stock = stock.iloc[1:] #delete first row in dataframe
stock['beta'] = pd.rolling.cov(stock['stockreturn'], stock['SP500return'],
window=52) / pd.rolling.var(stock['SP500return'], window=52)
坦白说,我不知道如何从33个52周的观察中获得33个年度beta。任何帮助表示赞赏。