如何从 GAMLSS object 进行反向 orderNorm 转换(bestNormalize 包)?
How to do an inverse orderNorm transformation (bestNormalize package) from a GAMLSS object?
我的 y
变量 (n=30,000
) 分布有非常重的尾巴(正负),fitDist
GAMLSS 函数为此选择了 ST4 系列。
我试图用解释变量 x
(pb 平滑)来评估 GAMLSS-based 回归,但是 y
的尾巴太重以至于在 50 个循环后无法收敛,即使改装后 (time consuming+++
).
因此,我使用 orderNorm
转换(bestNormalize
包)对 y
进行归一化,这样可以轻松快速地达到收敛,然后从 GAMLSS 预测拟合值object.
然而,这些拟合的“orderNormalized
”值是 GAMLSS object,因此不能使用来自 bestNormalize
的预测函数进行反演(因为后者似乎无法识别GAMLSS object).
我的问题:是否可以通过任何方式对 GAMLSS object 的拟合值应用逆 orderNorm
变换?
vignette for bestNormalize
有一个类似的例子,使用 lm
而不是 GAMLSS。请参阅小插图的应用部分。一旦你有了 运行 规范化程序,你应该能够使用 predict
函数重复和反转转换。
关键是将转换对象存储为 R 对象,然后可以将其输入 predict
(或者更确切地说,predict.bestNormalize
)函数。
使用predict函数很容易混淆,所以我在这里列出没有代码的步骤(因为问题中没有示例):
1) transposeObj = orderNorm(data$outputvariable)
2) fitObj = gamlls(transposeObj$x.t ~., data)
3) pred = predict(fitObj, type = 'response')
4) inversedpredictions = predict(transposeObj, newdata = pred, inverse = TRUE)
在纯文本中,您对数据进行归一化,拟合模型,使用拟合进行预测,然后使用从 orderNorm 获得的归一化对象对预测进行预测。
我的 y
变量 (n=30,000
) 分布有非常重的尾巴(正负),fitDist
GAMLSS 函数为此选择了 ST4 系列。
我试图用解释变量 x
(pb 平滑)来评估 GAMLSS-based 回归,但是 y
的尾巴太重以至于在 50 个循环后无法收敛,即使改装后 (time consuming+++
).
因此,我使用 orderNorm
转换(bestNormalize
包)对 y
进行归一化,这样可以轻松快速地达到收敛,然后从 GAMLSS 预测拟合值object.
然而,这些拟合的“orderNormalized
”值是 GAMLSS object,因此不能使用来自 bestNormalize
的预测函数进行反演(因为后者似乎无法识别GAMLSS object).
我的问题:是否可以通过任何方式对 GAMLSS object 的拟合值应用逆 orderNorm
变换?
vignette for bestNormalize
有一个类似的例子,使用 lm
而不是 GAMLSS。请参阅小插图的应用部分。一旦你有了 运行 规范化程序,你应该能够使用 predict
函数重复和反转转换。
关键是将转换对象存储为 R 对象,然后可以将其输入 predict
(或者更确切地说,predict.bestNormalize
)函数。
使用predict函数很容易混淆,所以我在这里列出没有代码的步骤(因为问题中没有示例):
1) transposeObj = orderNorm(data$outputvariable)
2) fitObj = gamlls(transposeObj$x.t ~., data)
3) pred = predict(fitObj, type = 'response')
4) inversedpredictions = predict(transposeObj, newdata = pred, inverse = TRUE)
在纯文本中,您对数据进行归一化,拟合模型,使用拟合进行预测,然后使用从 orderNorm 获得的归一化对象对预测进行预测。