本部分筆記是整理近期我在科研工作中接觸到的一些統計檢驗方法,為了避免篇幅太長,內容分為幾篇,每篇討論一種檢驗方法。
不得不感嘆統計學真是博大精深?。ㄎ疫@種學渣渣平時以為大概懂了),真正需要使用它們的時候,認真思考起來,才發現有許多的疑惑。部分疑惑我已經通過查閱文獻或網絡教程得到理解,也有部分仍然疑惑,等到后續理解了再做更新。
本系列主要內容:
- Student t-test
- Wilcox rank-sum test / Mann-Whitney U test
- Fisher's exact test & Chi-square independent test
- Kolmogorov–Smirnov test
- ANOVA test
第一部分Student t-test:
<p>Student's t-test 是由William Sealy Gosset 于1908年發表的統計檢驗方法。常用于檢驗樣本的均值,比如單樣本時,檢驗樣本均值是否等于某一數值;雙樣本時,檢驗兩個樣本的均值是否相等。Student's t-test是我們通常所說的t-test (后續不作特別聲明,t-test都是指Student‘s t-test),它不僅假設樣本來自正太總體同時需要樣本方差相等,后來也有一些變種t-test,比如Welch's t-test. 對于這些后面會簡單提到但不作細講。</p>
-- 使用Student's t-test的假設前提:
Student's t-test的使用前提是,你的兩個樣本需滿足一下條件:
- 兩個樣本需來自正太總體;
- 兩個樣本的方差需相等(方差齊性)。
對于第一個條件,我們可以用一些test來檢驗其正太性,比如Shapiro-Wilk test,Kolmogorov-Smirnov test,或者用Q-Q plot;而方差齊性可通過F-test, Levene's test, Bartlett's test 等來檢驗。
-- T-test的應用
- paired-sample
檢驗配對的樣本之間的均值差異。比如對于同一組樣本的兩次測量結果之間的比較;又比如臨床試驗中兩組年齡和性別上matched 樣本。 - independent sample
表示隨機的兩個樣本之間的均值檢驗。比如檢驗兩個班的月考數學成績。
-- R語言實現t-test檢驗
函數:t.test(x, y = NULL, alternative = c("two.sided", "less", "greater"),
mu = 0, paired = FALSE, var.equal = FALSE, conf.level = 0.95, ...)
部分參數說明:
x, y: 我們這里主要講two-sample 檢驗,所以x和y兩個向量都需要提供,表示兩個不同的樣本。
alternative: 選擇時單側檢驗還是雙側檢驗;
mu: 單樣本檢驗的時候用的參數;
paired: 是否為配對樣本檢驗;
var.equal: 這個參數選擇是否樣本方差一樣,默認時方差不一樣,這時候底層實現的是welch's t-test;如果方差一樣,選擇TRUE,則底層實現的是student's t-test。
-- 使用Student's t-test需要注意的地方 (t-test的缺點):
我們再仔細看看上面t-test的兩個使用假設,是不是發現還有個問題,(沒錯)就是兩個樣本的大小需不需要考慮呢。對于paired-sample,自然是沒有這個問題了,所以我們主要討論independent樣本的檢驗。<a >有一篇研究[2]</a>曾經報道,對于equal-size 的兩個樣本的t-test ,不管是方差齊或不齊,都能得到非常robust的結果;而unequal-size的兩個樣本就不能確定了。而當兩個樣本并非來自正太總體時,不管是sample-size相等或是不等,結果也都不太好。 這表明,t-test對于正態性是比較敏感的;另一方面,當樣本一樣大小時,t-test對于方差并不敏感;反之,當樣本大小不等時,我們使用t-test就不夠安全了。
ok,看了這么多,總結起來就一句話,t-test不完美,使用須謹慎。
(若有不對的地方,請留言指正。其他方法后續會更新)
參考:
- https://en.wikipedia.org/wiki/Student%27s_t-test#cite_note-11
- Markowski, Carol A.; Markowski, Edward P. (1990). "Conditions for the Effectiveness of a Preliminary Test of Variance". The American Statistician. 44 (4): 322–326.