yrosseel / lavaan

an R package for structural equation modeling and more
http://lavaan.org
439 stars 100 forks source link

EFA: rename 'target' rotation 'target.strict' rotation #384

Open yrosseel opened 2 months ago

yrosseel commented 2 months ago

When performing 'target' rotation, you need to provide a target matrix. This matrix often consists of ones and zeroes, and the applied user often regards this matrix as a 'pattern' matrix, indicating zero and non-zero values. But the current 'target' rotation algorithm takes those ones literally, often resulting in poor results. The 'trick' is to replace all the ones by 'NA'. Perhaps we should rename 'target' to 'target.strict', and when 'target' rotation is requested, we will replace all '1' values by 'NA' and effectively perform partial target rotation instead, as this is, typically, what users expect.

FlorianScharf commented 2 months ago

I like this suggestion very much, it aligns better with the descriptions of this method in papers. Also I think it is safe to assume that no one actually aims for target loadings of 1. I have another observation: I think even if users actually want to do a target rotation, they tend to think of their target in standardized loadings which is not how this method works. I think we should more clearly instruct users that standardized targets only work when the data input is also standardized.