У меня 33 года еженедельных данных по конкретным акциям и доходности индекса S & P500.
Я хочу рассчитать 33 годовых бета-акции на основе 52 еженедельных наблюдений за доходностью акций.
Я знаю, что бета-версия может быть рассчитана с использованием ковариации и дисперсии. Я обнаружил, что у панд есть функция pd.rolling.cov, но она не работает.
Модуль «Панды» не имеет атрибута «прокатки»
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 ежегодных бета-версии из 33 наблюдений за 52 недели. Любая помощь приветствуется.
печать экрана моего фрейма данных