Generate basis functions for all covariates and interaction terms thereof up to a specified order/degree

enumerate_basis(x, max_degree = NULL)

Arguments

x

An input matrix containing observations and covariates following standard conventions in problems of statistical learning.

max_degree

The highest order of interaction terms for which the basis functions ought to be generated. The default (NULL) corresponds to generating basis functions for the full dimensionality of the input matrix.

Value

A list of basis functions generated for all covariates and interaction thereof up to a pre-specified degree.

Examples

# \donttest{ gendata <- function(n) { W1 <- runif(n, -3, 3) W2 <- rnorm(n) W3 <- runif(n) W4 <- rnorm(n) g0 <- plogis(0.5 * (-0.8 * W1 + 0.39 * W2 + 0.08 * W3 - 0.12 * W4)) A <- rbinom(n, 1, g0) Q0 <- plogis(0.15 * (2 * A + 2 * A * W1 + 6 * A * W3 * W4 - 3)) Y <- rbinom(n, 1, Q0) data.frame(A, W1, W2, W3, W4, Y) } set.seed(1234) data <- gendata(100) covars <- setdiff(names(data), "Y") X <- as.matrix(data[, covars, drop = FALSE]) basis_list <- enumerate_basis(X) # }