R×C 卡方检验(R×C χ² Test)——R软件实现

发布于 2022年1月3日 星期一 13:59:31 浏览:6723
原创不易,转载请注明来源,感谢!
附件下载:
R×C卡方检验.zip 请勿重复点击,如无响应请耐心等待或稍后再试。

在前面文章中介绍了R×C χ²检验(R×C χ² Test)的假设检验理论,本篇文章将使用实例演示在R软件中实现R×C χ²检验的操作步骤。

关键词:R语言; R软件; 列联表卡方检验; 多个率比较; 关联性检验; 列联系数

一、案例介绍

某科室回顾性研究推拿疗法(Manipulation,用“1”表示)、药物疗法(Drug,用“2”表示)和针灸疗法(Acupuncture,用“3”表示)3种疗法治疗腱鞘炎的疗效,数据见图1。问3种疗法的有效率有无差别以及疗法与效果的关联[分为有效(Effective,用“1”表示)和无效(Noneffective,用“2”表示)]?部分数据见图1。本文案例可从“附件下载”处下载。

二、问题分析

本案例的分析目的是比较三种疗法治疗腱鞘炎的疗效,也就是比较三组患者有效率的差异,同时分析两者的关联性。可以采用R×C χ2检验。但需要满足4个条件:

条件1:分组变量和观察变量均为分类变量,至少有一个无序多分类变量,且观察变量不是有序多分类变量。本案例的行变量疗法为无序三分类变量,列变量疗效为二分类变量,本案例数据满足该条件。

条件2:观测值之间相互独立,本案例的观测值均是相互独立,本案例数据满足该条件。

条件3:样本量足够大,使得任一单元格内的期望频数均≥5。该条件需要通过软件分析来判断。

条件4:两个变量是同一随机样本的两种属性,本案例是回顾性分析腱鞘炎患者采用的疗法与效果的关联,所采用的疗法与效果均为已发生的事件,可以算作两种属性,该条件满足。

三、软件操作及结果解读

(一) 导入数据

mydata <- read.csv("R×C卡方检验.csv")  #导入CSV数据
View(mydata)  #查看数据
图1

在数据栏目中可以查看全部数据情况,数据集中共有3个变量和6行观察数据,3个变量分别代表被调查者的治疗方法(Therapy)、治疗效果(Effect)及频率(Frequency)。如果数据集较大也可使用如下命令查看数据框结构:

str(mydata) #查看数据框结构

图2

(二) 适用条件判断

本案例数据满足条件1、2和4,条件3的判断详见统计描述及推断。

(三) 统计描述及推断

1. 数据整理

(1) 软件操作

##数据整理##

compare<-matrix(c(199,164,118,7,18,26),nr=3,dimnames = list(c("Manipulation","Drug","Acupuncture"),c("Effective","Noneffective")))  #数据整理并编辑为矩阵格式
compare  #查看数据
图3
(2) 结果解读

图3的数据整理结果列出了R×C卡方检验所需要的数据格式,并存储在“compare”数据框中。

2. 统计描述

(1) 软件操作

##计算各个方法的有效率##

S1<-prop.table(compare,margin = 1)  #计算行百分比
S1  #显示行百分比
图4
(2) 结果解读

由图4可知,物理疗法的有效率为96.6%、药物疗法的有效率为90.1%、外用膏药的有效率为81.9%

3. 统计推断

(1) 软件操作

##卡方检验##

S2<-chisq.test(compare,correct = FALSE)  #不进行连续性校正
S2$expected  #查看期望频数
图5
S1  #查看卡方检验结果
图6

##计算Cramer V系数##

install.packages("vcd")  #安装包“vcd”
library(vcd)  #调用包“vcd”
assocstats(compare)  #计算Cramer V系数
图7
(2) 结果解读

由图6查看期望频数的结果可知,四格表的期望频数均>5,满足条件3。图7卡方检验结果给出了R×C χ2检验的统计量、自由度和P值,结果显示三种疗法的有效率的差异有统计学意义(\(x^2=21.038\),P<0.001)。图7给出了“Contingency coefficient (列联系数)”和“Cramer’s V (Cramer V系数)”。结果表明,疗法与腱鞘炎的治疗效果为弱相关(Contingency coefficient =0.195,Cramer’s V=0.199)。

4. 事后检验(两两比较)

对于R×C χ2检验,其结果只能说明各组的率或构成比整体上有无统计学差异,并不能说明哪两组之间的差异是否有统计学意义。因此,需要进行事后检验,即事后两两比较。可以通过χ2分割法进行两两比较,即将三组率或构成比的比较拆分成多个两组率或构成比的比较;同时校正检验水准α'=α/m,其中m=k(k-1)/2,k为分组数。本案例为3个分组,拆分成3个两组率的比较;取α=0.05,则α'=0.05/3=0.017。

(1) 软件操作

##指定数据子集##

mydata1<-subset(mydata, mydata$Therapy!=3) #数据子集(推拿法和药物法)
mydata2<-subset(mydata, mydata$Therapy!=2) #数据子集(推拿法和针灸法)
mydata3<-subset(mydata, mydata$Therapy!=1) #数据子集(药物法和针灸法)

##两两比较##

library(jmv)  #调用包“jmv”
#推拿法和药物法比较
contTables(formula = Frequency ~ Therapy:Effect, 
           data = mydata1, contCoef=TRUE, phiCra=TRUE)
图8

#推拿法和针灸法比较

contTables(formula = Frequency ~ Therapy:Effect,
           data = mydata2, contCoef=TRUE, phiCra=TRUE)
图9

#计算药物法和针灸法的关联系数

contTables(formula = Frequency ~ Therapy:Effect,
           data = mydata2, contCoef=TRUE, phiCra=TRUE)
图10
(2) 结果解读

图8—图10分别给出了推拿法与药物法、推拿法和针灸法、药物法和针灸法有效率的比较结果,P值分别为0.009、<0.001、0.032。按照α'=0.017的检验水准,推拿法与药物法有效率的差异有统计学意义,推拿法与针灸法有效率的差异有统计学意义,药物法与针灸法有效率的差异无统计学意义。图8—图10分别给出了推拿法与药物法、推拿法和针灸法、药物法和针灸法进行两两比较是的关联系数,可知其的关联系数φ分别为0.132、0.247、0.119,关联强度均较弱。

四、结论

本研究采用R×C χ2检验(R×C χ2 Tests)对三种疗法治疗腱鞘炎的有效率进行比较,结果显示物理疗法的有效率为96.6%、药物疗法的有效率为90.1%、外用膏药的有效率为81.9%,三种疗法有效率的差异有统计学意义(\(x^2=21.038\),P<0.001),表明三种疗法的有效率不全相同;疗法与效果的关联性为弱相关 (Contingency coefficient =0.195,Cramer’s V=0.199)。

采用χ2分割法,按照α'=0.017的检验水准进行两两比较,发现推拿法与药物法有效率的差异有统计学意义(P=0.009),推拿法与针灸法有效率的差异有统计学意义(P<0.001) ,药物法与针灸法有效率的差异无统计学意义(P=0.032),关联系数φ分别为0.132、0.119、0.247,关联强度均较弱。

End
文章目录 沉浸式阅读