[R] Polychoric Principal Component Analysis (pPCA)
William R Revelle
revelle at northwestern.edu
Thu Apr 10 05:00:34 CEST 2014
Peter,
I am not sure if anyone answered your question about doing biplots using polychoric output and PCA.
The biplot.psych example # 3 shows how to do this
library(psych)
> responses <- table2df(bock.table[,2:6],count=bock.table[,7],
> labs= paste ("lsat6.",1:5,sep="”))
> W <- polychoric(responses, smooth=TRUE,global=TRUE,polycor=F,
> ML = FALSE, std.err=FALSE,progress=TRUE)
#this returns an object with both the correlations and the difficulties
#get the object returned by principal (see biplot.psych example 3)
p3 <- principal(r = W$rho, nfactors = 3, rotate = "Promax") # works if you actually give it the matrix
p3$scores <- factor.scores(responses,p3) #find the scores from the response data set with the p3 pca solution
biplot.psych(p3)
Bill
On Dec 17, 2013, at 2:18 PM, Peter Maclean <pmaclean2011 at yahoo.com> wrote:
> I have data set with binary responses. I would like to
> conduct polychoric principal component analysis (pPCA). I know there are several packages used in PCA but I could not find one that directly estimate pPCA and graph the individuals and variables maps. I will appreciate any help that expand these reproducible scripts.
> #How to conduct polychoric principal component analysis pPCA using
> #either of these packages
> library(psych)
> library(FactoMineR)
> library(nsprcomp)
>
> #Bock and Liberman (1970) data set of 1000 observations of the LSAT
> #from psych
>
> data(bock)
> responses <- table2df(bock.table[,2:6],count=bock.table[,7],
> labs= paste ("lsat6.",1:5,sep=""))
> fix(responses)
> describe(responses)
> #Estimate the polychoric correlation matrix to be used in
> #PCA using psych
> W <- polychoric(responses, smooth=TRUE,global=TRUE,polycor=F,
> ML = FALSE, std.err=FALSE,progress=TRUE)
> #Regular PCA using stat, psych and FactoMiner, respectively
> #There is no option for including the matrix
> princomp(responses, cor=TRUE) #What kind of correlation is used here?
>
> principal(r = responses, nfactors = 3, rotate = "Promax")
> principal(r = W, nfactors = 3, rotate = "Promax") #Do not work
>
> PCA(responses, scale.unit=TRUE, ncp=3, graph=T)
> #How to conduct polychoric principal component analysis using either of #the above package and producing individual and variable factor maps as #above
>
> Peter Maclean
> Department of Economics
> UDSM
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
William Revelle http://personality-project.org/revelle.html
Professor http://personality-project.org
Department of Psychology http://www.wcas.northwestern.edu/psych/
Northwestern University http://www.northwestern.edu/
Use R for psychology http://personality-project.org/r
It is 5 minutes to midnight http://www.thebulletin.org
More information about the R-help
mailing list