【发布时间】:2014-04-16 12:04:12
【问题描述】:
我有一个正态分布和一个均匀分布。我想计算一个比率:正态分布的密度与均匀分布的密度。然后我想测试这个比率是否正常。
ht <- runif(3000, 1, 18585056) # Uniform distribution
hm <- rnorm(35, 10000000, 5000000) # Normal distribution
hmd <- density(hm, from=0, to=18585056) # Kernel density of distributions over range
htd <- density(ht, from=0, to=18585056)
ratio <- hmd$y/htd$y # Ratio of kernel density values
上面的分布hm 和ht 是我的实验数据显示的示例;我将实际使用的向量不是在 R 中随机生成的。
我知道我可以从 QQ 图的相关系数中很好地了解正态性:
qqp <- qqnorm(hm)
cor(qqp$x,qqp$y)
对于正态分布的hm,这给出了接近 1 的值。
有没有办法确定密度向量的正态性?例如hmd 和 ratio。
(附加信息:hm 和 ht 正在对长度为 18585056 的基因组中的纯合和杂合 SNP 建模)
【问题讨论】:
-
首先,R 具有用于概率密度的内置函数 - 查找
dnorm(...)和dunif(...)。其次,您似乎想用pdf = dnorm/dunif测试随机变量X。这没有意义,因为dnorm/dunif不是密度函数(它不积分为 1)。相反,如果你想测试一个随机变量Z = X/Y,其中X ~ normal和Y ~ uniform,这是有意义的。那是你想要做的吗?这个问题已经解决了:Z有所谓的"slash" distribution。 -
嗨@jlhoward。我没有正确解释(将编辑)我要测试的分布来自实验数据:这里使用
rnorm和runif只是为了展示它们的外观。
标签: r bioinformatics normal-distribution kernel-density