如何解决绘制理论逆卡方分布
我想将我的“经验”数据与理论反卡方分布进行比较。如何绘制理论分布?
假设数据如下:
require(invgamma)
set.seed(10)
y<-rinvchisq(1000,10)
导致“经验”分布如下:
as.tibble(y) %>%
ggplot(aes(y)) +
geom_histogram(bins=100)
我的直觉告诉我,我应该使用 dinvchisq
包中的 invgamma
函数。但无法正确安装。有谁知道怎么解决这个问题?
编辑:
添加解决方案,感谢@marvinschmit 和@BenBolker。
require(invgamma)
set.seed(10)
y = rinvchisq(1000,10)
x = seq(0,1,by=.001)
d = invgamma::dinvchisq(x,df=10)
df = data.frame(x=x,d=d)
as.tibble(y) %>%
ggplot(aes(x = y)) +
geom_histogram(bins=100,aes(y=..density..)) +
geom_line(data = df,aes(x = x,y = d),color = "blue")
解决方法
您需要一个用于 d...
密度函数的分位数向量。我将称分位数向量 x
:
x = seq(0,1,by=.001)
d = dinvchisq(x,df=10)
plot(x,d,type="l")
输出:
请注意,我使用了基本的 R
绘图,因为漂亮的 ggplot 与问题无关。您可以简单地构建一个数据框 df=data.frame(x=x,d=d)
并将其用于漂亮的 ggplot 绘图。
编辑:使用 lines()
将理论分布叠加在经验直方图上。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。