簡短的回答是,你在正確的軌道上。這是一種確認它的方法。
如果X
是分佈式如N的隨機變量(μ,σ ),並Y
是形成爲X
平均的隨機變量(例如,X的n個獨立樣本的和,除以n) ,然後
X〜N(μ,σ )
Y〜N(μ,σ/n)
你想從Z = 1/Y
的分佈樣本。通常,如果爲Y
密度函數由
習題(Y ≤ý≤ Y + DY)≡˚FÝ(y)的給定的,那麼,如果Z = 1/Y
習題(Z ≤ž≤ Z + DZ)≡˚Fž(Z)=(1/Z 2 )×˚FÝ(1/Z)
由於
˚FÝ(Y)= √(N/2 π)×(1/σ)× EXP [-n ×(Y - μ)/2 σ ]
˚Fž(Z)=(1/Z 2 ) × 1/2 √ π ×(N/√ σ)× EXP [-n ×(1/Z - μ)/2 σ ]
所以,問題是:您的代碼產生隨機樣品分發爲Z
?答案可以被證明是「是」。
f <- function(z,n,mu=0,sigma=1)
(1/z^2)*sqrt(n/(2*pi))*(1/sigma)*exp(-(1/z-mu)^2*(n/(2*sigma^2)))
g <- function(mu, sigma, sampleSize, MC)
replicate(MC, 1/mean(rnorm(sampleSize, mu, sigma)))
set.seed(1)
hist(g(0,0.1,100,1000),breaks=c(-Inf,seq(-300,300,10),Inf)
,xlim=c(-300,300), xlab = "Z",
main="Histogram of 1/mean(X)", sub="mu=0, sigma=0.1, n=100")
z <- seq(-300,300,1)
lines(z,f(z,100,mu=0,sigma=.1),col="red")
非常漂亮的確。 –