绘制理论逆卡方分布
Plot theoretical inverise-chi-square distribution
我想将我的 'empirical' 数据与理论 逆卡方分布 进行比较。如何绘制理论分布?
假设以下数据:
require(invgamma)
set.seed(10)
y<-rinvchisq(1000, 10)
这导致 'empitical' 分布如下:
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()
将理论分布叠加到经验直方图上。
我想将我的 'empirical' 数据与理论 逆卡方分布 进行比较。如何绘制理论分布?
假设以下数据:
require(invgamma)
set.seed(10)
y<-rinvchisq(1000, 10)
这导致 'empitical' 分布如下:
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()
将理论分布叠加到经验直方图上。