jasp-stats / jasp-issues

This repository is solely meant for reporting of bugs, feature requests and other issues in JASP.
59 stars 29 forks source link

[Feature Request]: Add EFAtools package #2987

Open glcanivez opened 4 weeks ago

glcanivez commented 4 weeks ago

Description

Add EFAtools R package analyses

Purpose

EFAtools is an R package that differs form the 'psych' package

Use-case

No response

Is your feature request related to a problem?

No response

Is your feature request related to a JASP module?

Factor

Describe the solution you would like

The goal is to provide state-of-the-art factor retention methods and a high degree of flexibility in the EFA procedures. This way, for example, implementations from R 'psych' and 'SPSS' can be compared. Moreover, functions for Schmid-Leiman transformation and the computation of omegas are provided.

Describe alternatives that you have considered

No response

Additional context

Package ‘EFAtools’ January 6, 2023 Title Fast and Flexible Implementations of Exploratory Factor Analysis Tools Version 0.4.4 Description Provides functions to perform exploratory factor analysis (EFA) procedures and compare their solutions. The goal is to provide state-of-the-art factor retention methods and a high degree of flexibility in the EFA procedures. This way, for example, implementations from R 'psych' and 'SPSS' can be compared. Moreover, functions for Schmid-Leiman transformation and the computation of omegas are provided. To speed up the analyses, some of the iterative procedures, like principal axis factoring (PAF), are implemented in C++. Depends R (>= 3.6.0) License GPL-3 Encoding UTF-8 LazyData true URL https://github.com/mdsteiner/EFAtools

juliuspfadt commented 3 weeks ago

Thanks for the request. We actually had some requests that included switching from psych to lavaan. I think this is all open for discussion. Maybe @TarandeepKang has some input?

glcanivez commented 3 weeks ago

Thanks for the reply Julius. This R package is for EFA which is different from CFA which is what the lavaan package focuses on. This EFAtools package is a supplement or replacement for the psych package. I could put you in contact with my colleague Silvia Greider who is one of the EFAtools authors if you like.

TarandeepKang commented 2 weeks ago

Hi Both,

@juliuspfadt I entirely agree with @glcanivez. I apologise for the fact that my last couple of posts may not have made so much sense and for being absent for a while. I was diagnosed with a concussion, which explains my apparent lack of coherence.

You may remember that they had found a generally "ideal" implementation for EFA in R. Dr Greider wrote it:

Grieder, S., & Steiner, M. D. (2022). Algorithmic jingle jungle: A comparison of implementations of principal axis factoring and promax rotation in R and SPSS. Behavior Research Methods, 54(1), 54–74. https://doi.org/10.3758/s13428-021-01581-x

So in short I agree with the suggestion to split off and replace the existing EFA functionality with efatools, then the CFA can use lavaan.

The excellent package paper also suggests you will be able to close a few other outstanding feature requests (i.e. #2752 #2710 ) in the process and bring features right up to date!

Steiner, M. D., & Grieder, S. (2020). EFAtools: An R package with fast and flexible implementations of exploratory factor analysis tools. Journal of Open Source Software, 5(53), 2521. https://doi.org/10.21105/joss.02521

TarandeepKang commented 2 weeks ago

Hi again, perhaps I wasn't entirely confused it does possible to do exploratory factor analysis with lavaan...? Although I wouldn't say is anybody's default software for this.

https://solomonkurz.netlify.app/blog/2021-05-11-yes-you-can-fit-an-exploratory-factor-analysis-with-lavaan/

And I now remember that somewhere on this forum somebody had requested using DWLS with EFA which is only possible through lavaan although I'm only familiar with this in the CFA context…?

TarandeepKang commented 1 week ago

Hi @juliuspfadt What do you think?

juliuspfadt commented 1 week ago

Good question. I didn't look into this at all so far. There are lots of things that need to be implemented, and replacing something that is already kind of working, even though maybe suboptimal, is the not on top of the stack. When I have more time I could include this into the overhaul of the EFA/PCA parallel analysis.

TarandeepKang commented 6 days ago

Sounds like a plan! :)