日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

检验int值在list中是否存在_R语言统计与绘图:卡方检验

發(fā)布時(shí)間:2025/3/12 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 检验int值在list中是否存在_R语言统计与绘图:卡方检验 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

卡方檢驗(yàn)在計(jì)數(shù)資料中的應(yīng)用,包括推斷兩個(gè)總體率或構(gòu)成比之間有無差別、多個(gè)總體率或構(gòu)成比之間有無差別、多個(gè)樣本率間的多重比較、兩個(gè)分類變量之間有無關(guān)聯(lián)性、多維列聯(lián)表的分析和頻數(shù)分布擬合優(yōu)度的卡方檢驗(yàn)。

選自:周支瑞老師

下面分別介紹計(jì)數(shù)資料怎么進(jìn)行卡方檢驗(yàn)。


目? 錄

  • 1. 四格表資料的卡方檢驗(yàn)

    • 1.1 數(shù)據(jù)集數(shù)據(jù)

    • 1.2 向量或矩陣數(shù)據(jù)

    • 1.3 chisq.test()函數(shù)

  • 2. Fisher確切概率法

  • 3. 配對四格表資料的卡方檢驗(yàn)

    • 3.1 b+c < 40

    • 3.2 b+c ≥ 40

    • 3.3 mcnemar.test()函數(shù)

  • 4. Cochran-Mantel-Haenszel檢驗(yàn)

    • 4.1 mantelhaen.test()函數(shù)

    • 4.2 數(shù)據(jù)集形式的數(shù)據(jù)

    • 4.3 向量或數(shù)組數(shù)據(jù)

    • 4.4 計(jì)算各層OR值

    • 4.5 Breslow-Day檢驗(yàn)

    • 4.6 BreslowDayTest()函數(shù)

    • 4.7 WoolfTest()函數(shù)

  • 5. 計(jì)算列聯(lián)系數(shù)

  • 6. 頻數(shù)分布擬合優(yōu)度的卡方檢驗(yàn)


1. 四格表資料的卡方檢驗(yàn)

1.1 數(shù)據(jù)集數(shù)據(jù)

選用survival包的colon數(shù)據(jù)集。

library(survival)?#加載內(nèi)置數(shù)據(jù)集的包
data(colon)?#?加載數(shù)據(jù)集

mytable?chisq.test(mytable)??#?進(jìn)行連續(xù)性校正
chisq.test(mytable,?correct?=?FALSE)?#?不進(jìn)行連續(xù)性校正

無論是否進(jìn)行連續(xù)性校正,結(jié)果都顯示p值>0.05,接受原假設(shè),說明sex和status無關(guān)。

還可以輸出卡方檢驗(yàn)摘要:

chisq.test(mytable)$observed???#?實(shí)際頻數(shù)(和mytable一樣)
chisq.test(mytable)$expected???#?期望頻數(shù)
chisq.test(mytable)$residuals??#?Pearson?殘差
chisq.test(mytable)$stdres?????#?標(biāo)準(zhǔn)化殘差

1.2 向量或矩陣數(shù)據(jù)

compare706,792,184,176),?nr?=?2,
????????????????dimnames?=?list(c("male",?"female"),
????????????????????????????????c("Yes",?"No")));compare
chisq.test(compare)

注意:在使用chisq.test()函數(shù)計(jì)算時(shí),要注意單元格的期望頻數(shù)。如果所有單元格頻數(shù)都不為零,并且所有單元的期望頻數(shù)≥5,那么Pearson卡方檢驗(yàn)是合理的,否則會顯示警告信息。

如果在計(jì)算時(shí)出現(xiàn)警告信息,表明表中單元格期望頻數(shù)有<5的值,這可能會使卡方近似無效。

如果數(shù)據(jù)不滿足卡方檢驗(yàn)的條件時(shí),應(yīng)使用Fisher精確檢驗(yàn)。

1.3 chisq.test()函數(shù)

