Rolling Linear Models
Description
A parallel function for computing rolling linear models of timeseries data.
Usage
1 2 3 4 5 
Arguments
x 
matrix or xts object. Rows are observations and columns are the independent variables. 
y 
matrix or xts object. Rows are observations and columns are the dependent variables. 
width 
integer. Window size. 
weights 
vector. Weights for each observation within a window. 
intercept 
logical. Either 
center 
logical. 
center_x 
logical. If 
center_y 
logical. Analogous to 
scale 
logical. 
scale_x 
logical. If 
scale_y 
logical. Analogous to 
min_obs 
integer. Minimum number of observations required to have a value within a window, otherwise result is NA. 
complete_obs 
logical. If 
na_restore 
logical. Should missing values be restored? 
parallel_for 
character. Executes a "for" loop in which iterations run in parallel by

Value
A list containing the following components:
coefficients 
A list of objects with the rolling coefficients for each 
r.squared 
A list of objects with the rolling rsquareds for each 
Note
If users are already taking advantage of parallelism using multithreaded BLAS/LAPACK
libraries, then limit the number of cores in the RcppParallel package to one with the
setThreadOptions
function.
See Also
setThreadOptions
for thread options via RcppParallel.
Examples
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  n_vars < 10
n_obs < 1000
x < matrix(rnorm(n_obs * n_vars), nrow = n_obs, ncol = n_vars)
y < matrix(rnorm(n_obs), nrow = n_obs, ncol = 1)
# 252day rolling regression
result < roll_lm(x, y, 252)
# Equivalent to 'na.rm = TRUE'
result < roll_lm(x, y, 252, min_obs = 1)
# Expanding window
result < roll_lm(x, y, n_obs, min_obs = 1)
# Exponential decay
weights < 0.9 ^ (251:0)
result < roll_lm(x, y, 252, weights, min_obs = 1)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker. Vote for new features on Trello.