r语言软件(r语言入门),本文通过数据整理汇集了r语言软件(r语言入门)相关信息,下面一起看看。

卡方检验在计数资料中的应用包括推断两个总体率或构成比之间是否有差异,多个总体率或构成比之间是否有差异,多个样本率之间的多重比较,两个分类变量之间是否有相关性,多维列联表分析和频率分布拟合优度的卡方检验。

选自:周至锐先生,下面介绍如何对计数数据进行卡方检验。

穆璐

1.四格表数据的卡方检验

1.1数据集数据

1.2矢量或矩阵数据

1.3 chisq.test()函数

2.费希尔精确概率法

3.配对四格表数据的卡方检验

3.1公元前40年

3.2 b c 40

3.3 mcnemar.test()函数

4.科克伦-曼特尔-海恩斯泽尔试验

4.1 mantelhaen.test()函数

4.2数据集形式的数据

4.3矢量或数组数据

4.4计算各层的OR值

4.5全天检查

4.6 BreslowDayTest()函数

4.7 WoolfTest()函数

5.计算柱连接的数量。

6.频率分布拟合优度的卡方检验

1.四格表数据的卡方检验选择生存包1.1结肠数据集作为数据集。

Library(survival)# package data(冒号)用于加载内置数据集# load dataset my table-xtabs(~ status sex,data=冒号);Mytablechisq.test(mytable)#进行连续性校正chisq.test(mytable,correct=false) #不进行连续性校正。无论是否进行连续性校正,结果都显示P值> 0.05。接受最初的假设,也就是说,性与地位无关。

您还可以输出卡方检验总结:

chisq . test(mytable)$ observed # actual frequency(与my table相同)chisq . test(my table)$ expected # expected frequency chisq . test(my table)$ residual # Pearson residual chisq . test(my table)$ stdres # Compare-matrix(c(706,792,184,176),NR=2,dimnames=list (c ('male ',' female '),c ('yes ',' no ')标准化残差1.2向量或矩阵数据;Comparechisq.test(compare)注意:使用chisq.test()函数计算时,要注意单元格的期望频率。如果所有细胞的频率不为零,且所有细胞的期望频率5,则皮尔逊卡方检验是合理的,否则会显示警告信息。

如果在计算过程中出现警告消息,表明表中单元的预期频率值小于5,这可能会使卡方近似无效。

如果数据不满足卡方检验的条件,应采用Fisher精确检验。

1.3 chisq.test()函数chisq.test()函数可用于卡方列联表检验和拟合优度检验。