chisq.test()函數(shù)可以進(jìn)行卡方列聯(lián)表檢驗(yàn)和擬合優(yōu)度檢驗(yàn)。

chisq.test(x,?y?=?NULL,?#?x是由數(shù)據(jù)構(gòu)成的向量或矩陣,y是數(shù)據(jù)向量(當(dāng)x為矩陣時(shí),y忽略)
???????????correct?=?TRUE,?#?邏輯詞,默認(rèn)為TRUE,在計(jì)算2x2列聯(lián)表的檢驗(yàn)統(tǒng)計(jì)量時(shí)是否使用連續(xù)性校正
???????????p?=?rep(1/length(x),?length(x)),?#?p是原假設(shè)落在小區(qū)間的理論概率,默認(rèn)值表示均勻分布.?
???????????# P是和x長度相同的概率向量,P值如果輸入有負(fù)值,會返回錯(cuò)誤信息。
???????????rescale.p?=?FALSE,?#?邏輯詞,為TRUE,則p將縮放成和為1的向量;為FALSE,如果p向量和≠1,則會返回錯(cuò)誤信息
???????????simulate.p.value?=?FALSE,?#?為TRUE則不進(jìn)行連續(xù)性校正,根據(jù)蒙特卡洛檢驗(yàn)計(jì)算p值
???????????B?=?2000)?# B為整數(shù),在蒙特卡洛檢驗(yàn)中使用的重復(fù)次數(shù)。

對于2x2的列聯(lián)表,參數(shù)correct的默認(rèn)值為TRUE,即使用Yate連續(xù)修正,目的是提高P值,避免"有顯著差異"不可靠的情況發(fā)生;

2. Fisher確切概率法

在樣本較小時(shí)(單元的期望頻數(shù)<5),需要用Fisher精確檢驗(yàn)來完成獨(dú)立性檢驗(yàn)。Fisher檢驗(yàn)開始是針對2x2四格表提出的,當(dāng)卡方檢驗(yàn)的條件不滿足時(shí),可以使用精確檢驗(yàn)。

fisher.test(x,?y?=?NULL,?#?參數(shù)x為二維列聯(lián)表形式的矩陣,或者由因子構(gòu)成的對象。y為因子構(gòu)成的向量,當(dāng)x為矩陣時(shí),此值無效。
????????????workspace?=?200000,?#?正整數(shù),表示用于網(wǎng)絡(luò)算法工作空間的大小
????????????hybrid?=?FALSE,??#?邏輯詞,僅用于2x2列聯(lián)表,為FALSE時(shí)(默認(rèn)值)表示精確計(jì)算概率,取TRUE表示用混合算法計(jì)算概率。
????????????hybridPars?=?c(expect?=?5,?percent?=?80,?Emin?=?1),
????????????control?=?list(),?or?=?1,?#?為列表,指定低水平算法的組成,or為優(yōu)勢比的原假設(shè),默認(rèn)值為1,僅用于2x2列聯(lián)表。
????????????alternative?=?"two.sided",?#?備擇假設(shè),默認(rèn)值"two.sided",表示雙側(cè)檢驗(yàn)(不獨(dú)立),“l(fā)ess”表示單側(cè)小于檢驗(yàn)(負(fù)相關(guān));“greater”表示單側(cè)大于檢驗(yàn)(正相關(guān))。
????????????conf.int?=?TRUE,?#?邏輯詞,為TRUE則給出優(yōu)勢比的置信區(qū)間。
????????????conf.level?=?0.95,??#?置信水平,默認(rèn)0.95
????????????simulate.p.value?=?FALSE,?B?=?2000)?#?邏輯詞,為TRUE,表示用Monto Carlo方法計(jì)算P值,B為正整數(shù),表示Monto Carlo重復(fù)的次數(shù)。

例:研究COPD與吸煙之間的關(guān)系,調(diào)查了52名COPD患者和33名非COPD患者吸煙的人數(shù)。

