gpt4 book ai didi

r - 在R中找到Box-Cox变换的最佳Lambda

转载 作者:行者123 更新时间:2023-12-03 15:45:20 27 4
gpt4 key购买 nike

我正在尝试在R中的向量中转换数据。

这不是用于线性回归,因此我没有预测变量和响应关系。我只是在使用一个通过标准化数据来提高准确性的模型。 (因此,我不能使用boxcox函数,因为它仅适用于线性模型)。

我要转换的数据是:

vect
[1] 99.64 49.71 246.84 96.17 16.67 352.00 421.25 81.77 105.00 37.85

我已经看过了这个 post

目前尚不清楚正在执行什么操作以及如何使用优化功能,但是我确实设法修改了功能以创建我想最小化的功能。
xskew <- function(data,par) {
abs(skewness((data^par-1)/par)) }

我想输入一个lambda值序列(可能在0.5到1之间,且跳转为0.01),然后找出这些值中的哪一个最小化我的数据集的xskew。

我尝试使用优化函数来执行此操作,但是没有运气,因此我认为这可能不是适合我的函数。
如何执行此计算?

编辑:我想要一些类似的东西:
 x <- seq(0.51,0.99,by=0.01)
which(xskew(vect,x) < 0.05)

因此,也许我会找到一个低于某个阈值的值。此代码显然会产生错误。

最佳答案

注意y~1在R中算作线性模型,因此您可以使用MASS的boxcox函数:

tmp <- exp(rnorm(10))
out <- boxcox(lm(tmp~1))
range(out$x[out$y > max(out$y)-qchisq(0.95,1)/2])

我认为该功能最重要的部分不是找到“最佳” lambda,而是找到lambda的置信区间,然后鼓励您考虑一下不同的转换意味着什么并将其与背后的科学结合起来数据。如果您的数据的“最佳” lambda是0.41,但是间隔包含0.5,并且有科学的理由为什么平方根变换有意义,那么为什么使用0.41而不是0.5?

关于r - 在R中找到Box-Cox变换的最佳Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26617587/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com