Title: | Rolling Shapley Values |
---|---|
Description: | Analytical computation of rolling Shapley values for time-series data. |
Authors: | Jason Foster |
Maintainer: | Jason Foster <[email protected]> |
License: | GPL (>= 2) |
Version: | 1.0 |
Built: | 2024-08-19 02:30:49 UTC |
Source: | https://github.com/jasonjfoster/rollshap |
Analytical computation of rolling Shapley values for time-series data.
rollshap
is a package that provides analytical computation of rolling Shapley values for time-series data.
Jason Foster
A function for computing the rolling and expanding Shapley values of time-series data.
roll_shap(x, y, width, weights = rep(1, width), intercept = TRUE, min_obs = width, complete_obs = TRUE, na_restore = FALSE, online = TRUE)
roll_shap(x, y, width, weights = rep(1, width), intercept = TRUE, min_obs = width, complete_obs = TRUE, na_restore = FALSE, online = TRUE)
x |
vector or matrix. Rows are observations and columns are the independent variables. |
y |
vector or matrix. 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 |
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. |
An object of the same class and dimension as x
with the rolling and expanding
Shapley values.
n <- 15 m <- 3 x <- matrix(rnorm(n * m), nrow = n, ncol = m) y <- rnorm(n) weights <- 0.9 ^ (n:1) # rolling Shapley values with complete windows roll_shap(x, y, width = 5) # rolling Shapley values with partial windows roll_shap(x, y, width = 5, min_obs = 1) # expanding Shapley values with partial windows roll_shap(x, y, width = n, min_obs = 1) # expanding Shapley values with partial windows and weights roll_shap(x, y, width = n, min_obs = 1, weights = weights)
n <- 15 m <- 3 x <- matrix(rnorm(n * m), nrow = n, ncol = m) y <- rnorm(n) weights <- 0.9 ^ (n:1) # rolling Shapley values with complete windows roll_shap(x, y, width = 5) # rolling Shapley values with partial windows roll_shap(x, y, width = 5, min_obs = 1) # expanding Shapley values with partial windows roll_shap(x, y, width = n, min_obs = 1) # expanding Shapley values with partial windows and weights roll_shap(x, y, width = n, min_obs = 1, weights = weights)