compare49,28,3,5),nr?=?2,?byrow?=?TRUE,
????????????????dimnames?=?list(c("smoke",?"Notsmoke"),
????????????????????????????????c("COPD",?"normal")))
compare
chisq.test(compare)$expected??#?查看期望頻數(shù)
fisher.test(compare)?#?進(jìn)行fisher精確檢驗(yàn)

因?yàn)閜-value=0.2518>0.05,并且優(yōu)勢比的置信區(qū)間包含1,故接受原假設(shè), 認(rèn)為吸煙與COPD無關(guān)。

3. 配對四格表資料的卡方檢驗(yàn)

計(jì)數(shù)資料的配對設(shè)計(jì)常用于兩種檢驗(yàn)方法、培養(yǎng)方法、診斷方法的比較。特點(diǎn)是對樣本中各觀察單位分別用兩種方法處理,然后觀察兩種處理方法的某兩分類變量的計(jì)數(shù)結(jié)果。

假設(shè)檢驗(yàn)為McNemar卡方檢驗(yàn),檢驗(yàn)統(tǒng)計(jì)量有兩種(分b+c ≥ 40和b+c < 40的情況)。該法一般用于樣本含量不太大的資料。

  • 當(dāng)b+c < 40時(shí),使用連續(xù)性校正,即correct=TRUE。
  • 當(dāng)b+c ≥ 40時(shí),不使用連續(xù)性校正,即correct=FALSE。

3.1 b+c < 40

例:某實(shí)驗(yàn)室分別用乳膠凝集法和免疫熒光法對58名可疑系統(tǒng)性紅斑狼瘡患者血清中抗核抗體進(jìn)行測定,問這兩種方法的檢測結(jié)果有無差別?

X?11,2,12,33),?
????????????nrow?=?2,
????????????byrow?=?FALSE,
????????????dimnames?=?list(免疫熒光法?=?c("+","-"),乳膠凝集法?=?c("+","-")));X
#???????????乳膠凝集法
#?免疫熒光法???+??-
#??????????+?11?12
#??????????-??2?33

mcnemar.test(X,correct=TRUE)
#?McNemar's?Chi-squared?test?with?continuity?correction
#?data:??X
#?McNemar's?chi-squared?=?5.7857,?df?=?1,?p-value?=?0.01616
結(jié)論:p-value =?0.01616?<?0.05,可以認(rèn)為兩種方法的檢測結(jié)果不同,免疫熒光法的陽性檢測率較高

3.2 b+c ≥ 40

例:某醫(yī)院同時(shí)用A、B兩種方法測定160份痰標(biāo)本中的抗酸桿菌,問A、B兩種方法的檢出率有無顯著性差異?

X?52,20,35,53),?
????????????nrow?=?2,
????????????byrow?=?FALSE,
????????????dimnames?=?list(A方法?=?c("+","-"),B方法?=?c("+","-")));X
#???????B方法
#?A方法??+??-
#?????+?52?35
#?????-?20?53
mcnemar.test(X,correct=FALSE)?
#?McNemar's?Chi-squared?test
#?data:??X
#?McNemar's?chi-squared?=?4.0909,?df?=?1,?p-value?=?0.04311
結(jié)論:p-value =?0.04311?<?0.05,可以認(rèn)為兩種方法的檢測結(jié)果不同。

3.3 mcnemar.test()函數(shù)

使用mcnemar.test()函數(shù)進(jìn)行McNemar檢驗(yàn)。

mcnemar.test(x,?y=NULL,?#參數(shù)x為二維列聯(lián)表形式的矩陣,或者由因子構(gòu)成的對象。y為因子構(gòu)成的向量,當(dāng)x為矩陣時(shí),此值無效。
?????????????correct=TRUE)??#邏輯詞,默認(rèn)為TRUE,僅在2x2列聯(lián)表下進(jìn)行連續(xù)校正。

