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

trock2000

我正在尝试使用PerformanceAnalytics CAPM.beta()函数对R中的股票的beta(标有SPY的基准)进行量化,结果甚至与我在Yahoo / Google Finance上在线看到的值都不接近。代码:

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年回溯的0.39 beta:

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

我想念什么?

韦伯

Beta是根据回报(通常是每月)计算的使用时,您确实希望模型中的截距项(alpha)适合lm

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。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PerformanceAnalytics中的CAPM.beta.bear和TimingRatio错误

R: Finance - 通过 CAPM 计算面板数据的 Beta

R的gsub函数产生意外结果

如何在Julia中计算CAPM变量?

使用std :: set的.begin()和.end()函数会产生意外的结果

使用Repast Simphony产生意外结果

使用 "%" 操作会产生意外结果

Orderby函数产生意外结果

tf.py_func()使用lambda函数在循环中产生意外输出

lm.beta使用我自己计算的标准化系数产生不同的结果

使用 ST_Disjoint() 函数会产生意想不到的结果

使用goroutine进行迭代会产生意外结果

asfreq使用Period dtype产生意外结果

MySQL-使用LEFT JOIN会产生意外结果

Z3使用PDR引擎产生意外结果

尝试在别名中使用`pwd`会产生意外结果

使用ProcessPoolExcecutor进行多处理会产生意外结果

Deepcopying函数变量产生意外结果

EXSLT date:add函数产生意外结果

迭代日期数组的函数会产生意外的结果

使用TimePeriod.NET的CalendarPeriodCollector计算“工作时间”会产生意外结果

R,使用dplyr :: mutate和ifelse包含grepl()会产生意外结果

按组使用data.table的shift()产生意外结果(错误?)

在 SQL 查询中使用“true”而不是 true 会产生意外结果

使用np.savez存储字典会产生意外结果吗?

在WHERE子句中混合使用AND和OR会产生意外结果

使用char **指针的字符串操作代码会产生意外结果

为什么在std :: string上使用Sizeof运算符会产生意外结果?

Swift FlatMap与可选数组一起使用时会产生意外结果