3

是否有在 python 中执行验证性因子分析的包?我发现了一些可以在 python 中执行探索性因子分析(scikitlearn、factor_analyzer 等),但我还没有找到一个可以执行 CFA 的包。

4

2 回答 2

3

Spyder(Anaconda Navigator)中的python 3.7.3

factor_analyzer 也做 CFA:

导入必要的库

import pandas as pd
from factor_analyzer import FactorAnalyzer

导入样本数据

df= pd.read_csv("test.csv")

验证性因素分析

from factor_analyzer import (ConfirmatoryFactorAnalyzer, ModelSpecificationParser)    

model_dict = {"F1": ["V1", "V2", "V3", "V4"], "F2": ["V5", "V6", "V7", "V8"]}

model_spec = ModelSpecificationParser.parse_model_specification_from_dict(df, model_dict)

cfa = ConfirmatoryFactorAnalyzer(model_spec, disp=False) 

cfa.fit(df.values) 

cfa.loadings_ 
  • V1 到 V8 是指数据框中您希望分配给每个因子(F1 和 F2)的列的名称。您需要根据您的数据集和您正在测试的假设,用适当的列名替换 V1 到 V8。
于 2019-06-04T00:58:42.027 回答
0

您可以尝试包 psy ( https://pypi.org/project/psy/ )。我找不到它的文档,但我可以阅读用中文写的评论。

例子:

    import psy

    # items is a pandas data frame containing item data 

    # Specify how the items are mapped to the factors
    # In this case, all mapped to one factor
    item_factor_mapping = np.array([[1]] * items.shape[1])

    print(psy.cfa(items, item_factor_mapping))
于 2019-03-06T18:08:23.813 回答