使用R对二分数据进行因子分析的推荐程序


10

我必须对由二分变量(0 =是,1 =否)组成的数据集进行因子分析,我不知道自己是否走对了。

使用tetrachoric()我创建一个相关矩阵,并在其上运行fa(data,factors=1)。结果与使用MixFactor时收到的结果非常接近,但事实并非如此。

  1. 可以吗?还是您建议其他程序?
  2. 为什么会fa()工作并factanal()产生错误?(Fehler in solve.default(cv) : System ist für den Rechner singulär: reziproke Konditionszahl = 4.22612e-18

1
我不说话(德语?),但错误似乎是由于四色矩阵是奇异的(不可逆)。即使样本大小合适,多项相关矩阵的某些估计也可能无法成为适当的相关矩阵。我的直觉是fa()使用主成分,而factanal()正在使用最大似然FA,但是从fa()的文档中这对我来说并不明显。
JMS

@cada您有多少个物品/主题?在MixFactor中实现什么方法?
chl

1
@cada为什么要运行因子分析?如果您打算评估参与者的能力,IRT可能是一种更好的方法。关于fa与事实的关系,fa默认使用最小残差,而事实使用ML方法。
richiemorrisroe 2011年

@chl:太少了!我刚刚开始调查,现在只有45个主题。我无法立即收集新数据,这就是为什么我尝试尽可能多地执行r代码的原因……
cada

1
@cada一个拥有45个主题的CFA是超现实主义的:-)我稍后会尝试补充我的想法。
chl

Answers:


12

综上所述,在n = 45个主题下,您将获得基于相关性和多元描述性的方法。但是,由于该问卷应该是一维的,因此这始终是一个好的开始。

我会怎么做:

  • 计算您的22个项目的成对相关性;报告范围和中位数-这将表明观察到的项目响应的相对一致性(通常认为高于0.3的相关性表示收敛性良好,但是当然,此估计的精度取决于样本量) ; 研究问卷内部一致性的另一种方法是计算Cronbach的alpha值,尽管在n = 45时,相关的置信区间(为此使用自举)将相对较大。
  • 计算项目之间的点和二元相关性和总和得分;它将使您了解每个项目的判别力(例如FA中的载荷),其中值大于0.3表示每个项目与其相应的比例之间具有令人满意的关系。
  • 使用PCA来汇总相关矩阵(如果得出两分的项目,则它多重对应分析中获得的结果具有同等的解释)。如果仪器的行为就像样品的一维尺度,则应观察到变化的主导轴(如第一个特征值所反映)。

如果您想使用R,您会在ltmpsych软件包中找到有用的功能。浏览CRAN Psychometrics Task View,以获取更多软件包。如果您获得100个科目,则可以尝试使用自举置信区间进行一些CFA或SEM分析。(请记住,考虑到任何项目与其因素之间存在显着的相关性,加载量应该非常大,因为它应该至少是可靠相关系数的标准误差两倍。)2(1r2)/(n)


非常感谢你!您的答案如此详尽,确实很有帮助!谢谢!
cada

3

对于该线程,使用factanal可以解决“ System istfürden Rechnersingulär:reziproke Konditionszahl”错误(在英语中:“系统在计算上是单数:倒数条件编号”),因此在Google中的位置很好-因此,我将添加一条注释:

在先验计算相关矩阵时(例如,成对删除缺失值),请确保factanal()不认为该矩阵是要分析的数据(https://stat.ethz.ch/pipermail/r- help / 2007-October / 142567.html)。

PREVIOUS: matrix = cor(data, use="pairwise.complete.obs")  # For example
WRONG: factanal(matrix, 3, rotation="varimax")
RIGHT: factanal(covmat=matrix, factors=3, rotation="varimax")

伯恩·里奥

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.