многовариантный асимметрия в R - PullRequest
3 голосов
/ 31 марта 2012

Я пытаюсь сгенерировать случайные числа с многомерным асимметричным нормальным распределением, используя команду 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 или вывод. Любая помощь будет оценена.

1 Ответ

1 голос
/ 01 апреля 2012

Местоположение не означает (кроме случаев, когда нет перекоса).Из документации:

Обратите внимание, что вектор местоположения 'xi' не представляет среднего вектора распределения (который на самом деле может даже не существовать, если 'df <= 1'), и аналогично 'Omega 'не является <em> ковариационной матрицей распределения

, и вы можете заменить Omega=s на Omega=w.Предполагается, что это матрица дисперсий: квадратного корня не должно быть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...