我正在尝试在 R 中复制一些 Stata 结果,但遇到了很多麻烦。具体来说,我想恢复与 Stata 在探索性因子分析中相同的特征值。举一个具体的例子,factor
Stata 中的帮助使用bg2
数据(关于医生费用)并为您提供以下结果:
webuse bg2
factor bg2cost1-bg2cost6
(obs=568)
Factor analysis/correlation Number of obs = 568
Method: principal factors Retained factors = 3
Rotation: (unrotated) Number of params = 15
--------------------------------------------------------------------------
Factor | Eigenvalue Difference Proportion Cumulative
-------------+------------------------------------------------------------
Factor1 | 0.85389 0.31282 1.0310 1.0310
Factor2 | 0.54107 0.51786 0.6533 1.6844
Factor3 | 0.02321 0.17288 0.0280 1.7124
Factor4 | -0.14967 0.03951 -0.1807 1.5317
Factor5 | -0.18918 0.06197 -0.2284 1.3033
Factor6 | -0.25115 . -0.3033 1.0000
--------------------------------------------------------------------------
LR test: independent vs. saturated: chi2(15) = 269.07 Prob>chi2 = 0.0000
我对表格第一列的特征值感兴趣。当我在 R 中使用相同的数据时,我得到以下结果:
bg2 = read.dta("bg2.dta")
eigen(cor(bg2)
$values
[1] 1.7110112 1.4036760 1.0600963 0.8609456 0.7164879 0.6642889 0.5834942
如您所见,这些值与 Stata 的结果有很大不同。这两个程序很可能使用不同的方法来计算特征值,但我尝试了多种不同的方法来提取特征值,包括 R 命令中的大多数(如果不是全部)fa
选项其他一些 R 命令。我根本无法提取与 Stata 相同的特征值。我还通读了 Stata 的手册,试图弄清楚 Stata 使用的确切方法,但无法以足够的特异性弄清楚。factanal
principal
我很想得到任何帮助!如果您需要任何其他信息来回答问题,请告诉我。