java 随机数 平均值_从平均值,变异系数生成对数正态分布随机数
結果并不令人驚訝 . 對于具有大峰度的分布,樣本方差的預期方差大致為mu4 / N,其中mu4是分布的第4個時刻 . 對于對數正態,mu4指數地取決于參數sigma ^ 2,這意味著對于足夠大的sigma值,樣本方差將相對于真實方差在整個地方 . 這正是你所觀察到的 . 在你的例子中,mu4 / N~(coeffOfVar ^ 8)/ N~50 ^ 8 / 1e6~4e7 .
用于推導樣本變量的預期方差 . 見http://mathworld.wolfram.com/SampleVarianceDistribution.html . 下面是一些代碼,以更精確的方式說明這些想法 . 注意樣本方差的方差和理論預期值的大值,即使coeffOfVar = 5 .
exp.var.of.samp.var
(n-1)*((n-1)*mu4-(n-3)*mu2^2)/n^3
}
mu2.lnorm
(exp(sigma^2)-1)*exp(2*mu+sigma^2)
}
mu4.lnorm
mu2.lnorm(mu,sigma)^2*(exp(4*sigma^2)+2*exp(3*sigma^2)+3*exp(2*sigma^2)-3)
}
exp.var.lnorm.var
exp.var.of.samp.var(n,mu2.lnorm(mu,sigma),mu4.lnorm(mu,sigma))
}
exp.var.norm.var
exp.var.of.samp.var(n,sigma^2,3*sigma^4)
}
coeffOfVar
mean
sigma
mu
n
m
## Get variance of sample variance for lognormal distribution:
var.trial
cat("samp. variance (mean of",m,"trials):",mean(var.trial),"\n")
cat("theor. variance:",mu2.lnorm(mu,sigma),"\n")
cat("variance of the sample var:",var(var.trial),"\n")
cat("expected variance of the sample var:",exp.var.lnorm.var(n,mu,sigma),"\n")
> samp. variance (mean of 10000 trials): 105.7192
> theor. variance: 100
> variance of the sample var: 350997.7
> expected variance of the sample var: 494053.2
## Do this with normal distribution:
var.trial
cat("samp. variance (mean of",m,"trials):",mean(var.trial),"\n")
cat("theor. variance:",sigma^2,"\n")
cat("variance of the sample var:",var(var.trial),"\n")
cat("expected variance of the sample var:",exp.var.norm.var(n,mu,sigma),"\n")
> samp. variance (mean of 10000 trials): 3.257944
> theor. variance: 3.258097
> variance of the sample var: 0.002166131
> expected variance of the sample var: 0.002122826
總結
以上是生活随笔為你收集整理的java 随机数 平均值_从平均值,变异系数生成对数正态分布随机数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我没有水王,要不要买技能石?
- 下一篇: 钢结构多少钱一吨啊?