Dear Lybrya, I don't have personal experience with it, but to do parallel analyses, you'd have to simulate data according to the sampling design. That shouldn't be too hard but would require custom programming and you may be able to adapt existing code, such as that in the psych package. You already have, in base R and the packages that you reference, what's necessary for computing scree plots and tetrachoric correlations. Here, using an example in ?svyfactanal, is one way to get scree plots based on the correlation matrix with either 1's or communalities on the main diagonal: library(survey) example("factanal") fa <- factanal(~api99+api00+hsg+meals+ell+emer, data=apipop, factors=2) RR <- R <- fa$correlation (u <- fa$uniquenesses) diag(RR) <- 1 - u plot(eigen(R, only.values=TRUE)$values, type="b", ylab=expression(lambda[i]), main="Scree Plot (correlations)") plot(eigen(RR, only.values=TRUE)$values, type="b", ylab=expression(lambda[i]), main="Scree Plot (correlations with communalities)") Here is an example of computing a polychoric correlation based on an example in ?svytable: example("svytable") library(polycor) polychoric(tbl) The example is nonsense in that the levels of stype in the table are out of order -- I show it here just to demonstrate how to do the computation. As well, stype has three levels, but polychoric() computes tetrachoric correlations when both variable are binary. I know that you want a correlation matrix for several binary variables, but it would be simple to compute them in a double for loop. I hope this helps, John -- John Fox, Professor Emeritus McMaster University Hamilton, Ontario, Canada web: https://socialsciences.mcmaster.ca/jfox/ On 2022-04-29 1:31 p.m., Lybrya Kebreab wrote:> Hello, > > Thank you for the help already received in conducting EFAs with complex samples. I have successfully generated the EFA with svyfactanal. I have been unsuccessful in using the survey weighted data to generate the extra bells and whistles of EFA such as scree plots and parallel analyses. I noticed there is a way to create scree plots in the ggplots (or ggplots2) package, but am wondering if the svyfactanal function (or another function) in the survey package can generate these plots and subsequent parallel analyses. > > I also have binary variables. I can generate the EFA with the binary variables using the hetcor function within the polycor package--but without the complex sampling design. Is there a way to conduct the EFA with binary items that also allows me to apply the design weights? > > > Thank you kindly, > > Lybrya Kebreab > Doctoral Candidate > Education-Mathematics Education Track > School of Teacher Education > College of Community Innovation and Education > University of Central Florida > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.