使用R語言進(jìn)行卡方檢驗(yàn)(chi-square test)

文|程瑞林(山東大學(xué)第二醫(yī)院足踝外科)
來源|(微信公眾號)云中瑞麟(ID:ruilinfly)


瑞麟導(dǎo)讀:
對于計(jì)量資料,臨床醫(yī)學(xué)研究中常用的統(tǒng)計(jì)分析方法是t檢驗(yàn);而對于計(jì)數(shù)資料,卡方檢驗(yàn)是一個(gè)常用的統(tǒng)計(jì)分析方法。

最近看到一篇文章,里面分析了骨巨細(xì)胞瘤患者術(shù)后復(fù)發(fā)的比例,其中計(jì)數(shù)資料使用卡方檢驗(yàn)(又稱χ2檢驗(yàn)),下面針對卡方檢驗(yàn)的使用方法及其R語言實(shí)現(xiàn)方法進(jìn)行簡單介紹。


概念

卡方檢驗(yàn)是一種用途很廣的計(jì)數(shù)資料的假設(shè)檢驗(yàn)方法,由卡爾·皮爾遜提出。它屬于非參數(shù)檢驗(yàn)的范疇,主要是比較兩個(gè)及兩個(gè)以上樣本率( 構(gòu)成比)以及兩個(gè)分類變量的關(guān)聯(lián)性分析。其根本思想就是在于比較理論頻數(shù)和實(shí)際頻數(shù)的吻合程度或擬合優(yōu)度問題。

它在分類資料統(tǒng)計(jì)推斷中的應(yīng)用,包括:兩個(gè)率或兩個(gè)構(gòu)成比比較的卡方檢驗(yàn);多個(gè)率或多個(gè)構(gòu)成比比較的卡方檢驗(yàn)以及分類資料的相關(guān)分析等。

可以分為成組比較(不配對資料)和個(gè)別比較(配對,或同一對象兩種處理的比較)兩類。

通??ǚ綑z驗(yàn)的應(yīng)用主要為:
1、 卡方擬合優(yōu)度檢驗(yàn)
2、卡方獨(dú)立性檢驗(yàn)

例一

我們想知道喝牛奶對感冒發(fā)病率有沒有影響,以下為數(shù)據(jù)統(tǒng)計(jì)的四格表:


表1 喝牛奶與感冒的相關(guān)性

通過簡單的統(tǒng)計(jì)我們得出喝牛奶組和不喝牛奶組的感冒率為30.94%和25.00%,兩者的差別可能是抽樣誤差導(dǎo)致,也有可能是牛奶對感冒率真的有影響。

為了確定真實(shí)原因,我們先假設(shè)喝牛奶對感冒發(fā)病率是沒有影響的,即喝牛奶喝感冒時(shí)獨(dú)立無關(guān)的,所以我們可以得出感冒的發(fā)病率實(shí)際是(43+28)/(43+28+96+84)= 28.29%

所以,理論的四格表應(yīng)該如下表所示:


表2 喝牛奶與感冒的相關(guān)性

即下表:


表3 喝牛奶與感冒的相關(guān)性

如果喝牛奶喝感冒真的是獨(dú)立無關(guān)的,那么四格表里的理論值和實(shí)際值差別應(yīng)該會(huì)很小。

那如何來描述這種差別呢,我們定義卡方值為


圖1 卡方值計(jì)算公式

其中,A為實(shí)際值,T為理論值。

x2用于衡量實(shí)際值與理論值的差異程度(也就是卡方檢驗(yàn)的核心思想),包含了以下兩個(gè)信息:

  1. 實(shí)際值與理論值偏差的絕對大?。ㄓ捎谄椒降拇嬖?,差異是被放大的)
  2. 差異程度與理論值的相對大小

根據(jù)卡方檢驗(yàn)公式我們可以得出例1的卡方值為:

卡方 = (43 - 39.3231)平方 / 39.3231 + (28 - 31.6848)平方 / 31.6848 + (96 - 99.6769)平方 / 99.6769 + (84 - 80.3152)平方 / 80.3152 = 1.077

卡方值(理論值與實(shí)際值差異大小)的意義是什么呢?為此我們再引入一個(gè)概念:

卡方分布的臨界值

上一步我們得到了卡方的值,但是如何通過卡方的值來判斷喝牛奶和感冒是否真的是獨(dú)立無關(guān)的?也就是說,怎么知道無關(guān)性假設(shè)是否可靠?

答案是,通過查詢卡方分布的臨界值表。


表4 卡方分布的臨界值表

第一行表示顯著性水平α
第一列表示自由度

這里需要用到一個(gè)自由度的概念,自由度等于V = (行數(shù) - 1) * (列數(shù) - 1),對四格表,自由度V = 1。

