TestCor (version 0.0.2.2)

maxTinftyCor: Multiple testing method of Drton & Perlman (2007) for correlations.

Description

Multiple testing method based on the evaluation of quantile by simulation of observations from the asymptotic distribution (Drton & Perlman (2007)).

Usage

maxTinftyCor(
  data,
  alpha = 0.05,
  stat_test = "empirical",
  Nboot = 1000,
  OmegaChap = covDcorNorm(cor(data), stat_test),
  vect = FALSE,
  logical = FALSE,
  arr.ind = FALSE
)

Arguments

data

matrix of observations

alpha

level of multiple testing (used if logical=TRUE)

stat_test
'empirical'

\(\sqrt{n}*abs(corr)\)

'fisher'

\(\sqrt{n-3}*1/2*\log( (1+corr)/(1-corr) )\)

'student'

\(\sqrt{n-2}*abs(corr)/\sqrt(1-corr^2)\)

'2nd.order'

\(\sqrt{n}*mean(Y)/sd(Y)\) with \(Y=(X_i-mean(X_i))(X_j-mean(X_j))\)

Nboot

number of iterations for Monte-Carlo quantile evaluation

OmegaChap

matrix of covariance of empirical correlations used for quantile evaluation; optional, useful for oracle estimation and step-down

vect

if TRUE returns a vector of adjusted p-values, corresponding to vectorize(cor(data)); if FALSE, returns an array containing the adjusted p-values for each entry of the correlation matrix

logical

if TRUE, returns either a vector or a matrix where each element is equal to TRUE if the corresponding null hypothesis is rejected, and to FALSE if it is not rejected

arr.ind

if TRUE, returns the indexes of the significant correlations, with respect to level alpha

Value

Returns

  • an array containing indexes \(\lbrace(i,j),\,i<j\rbrace\) for which correlation between variables \(i\) and \(j\) is significant, if arr.ind=TRUE.

References

Drton, M., & Perlman, M. D. (2007). Multiple testing and error control in Gaussian graphical model selection. Statistical Science, 22(3), 430-449.

Roux, M. (2018). Graph inference by multiple testing with application to Neuroimaging, Ph.D., Universit<U+00E9> Grenoble Alpes, France, https://tel.archives-ouvertes.fr/tel-01971574v1.

See Also

ApplyFwerCor, maxTinftyCor_SD

Examples

Run this code
# NOT RUN {
 
n <- 100
p <- 10
corr_theo <- diag(1,p)
corr_theo[1,3] <- 0.5
corr_theo[3,1] <- 0.5
data <- MASS::mvrnorm(n,rep(0,p),corr_theo)
# adjusted p-values
res <- maxTinftyCor(data,stat_test='empirical',Nboot=1000)
round(res,2)
# significant correlations with level alpha:
alpha <- 0.05
whichCor(res<alpha)
# directly
res <- maxTinftyCor(data,alpha,stat_test='empirical',Nboot=1000,arr.ind=TRUE)
# }

Run the code above in your browser using DataLab