兩組成對資料Wilcoxon signed-rank檢定 (Wilcoxon signed-rank test for paired samples,non-parametric)


套路 13: 兩組成對資料Wilcoxon signed-rank檢定
(Wilcoxon signed-rank test for paired samplesnon-parametric)

什麼是兩組成對資料假設檢定? 說白了就是兩組成對的資料做比較的假設檢定。統計假設檢定檢定什麼?H0。例如兩組成對資料假設檢定H0 : median1 = median2HA : median1median2是檢定兩組資料的中位數是否相同。又例如兩組獨立樣本假設檢定H0 : median1 < median2HA : median1 ³ median2是檢定第一組資料的中位數是否小於第二組資料的中位數。假設相等時為雙尾 (two-tailed test) 檢定。假設不相等時為單尾 (one-tailed test) 檢定。如下圖所示:
1. 使用時機: 用於比較兩組成對資料的中位數(median)
2. 分析類型: 無母數分析(non-parametric analysis)直接使用資料數值算統計叫parametric方法把資料排序之後用排序的名次算統計叫non-parametric方法。
3. 前提假設: 不受限資料分布。
4. 資料範例: 咪路測量幫愛斯基摩人拉車的狗狗前腿與後腿長度,資料如下:
狗狗
後腿(cm)
前腿(cm)
1
14.2
13.8
2
14.0
13.6
3
14.4
14.7
4
14.4
13.9
5
14.2
14.3
6
14.6
14.1
7
14.9
14.3
8
15.0
14.5
9
14.2
13.6
10
14.8
14.6
H0拉車的狗狗前腿與後腿長度沒差。HA拉車的狗狗前腿與後腿長度有差。

5. 畫圖看資料分布:
wt = [14.2,14.0,14.4,14.4,14.2,14.6,14.9,15.0,14.2,14.8,13.8,13.6,14.7,13.9,14.3,14.1,14.3,14.5,13.6,14.6]
cl = ["H","H","H","H","H","H","H","H","H","H","F","F","F","F","F","F","F","F","F","F"]
dat = {'Length':wt,'Leg':cl}
import pandas as pd
df = pd.DataFrame(dat)
import seaborn as sns
sns.set(style="whitegrid")
ax = sns.boxplot(x = "Leg", y = "Length", data = df, width=0.2, palette="Set3")
ax = sns.swarmplot(x = "Leg", y = "Length", data = df, color = "red")

結果:

6. 使用無母數分析不需檢查資料是否為常態分布 (H0:資料為常態分佈)

7. 使用無母數分析不需檢查資料是否為相同變異數 (H0: s12 = s22):

8. 使用Python計算兩組獨立樣本Mann-Whitney U檢定:
方法: Python 函數
dat1 = [14.2,14.0,14.4,14.4,14.2,14.6,14.9,15.0,14.2,14.8]
dat2 = [13.8,13.6,14.7,13.9,14.3,14.1,14.3,14.5,13.6,14.6]
import scipy.stats
scipy.stats.wilcoxon(dat1, dat2)
結果: WilcoxonResult(statistic=4.0, pvalue=0.0162542088976566)
p = 0.016 < 0.05,不接受H0拉車的狗狗前腿與後腿長度沒差前腿與後腿長度中數不相同。


留言

這個網誌中的熱門文章

三因子變異數分析 (Three-Way ANOVA)

比較多組不同變異數獨立樣本平均值檢定 (Welch's Test for Analysis of Variance,parametric)

雙因子變異數分析 (Two-Way ANOVA)