【问题标题】:Pair-wise testing statistical significance on pandas data frame对熊猫数据框进行成对测试统计显着性
【发布时间】:2017-07-27 08:59:44
【问题描述】:

我有一个 pandas 数据框 (100x10),其中每列代表一些数量,我想使用 t 检验对所有列进行成对测试。而不是遍历列:

stats.ttest_rel(df.iloc[:,i], df.iloc[:,j])

在哪里i!=j,有更清洁的方法吗?类似于相关性的东西:

df.corr()

它计算所有成对相关性。

【问题讨论】:

    标签: python pandas t-test


    【解决方案1】:

    无需自己进行双 for 循环。你可以使用itertools.combinations

    results = pd.DataFrame(columns=df.columns, index=df.columns)
    for (label1, column1), (label2, column2) in itertools.combinations(df.items(), 2):
        results.loc[label1, label2] = results.loc[label2, label1] = stats.ttest_rel(column1, column2)
    

    【讨论】:

      【解决方案2】:

      我认为没有直接的方法来创建pair-wise t-test,你可以试试这个

      from scipy.stats import ttest_ind
      import pandas as pd
      import csv
      df=pd.read_csv('input.csv')
      
      
      fo = open('result.csv','wb+')
      outfile = csv.writer(fo, delimiter=',')
      outfile.writerow((df.columns).insert(0,''))
      
      for i in df.columns:
          t=[]
          for j in df.columns:
      
              t.append(ttest_ind(df[i], df[j]))
          (t).insert(0,i)
          outfile.writerow(t)
      

      此脚本将为您提供作为 result.csv 的输出文件,告诉您成对的 t 检验计算

      【讨论】:

        猜你喜欢
        • 2019-06-21
        • 1970-01-01
        • 2014-10-23
        • 1970-01-01
        • 2019-04-12
        • 2018-12-18
        • 1970-01-01
        • 2021-01-05
        • 2021-10-08
        相关资源
        最近更新 更多