EVA {hySAINT}R Documentation

Evaluating main and interaction effects

Description

This function ranks each main and interaction effect. It also calculate the ABC score for each potential interactions across different heredity structures. If heredity = "No" and the the number of potential interactions exceed choose(1000,2), distance correlation between each variable in X and y will be calculated so that it reduces the running time. This ensures a more efficient evaluation process.

Usage

EVA(
  X,
  y,
  heredity = "Strong",
  r1,
  sigma,
  varind = NULL,
  interaction.ind = NULL,
  lambda = 10
)

Arguments

X

Input data. An optional data frame, or numeric matrix of dimension n observations by p main effects.

y

Response variable. A n-dimensional vector.

heredity

Whether to enforce Strong, Weak, or No heredity. Default is "Strong".

r1

At most how many main effects do you want to include in your model?. For high-dimensional data, r1 cannot be larger than the number of screened main effects.

sigma

The standard deviation of the noise term. In practice, sigma is usually unknown. Users can estimate sigma from function selectiveInference::estimateSigma, then use the output as the sigma value.

varind

A numeric vector that specifies the indices of variables to be extracted from X. Default is "No".

interaction.ind

A two-column numeric matrix. Each row represents a unique interaction pair, with the columns indicating the index numbers of the variables involved in each interaction. Note that interaction.ind must be generated outside of this function using t(utils::combn(p,2)). See Example section for details.

lambda

A numeric value defined by users. The number needs to satisfy the condition: \lambda\geq 5.1/log(2). Default is 10.

Value

A list of output. The components are: ranked main effect, ranked.mainpool; and a 4-column matrix contains potential interactions ranked by ABC score, ranked.intermat.

See Also

ABC, Extract

Examples

# Strong heredity
set.seed(0)
interaction.ind <- t(combn(10,2))
X <- matrix(rnorm(100*10,1,0.1), 100, 10)
epl <- rnorm(100,0,0.01)
y <- 1+X[,1]+X[,2]+X[,3]+X[,1]*X[,2]+X[,1]*X[,3]+epl
EVAoutput <- EVA(X, y, r1 = 5, sigma = 0.01, interaction.ind = interaction.ind)

[Package hySAINT version 1.2.1 Index]