使用 nnetar 建模(确定性)趋势
Modelling (deterministic) trend with nnetar
你如何处理 nnetar 的趋势?这个例子的最佳预测方法是什么:
library(timeDate)
library(forecast)
library(lattice)
library(ggplot2)
library(caret)
set.seed(1234)
T <- seq(0,100,length=100)
Y <- 10 + 2*T + rnorm(100)
fit <- nnetar(Y)
plot(forecast(fit,h=30))
points(1:length(Y),fitted(fit),type="l",col='red')
谢谢&亲切的问候
你有两个选择。
您可以告诉 nnetar
使用更多订单(如果您打印 fit
您会看到它在您的示例中只使用了一个延迟)。
fit <- nnetar(Y, p=5)
plot(forecast(fit,h=30))
您可以使用 xreg
参数将趋势作为外部回归变量直接添加到模型中。请注意,您还需要为预测提供该参数(我给出的值并不完全适合您的示例,但对于说明目的来说已经足够好了)。
fit <- nnetar(Y, xreg=T)
plot(forecast(fit,xreg=101:130, h=30))
对于您的示例问题,两者都可行。虽然更一般地说,如果你知道趋势是什么,第二个选项可能是最好的。
顺便说一下,请记住 R uses capital "T" as shorthand for TRUE
("F" 与 FALSE
类似),因此覆盖它可能会导致一些混乱或引发错误。例如,它让我在写完 xreg=T
.
后再次考虑
你如何处理 nnetar 的趋势?这个例子的最佳预测方法是什么:
library(timeDate)
library(forecast)
library(lattice)
library(ggplot2)
library(caret)
set.seed(1234)
T <- seq(0,100,length=100)
Y <- 10 + 2*T + rnorm(100)
fit <- nnetar(Y)
plot(forecast(fit,h=30))
points(1:length(Y),fitted(fit),type="l",col='red')
谢谢&亲切的问候
你有两个选择。
您可以告诉
nnetar
使用更多订单(如果您打印fit
您会看到它在您的示例中只使用了一个延迟)。fit <- nnetar(Y, p=5) plot(forecast(fit,h=30))
您可以使用
xreg
参数将趋势作为外部回归变量直接添加到模型中。请注意,您还需要为预测提供该参数(我给出的值并不完全适合您的示例,但对于说明目的来说已经足够好了)。fit <- nnetar(Y, xreg=T) plot(forecast(fit,xreg=101:130, h=30))
对于您的示例问题,两者都可行。虽然更一般地说,如果你知道趋势是什么,第二个选项可能是最好的。
顺便说一下,请记住 R uses capital "T" as shorthand for TRUE
("F" 与 FALSE
类似),因此覆盖它可能会导致一些混乱或引发错误。例如,它让我在写完 xreg=T
.