computePCEV: Principal Component of Explained Variance In pcev: Principal Component of Explained Variance

Description

`computePCEV` computes the first PCEV and tests its significance.

Usage

 ```1 2 3``` ```computePCEV(response, covariate, confounder, estimation = c("all", "block", "singular"), inference = c("exact", "permutation"), index = "adaptive", shrink = FALSE, nperm = 1000, Wilks = FALSE) ```

Arguments

 `response` A matrix of response variables. `covariate` An array or a data frame of covariates. `confounder` An array or data frame of confounders. `estimation` Character string specifying which estimation method to use: `"all"`, `"block"` or `"singular"`. Default value is `"all"`. `inference` Character string specifying which inference method to use: `"exact"` or `"permutation"`. Default value is `"exact"`. `index` Only used if `estimation = "block"`. Default value is `"adapative"`. See details. `shrink` Should we use a shrinkage estimate of the residual variance? Default value is `FALSE`. `nperm` The number of permutations to perform if `inference = "permutation"` or for the Tracy-Widom empirical estimate (if `estimation = "singular"`). `Wilks` Should we use a Wilks test instead of Roy's largest test? This is only implemented for a single covariate and with `estimation = "all"`.

Details

This is the main function. It computes the PCEV using either the classical method, block approach or singular. A p-value is also computed, testing the significance of the PCEV.

The p-value is computed using either a permutation approach or an exact test. The implemented exact tests use Wilks' Lambda (only for a single covariate) or Roy's Largest Root. The latter uses Johnstone's approximation to the null distribution. Note that for the block approach, only p-values obtained from a permutation procedure are available.

When `estimation = "singular"`, the p-value is computed using a heuristic: using the method of moments and a small number of permutations (i.e. 25), a location-scale family of the Tracy-Widom distribution of order 1 is fitted to the null distribution. This fitted distribution is then used to compute p-values.

When `estimation = "block"`, there are three different ways of specifying the blocks: 1) if `index` is a vector of the same length as the number of columns in `response`, then it is used to match each response to a block. 2) If `index` is a single positive integer, it is understood as the number of blocks, and each response is matched to a block randomly. 3) If `index = "adaptive"` (the default), the number of blocks is chosen so that there are about n/2 responses per block, and each response is match to a block randomly. All other values of `index` should result in an error.

Value

An object of class `Pcev` containing the first PCEV, the p-value, the estimate of the shrinkage factor, etc.

`estimatePcev`
 ```1 2 3 4 5``` ```set.seed(12345) Y <- matrix(rnorm(100*20), nrow=100) X <- rnorm(100) pcev_out <- computePCEV(Y, X) pcev_out2 <- computePCEV(Y, X, shrink = TRUE) ```