рисование данных из косого нормального распределения с помощью пакета sn в R

Мне нужно охарактеризовать местоположение, форму и масштаб косого нормального распределения данных, а затем использовать эти параметры для случайного извлечения значений из косонормального распределения с теми же параметрами. В прошлом я делал это с помощью пакета sn в R. Итак, например, если бы у меня был вектор данных v, который следует косонормальному распределению, я бы оценил местоположение, форму и масштаб с помощью функции sn.em:

require(sn)
data(ais)
v <- ais$Fe
sn.em(,v)

Затем я бы случайным образом рисовал из косонормального dsitrubtion с теми же параметрами, используя функцию rsnorm:

rsnorm(100, shape = x, location = y, scale = z)

Обе эти функции больше не существуют в пакете sn. Как это сделать, используя разные функции в пакете sn или другой пакет вместе?


person colin    schedule 04.01.2017    source источник
comment
возможно, функции были заменены/переименованы: вы проверили справочное руководство по адресу его кран-страница   -  person user20650    schedule 04.01.2017
comment
@ user20650 не удалось проверить справочное руководство. Вроде нигде не задокументировано.   -  person colin    schedule 04.01.2017
comment
из беглого взгляда на руководство, возможно, rsn (стр. 20) и selm (стр. 45)   -  person user20650    schedule 04.01.2017
comment
@ user20650 прямо с функцией rsn, хотя неясно, какой вывод в selm соответствует параметрам местоположения (xi), масштаба (omega) и наклона (alpha), необходимых для запуска функции rsn.   -  person colin    schedule 04.01.2017
comment
да, не уверен, я видел только то, что заметил линейную модель и модель, которая на первый взгляд кажется правильной, как sn.em. все, что я хотел бы сделать, это просмотреть руководство, чтобы убедиться, что sn.em не устарел/не заменен/улучшен, и если не ясно, то напишите сопровождающему, чтобы спросить, почему функция была удалена. (поскольку вы обычно можете загрузить более старую версию пакета, используя старые источники, если хотите использовать эту функцию)   -  person user20650    schedule 05.01.2017
comment
Колин, вы связались с сопровождающим пакета?   -  person user20650    schedule 19.01.2017
comment
@ user20650 Я этого не делал, до сих пор не решил эту проблему. Завязал с другой работой.   -  person colin    schedule 20.01.2017


Ответы (1)


Используйте функцию sn.mple() в пакете "sn". Для вашего примера вы можете использовать

cp.est <- sn.mple(y=v,opt.method = "nlminb")$cp 
dp.est <- cp2dp(cp.est,family="SN")
dp.est
       xi     omega     alpha 
20.244158 73.840301  9.142412 

Чтобы взять образец из дистрибутива SN, используйте функцию rsn() в том же пакете. Например,

rsn(n=100, xi=20.24, omega=73.84, alpha=9.14)
person zizaozi    schedule 20.03.2017