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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

選自:周支瑞老師

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


目? 錄

  • 1. 四格表資料的卡方檢驗

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

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

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

  • 2. Fisher確切概率法

  • 3. 配對四格表資料的卡方檢驗

    • 3.1 b+c < 40

    • 3.2 b+c ≥ 40

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

  • 4. Cochran-Mantel-Haenszel檢驗

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

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

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

    • 4.4 計算各層OR值

    • 4.5 Breslow-Day檢驗

    • 4.6 BreslowDayTest()函數(shù)

    • 4.7 WoolfTest()函數(shù)

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

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


1. 四格表資料的卡方檢驗

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

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

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

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

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

還可以輸出卡方檢驗摘要:

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

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ù)計算時,要注意單元格的期望頻數(shù)。如果所有單元格頻數(shù)都不為零,并且所有單元的期望頻數(shù)≥5,那么Pearson卡方檢驗是合理的,否則會顯示警告信息。

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

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

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

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

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

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

2. Fisher確切概率法

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

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

例:研究COPD與吸煙之間的關系,調(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)?#?進行fisher精確檢驗

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

3. 配對四格表資料的卡方檢驗

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

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

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

3.1 b+c < 40

例:某實驗室分別用乳膠凝集法和免疫熒光法對58名可疑系統(tǒng)性紅斑狼瘡患者血清中抗核抗體進行測定,問這兩種方法的檢測結(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,可以認為兩種方法的檢測結(jié)果不同,免疫熒光法的陽性檢測率較高

3.2 b+c ≥ 40

例:某醫(yī)院同時用A、B兩種方法測定160份痰標本中的抗酸桿菌,問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,可以認為兩種方法的檢測結(jié)果不同。

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

使用mcnemar.test()函數(shù)進行McNemar檢驗。

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

4. Cochran-Mantel-Haenszel檢驗

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

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

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

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

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

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

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

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

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

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

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

mytable?mantelhaen.test(mytable)

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

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

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

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?檢驗

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

4.4 計算各層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檢驗

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

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

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

4.6 BreslowDayTest()函數(shù)

BreslowDayTest(x,?#?2x2xk列聯(lián)表
???????????????OR?=?NA,?#?要檢驗的OR值,默認使用Mantel-Haenszel估算值。
???????????????correct?=?FALSE)?#?為TRUE,則使用Tarone調(diào)整的Breslow-Day檢驗
library(DescTools)?#?加載包
BreslowDayTest(mydata)??#?進行Breslow-Day檢驗
#?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檢驗
#?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,可認為兩年齡組口服避孕藥對心肌梗死的總體OR值同質(zhì):用Mantel-Haenszel法估計OR值及其95%可信區(qū)間為3.09(1.93-4.93)。

4.7 WoolfTest()函數(shù)

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

WoolfTest(x)??# x為2x2xk列聯(lián)表,最后一個維度為分層變量
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檢驗一樣。

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

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

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

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

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

例:測得某地 5801 人的 ABO 血型和 MN 血型結(jié)果如下,問這兩種血型之間是否有關聯(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)?#?判斷兩分類變量有無關聯(lián)性

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

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

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

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

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

chisq.test(x,?# x為向量或單行/單列矩陣,參數(shù) x 必須全部是非負整數(shù)。
???????????p,?# P是和x長度相同的概率向量,P值如果輸入有負值,會返回錯誤信息。
??????????????# p中向量的和應為1,p不給出則向量值全部相等。
???????????rescale.p?=?TRUE)?#?邏輯詞,為TRUE,則p將縮放成和為1的向量;為FALSE,如果和≠1,則會返回錯誤信息。
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)??#?返回錯誤信息,概率總和必須為1
chisq.test(x,?p?=?p,?rescale.p?=?TRUE)?#?運行正常

相關文章

R語言統(tǒng)計與繪圖:ROC曲線上32種截斷值的計算 2020-06-18 R語言統(tǒng)計與繪圖:ROC曲線的統(tǒng)計計算 2020-06-17 R語言統(tǒng)計與繪圖:繪制不同坐標軸置信區(qū)間的森林圖 2020-06-05 R語言統(tǒng)計與繪圖:方差分析 2020-06-01 R語言統(tǒng)計與繪圖:pROC包繪制ROC曲線 2020-05-25

總結(jié)

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

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