## Example of a "fishing expedition" n <- 25 # sample size; as a rule of thumb, 1/sqrt(n) is a statistically significant correlation k <- 100 # variables X <- rnorm(n*k) # X's are, to begin with, independent Normal(0,1) r.v.'s dim(X) <- c(n,k) pairs(X) # "matrix scatterplot" cor(X) # correlation matrix pval <- matrix(0,k,k) for (i in 1:k) for (j in 1:k){ pval[i,j] <- cor.test(X[,i],X[,j])$p.val } image(1:k, 1:k, 1- (pval < 0.05), main="Significant pairs") # bonferroni correction print( alpha.star <- 0.05/choose(k,2) ) image(1:k, 1:k, 1- (pval < alpha.star), main="Significant pairs") (sum(pval < 0.05)-k)/2 # number of "significant" results print(familywise <- (sum(pval < 0.05)-k)/2 /choose(k,2)) # estimated familywise error rate