首先安装SuppDists包。然后利用里面的Johnson分布,产生你要的随机数。
<br />
library(SuppDists)</p>
<p>your_mean=1.2;<br />
your_sd=3.7;<br />
your_skew=0.5;<br />
your_kurt=1.2;</p>
<p>#将参数转化为4中心矩<br />
t=c(your_mean, your_sd^2, your_skew*your_sd^3, (your_kurt+3)*your_sd^4)</p>
<p>#求Johnson分布参数<br />
params = JohnsonFit(t, moment="use")</p>
<p>#看看拟合效果,可以看出方差,偏度,峰度拟合满意,只有均值差一点。<br />
#很多时候Johnson拟合都是均值差一点<br />
tmp=sJohnson(params)<br />
print(tmp)</p>
<p>#纠正拟合均值,再次拟合<br />
t[1]=2*t[1]-tmp$Mean<br />
params = JohnsonFit(t, moment="use")</p>
<p>#再看拟合效果,哈哈,全都完美拟合<br />
print(sJohnson(params))</p>
<p>#产生随机数<br />
hist(rJohnson(1000, params))<br />
</p>