给定一个数据集X,如何找到Box-Cox变换中使用的lambda的参数列表。
x1 = c(1,2,0,5,1,4,2,6,2,0) x2 = c(3,2,5,6,5,1,2,1,4,4) x3 = c(4,0,1,3,2,4,5,3,1,0) X = cbind(x1,x2,x3)
wljmcqd81#
假设你去掉了数据中的0,或者真实的数据中没有0(见我在你的问题之后的评论,这里我把0改成了0.0001),那么这个方法应该有效:
library(bestNormalize) x1 = c(1,2,0.0001,5,1,4,2,6,2,0.0001) x2 = c(3,2,5,6,5,1,2,1,4,4) x3 = c(4,0.0001,1,3,2,4,5,3,1,0.0001) X = cbind(x1,x2,x3) temp <- apply(X, 2, boxcox) listLambda <- lapply(temp, "[[" , "lambda") listLambda listBCconverted <- lapply(temp, "[[", "x.t") listBCconverted
注:boxcox在此对平均值0附近的转换进行了标准化。
1条答案
按热度按时间wljmcqd81#
假设你去掉了数据中的0,或者真实的数据中没有0(见我在你的问题之后的评论,这里我把0改成了0.0001),那么这个方法应该有效:
注:boxcox在此对平均值0附近的转换进行了标准化。