對V = 1,喝牛奶和感冒(95%概率)不相關(guān)的卡方分布的臨界值(最大)是:3.84。即如果卡方大于3.84,則認(rèn)為喝牛奶和感冒(有95%的概率)相關(guān)。

【瑞麟描述】臨界值3.84的意義表示:如果卡方值>3.84,則縱列因素與橫行因素不相關(guān)的的概念<0.05(即顯著性水平),也即縱列因素與橫行因素相關(guān)的概念>0.95。

顯然1.077<3.84,沒有達(dá)到卡方分布的臨界值,所以喝牛奶和感冒獨(dú)立不相關(guān)的假設(shè)沒有被推翻。

【瑞麟】簡單說,如果我們計(jì)算出的卡方值(表示實(shí)際值與理論值的差異,越大表示實(shí)際值與理論值越不符,即越有可能縱列因素會(huì)影響橫行數(shù)值)大于臨界值(列因素不影響橫行值的范圍:0~臨界值),我們就排斥原假設(shè)(H0,即縱列因素不影響橫行的因素的變化),接受備擇假設(shè)(H1:縱列因素對橫行的因素變化有影響);反之,卡方值小于臨界值,即在(縱列與橫行互不影響這一假設(shè))理論范圍內(nèi),無法推翻原假設(shè),即無統(tǒng)計(jì)差異。

第二個(gè)例子:四格卡方檢驗(yàn)的標(biāo)準(zhǔn)做法

我們想知道不吃晚飯對體重下降有沒有影響,并獲得以下數(shù)據(jù):


表5:吃晚飯與體重的關(guān)系
  1. 建立假設(shè)檢驗(yàn):

H0:r1=r2,不吃晚飯對體重下降沒有影響,即吃不吃晚飯的體重下降率相等;
H1:r1≠r2,不吃晚飯對體重下降有顯著影響,即吃不吃晚飯的體重下降率不相等。α=0.05

【瑞麟:H0為縱列因素對橫行因素?zé)o影響;H1為有影響】

  1. 計(jì)算理論值


    表6:吃晚飯與體重的關(guān)系-理論值計(jì)算,方法參考表2

3.計(jì)算卡方值
根據(jù)圖1所示公式,計(jì)算出卡方值為5.498

  1. 查卡方表求P值

在查表之前應(yīng)知本題自由度。按卡方檢驗(yàn)的自由度v=(行數(shù)-1)×(列數(shù)-1),則該題的自由度v=(2-1)(2-1)=1,查卡方界值表,找到3.84,而本題卡方=5.498即卡方>3.84,P<0.05,差異有顯著統(tǒng)計(jì)學(xué)意義,按顯著性水平α=0.05水準(zhǔn),拒絕H0,可以認(rèn)為兩組的體重下降率有明顯差別。

通過實(shí)例計(jì)算,對卡方的基本公式有如下理解:若各理論數(shù)與相應(yīng)實(shí)際數(shù)相差越小,卡方值越??;如兩者相同,則卡方值必為零。

卡方檢驗(yàn)的修正

x2值表是數(shù)理統(tǒng)計(jì)根據(jù)正態(tài)分布的定義計(jì)算出來的。 是一種近似,在自由度大于1、理論數(shù)皆大于5時(shí),這種近似很好;當(dāng)自由度為1時(shí),尤其當(dāng)1<T<5,而n>40時(shí),應(yīng)用以下校正公式:


圖2 卡方值計(jì)算方法的修正

如果觀察資料的T<1或n<40時(shí),四格表資料用上述校正法也不行,可參考預(yù)防醫(yī)學(xué)專業(yè)用的醫(yī)學(xué)統(tǒng)計(jì)學(xué)教材中的精確檢驗(yàn)法【瑞麟:Fisher檢驗(yàn)?】直接計(jì)算概率以作判斷。

1.一般認(rèn)為行×列表中不宜有1/5以上格子的理論數(shù)小于5,或有小于1的理論數(shù)。當(dāng)理論數(shù)太小可采取下列方法處理:①增加樣本含量以增大理論數(shù);②刪去上述理論數(shù)太小的行和列;③將太小理論數(shù)所在行或列與性質(zhì)相近的鄰行鄰列中的實(shí)際數(shù)合并,使重新計(jì)算的理論數(shù)增大。由于后兩法可能會(huì)損失信息,損害樣本的隨機(jī)性,不同的合并方式有可能影響推斷結(jié)論,故不宜作常規(guī)方法。另外,不能把不同性質(zhì)的實(shí)際數(shù)合并,如研究血型時(shí),不能把不同的血型資料合并。

2.如檢驗(yàn)結(jié)果拒絕檢驗(yàn)假設(shè),只能認(rèn)為各總體率或總體構(gòu)成比之間總的來說有差別,但不能說明它們彼此之間都有差別,或某兩者間有差別。

