寫在前面的話:碼字不易,點個贊關注一下作者再走吧[呲牙]
================================
1. Wilcoxon檢驗Wilcoxon檢驗包含 2 種不同類型的檢測,并且極容易混淆,這 2 種分别方法是
Wilcoxon rank-sum test:秩和檢驗,也稱為Mann-Whitney U檢驗
Wilcoxon signed-rank test:符号秩檢驗
2.1秩和檢驗屬于非參數檢驗,用于檢驗兩個“獨立樣本”是否來自同一分布,不要求被檢驗的 2 組數據包含相同個數的元素,換句話說,秩和檢驗更适用于“非成對數據”之間的差異性檢測。常見的情形有:
比較pre-AML組和正常control組之間VAF的大小分布
A組有15個人,B組有10個人,比較A組和B組的身高
……
秩和檢驗用于推斷計量資料或等級資料的兩個獨立樣本所來自的兩個總體分布位置是否有差别。這是一種非參數替代配對雙樣本t檢驗,其可以被用于比較樣品的兩個獨立的組。當數據不是正态分布且經過一定的數值轉換嘗試後,仍然無法滿足正态性要求時使用,它将兩獨立樣本組的非正态樣本值進行比較。
2.2計算原理Wilcoxon秩和檢驗是基于樣本數據秩和。
先将兩樣本看成是單一樣本(混合樣本),然後由小到大排列觀察值統一編秩。
如果原假設兩個獨立樣本來自相同的總體為真:秩将大約均勻分布在兩個樣本中。小的、中等的、大的秩值應該大約均勻被分在兩個樣本中。
如果備選假設兩個獨立樣本來自不相同的總體為真:其中一個樣本将會有更多的小秩值,這樣就會得到一個較小的秩和;另一個樣本将會有更多的大秩值,因此就會得到一個較大的秩和。
2.3 計算實例假設有A組和B組患者生存時間的數據:
image.png
現在使用秩和檢驗判斷這 2 組數據是否存在顯著性差異。
解答過程:
1.建立假設:兩組數據來自同一總體,之間沒有差異。
2.将A和B組數據整合成一個序列,并按升序重新排序。分别計算2組數據的排名之和。注意,當我們計算若幹等值元素的排名時,會用這些元素排名的平均值作為它們在整個序列中的排名。例如,A組中的第1個元素與B組中第5個元素的值都等于5,且這2個5在整個序列中的排名分别是第5和第6,因此這兩個元素的排名為(5 6)/2=5.5。其餘等值元素的排名計算也與之類似。
A組排名之和:
676be1bb930ef4b372249ee0284f098a.png
B組排名之和:
ff743f58efc0787d5add3090203909a5.png
3.令和分别表示A組和B組數據的個數,即
dfb82c1a793910593d1954a3e8b2c222.png
根據計算公式可得和的值:
98e8eb0a17eae84e8cef1c0b8e75399e.png
1dc16fe565b6df68ab5f682eed9fa7a5.png
4.因為 6.5<49.5,所以根據較小的 W值查表,得到 P=0.01393<0.05
2.4.Python實現Wilcoxon Rank Sum test可以看到結果是一緻的
import scipy.stats as ss
# 兩組列表數據
x=[5,6,7,7,8,9,10]
y=[3,4,4,4,5,6,6,7]
scipy.stats.ranksums(x, y)
RanksumsResult(statistic=2.4881415181387316, pvalue=0.012841262337219548)
用來檢驗“兩獨立配對樣本”所來自的總體的分布是否存在顯著差異的非參數方法。常見的情形有:同一受試對象的兩個部分接受不同的處理(如對于一批血清樣本,将其分為兩個部分,利用不同的方法接受某種化合物的檢驗,檢驗結果的差異)
同一受試對象的自身前後對照(如檢驗癌症患者術前、術後的某種指标的差異)……
3.2 計算原理分别用第二組樣本的各個觀察值減去第一組對應樣本的觀察值。差值為正則記為正号,差值為負則記為負号。
将正号的個數與負号的個數進行比較,容易理解:如果正号個數和負号個數大緻相當,則可以認為第二組樣本大于第一組樣本變量值的個數與第二組樣本小于第一組樣本的變量值個數是大緻相當的,反之,差距越大。
3.3 計算實例研究先後出生的孿生兄弟間智力是否存在差異,對12對孿生兄弟的智力進行測試,結果見下表:
image.png
上述數據為12對孿生兄弟之間的智力得分,需要判斷每對孿生兄弟之間的智力得分差異,測量指标為智力得分,屬于配對設計的定量資料。對孿生兄弟之間的智力得分差值進行正态性檢驗,可以發現智力得分的差值不符合正态分布,因此本數據選用配對樣本的秩和檢驗。
解答過程
1.建立假設:先後出生順序對于智商沒有影響。
2.對所有數據對兩兩求差,得到差異的正負符号以及差值的絕對值,并根據絕對值的大小進行排序。注意:當差值絕對值為0時,不計算該值的排名。3.計算大于0 和小于0 的秩和,并計算得到最終的統計值W值:
大于0的秩和:
3410ce286b65c49e003eaabe89c8922e.png
小于0的秩和:
b305b50cf5b4eea8e4cec1eb9ecc62c1.png
統計值W值:
c3449f5d69d89d79c0f1ba7901da0e06.png
4.所以根據W值查表,得到 P=0.4765<0.05
3.4.Python實現Wilcoxon signed-rank test可以看到結果是一緻的!
from scipy import stats
before = [86,71,77,68,91,72,77,91,70,71,88,87]
after = [88,77,76,64,96,72,65,90,65,80,81,72]
#correction:如果為True,則是在小樣本情況下,在計算Z統計量時用0.5來連續性校正。默認值為False。
#alternative:等于 “two-sided” 或 “greater” 或 “less”。“two-sided” 為雙邊檢驗,“greater” 為備擇假設是大于的單邊檢驗,“less” 為備擇假設是小于的單邊檢驗。
stats.wilcoxon(before,after,correction=True,alternative = 'two-sided')
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!