前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【R语言】卡方检验和Fisher精确检验,复现临床paper

【R语言】卡方检验和Fisher精确检验,复现临床paper

作者头像
生信交流平台
发布2022-09-21 16:45:20
1.6K1
发布2022-09-21 16:45:20
举报

做临床数据分析的时候我们经常会用卡方检验或者Fisher精确检验去看看不同的临床特征在两组里面有没有显著差异。今天小编就带大家来重现一下下面这篇paper的Table2

Table2里面主要展示的是各种临床特征在MEX3A高表达组和低表达组里面是否存在显著差异,用的是卡方检验。

根据卡方检验的结果,作者得到了如下结论。

接下来我们就来用R代码做卡方检验,算出P值

先来对年龄做卡方检验

代码语言:javascript
复制
#################
#Age
#################
table=matrix(c(51,66,66,189),nrow=2)
colnames(table)=c("High","Low")
rownames(table)=c("<55",">=55")
table

跟Table2里面的数据保持一致

代码语言:javascript
复制
chisq.test(table)

这里算出来的卡方值和p值跟Table2中是一致的

接下来我们来对组织病理分期来做卡方检验

代码语言:javascript
复制
########################
#stage
########################
table=matrix(c(48,30,30,2,124,57,55,3),nrow=4)
colnames(table)=c("High","Low")
rownames(table)=c("I","II","III","IV")
table

也跟表里的数据保持一致

代码语言:javascript
复制
chisq.test(table)

这里算出来的卡方值跟文中是一样的,但是p值略微有些出入,并且这里有个warning,大意是算出来的p值可能不准。

一般当某个组的样本数少于5个的时候,做卡方检验就会出现这种情况。

解决方法是用Fisher精确检验

代码语言:javascript
复制
fisher.test(table)

你会发现这个时候就没有warning了,并且p值跟文中的是一样的,这是巧合吗?大家自己体会

最后我们来看看生存状态的卡方检验

代码语言:javascript
复制
###################
#Vital status
###################
table=matrix(c(55,62,75,181),nrow=2)
colnames(table)=c("High","Low")
rownames(table)=c("Deceased","Living")
table

跟表中数据保持一致

代码语言:javascript
复制
chisq.test(table)

计算出的卡方值和p值都跟文中一样

剩下的临床特征的卡方检验,就留给大家自己练习吧!

文中讲到的paper可以阅读原文。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档