首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据列值对数据进行多次x-平方测试。

根据列值对数据进行多次x-平方测试。
EN

Stack Overflow用户
提问于 2020-06-25 09:46:58
回答 1查看 3.1K关注 0票数 1

我有一个带有计数号的数据帧,我希望对变量集群的每个值执行一个chisq.test。因此,基本上,我需要4个应急表(用于"A“、"B”、"C“、"D"),其中行=类别、列=药品、值=总计。随后,应该为所有4个表运行一个chisq.test

示例数据帧

代码语言:javascript
运行
复制
df <- data.frame(Cluster = c(rep("A",8),rep("B",8),rep("C",8),rep("D",8)),
                 Category = rep(c(rep("0-1",2),rep("2-4",2),rep("5-12",2),rep(">12",2)),2),
                 Drug = rep(c("drug X","drug Y"),16),
                 Total = as.numeric(sample(20:200,32,replace=TRUE)))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-25 10:18:59

首先,利用xtabs()生成分层列联表。

代码语言:javascript
运行
复制
tab <- xtabs(Total ~ Category + Drug + Cluster, df)
tab

# , , Cluster = A
# 
#         Drug
# Category drug X drug Y
#     >12      92     75
#     0-1      33    146
#     2-4     193     95
#     5-12     76    195
# 
# etc.

然后使用apply()对每个阶层进行皮尔逊的卡方检验.

代码语言:javascript
运行
复制
apply(tab, 3, chisq.test)

# $A
# 
#   Pearson's Chi-squared test
# 
# data:  array(newX[, i], d.call, dn.call)
# X-squared = 145.98, df = 3, p-value < 2.2e-16
#
# etc.

此外,您还可以为条件独立性执行Cochran-Mantel-Haenszel chi平方测试。

代码语言:javascript
运行
复制
mantelhaen.test(tab)

#   Cochran-Mantel-Haenszel test
# 
# data:  tab
# Cochran-Mantel-Haenszel M^2 = 59.587, df = 3, p-value = 7.204e-13
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62572502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档