Я пытаюсь сгенерировать случайные числа с многомерным асимметричным нормальным распределением, используя команду rmsn
из пакета sn
в R. Я бы хотел, в идеале, иметь возможность получить три столбца чисел с указанным дисперсии и ковариации, при этом один столбец сильно перекошен. Но я изо всех сил пытаюсь достичь обеих целей одновременно.
Пост в искаженный нормальный выпуск был связан и полезен (и источник некоторого кода ниже), но не полностью прояснил проблему для меня.
Я пытался:
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))
Значения столбцов и SD правильны для второго и третьего столбцов (у которых нет перекоса), но не для первого (который имеет). Кто-нибудь может уточнить, где мой код выше, или мое мышление, пошло не так? Я могу неправильно понять, как использовать rmsn
или вывод. Любая помощь будет оценена.