简短的回答是您走在正确的轨道上。这是一种确认方式。
如果X是一个随机变量,分布为N(μ,σ2),而Y是一个由X的平均值形成的随机变量(例如, X的n个独立样本,除以n),则
X ~ N(μ,σ2)
Y ~ N(μ,σ2/n)
您想要来自Z = 1/Y 分布的样本。一般来说,如果Y 的密度函数由下式给出
Prob(y ≤ Y ≤ y+dy) ≡ fY(y),那么,如果 Z = 1/Y
概率(z ≤ Z ≤ z+dz) ≡ fZ(z) = (1/z2) × fY (1/z)
自从
fY(y) = √(n/2π) × (1/σ) × exp[-n × (y - μ)2/2σ2]
fZ(z) = (1/z2) × 1/√2π × (n/√σ) × exp[-n × (1/ z - μ)2/2σ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")