Python 和 Stata 中的因子分析
Factor Analysis in Python and Stata
我有一个包含 29 个项目的数据集运行 探索性因素分析。我在 Python 和 Stata 中使用相同的因素实现了这个数据集,但我有两个不同的结果。实际上它们是不同的,因为我确定了特征值:在 Python 中它是 4 但在 Stata 中只有 2.
为什么会有这样的差异,我应该取哪个结果?
这是我的代码
Python
df = df[df.g1 == 3]
fa = FactorAnalyzer()
fa.set_params(n_factors=6) # so factor
fa.fit(df)
fa.loadings_
fa_loading_df = pd.DataFrame(fa.loadings_, columns=['Factor 1', 'Factor 2', 'Factor 3', 'Factor 4', 'Factor 5', 'Factor 6'])
斯塔塔
factor k2x1-k2x29 if g1==3, factor(6)
rotate, varimax norm blanks(.40)
您需要了解每个命令执行什么类型的探索性因素分析 (EFA),以及您希望它执行什么类型。
EFA有多种类型,如主因子、主成分因子、ML等
我猜 Python 和 Stata 有不同的默认方法,因此你会得到不同的结果。在您的命令中,您没有指定要使用的方法,因此使用默认方法。
在 Stata 中,默认值是主因数,而在 Python 中,我猜默认值是 minres,根据这个网站:https://factor-analyzer.readthedocs.io/en/latest/factor_analyzer.html
我有一个包含 29 个项目的数据集运行 探索性因素分析。我在 Python 和 Stata 中使用相同的因素实现了这个数据集,但我有两个不同的结果。实际上它们是不同的,因为我确定了特征值:在 Python 中它是 4 但在 Stata 中只有 2.
为什么会有这样的差异,我应该取哪个结果? 这是我的代码 Python
df = df[df.g1 == 3]
fa = FactorAnalyzer()
fa.set_params(n_factors=6) # so factor
fa.fit(df)
fa.loadings_
fa_loading_df = pd.DataFrame(fa.loadings_, columns=['Factor 1', 'Factor 2', 'Factor 3', 'Factor 4', 'Factor 5', 'Factor 6'])
斯塔塔
factor k2x1-k2x29 if g1==3, factor(6)
rotate, varimax norm blanks(.40)
您需要了解每个命令执行什么类型的探索性因素分析 (EFA),以及您希望它执行什么类型。 EFA有多种类型,如主因子、主成分因子、ML等
我猜 Python 和 Stata 有不同的默认方法,因此你会得到不同的结果。在您的命令中,您没有指定要使用的方法,因此使用默认方法。
在 Stata 中,默认值是主因数,而在 Python 中,我猜默认值是 minres,根据这个网站:https://factor-analyzer.readthedocs.io/en/latest/factor_analyzer.html