4. Cochran-Mantel-Haenszel檢驗(yàn)

CMH檢驗(yàn)可以理解為分層卡方檢驗(yàn),CMH檢驗(yàn)用于高維列聯(lián)表的分析,即在控制了某一個(gè)或幾個(gè)混雜因素(分層變量)之后,檢驗(yàn)二維RxC表中行變量與列變量之間是否存在統(tǒng)計(jì)學(xué)關(guān)聯(lián)。

假設(shè)檢驗(yàn):
H0:為任一層的行變量X與列變量Y均不相關(guān);??
H1:為至少有一層X與Y存在統(tǒng)計(jì)學(xué)關(guān)聯(lián)。

當(dāng)H0成立時(shí),CMH統(tǒng)計(jì)量漸近卡方分布。需要注意的是,當(dāng)各層間行變量與列變量相關(guān)的方向不一致時(shí),CMH統(tǒng)計(jì)量的檢驗(yàn)效能較低。

根據(jù)行變量X和列變量Y的類型不同,CMH卡方統(tǒng)計(jì)量包括:

1.相關(guān)統(tǒng)計(jì)量:適用于雙向有序分類變量;??
2.方差分析統(tǒng)計(jì)量:也稱行平均得分統(tǒng)計(jì)量,適用于列變量Y為有序分類變量;??
3.一般關(guān)聯(lián)統(tǒng)計(jì)量:適用雙向無序分類變量,目的是檢驗(yàn)X和Y是否存在關(guān)聯(lián)性。

4.1 mantelhaen.test()函數(shù)

mantelhaen.test()函數(shù)用來進(jìn)行CMH卡方檢驗(yàn)。其原假設(shè)是,兩個(gè)分類變量在第三個(gè)變量的每一層中都是條件獨(dú)立的。

mantelhaen.test(x,?y?=?NULL,?#?x為數(shù)組形式的三維列聯(lián)表,行與列的維度至少為2,最后一個(gè)維度為分層變量;
????????????????#?或者x為至少有2個(gè)水平的因子,y也為至少有2個(gè)水平的因子,如果x為三維數(shù)組時(shí),y忽略;
????????????????z?=?NULL,?#?至少有2個(gè)水平的因子,表示哪一層對應(yīng)x中的元素,哪一層對應(yīng)y的元素,如果x為三維數(shù)組,則z忽略;
????????????????alternative?=?c("two.sided",?"less",?"greater"),?#?備擇假設(shè),默認(rèn)為"two.sided"雙側(cè)檢驗(yàn);
????????????????correct?=?TRUE,?#?邏輯詞,計(jì)算檢驗(yàn)統(tǒng)計(jì)量時(shí)使用連續(xù)性校正;
????????????????exact?=?FALSE,?#?邏輯詞,是否計(jì)算精確檢驗(yàn);
????????????????conf.level?=?0.95)?#?置信水平,默認(rèn)0.95

注意:數(shù)組或向量不允許存在缺失值,x,y,z必須為長度相同的數(shù)字向量。

4.2 數(shù)據(jù)集形式的數(shù)據(jù)

選用survival包的colon數(shù)據(jù)集。xtabs()函數(shù)可以基于三個(gè)或多個(gè)分類變量生成多維列聯(lián)表。

mytable?mantelhaen.test(mytable)

結(jié)果中p-value = 2.921e-08,表明患者接受的治療與結(jié)局狀態(tài)在性別的每一水平下并不獨(dú)立。

4.3 向量或數(shù)組數(shù)據(jù)

為研究心肌梗死與近期使用避孕藥之間的關(guān)系,采用病例對照研究方法調(diào)查了234 名心肌梗死病人與1742名對照使用口服避孕藥的狀況??紤]到年齡是混雜因素,按照年齡分層后結(jié)果見下表。試分析排除了年齡因素的影響后,心肌梗死是否與近期使用口服避孕藥有關(guān)。

