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

机器算法验证 r 因子分析 心理测量学 二进制数据
2022-02-28 11:39:23

我必须对由二分变量(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)
2个回答

总而言之,对于 n=45 个主题,您将获得基于相关性和多元描述性的方法。然而,由于这个问卷应该是一维的,所以这总是一个好的开始。

我会做什么:

  • 计算 22 个项目的成对相关性;报告范围和中位数——这将表明观察到的项目响应的相对一致性(相关性高于 0.3 通常被认为表明良好的收敛有效性,但当然这个估计的精度取决于样本量) ; 研究问卷内部一致性的另一种方法是计算Cronbach's alpha,尽管 n=45 的相关置信区间(为此使用 bootstrap)将相对较大。
  • 计算项目和总的量表分数之间的点-双序列相关性;它将让您了解每个项目的区分能力(如 FA 中的载荷),其中高于 0.3 的值表示每个项目与其对应的比例之间的关系令人满意。
  • 使用 PCA 来总结相关矩阵(在二分项目的情况下,它产生与从多重对应分析中获得的结果的等效解释)。如果您的仪器作为样品的一维刻度,您应该观察到变化的主轴(由第一个特征值反映)。

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

该线程对使用 factanal 的“System ist für den Rechner singulär: reziproke Konditionszahl”错误有很好的 Google 位置(英文:“系统是计算奇异的:互惠条件数”) - 因此我将添加评论:

当先验计算相关矩阵时(例如,成对删除缺失值),确保 factanal() 不认为矩阵是要分析的数据(https://stat.ethz.ch/pipermail/r-帮助/2007-10 月/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")

BurninLeo