我有这个时间序列对象
> dftsEtab
Time Series:
Start = c(1, 1)
End = c(2, 13)
Frequency = 13
[1] 152 118 80 74 84 92 88 78 66 72 54 50 49 41 22 17 12 15 15 8
[21] 6 8 13 15 6 8
当我运行 holtwinters 函数时,它出现错误
> HWEtab <- HoltWinters(dftsEtab)
Error in `-.default`(x, trend) : non-numeric argument to binary operator
我之前用过这个函数,时间序列非常相似,没有问题
> dfts
Time Series:
Start = c(1, 1)
End = c(2, 13)
Frequency = 13
[1] 21633 21756 21343 21362 21469 22197 21757 21066 20743 20649 20123 18908 17512
[14] 17249 15672 14709 14648 14642 14296 13931 13539 13481 14180 13399 12221 11861
> HW1 <- HoltWinters(dfts)
dftsEtab
具有非数值。要复制此问题,请使用以下数值向量 d
d <- c(152, 118, 80, 74, 84, 92, 88, 78, 66, 72, 54, 50, 49, 41, 22,
17, 12, 15, 15, 8, 6, 8, 13, 15, 6, 8)
并运行以下代码:
char_d = ts(as.character(d),c(1,1),c(2,13),frequency = 13)
HoltWinters(char_d)
输出
Error in `-.default`(x, trend) : non-numeric argument to binary operator
如果您将输入向量修复为数字,如上面的
d
,那么您应该不会有问题。
d_num = ts(d, c(1,1),c(2,13),13)
HoltWinters(d_num)
输出:
Holt-Winters exponential smoothing with trend and additive seasonal component.
Call:
HoltWinters(x = d_num)
Smoothing parameters:
alpha: 0.9454705
beta : 0
gamma: 0.1
Coefficients:
[,1]
a 1.8889398
b -5.1274725
s1 3.9396053
s2 -9.3188186
s3 -9.8403320
s4 -10.3013657
s5 -4.2929491
s6 -0.9099720
s7 1.7095990
s8 6.7604531
s9 2.2201980
s10 13.0024964
s11 -0.1168233
s12 1.0576862
s13 6.0137687