mydata?17,?121,?47,?944,
??????????????????12,?14,?158,?663),
????????????????dim?=?c(2,?2,?2),
????????????????dimnames?=?list(心肌梗死?=?c("病例",?"對照"),
????????????????????????????????????近期使用口服避孕藥?=?c("是",?"否"),?
????????????????????????????????????年齡?=?c(",?"≥?40歲")))
mydata
mantelhaen.test(mydata,?correct?=?F)?#?經(jīng)典的2x2xk水平?CMH?檢驗(yàn)

結(jié)果顯示P<0.001,按a=0.05的檢驗(yàn)水準(zhǔn)拒絕H0,接受H1,可認(rèn)為控制了年齡的影響后,心肌梗死與近期服用口服避孕藥有關(guān)。

4.4 計(jì)算各層OR值

apply(mydata,?3,?function(x)?(x[1,1]*x[2,2])/(x[1,2]*x[2,1]))
#??#?2.821874?3.596745?

4.5 Breslow-Day檢驗(yàn)

對于分層病例對照研究或隊(duì)列研究資料,通常應(yīng)用Breslow-Day檢驗(yàn)對各層的效應(yīng)值(OR或RR)進(jìn)行齊性檢驗(yàn)。

若不拒絕齊性假設(shè)(p>0.05),才可依據(jù)CMH檢驗(yàn)的結(jié)果推斷出暴露因素是否與疾病相關(guān)。如果相關(guān),可進(jìn)一步用Mantel-Haenszel法估計(jì)OR或RR值及其可信區(qū)間。

若拒絕了齊性假設(shè)(p<0.05),則提示分層變量與暴露因素間存在交互作用,此時(shí)CMH檢驗(yàn)的結(jié)果不能說明問題,可進(jìn)行多元logistic回歸分析。

4.6 BreslowDayTest()函數(shù)

BreslowDayTest(x,?#?2x2xk列聯(lián)表
???????????????OR?=?NA,?#?要檢驗(yàn)的OR值,默認(rèn)使用Mantel-Haenszel估算值。
???????????????correct?=?FALSE)?#?為TRUE,則使用Tarone調(diào)整的Breslow-Day檢驗(yàn)
library(DescTools)?#?加載包
BreslowDayTest(mydata)??#?進(jìn)行Breslow-Day檢驗(yàn)
#?Breslow-Day?test?on?Homogeneity?of?Odds?Ratios
#?data:??mydata
#?X-squared?=?0.23409,?df?=?1,?p-value?=?0.6285
BreslowDayTest(mydata,?correct?=?TRUE)??#?Tarone校正的Breslow-Day檢驗(yàn)
#?Breslow-Day?Test?on?Homogeneity?of?Odds?Ratios?(with?Tarone?correction)
#?data:??mydata
#?X-squared?=?0.23369,?df?=?1,?p-value?=?0.6288

結(jié)果為P=0.6285,可認(rèn)為兩年齡組口服避孕藥對心肌梗死的總體OR值同質(zhì):用Mantel-Haenszel法估計(jì)OR值及其95%可信區(qū)間為3.09(1.93-4.93)。

4.7 WoolfTest()函數(shù)

除了BreslowDayTest()函數(shù)外,WoolfTest()函數(shù)也可以對2x2xk列聯(lián)表的同質(zhì)性進(jìn)行檢驗(yàn)。

WoolfTest(x)??# x為2x2xk列聯(lián)表,最后一個(gè)維度為分層變量
WoolfTest(mydata)
#?Woolf?Test?on?Homogeneity?of?Odds?Ratios?(no?3-Way?assoc.)
#?data:??mydata
#?X-squared?=?0.23358,?df?=?1,?p-value?=?0.6289

結(jié)論和BreslowDayTest檢驗(yàn)一樣。

5. 計(jì)算列聯(lián)系數(shù)

若行x列表資料的兩個(gè)分類變量都為無序分類變量,進(jìn)行多個(gè)樣本率的比較、樣本構(gòu)成比的比較都可以用卡方檢驗(yàn),也就是使用chisq.test()函數(shù)來計(jì)算。

若得知兩個(gè)分類變量之間有關(guān)聯(lián)性,需進(jìn)一步分析關(guān)系的密切程度時(shí),可計(jì)算Pearson列聯(lián)系數(shù)。

列聯(lián)系數(shù)C (Contingency Coeff) 取值為0-1之間,0表示完全獨(dú)立, 1表示完全相關(guān);愈接近于1,關(guān)系愈密切。

vcd包中的assocstats()函數(shù)可以用來計(jì)算二維列聯(lián)表的phi系數(shù)、列聯(lián)系數(shù)和Cramer’s V系數(shù)。

例:測得某地 5801 人的 ABO 血型和 MN 血型結(jié)果如下,問這兩種血型之間是否有關(guān)聯(lián)。

mytable?431,?388,?495,?137,
????????????????????490,?410,?587,?179,
????????????????????902,?800,?950,?32),
??????????????????nrow?=?4,?byrow?=?FALSE,
??????????????????dimnames?=?list(ABO血型?=?c("O","A","B","AB"),
??????????????????????????????????MN血型?=?c("M","N","MN")))
mytable
chisq.test(mytable)?#?判斷兩分類變量有無關(guān)聯(lián)性

p-value < 2.2e-16,可以認(rèn)為兩種血型系統(tǒng)間有關(guān)聯(lián),可進(jìn)一步計(jì)算Pearson列聯(lián)系數(shù),以分析其密切程度。

library(vcd)
assocstats(mytable)?#?查看關(guān)聯(lián)性的強(qiáng)弱

從上面可以看出,列聯(lián)系數(shù)為0.188,雖然有關(guān)聯(lián)性,但列聯(lián)系數(shù)比較小,雖然有統(tǒng)計(jì)學(xué)意義,但關(guān)系不太密切。

6. 頻數(shù)分布擬合優(yōu)度的卡方檢驗(yàn)

頻數(shù)分布擬合優(yōu)度(goodness-of-fit)檢驗(yàn)還是使用chisq.test()函數(shù)。

chisq.test(x,?# x為向量或單行/單列矩陣,參數(shù) x 必須全部是非負(fù)整數(shù)。
???????????p,?# P是和x長度相同的概率向量,P值如果輸入有負(fù)值,會返回錯(cuò)誤信息。
??????????????# p中向量的和應(yīng)為1,p不給出則向量值全部相等。
???????????rescale.p?=?TRUE)?#?邏輯詞,為TRUE,則p將縮放成和為1的向量;為FALSE,如果和≠1,則會返回錯(cuò)誤信息。
x?10,25,15)?
chisq.test(x)??#?chisq.test(as.table(x))等效

x?82,47,20,18,22)?#?x為向量
p?45,25,25,18,15)?# p為概率
chisq.test(x,?p?=?p)??#?返回錯(cuò)誤信息,概率總和必須為1
chisq.test(x,?p?=?p,?rescale.p?=?TRUE)?#?運(yùn)行正常

相關(guān)文章

R語言統(tǒng)計(jì)與繪圖:ROC曲線上32種截?cái)嘀档挠?jì)算 2020-06-18 R語言統(tǒng)計(jì)與繪圖:ROC曲線的統(tǒng)計(jì)計(jì)算 2020-06-17 R語言統(tǒng)計(jì)與繪圖:繪制不同坐標(biāo)軸置信區(qū)間的森林圖 2020-06-05 R語言統(tǒng)計(jì)與繪圖:方差分析 2020-06-01 R語言統(tǒng)計(jì)與繪圖:pROC包繪制ROC曲線 2020-05-25

總結(jié)

以上是生活随笔為你收集整理的检验int值在list中是否存在_R语言统计与绘图:卡方检验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。