Given a raw correlation matrix and a vector of reliabilities, report the disattenuated correlations above the diagonal.
A raw correlation matrix
Vector of reliabilities
Disattenuated correlations may be thought of as correlations between the latent variables measured by a set of observed variables. That is, what would the correlation be between two (unreliable) variables be if both variables were measured perfectly reliably.
This function is mainly used if importing correlations and reliabilities from somewhere else. If the raw data are available, use
Examples of the output of this function are seen in
Raw correlations below the diagonal, reliabilities on the diagonal, disattenuated above the diagonal.
Maintainer: William Revelle email@example.com
Revelle, W. (in preparation) An Introduction to Psychometric Theory with applications in R. Springer. at https://personality-project.org/r/book/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
# attitude from the datasets package #example 1 is a rather clunky way of doing things a1 <- attitude[,c(1:3)] a2 <- attitude[,c(4:7)] x1 <- rowSums(a1) #find the sum of the first 3 attitudes x2 <- rowSums(a2) #find the sum of the last 4 attitudes alpha1 <- alpha(a1) alpha2 <- alpha(a2) x <- matrix(c(x1,x2),ncol=2) x.cor <- cor(x) alpha <- c(alpha1$total$raw_alpha,alpha2$total$raw_alpha) round(correct.cor(x.cor,alpha),2) # #much better - although uses standardized alpha clusters <- matrix(c(rep(1,3),rep(0,7),rep(1,4)),ncol=2) cluster.loadings(clusters,cor(attitude)) # or clusters <- matrix(c(rep(1,3),rep(0,7),rep(1,4)),ncol=2) cluster.cor(clusters,cor(attitude)) # #best keys <- make.keys(attitude,list(first=1:3,second=4:7)) scores <- scoreItems(keys,attitude) scores$corrected #However, to do the more general case of correcting correlations for reliabilty #corrected <- cor2cov(x.cor,1/alpha) #diag(corrected) <- 1
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.