computePCEV {pcev} | R Documentation |
Principal Component of Explained Variance
Description
computePCEV
computes the first PCEV and tests its significance.
Usage
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: |
inference |
Character string specifying which inference method to use: |
index |
Only used if |
shrink |
Should we use a shrinkage estimate of the residual variance? Default value is
|
nperm |
The number of permutations to perform if |
Wilks |
Should we use a Wilks test instead of Roy's largest test? This is only implemented
for a single covariate and with |
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.
See Also
Examples
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)