roll_sd {roll} | R Documentation |
Rolling Standard Deviations
Description
A function for computing the rolling and expanding standard deviations of time-series data.
Usage
roll_sd(x, width, weights = rep(1, width), center = TRUE,
min_obs = width, complete_obs = FALSE, na_restore = FALSE,
online = TRUE)
Arguments
x |
vector or matrix. Rows are observations and columns are variables. |
width |
integer. Window size. |
weights |
vector. Weights for each observation within a window. |
center |
logical. If |
min_obs |
integer. Minimum number of observations required to have a value within a window,
otherwise result is |
complete_obs |
logical. If |
na_restore |
logical. Should missing values be restored? |
online |
logical. Process observations using an online algorithm. |
Details
The denominator used gives an unbiased estimate of the standard deviation,
so if the weights are the default then the divisor n - 1
is obtained.
Value
An object of the same class and dimension as x
with the rolling and expanding
standard deviations.
Examples
n <- 15
x <- rnorm(n)
weights <- 0.9 ^ (n:1)
# rolling standard deviations with complete windows
roll_sd(x, width = 5)
# rolling standard deviations with partial windows
roll_sd(x, width = 5, min_obs = 1)
# expanding standard deviations with partial windows
roll_sd(x, width = n, min_obs = 1)
# expanding standard deviations with partial windows and weights
roll_sd(x, width = n, min_obs = 1, weights = weights)