Package 'rollshap'

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

Help Index


Rolling Shapley Values

Description

Analytical computation of rolling Shapley values for time-series data.

Details

rollshap is a package that provides analytical computation of rolling Shapley values for time-series data.

Author(s)

Jason Foster


Rolling Shapley Values

Description

A function for computing the rolling and expanding Shapley values of time-series data.

Usage

roll_shap(x, y, width, weights = rep(1, width), intercept = TRUE,
  min_obs = width, complete_obs = TRUE, na_restore = FALSE,
  online = TRUE)

Arguments

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 TRUE to include or FALSE to remove the intercept.

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?

online

logical. Process observations using an online algorithm.

Value

An object of the same class and dimension as x with the rolling and expanding Shapley values.

Examples

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)