Как сделать обратное преобразование orderNorm (пакет bestNormalize) из объекта GAMLSS?

Моя переменная y (n=30,000) распределена с очень тяжелыми хвостами (как положительными, так и отрицательными), для которых функция fitDist GAMLSS выбирает семейство ST4.

Я попытался оценить регрессию на основе GAMLSS с объясняющей переменной x (сглаживание pb), но хвосты на y настолько тяжелы, что сходимость не достигается после 50 циклов, даже после переоснащения (time consuming+++).

Поэтому я нормализовал y с помощью преобразования orderNorm (пакет bestNormalize), что позволило легко и быстро достичь сходимости, а затем предсказать подогнанное значение из объекта GAMLSS.

Однако эти подогнанные значения "orderNormalized" являются объектом GAMLSS и поэтому не могут быть инвертированы с помощью функции прогнозирования из bestNormalize (поскольку последняя, ​​похоже, не распознает объект GAMLSS).

Мой вопрос: возможно ли каким бы то ни было образом применить обратное преобразование orderNorm к подобранным значениям из объекта GAMLSS?


person demon    schedule 09.12.2019    source источник


Ответы (1)


В винье для bestNormalize есть аналогичный пример, использующий lm вместо ГАМЛСС. См. раздел приложения виньетки. После запуска процедуры нормализации вы сможете повторить и инвертировать преобразование с помощью функции predict.

Ключевым моментом является сохранение объекта преобразования в виде объекта R, который затем можно передать в функцию predict (или, скорее, predict.bestNormalize).

person petersonR    schedule 24.01.2020