round(Pinv(Thurstone) %*% Thurstone,2) #an identity matrix
sl <- schmid(Thurstone,3) #The schmid-leiman solution is less than full rank
F <- sl$sl[,1:4] #the SL solution is general + 3 gropus
R <- Thurstone #
diag(R) <- sl$sl[,5] #the reproduced matrix (R - U2)
S <- t(Pinv(t(F) %*% F) %*% t(F) %*% R) #the structure matrix
Phi <- t(S) %*% F %*% Pinv(t(F) %*% F) #the factor covariances
Run the code above in your browser using DataLab