審稿人:請給出多重檢驗后校正的p值
引言
小編的論文返修時贴浙,審稿人要求給出多重比較的標(biāo)準(zhǔn),用p值實現(xiàn)署恍。
那么什么是多重檢驗后P值校正呢崎溃?
當(dāng)同一個數(shù)據(jù)集有n次(n>=2)假設(shè)檢驗時,要做多重假設(shè)檢驗校正锭汛。
多重檢驗后P值校正是一種統(tǒng)計學(xué)方法笨奠,用于調(diào)整進行多次統(tǒng)計檢驗時得到的P值袭蝗,以降低發(fā)生錯誤(即錯誤地拒絕原假設(shè))的風(fēng)險。
你對數(shù)據(jù)越苛求般婆,數(shù)據(jù)會越多地向你供認到腥,但在威逼下得到的供詞,在科學(xué)詢查的法庭上是不容許的蔚袍。 ——Stephen M.Stigler
在進行多個統(tǒng)計檢驗時乡范,如果使用標(biāo)準(zhǔn)的顯著性水平(例如,P < 0.05)來判斷每個檢驗的結(jié)果是否顯著啤咽,那么進行大量檢驗的情況下可能會出現(xiàn)誤差晋辆。因為每個檢驗都有一定的概率出現(xiàn)錯誤,這種概率隨著進行檢驗次數(shù)的增加而增加宇整。因此瓶佳,如果進行多個檢驗而不進行任何校正,可能會導(dǎo)致錯誤的概率顯著增加鳞青。
多重檢驗后P值校正方法的目的是控制錯誤率霸饲,通常是通過降低顯著性水平來實現(xiàn)的。常用的多重檢驗后P值校正方法包括Bonferroni校正臂拓、Holm校正厚脉、Benjamini-Hochberg校正等。這些方法的基本思想是在保持整體錯誤率的前提下胶惰,對每個檢驗的顯著性水平進行調(diào)整傻工,以確保正確地控制整體錯誤率。
定義
One-Way ANOVA:兩兩比較檢驗后孵滞,務(wù)必進行Post-Hoc檢驗中捆,也稱事后分析,或稱為兩兩比較分析坊饶。但具體算法有很多種轨香,各自有哪些差別呢?
Bonferroni法
Bonferroni提出幼东,設(shè)H0為真,如果進行m次顯著性水準(zhǔn)為α的假設(shè)檢驗時科雳,犯Ⅰ類錯誤的累積概率α’不超 過mα,即有Bonferroni不等式成立 :
所以令各次比較的顯著性水準(zhǔn)為:
其中0.05為原始閾值(也可自行設(shè)定為0.01根蟹、0.005等)并規(guī)定:
時拒絕H0,基于這樣的做法糟秘,就可以把Ⅰ類錯誤的累積概率控制在0.05简逮。這種對檢驗水準(zhǔn)進行修正的方法叫做 Bonferroni調(diào)整 (Bonferroni adjustment)法,簡稱Bonferroni法尿赚。使用 t 檢驗在組均值之間執(zhí)行成對比較散庶,但通過將每次檢驗的錯誤率設(shè)置為實驗性質(zhì)的錯誤率除以檢驗總數(shù)來控制總體誤差率蕉堰。這樣,根據(jù)進行多個比較的實情對觀察的顯著性水平進行調(diào)整悲龟。
Holm法
在統(tǒng)計學(xué)中屋讶,Holm–Bonferroni 方法也稱為Holm 方法或Bonferroni–Holm 方法,用于抵消多重比較問題须教。它旨在控制系列錯誤率皿渗,并提供比Bonferroni 校正更強大的簡單測試。
當(dāng)考慮多個假設(shè)時轻腺,多重性問題就出現(xiàn)了:檢查的假設(shè)越多乐疆,獲得錯誤的概率就越高。Holm–Bonferroni 方法是控制錯誤率的眾多方法之一贬养,即通過調(diào)整每個單獨假設(shè)的拒絕標(biāo)準(zhǔn)來控制錯誤發(fā)生的概率挤土。
有m個p值,以及相應(yīng)的假設(shè)H1到Hm误算,從低到高排序仰美,我們期望錯誤率不高于某個預(yù)先指定的顯著性水平α
接下來進行判斷,是否:
如果是尉桩,則拒絕H1并繼續(xù)下一步筒占,否則退出,繼續(xù)判斷:
如果是蜘犁,則拒絕H2并繼續(xù)下一步翰苫,否則退出,以此類推这橙,對于每個P值奏窑,檢驗是否:
如果是,則拒絕Hk并繼續(xù)檢查出較大的P值屈扎,最后可以確保錯誤率在α上埃唯。
實現(xiàn)方法
以tips數(shù)據(jù)集為例,觀察有以下數(shù)據(jù)分布(Sun鹰晨,Sat墨叛,Thur和Fri)
import pandas as pd
import scipy.stats as stats
tips = pd.read_csv('./python/seaborn-data-master/tips.csv')
sns.catplot(data=tips, kind="swarm", x="day", y="total_bill", hue="smoker")
接下來觀察組“Sun”和組“Sat”是否具有明顯差異?
直觀上來看模蜡,是沒有差異的漠趁,用KW檢驗嘗試:
stats.kruskal(tips[tips['day'] == 'Sun']['total_bill'], tips[tips['day'] == 'Sat']['total_bill'])
KruskalResult(statistic=0.8460558571594718, pvalue=0.357670516500295)
結(jié)果我們得到一個p值,0.35
接下來觀察組“Sun”和組“Thur”的差異:
stats.kruskal(tips[tips['day'] == 'Sun']['total_bill'], tips[tips['day'] == 'Thur']['total_bill'])
KruskalResult(statistic=7.7647256569364105, pvalue=0.005327638803962347)
我們得到的p值比剛才的小忍疾,0.0053闯传,但能否說明Sun和Thur的差異比Sun和Sat的差異更大?
直觀上來看卤妒,看圖是可以的甥绿,但是僅根據(jù)P值字币,不可以,要經(jīng)過Bonferroni校正:
import scikit_posthocs as sp
sp.posthoc_dunn(tips, val_col='total_bill', group_col='day', p_adjust='bonferroni')
Fri | Sat | Sun | Thur | |
---|---|---|---|---|
Fri | 1.000000 | 0.600554 | 0.166506 | 1.000000 |
Sat | 0.600554 | 1.000000 | 1.000000 | 0.296409 |
Sun | 0.166506 | 1.000000 | 1.000000 | 0.033249 |
Thur | 1.000000 | 0.296409 | 0.033249 | 1.000000 |
校正結(jié)果如上表共缕,根據(jù)Bonferroni法校正后的p值洗出,能說明Sun和Thur的差異比Sun和Sat的差異更大。
Refs
- Holm, S. (1979). "A simple sequentially rejective multiple test procedure". Scandinavian Journal of Statistics. 6 (2): 65–70. JSTOR 4615733. MR 0538597.
- Dunn, O. J. (1964). MULTIPLE COMPARISONS USING RANK SUMS. Technometrics, 6(3), 241-&. https://doi.org/10.2307/1266041
本文由mdnice多平臺發(fā)布