【问题标题】:How to calculate yearly stock beta如何计算年度股票贝塔
【发布时间】:2019-10-12 12:45:41
【问题描述】:

我有特定股票和标准普尔 500 指数回报的 33 年每周数据。 我想根据 52 周的股票收益观察来计算 33 年的股票贝塔系数。

我知道可以使用协方差和方差来计算 beta。我发现 pandas 有一个函数 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 个 52 周的观察中获得 33 个年度 beta。任何帮助表示赞赏。

print screen of my data frame

【问题讨论】:

    标签: python-3.x pandas numpy


    【解决方案1】:

    您正在寻找 pd.core.window.Rolling.cov。 要正确拼写方法名称, 我们要求您Read The Fine Manual

    cfCreate rolling covariance matrix in pandas

    【讨论】:

    • 我已经阅读了有关滚动 cov 方法的信息,现在在我看来,它不会返回 33 个 beta 而是 '#observations - 33' betas
    • 您可能更愿意计算 33 年的协方差和方差,而不是调用 Rolling.cov()。
    猜你喜欢
    • 2018-03-25
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 2020-07-13
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多