Chisq.test(x,y=NULL,#x为数据组成的向量或矩阵,y为数据向量(当x为矩阵时,y忽略)correct=TRUE,#逻辑字,默认为TRUE。在计算2x2列联表的检验统计量时,是否使用连续性校正P=rep (1/length (x),length (x))。Cale.p=false,#逻辑字,如果为真,那么p将被缩放为一个和为1的向量;可以,如果p向量之和1,则返回错误消息simulate.p. value=FALSE如果#为真,将不执行连续性校正;根据蒙特卡洛测试,p值B=2000)# B为整数,将计算蒙特卡洛测试中使用的重复次数。对于2x2列联表,参数correct的默认值为真,即使用Yate进行连续校正,以提高P值,避免‘显著差异’的不可靠情况;

2.Fisher精确概率法在样本较小(单位期望频率<5)时需要Fisher精确检验来完成独立性检验。Fisher检验最初是针对22四格表提出的。当卡方检验的条件不满足时,可采用精确检验。

Fisher.test(x,y=NULL,#参数x是二维列联表形式的矩阵,或者是由因子组成的对象。y是由因子组成的向量。当x是矩阵时,该值无效。Workspace=200000,#正整数,表示网络算法hybrid的工作空间大小=FALSE,#逻辑字,仅用于2x2列联表。当它为假(默认值)时,表示精确计算概率,当它为真时,表示使用混合算法计算概率。HybridPars=C (expect=5,percent=80,Emin=1),control=list(),or=1,#是列表,指定底层算法的构成,或者是优势比的原始假设,默认值为1,仅用于2x2列联表。备择='two.sided ',#备择假设,默认值为' two.sided ',表示双边检验(非独立),' less '表示单边小于检验(负相关);“大于”表示单侧大于测试(正相关)。Conf.int=TRUE,#逻辑字。如果为真,给出比值比的置信区间。Conf.level=0.95,#置信度,默认为0.95模拟。P. value=false,b=2000) #逻辑字,为真,表示p值是Monto Carlo法计算的,b为正整数,表示Monto Carlo重复的次数。示例:为了研究COPD和吸烟之间的关系,调查了52名COPD患者和33名非COPD患者中的吸烟者数量。

compare -matrix(c(49,28,3,5),nr=2,byrow=TRUE,dimnames=list(c('吸烟','非吸烟'),c('COPD ',正常'))comparchisq。test (compare) $ expected #检查预期频率fisher.test(compare)#进行fisher精确测试。因为P值=0.2518 > 0.05,且比值比的置信区间包含1,所以我们接受吸烟与COPD无关的原假设。

3.配对四格表资料的卡方检验计数资料配对设计常用于比较两种检验方法,培养方法和诊断方法。其特征在于对样本中的每个观察单元分别用两种方法处理,然后观察两种处理方法的某两个分类变量的计数结果。

假设检验是McNemar卡方检验,有两种检验统计量(b c 40和b c 40)。这种方法一般用于小样本含量的数据。

当b c 40时,使用连续性修正,即correct=TRUE。当b c 40时,不使用连续性校正,即correct=FALSE。3.1 b c 40例:在某实验室用乳胶凝集法和免疫荧光法检测了58例疑似系统性红斑狼疮患者的血清抗核抗体。这两种方法有什么区别吗?

X-matrix (c (11,2,12,33),nrow=2,byrow=false,dimnames=list(免疫荧光=c(','-'),乳胶凝集=c(','-'));X#乳胶凝集法#免疫荧光法-# 1112 #-233 mcnemar.test (x,correct=true) # mcnemar氏schi-squared with continuity correction #数据:x # mcnemar氏schi-squared=5.7857,df=1,P值=0.01616结论:P-p值=0.01616<0.05。可以认为两种方法检测结果不同,免疫荧光法阳性检出率较高(3.2 b c 40例)。某医院同时用A法和B法检测160份痰标本中的抗酸杆菌。A法和B法的检出率有显著差异吗?

X-matrix (c (52,20,35,53),nrow=2,byrow=false,dimnames=list (a方法=c(','-'),B方法=c(','-'));X#B方法#A方法-# 5235 #-2053 mcnemar.test (x,correct=false) # mcnemar的schi平方检验#数据:x # mcnemar的schi平方=4.0909,df=1,p值=0.0409 3.3 McNemar.test()函数使用mcnemar.test()函数进行mcnemar检验。

Mcnemar.test(x,y=NULL,#参数x是二维列联表形式的矩阵,或者是由因子组成的对象。y是由因子组成的向量。当x是矩阵时,该值无效。Correct=TRUE)#逻辑字,默认值为TRUE,仅在2x2列联表下进行连续校正。4.Cochran-Mantel-Haenszel检验CMH检验可以理解为等级卡方检验。CMH检验用于高维列联表的分析,即在控制一个或几个混杂因素(分层变量)后,检验二维RxC表中行变量和列变量之间是否存在统计相关性。

假设:H0:任意层的行变量X和列变量Y不相关;H1:X和y至少有一层是统计相关的,当H0成立时,CMH统计量是渐近卡方分布

根据行变量X和列变量Y的不同类型,CMH卡方统计包括:

1.相关统计:适用于双向有序分类变量;2.方差分析统计:又称线均分统计,适用于列变量Y作为有序分类变量;3.一般相关统计:双向无序分类变量适用于检验X与y是否相关4.1 mantelhaen.test()函数mantelhaen.test()函数用于CMH卡方检验。最初的假设是,两个分类变量在第三个变量的每一层中是有条件独立的。

Elhaen.test (x,y=null,# x是一个数组形式的三维关联表。行和列的维度至少为2,最后一个维度是层次变量;#或者x是至少有2级的因子,y也是至少有2级的因子。如果x是三维数组,y忽略;Z=NULL,#至少有2个水平因子,表示哪一层对应X中的元素,哪一层对应y中的元素,如果X是三维数组,Z忽略;Alternative=c ('two.sided ',' less ',' greater '),# alternative假设,默认为' two '。“双边”双边检验;Correct=TRUE,#逻辑字,计算测试统计量时使用连续性校正;Exact=FALSE,#逻辑字,是否计算精确测试;Conf.level=0.95)#置信水平,默认为0.95注意:数组或向量中不允许有缺失值,X,Y,Z必须是长度相同的数值向量。

4.2选用生存包结肠数据集作为数据集。Xtabs()函数可以基于三个或更多分类变量生成多维列联表。

mytable -xtabs(~rx status sex,data=冒号);mytablemantelhaen.test(mytable)结果中p值=2.921e-08,表明患者的治疗和结局状态在各个性别水平上并不独立。

4.3向量或数组数据为研究心肌梗死与近期使用避孕药的关系,采用病例对照研究,调查了234例心肌梗死患者和1742例对照者口服避孕药的使用情况。考虑到年龄是一个混杂因素,根据年龄分层后的结果如下表所示。试分析排除年龄影响后,心梗是否与近期口服避孕药有关。

My-array (C (17,121,47,944,12,14,158,663),dim=c (2,2,2),dim names=list(心肌梗塞=c('病例','对照'),最近使用口服避孕药=40岁'))mydatamantelhaen.test (mydata,correct=f) #经典的2x2xk水平CMH检验结果显示P 0.001,根据检验水平a=0.05,H0被拒绝和可以认为,在控制了年龄的影响后,心肌梗死与近期服用口服避孕药有关。

4.4计算每一层的OR值apply(我的数据,3,函数(x) (x [1,1] * x [2,2])/(x [1,2] * x [2,1])# 40岁40岁# 2.22222323326

如果不排除同质性假设(P > 0.05),根据CMH检验结果可以推断暴露因素是否与疾病有关。如果相关,Mantel-Haenszel方法可进一步用于估计OR或RR值及其置信区间。

如果同质性假设被拒绝(p 0.05),则表明分层变量和暴露因素之间存在交互作用。此时CMH检验的结果不能说明问题,可以进行多元logistic回归分析。

4.6 BreslowDayTest()函数BreslowDayTest(x,#2x2xk列联表OR=NA,#要检验的OR值,默认使用Mantel-Haenszel估计值。Correct=FALSE)#为真,则使用Breslow-Day检查库(DescTools)# load package Breslow-Day test(my data)# adjusted by Tarone执行Breslow-daytestonhomogenityoffddsratio # data:my data # X-squared=0.23409,df=1,P-value=0.6285 Breslow Day test(my data,Correct=TRUE)#Tarone修正的Breslow-Day testonhomogenityoffddsra可以认为口服避孕药对两个年龄组心肌梗死的总体OR值是同质的:用Mantel-Haenszel法估计的OR值及其95%可信区间为3.09(1.93-4.93)。

4.7 WoolfTest()函数除了BreslowDayTest()函数之外,WoolfTest()函数还可以检查2x2xk列联表的同质性。

WoolfTest(x)# x是2x2xk列联表,最后一个维度是层次变量wool ftest(my data)# WoolfttestonHomogeneityoffoddsratio(NO3-wayassoc。)# data: mydata # x平方=0.23358,df=1,p值=0.6289。

5.计算色谱柱连接编号。如果X行列表数据的两个分类变量是无序分类变量,那么多个采样率和样本构成比的比较都可以用卡方检验,即使用chisq.test()函数进行计算。

如果已知两个分类变量之间存在相关性,需要进一步分析关系的紧密程度,可以计算皮尔逊列联系数。

联系数C(列联系数)在0到1之间,0代表完全独立,1代表完全相关;越接近1,关系越密切。

vcd包中的assocstats()函数可以用来计算二维列联表的phi系数、列连接数和Cramer的V系数。

例:测定某地5801人的ABO血型和MN血型。结果如下。问一下这两种血型有没有关联?

My table-matrix (C (431,388,495,137,490,410,587,179,902,800,950,32),nrow=4,byrow=false,dimnames=list (ABO血型=C(')Mn '))mytablechisq。Test (mytable) #判断两个分类变量是否存在相关性p值2.2e-16,可以认为两个血型系统之间存在相关性。可以进一步计算皮尔逊列联系数来分析其紧密程度。

库(VCD)关联统计(我的表)#查看关联强度。从上面可以看出,柱连接的数量为0.188。虽然有相关性,但是列连接的数量相对较少。虽然有统计学意义,但关系并不十分密切。

6.频率分布拟合优度的卡方检验(优度拟合)检验或使用chisq.test()函数。

Chisq.test(x,# x为向量或单行/单列矩阵,所有参数x必须为非负整数。P,# P是一个与x长度相同的概率向量,如果P的值为负,将返回一个错误消息。# p中向量的和应该是1。如果没有给定p,向量值都相等。Save.p=TRUE) #逻辑字,如果为真,那么p将缩放为一个和为1的向量;FALSE,如果and 1,将返回错误信息。X-C (10,25,15) chisq.test(x,p=p)等价x -c(82,47,20,18,22)#x是向量P-C (45,25,25,12

关于我们

微信官方账号传递知识,沉淀思维。

如需帮助,请回复123,或联系小D老师微信:pekingdata

这个网站是个人知识管理的网络存储空间。所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请一键举报。

更多r语言软件(r语言入门)相关信息请关注本站,本文仅仅做为展示!