代码之家  ›  专栏  ›  技术社区  ›  Minh Chau

如何在Python中为Levene测试编写循环函数

  •  0
  • Minh Chau  · 技术社区  · 2 年前

    我想进行Levene和单因素方差分析测试,结果是连续的,并对n组进行预测。例如

    import pandas as pd
    import scipy.stats as sps               
    
    # create the df
    test_df = pd.DataFrame({
        'score': [5,15,1,51,1,51,5,15,16,3,1,81,6,1,2],
        'groups': ['a','b','c','a','b','c','a','b','c','a','b','c','a','b','c']})
    
    factor = test_df['groups'].unique()            # create a list of individual factors 
    arr1 = []                                      # to store the outcome by groups
    for i in range(len(factor)):
        variable = test_df[test_df['groups'] == factor[i]]['score']
                                                   # Make individual values by group
        arr1.append(variable)                      # append these to arr1  
        levene = sps.levene(arr1)         # the problem is here. The code does not recognize my arr1 has multiple arrays in it.
    

    理想情况下,我希望能够做这样的事情 sps.levene(arr1[0],...,arr1[n]) ,循环将执行以下操作:

    1. 将每个数组附加到 arr1 进入列表
    2. 执行一个 sps.levene 使用列表进行测试。

    有人能帮我解决这个问题吗?

    1 回复  |  直到 2 年前
        1
  •  1
  •   TheHungryCub    2 年前

    你需要打开的元素 arr1 传递给时 levene . 您可以使用 * 操作人员

    import pandas as pd
    import scipy.stats as sps               
    
    # create the df
    test_df = pd.DataFrame({
        'score': [5,15,1,51,1,51,5,15,16,3,1,81,6,1,2],
        'groups': ['a','b','c','a','b','c','a','b','c','a','b','c','a','b','c']})
    
    factor = test_df['groups'].unique()            # create a list of individual factors 
    arr1 = []                                      # to store the outcome by groups
    for i in range(len(factor)):
        variable = test_df[test_df['groups'] == factor[i]]['score']
        arr1.append(variable)                      # append these to arr1  
    
    # Perform Levene's test
    levene_result = sps.levene(*arr1)
    print("Levene's test p-value:", levene_result.pvalue)
    

    输出

    Levene's test p-value: 0.253368701021017