gpt4 book ai didi

R 计算股票的 beta(使用 PerformanceAnalytics CAPM.beta() 函数或 lm() 函数产生意外结果)

转载 作者:行者123 更新时间:2023-12-01 23:56:52 27 4
gpt4 key购买 nike

我正在尝试使用 PerformanceAnalytics CAPM.beta() 函数在 R 中量化股票的贝塔值(基准测试与 SPY 的比较),结果与我在雅虎/谷歌财经在线看到的值并不接近。代码:

require(PerformanceAnalytics)

start_date <- "2013-08-24"

acad <- getSymbols("ACAD", from = start_date, auto.assign = F)
spy <- getSymbols("SPY", from = start_date, auto.assign = F)

CAPM.beta(acad[,6], spy[,6])

对于上面的例子,Yahoo/Finviz/Google 都列出了 ACAD 的 beta 值在 2.6 到 3.0 以上。虽然我不确定每个网站的回溯期是多少,但更改上述代码中的值会产生 1、2、3 年回溯的 beta 值小于 1。

类似地,通过尝试使用 lm() 计算 beta,我得到了 ACAD ~ SPY 2 年回顾的 ie 0.39 beta:

m <- lm(acad[,6] ~ spy[,6] + 0)
beta <- coef(m)[1]
beta

我错过了什么?

最佳答案

Beta 值按返回计算,通常按月计算。使用 lm 时,您确实希望模型中包含截距项 (alpha)。

start_date <- "2012-07-01"
acad <- getSymbols("ACAD", from = start_date, auto.assign = F)
spy <- getSymbols("SPY", from = start_date, auto.assign = F)

r<-function(x) {m<-to.monthly(x[,6])[,4];diff(m)/lag(m)}

coef(lm(r(acad)[2:37]~r(spy)[2:37]))
#> (Intercept) r(spy)[2:37]
#> 0.08601629 2.62485092

在这种情况下,根据调整后的月末收盘价计算的 36 个月的 Beta 值约为 2.6。

关于R 计算股票的 beta(使用 PerformanceAnalytics CAPM.beta() 函数或 lm() 函数产生意外结果),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32186233/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com