Learn R Programming

roll (version 1.0.5)

roll_vif: Rolling Variance Inflation Factors

Description

A parallel function for computing rolling variance inflation factors of time-series data.

Usage

roll_vif(data, width, weights = rep(1, width), center = TRUE, scale = FALSE, min_obs = width, complete_obs = TRUE, na_restore = FALSE, parallel_for = c("rows", "cols"))

Arguments

data
matrix or xts object. Rows are observations and columns are variables.
width
integer. Window size.
weights
vector. Weights for each observation within a window.
center
logical. If TRUE then the weighted mean of each variable is used, if FALSE then zero is used.
scale
logical. If TRUE then the weighted standard deviation of each variable is used, if FALSE then no scaling is done.
min_obs
integer. Minimum number of observations required to have a value within a window, otherwise result is NA.
complete_obs
logical. If TRUE then rows containing any missing values are removed, if FALSE then pairwise is used.
na_restore
logical. Should missing values be restored?
parallel_for
character. Executes a "for" loop in which iterations run in parallel by rows or cols.

Value

An object of the same class and dimension as data with the rolling variance inflation factors.

See Also

setThreadOptions for thread options via RcppParallel.

Examples

Run this code
n_vars <- 10
n_obs <- 1000
data <- matrix(rnorm(n_obs * n_vars), nrow = n_obs, ncol = n_vars)

# 252-day rolling variance inflation factors
result <- roll_vif(data, 252)

# Equivalent to 'na.rm = TRUE'
result <- roll_vif(data, 252, min_obs = 1)

# Expanding window
result <- roll_vif(data, n_obs, min_obs = 1)

# Exponential decay
weights <- 0.9 ^ (251:0)
result <- roll_vif(data, 252, weights, min_obs = 1)

Run the code above in your browser using DataLab