ets:ets(时间序列,模型= "MAM")中的错误:非季节性数据

ets: Error in ets(timeseries, model = "MAM") : Nonseasonal data

我正在尝试使用指数平滑方法创建预测,但出现错误 "nonseasonal data"。这显然不是真的——见下面的代码。 为什么会出现此错误?我应该使用不同的函数(它应该能够执行简单、双重、阻尼趋势、季节性、Winters 方法)吗?

library(forecast)

timelen<-48 # use 48 months
dates<-seq(from=as.Date("2008/1/1"), by="month", length.out=timelen)

# create seasonal data
time<-seq(1,timelen)
season<-sin(2*pi*time/12)
constant<-40
noise<-rnorm(timelen,mean=0,sd=0.1)
trend<-time*0.01
values<-constant+season+trend+noise

# create time series object
timeseries<-as.ts(x=values,start=min(dates),end=max(dates),frequency=1)
plot(timeseries)

# forecast MAM
ets<-ets(timeseries,model="MAM") # ANN works, why MAM not?
ets.forecast<-forecast(ets,h=24,level=0.9)
plot(ets.forecast)

谢谢&问候

您应该使用 ts 从数值向量创建时间序列。有关详细信息,请参阅帮助文件。

您没有正确指定开始值和结束值。 将频率设置为 1 不是 有效的季节性,这与根本没有季节性相同。

尝试:

timeseries <- ts(data=values, frequency=12)
ets <- ets(timeseries, model="MAM")
print(ets)
#### ETS(M,A,M) 
#### Call:
####   ets(y = timeseries, model = "MAM") 
####   ...

您评论中的问题,为什么 ANN 起作用是因为第三个 N 意味着没有季节性,因此即使使用非季节性时间序列也可以计算模型。