我正在处理非正常分发的数据。我已应用常用方法:日志和平方根以转换数据,然后使用ARIMA模型对其进行处理,以便我进行预测。
我试过的是:
set.seed(123)
y<-rexp(200)
yl<-log(y+1)
shapiro.test(yl)
trans<-(y-mean(y))/sd(y)
shapiro.test(trans)
这种方法未能通过常态测试,我想问一下是否还有其他选项可以将数据转换为R中的普通数据。
答案 0 :(得分:1)
您可以尝试预测包,并使用 BoxCox.lambda 函数来处理 BoxCox转换。缩放/重新缩放是自动完成的。例如:
require(forecast)
y <- ts(rnorm(120,0,3) + 20*sin(2*pi*(1:120)/12), frequency=12) + runif(120)
lambda <- BoxCox.lambda(y) # should check if the transformation is necessary
model <- auto.arima(y, lambda = lambda)
plot(forecast(model))