1.n ≥40,T ≥ 5. 用Pearsonc2統(tǒng)計(jì)量(非連續(xù)性校正)
2.當(dāng)n≥40時(shí),如果某個(gè)格子出現(xiàn)1≤T ≤5,則需作連續(xù)性校正【瑞麟:即R語言中chisq.test函數(shù)的參數(shù)correct=TRUE】。
3.n<40,或任何格子出現(xiàn)T<1,或檢驗(yàn)所得的P值接近于檢驗(yàn)水準(zhǔn)a,采用Fisher確切概率檢驗(yàn)。
——引自文獻(xiàn)【6】

卡方檢驗(yàn)試用條件【文獻(xiàn)8】
1.隨機(jī)樣本數(shù)據(jù);
2.卡方檢驗(yàn)的理論頻數(shù)不能太小.
兩個(gè)獨(dú)立樣本比較可以分以下3種情況:
1.所有的理論數(shù)T≥5并且總樣本量n≥40,用Pearson卡方進(jìn)行檢驗(yàn).
2.如果理論數(shù)T<5但T≥1,并且n≥40,用連續(xù)性校正的卡方進(jìn)行檢驗(yàn).
3.如果有理論數(shù)T<1或n<40,則用Fisher’s檢驗(yàn).
上述是適用于四格表.
R×C表卡方檢驗(yàn)應(yīng)用條件:
1.R×C表中理論數(shù)小于5的格子不能超過1/5;
2.不能有小于1的理論數(shù).
若不符合R×C表的卡方檢驗(yàn).可以通過增加樣本數(shù)、列合并來實(shí)現(xiàn).

如何使用R語言進(jìn)行卡方檢驗(yàn)

R語言自帶卡方檢測的方法,只要調(diào)用方法chisq.test(),會(huì)自行輸出X-squared卡方值, df自由度, p-value概率。


表7 啤酒品牌與愛好者數(shù)量的差異

判斷5種品牌啤酒的愛好者有無顯著差異:

圖3 在R語言中進(jìn)行統(tǒng)計(jì)分析

P值越大,支持原假設(shè)的證據(jù)就越強(qiáng),給定顯著性水平α(取0.05), 當(dāng)P值小于α?xí)r,就拒絕原假設(shè)。

圖4 R語言中chisq函數(shù)的使用格式

R語言做卡方試驗(yàn)的修正[文獻(xiàn)5]

表8 不同藥物治療有效性比較

H0:兩種藥物療效相同
H1:有效率不等


圖5 R語言中使用卡方檢驗(yàn)

為何會(huì)提示算法可能不準(zhǔn)確呢?計(jì)算理論值:


圖6 R語言計(jì)算理論值:有小于5的數(shù)值出現(xiàn)

因此,此處的統(tǒng)計(jì)檢驗(yàn)應(yīng)使用修正的卡方檢驗(yàn)或Fisher精確檢驗(yàn)。
圖7 R語言中使用Fisher檢驗(yàn)對上述數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析

文獻(xiàn)1中的數(shù)據(jù)列表為


表9 骨巨細(xì)胞瘤患者術(shù)后復(fù)發(fā)的比較

文章提及計(jì)數(shù)資料使用χ2檢驗(yàn),而數(shù)據(jù)列表中多處數(shù)據(jù)小于5,顯然應(yīng)該視理論值大小選擇連續(xù)性修正的卡方檢驗(yàn)或Fisher檢驗(yàn)更合適一些。


參考文獻(xiàn):
1.同志超,等。四肢骨巨細(xì)胞瘤的外科治療分析。中華解剖與臨床雜志,2018,23(3)
2.snowdroptulip,統(tǒng)計(jì)學(xué)——卡方檢驗(yàn)和卡方分布, CDSN博客,2017
3.lijinxiu123,卡方檢驗(yàn)及R語言實(shí)現(xiàn),CDSN博客,2017-3-27
4.Knowlege_上下求索,卡方檢驗(yàn)x2檢驗(yàn)(chi-square test),CSDN博客,2016-7-7
5.x2yline,統(tǒng)計(jì)學(xué)第七章 卡方檢驗(yàn)【R語言實(shí)現(xiàn)】,簡書,2017.10.11
6.嘉兒jy《卡方檢驗(yàn)中非連續(xù)性校正與連續(xù)性校正的區(qū)別!》百度知道,2016-1-19
7.薛毅、陳立萍 編著《統(tǒng)計(jì)建模與R軟件》,清華大學(xué)出版社,2006
8.qazonly123《求助,下面幾種狀況SPSS交叉表分別該使用哪一種卡方分析,是Pearson卡方,還是Fisher‘s,還是連續(xù)性校正》,百度知道,2016-5-11


201808282046更新

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容