首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R?标准卡方检验

R?标准卡方检验
EN

Stack Overflow用户
提问于 2014-07-06 03:09:22
回答 1查看 1.3K关注 0票数 0

我在一个拷贝区域中有4种基因型的观察计数样本。我想做的是,计算这些基因型的等位基因频率,然后用卡方检验这些频率与预期值25%:25%:25%:25%的显著偏离。

到目前为止,我得到了:

代码语言:javascript
复制
> a <- c(do.call(rbind, strsplit(as.character(gdr18[1,9]), ",")), as.character(gdr18[1,8]))
> a
[1] "27" "30" "19" "52"

接下来,我得到总计数:

代码语言:javascript
复制
> sum <- as.numeric(a[1]) + as.numeric(a[2]) + as.numeric(a[3]) + as.numeric(a[4])
> sum
[1] 128

现在频率:

代码语言:javascript
复制
> af1 <- as.numeric(a[1])/sum
> af2 <- as.numeric(a[2])/sum
> af3 <- as.numeric(a[3])/sum
> af4 <- as.numeric(a[4])/sum
> af1
[1] 0.2109375
> af2
[1] 0.234375
> af3
[1] 0.1484375
> af4
[1] 0.40625

我现在迷路了。我想知道af1、af2、af3和af4是否显著偏离0.25、0.25、0.25和0.25

我如何在R中做到这一点?

谢谢你,艾利安

编辑:

好的,我正在按照建议尝试chisq.test():

代码语言:javascript
复制
> p <- c(0.25,0.25,0.25,0.25)
> chisq.test(af, p=p)

        Chi-squared test for given probabilities

data:  af
X-squared = 0.146, df = 3, p-value = 0.9858

Warning message:
In chisq.test(af, p = p) : Chi-squared approximation may be incorrect

警告消息试图告诉我什么?为什么这个近似值是不正确的?

为了测试这种方法,我选择了与预期值0.25相去甚远的值:

代码语言:javascript
复制
> af=c(0.001,0.200,1.0,0.5)
> chisq.test(af, p=p)

        Chi-squared test for given probabilities

data:  af
X-squared = 1.3325, df = 3, p-value = 0.7214

Warning message:
In chisq.test(af, p = p) : Chi-squared approximation may be incorrect

在这种情况下,H0仍然不会被拒绝,即使这些值与预期值0.25相差甚远。

EN

回答 1

Stack Overflow用户

发布于 2014-07-06 03:32:45

代码语言:javascript
复制
observed <- c(27,30,19,52)
chisq.test(observed)

这表明这样的频率或更极端的频率会在大约0.03%的时间内偶然出现(p = 0.0003172)。

如果您的零假设不是跨四个类别的25:25:25:25分布,但假设问题是这些数据是否显著偏离3:3:1:9预期,则需要显式计算预期频率:

代码语言:javascript
复制
expected <- sum(observed)*c(3,3,1,9)/16

chisq.test(observed,p=c(3,3,1,9),rescale.p=TRUE)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24589712

复制
相关文章

相似问题

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