【发布时间】:2014-10-07 19:30:25
【问题描述】:
我想绘制一个正态 PDF,其中均值本身是一个正态分布的随机变量。
X~N(mu, 9),
其中 mu ~ N( 50, 4 )。
以下代码运行良好:
set.seed(121)
mu <- rnorm(100000,mean=50,sd=4)
X <- rnorm(100000,mean=mu,sd=9)
plot(density(mu),lty=2,xlim=c(0,100)) #mu
lines(density(X),lwd=3) #X
但是,rnorm 总是会在曲线中产生轻微的波动,即使映射到大量观测值时也是如此;就像这里的情况一样。 (它也占用了不必要的空间。)出于这个原因,我更喜欢使用 curve 命令绘制普通 PDF。不幸的是,下面的第二行产生了一种奇怪的眼痛:
curve(dnorm(x, mean=50, sd=4),
from=0, to=100, lty=2, yaxt="n") # mu
curve(dnorm(x, mean=mu, sd=9),
from=0, to=100, n = length(mu), lwd=3, lty=1, add=TRUE, yaxt="n") # X
有没有人知道更好的方法来解决这个问题?是否可以在curve 命令本身内自动将“mean=”设置为(完美分布的)随机变量?
【问题讨论】:
-
“起伏”不是来自
rnorm(...)。density(...)使用多个内核生成内核密度估计 - 您看到的是两个(或更多)内核几乎完全重叠。如果增加带宽(例如使用adjust=2),波动就会消失。 -
啊,好点子。感谢您的提示!