Wilcoxon Signed Rank Test

一、Wilcoxon Signed Rank Testpython

Wilcoxon有符號秩檢驗(也稱爲Wilcoxon有符號秩和檢驗)是一種非參數檢驗。當統計數據中使用「非參數」一詞時,並不意味着您對整體一無所知。這一般意味着整體數據沒有正態分佈。若是兩個數據樣原本自重複觀察,那麼它們是匹配的。利用Wilcoxon Signed-Rank檢驗,在不假設數據服從正態分佈的前提下,判斷出相應的數據整體分佈是否相同若是數據對之間的差別是非正態分佈的,則應使用Wilcoxon有符號秩檢驗。app

The Wilcoxon signed rank test (also called the Wilcoxon signed rank sum test) is a non-parametric test. When the word 「non-parametric」 is used in stats, it doesn’t quite mean that you know nothing about the population. It usually means that you know the population data does not have a normal distribution. The Wilcoxon signed rank test should be used if the differences between pairs of data are non-normally distributed.

有兩個稍微不一樣的測試版本:
Wilcoxon符號秩檢驗將樣本中值與假設中值進行比較。
Wilcoxon匹配對有符號秩檢驗計算每組匹配對之間的差別,而後按照與有符號秩檢驗相同的步驟將樣本與某個中值進行比較。less

Two slightly different versions of the test exist: The Wilcoxon signed rank test compares your sample median against a hypothetical median. The Wilcoxon matched-pairs signed rank test computes the difference between each set of matched pairs, then follows the same procedure as the signed rank test to compare the sample against some median.

這個檢驗的零假設是兩個樣本的中位數相等。它一般用於:
做爲單樣本t檢驗或配對t檢驗的非參數替代。
對於沒有數字刻度的有序(排序)分類變量。ide

The null hypothesis for this test is that the medians of two samples are equal. It is generally used: As a non-parametric alternative to the one-sample t test or paired t test. For ordered (ranked) categorical variables without a numerical scale.

二、How to Run the Test by Hand

運行測試的要求:
必須匹配數據。
因變量必須是連續的(即您必須可以區分小數點後第n位的值)。
你應該沒有並列的隊伍,以達到最高的準確性。若是等級是相等的,有一個變通方法(見下面步驟5以後)。函數

Requirements for running the test: Data must be matched. The dependent variable must be continuous (i.e. you must be able to distinguish between values at the nth decimal place). You should have no tied ranks for maximum accuracy. If ranks are tied, there is a workaround (see below, after Step 5).

三、手動計算

樣本問題:如下2組治療數據的中值是否存在差別?測試

Step 1: 從治療1中減去治療2獲得差別ui

注意:若是你只有一個樣本,計算每一個變量和0之間的差(假設中值),而不是對之間的差this

Note: If you only have one sample, calculate the differences between each variable and zero (the hypothesized median) instead of the difference between pairs.

Step 2:將差別按順序排列(下圖第二列),而後進行排序。按順序排列時忽略這個符號。spa

Step 3:建立第三列,並注意差別的符號(您在步驟2中忽略的那個)code

 

Step 4: 計算負差的秩和(第3步圖中帶負號的秩和)。你在這裏加起來,而不是實際的差別:

W = 1 + 2 + 4 = 7

Step 5:計算正差別的秩和(步驟3圖中帶正號的)。
W+ = 3 + 5.5 + 5.5 + 7 + 8 + 9 + 10 + 11 + 12 = 71

 Step 6:使用帶有Wilcoxin符號秩的正態逼近

 你能夠利用以上資料作些什麼?若是觀測值/對 n(n+1)/2大於20,可使用正態逼近。這組數據知足這個要求(12(12 + 1)/ 2 = 78。z分數公式有幾個修改/注意事項:

使用W+或W-中較小的值做爲測試統計量。
使用如下公式的意思是,μ:n(n + 1)/ 4。
使用如下公式σ:√(n(n + 1)(2 n + 1)/ 24)
若是你有tied ranks,你必須減小t3-tσ/ 48 t的行列。有兩個並列排名(5.5 + 5.5),因此減小8-2/48σ= 0.125。

 

在z表中查找這個分數,咱們獲得面積爲0.9880,等於雙尾p值爲0.012。這是一個很小的p值,這是一個強有力的跡象,代表中位數是顯著不一樣的。

四、用R計算Wilcoxin

在名爲immer的內建數據集中,記錄了1931年和1932年同一領域的大麥產量。收益率數據顯示在數據框的Y1和Y2列中。

問題(problem):在不假設數據爲正態分佈的狀況下,以0.05顯著性水平檢驗數據集immer中1931年和1932年的大麥產量是否具備相同的數據分佈。

Solution:

零假設是兩個樣本年的大麥產量是相同的。爲了驗證這個假設,咱們使用wilcox。測試函數對匹配的樣本進行比較。對於配對測試,咱們將「配對」參數設置爲TRUE。因爲p值爲0.005318,小於0.05的顯著性水平,咱們拒絕原假設。

The null hypothesis is that the barley yields of the two sample years are identical populations. To test the hypothesis, we apply the wilcox.test function to compare the matched samples. For the paired test, we set the "paired" argument as TRUE. As the p-value turns out to be 0.005318, and is less than the .05 significance level, we reject the null hypothesis. 

wilcox.test(immer$Y1, immer$Y2, paired=TRUE) ,#其中其它參數如exact, correct選擇不一樣的話,可能p值結果不一樣,根據實際狀況選擇

 五、python計算

import scipy.stats x=[57.07168,46.95301,31.86423,38.27486,77.89309,76.78879,33.29809,58.61569,18.26473,62.92256,50.46951,19.14473,22.58552,24.14309] y=[8.319966,2.569211,1.306941,8.450002,1.624244,1.887139,1.376355,2.521150,5.940253,1.458392,3.257468,1.574528,2.338976] scipy.stats.ranksums(x, y)

相關文章
相關標籤/搜索