【发布时间】:2012-04-15 00:47:00
【问题描述】:
我正在尝试使用 R 中 sn 包中的 rmsn 命令生成具有多元偏斜正态分布的随机数。理想情况下,我希望能够获得指定的三列数字方差和协方差,同时有一列严重倾斜。但我正在努力同时实现这两个目标。
skew normal distribution 的帖子相关且有用(以及下面一些代码的来源),但对我来说并没有完全阐明问题。
我一直在尝试:
a <- c(5, 0, 0) # set shape parameter
s <- diag(3) # create variance-covariance matrix
w <- sqrt(1/(1-((2*(a^2)/(1 + a^2))/pi))) # determine scale parameter to get sd of 1
xi <- w*a/sqrt(1 + a^2)*sqrt(2/pi) # determine location parameter to get mean of 0
apply(rmsn(n=1000, xi=c(xi), Omega=s, alpha=a), 2, sd)
colMeans(rmsn(n=1000, xi=c(xi), Omega=s, alpha=a))
第二列和第三列(没有偏斜)的列均值和标准差是正确的,但第一列不正确(确实如此)。谁能澄清我上面的代码或我的想法哪里出错了?我可能误解了如何使用rmsn 或输出。任何帮助将不胜感激。
【问题讨论】:
标签: r statistics