3

我的y变量 ( n=30,000) 分布有非常重的尾部(正面和负面),fitDistGAMLSS 函数为此选择 ST4 系列。

我尝试使用解释变量x(pb 平滑)来评估基于 GAMLSS 的回归,但尾部y太重以至于在 50 个周期后收敛不会达到,即使在 refit ( time consuming+++) 之后也是如此。

因此,我y使用orderNorm转换(bestNormalize包)进行归一化,它可以轻松快速地达到收敛,然后从 GAMLSS 对象预测拟合值。

然而,这些拟合的“ orderNormalized”值是一个 GAMLSS 对象,因此不能使用预测函数从bestNormalize(因为后者似乎无法识别 GAMLSS 对象)来反转。

我的问题:无论采用何种方式,是否有可能对orderNorm来自 GAMLSS 对象的拟合值应用逆变换?

4

2 回答 2

1

很容易对使用什么预测函数感到困惑,所以我在这里列出没有代码的步骤(因为问题中没有示例):

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 获得的归一化对象对预测进行预测。

于 2021-10-29T18:14:59.633 回答
0

插图bestNormalize有一个类似的例子,使用lm而不是 GAMLSS。请参阅小插图的应用部分。运行标准化过程后,您应该能够使用predict函数重复和反转转换。

关键是将转换对象存储为 R 对象,然后可以将其输入predict(或者更确切地说,是predict.bestNormalize)函数。

于 2020-01-24T21:16:35.143 回答