如何计算 R 中标准偏差的滚动 window?
How can compute rolling window for standard deviation in R?
我尝试下载股票价格并滚动计算标准差 window。我找到了图书馆 PerformanceAnalytics
但他们只有滚动 window 表示均值而不是标准差。
library("tseries")
library("zoo")
library("forecast")
library("FinTS")
library("rugarch")
AAL.data = get.hist.quote(instrument="AAL", start="2014-01-01", end="2018-01-01", quote="AdjClose", provider="yahoo", compression="d", retclass="zoo")
plot(AAL.data, main = "AAL closing price", ylab = "Price (USD)", xlab = "Date")
#install.packages("PerformanceAnalytics")
library(PerformanceAnalytics)
chart.RollingMean(XOM.sr, width = 60, xaxis = TRUE, ylim = NULL)
试试这个:
library(zoo)
rollapplyr(1:10, 3, sd, fill = NA)
## [1] NA NA 1 1 1 1 1 1 1 1
有关详细信息,请参阅 ?rollapply
。
对于现在正在寻找这个的人,请使用 roll
包 (rdrr.io link) 的 roll_sd
。
expr min lq mean median uq max neval
rollapply(STK, width = 5, sd) 34703.2817 37535.3761 40422.77272 38005.02 38357.489 53512.7018 5
roll_sd(STK, 5) 18.9334 18.9973 23.90904 19.14 30.608 31.8665 5
这是一个完整的可重现示例。对于 TTR
包,您可以使用 runSD
。它与 xts
集成得很好。
通常你会先计算 returns 然后是标准。偏差表示风险。
library(quantmod)
library(TTR)
AAPL = getSymbols("AAPL", auto.assign = FALSE)
returns = ROC(Ad(AAPL), n=1)[-1]
plot(runSD(returns, n=30), main='Rolling Std. Deviation (30 days)')
我尝试下载股票价格并滚动计算标准差 window。我找到了图书馆 PerformanceAnalytics
但他们只有滚动 window 表示均值而不是标准差。
library("tseries")
library("zoo")
library("forecast")
library("FinTS")
library("rugarch")
AAL.data = get.hist.quote(instrument="AAL", start="2014-01-01", end="2018-01-01", quote="AdjClose", provider="yahoo", compression="d", retclass="zoo")
plot(AAL.data, main = "AAL closing price", ylab = "Price (USD)", xlab = "Date")
#install.packages("PerformanceAnalytics")
library(PerformanceAnalytics)
chart.RollingMean(XOM.sr, width = 60, xaxis = TRUE, ylim = NULL)
试试这个:
library(zoo)
rollapplyr(1:10, 3, sd, fill = NA)
## [1] NA NA 1 1 1 1 1 1 1 1
有关详细信息,请参阅 ?rollapply
。
对于现在正在寻找这个的人,请使用 roll
包 (rdrr.io link) 的 roll_sd
。
expr min lq mean median uq max neval
rollapply(STK, width = 5, sd) 34703.2817 37535.3761 40422.77272 38005.02 38357.489 53512.7018 5
roll_sd(STK, 5) 18.9334 18.9973 23.90904 19.14 30.608 31.8665 5
这是一个完整的可重现示例。对于 TTR
包,您可以使用 runSD
。它与 xts
集成得很好。
通常你会先计算 returns 然后是标准。偏差表示风险。
library(quantmod)
library(TTR)
AAPL = getSymbols("AAPL", auto.assign = FALSE)
returns = ROC(Ad(AAPL), n=1)[-1]
plot(runSD(returns, n=30), main='Rolling Std. Deviation (30 days)')