unidim {psych} | R Documentation |
There are a variety of ways of assessing whether a set of items measures one latent trait. unidim
is just one more way. If a one factor model holds in the data, then the factor analytic decomposition F implies that FF' should reproduce the correlations with communalities along the diagonal. In this case, the fit FF' should be identical to the correlation matrix minus the uniquenesses. unidim is just the ratio of these two estimates. The higher it is, the more the evidence for unidimensionality.
unidim(x, keys.list = NULL, flip = FALSE)
x |
An input matrix or data frame. If x is not a correlation matrix, then the correlations are found. |
keys.list |
If specified, then a number of scales can be tested at once. (See |
flip |
If TRUE, then items will be keyed based upon their loadings on the first factor. Automatically done if key.list is NULL. |
This is an exploratory index that is still under development. A number of test cases suggest that it provides high values when the data are in fact unidimensional, low values when they are not.
The logic is deceptively simple: Unidimensionality implies that a one factor model of the data fits the covariances of the data. If this is the case, then factor model implies R = FF' + U2 will have residuals of 0. Similarly, this also implies that the observed correlations will equal the model. Thus, the sum of the observed corelations (with the diagonal replaced by the communalities) should match the factor model. Compare these two models: R - U2 versus FF'.
uni.orig |
The raw value of the unidimensional criterion |
uni.adj |
The unidimensional criterion when items are keyed in positive direction. |
fit1 |
The off diagonal fit from |
alpha |
Standardized alpha of the keyed items (after appropriate reversals) |
av.r |
The average interitem correlation of the keyed items. |
raw.model |
The ratio of the FF' model to the sum(R) |
adj.model |
The ratio of the FF' model to the sum(R) when items are flipped. |
itemraw.totalThe ratio of the sum(R - uniqueness)/sum(R) itemadj.totalSame ratio with flipped items
A perhaps interesting idea but still an exploratory statistic. Treat with appropriate caution.
William Revelle
fa
for factor analysis, omega
for reliability.
#test the unidimensionality of the five factors of the bfi data set. keys.list <- list(agree=c("-A1","A2","A3","A4","A5"),conscientious=c("C1","C2","C3","-C4","-C5"), extraversion=c("-E1","-E2","E3","E4","E5"),neuroticism=c("N1","N2","N3","N4","N5"), openness = c("O1","-O2","O3","O4","-O5"), all = c("-A1","A2","A3","A4","A5","C1","C2","C3","-C4","-C5","-E1","-E2","E3","E4","E5","N1" ,"N2","N3","N4","N5","O1","-O2","O3","O4","-O5") ) unidim(bfi,keys.list) #Try a known 3 factor structure x <- sim.minor(nfact=3,bipolar=FALSE) unidim(x$model) keys.list <- list(first =c(1:4),second = 5:8,third=9:12,all=1:12) unidim(x$model,keys.list) x <- sim.minor(nfact=3) unidim(x$model,keys.list,flip=TRUE)