-1

我正在处理非正态分布的数据。我应用了常用方法:对数和平方根来转换数据,然后用 ARIMA 模型对其进行处理,以便进行预测。

我尝试过的是:

set.seed(123)
y<-rexp(200)

yl<-log(y+1)
shapiro.test(yl)

trans<-(y-mean(y))/sd(y)
shapiro.test(trans)

这种方法未能通过正态性测试,我想问一下是否还有其他选项可以将数据转换为 R 中的正常数据。

4

1 回答 1

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))
于 2013-04-01T18:46:12.467 回答