您好我使用包预测来进行时间序列预览.我想知道如何在最终预测图上取消记录系列.使用预测包我不知道如何取消记录我的系列.这是一个例子:
library(forecast)
data <- AirPassengers
data <- log(data) #with this AirPassengers data not nessesary to LOG but with my private data it is...because of some high picks...
ARIMA <- arima(data, order = c(1, 0, 1), list(order = c(12,0, 12), period = 1)) #Just a fake ARIMA in this case...
plot(forecast(ARIMA, h=24)) #but my question is how to get a forecast plot according to the none log AirPassenger data
Run Code Online (Sandbox Code Playgroud)

因此记录了图像.我想拥有相同的ARIMA模式,但没有任何loged数据.
没有必要使用@ndoogan提出的黑客攻击.forecast.Arima具有用于撤消转换的内置工具.以下代码将执行所需操作:
fc <- forecast(ARIMA, h=24, lambda=0)
Run Code Online (Sandbox Code Playgroud)
更好的是,将模型转换为模型本身:
ARIMA <- Arima(data, order=c(1,0,1), list(order=c(1,0,1),period=12)), lambda=0)
fc <- forecast(ARIMA, h=24)
Run Code Online (Sandbox Code Playgroud)
请注意,您需要使用包中的Arima函数forecast来执行此操作,而不是包中的arima函数stats.
@Hemmo是正确的,这种反向变换不会给出预测分布的平均值,因此不是最优的MSE预测.但是,它将给出预测分布的中位数,因此将给出最佳MAE预测.
最后,@ Swiss12000使用的假模型没有意义,因为季节性部分的频率为1,因此与非季节性部分混淆.我想你可能意味着我在上面的代码中使用过的模型.
@ ndoogan答案的问题是对数不是线性变换.这意味着E [exp(y)]!= exp(E [y]).Jensen的不等式实际上给出了E [exp(y)]> = exp(E [y]).这是一个简单的演示:
set.seed(1)
x<-rnorm(1000)
mean(exp(x))
[1] 1.685356
exp(mean(x))
[1] 0.9884194
Run Code Online (Sandbox Code Playgroud)
这是一个关于预测的案例:
# Simulate AR(1) process
set.seed(1)
y<-10+arima.sim(model=list(ar=0.9),n=100)
# Fit on logarithmic scale
fit<-arima(log(y),c(1,0,0))
#Simulate one step ahead
set.seed(123)
y_101_log <- fit$coef[2]*(1-fit$coef[1]) +
fit$coef[1]*log(y[100]) + rnorm(n=1000,sd=sqrt(fit$sigma2))
y_101<-exp(y_101_log) #transform to natural scale
exp(mean(y_101_log)) # This is exp(E(log(y_101)))
[1] 5.86717 # Same as exp(predict(fit,n.ahead=1)$pred)
# differs bit because simulation
mean(y_101) # This is E(exp(log(y_101)))=E(y_101)
[1] 5.904633
# 95% Prediction intervals:
#Naive way:
pred<-predict(fit,n.ahead=1)
c(exp(pred$pred-1.96*pred$se),exp(pred$pred+1.96*pred$se))
pred$pred pred$pred
4.762880 7.268523
# Correct ones:
quantile(y_101,probs=c(0.025,0.975))
2.5% 97.5%
4.772363 7.329826
Run Code Online (Sandbox Code Playgroud)
这也为您的问题提供了一般意义上的解决方案: