簡體   English   中英

使用兩個不同大小的熊貓數據框進行 Wilcoxon 測試

[英]Wilcoxon test with two pandas dataframe of different sizes

我有兩個不同長度的數據幀(一個是 16,另一個是 28)。 我想使用scipy.stats.wilcoxon在這兩者之間進行 Wilcoxon 測試。 為此,我創建了一個函數:

def wilcoxon_test(df1, df2):

  list_col_1 = df1.columns
  list_col_2 = df2.columns

  for i in range(0, len(list_col_1)):
    name = list_col_1[i]
    for j in range(0, len(list_col_2)):
      name_check = list_col_2[j]
      if name_check == name:
        stat, pvalue = stats.wilcoxon(df1[name], df2[name_check])
        print("Wilcoxon test of {} and {}: stat = {}, pvalue = {}".format(name,name_check,stat,pvalue))
        if pvalue < 0.01:
          print("Pvalue between {} and {} < 0.01".format(name,name_check))

  return None

當數據具有相同大小時它運行良好,但我正在使用不同大小的數據幀,它給了我這個錯誤: ValueError: The samples x and y must have the same length.

我在這篇文章中看到在 R 上討論這個問題,你可以通過傳遞 paired: FALSE 來做到這一點。 通過這樣做,它相當於進行了 Mann-Whitney 檢驗。

有沒有辦法用 scipy.stats.wilocoxon 在 Python 上做同樣的事情,還是我應該直接使用scipy.stats.mannwhitneyu

謝謝

如果你想要一個非配對的威爾科克森測試,mannwhitneyu 似乎是正確的選擇。 在 mannwhitneyu 的 scipy 文檔中,您可以找到以下描述: mannwhitneyu is for independent samples. For related / paired samples, consider scipy.stats.wilcoxon. mannwhitneyu is for independent samples. For related / paired samples, consider scipy.stats.wilcoxon.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM