R动态方程

时间:2017-04-27 13:40:45

标签: r dynamic time-series

使用R并通过具有因变量作为独立(解释性,右侧)变量的最小二乘估计一个简单方程,我想预测样本并在样本期间使用因变量预测作为前进的每一步都是滞后的。 即,我想将y的预测扩展到数据周期之外

 a <- lm( y ~  x + lag(y,1), data= dset1)
 b <- forecast(a,newdata=dset2)

其中dset2具有额外x个变量的完整周期,但不具有滞后y。

以下是使用AirPassengers数据集的示例,其中dset2是使用一些丢失的ap数据创建的。下面的结果显示只有第143行被填充而不是144,因为预测没有143滞后。 我查看了dyn dynlm并预测了包,但似乎无法使用模型类型。 (我不想重述为ARMA或VAR)

什么软件包可以很容易地做到这一点,或者我是否错误地使用了预测? 我可以一次循环并领先一段时间,但不要这样做。

##Example case using airline data
data("AirPassengers", package = "datasets")
ap <- log(AirPassengers)
ap <- as.ts(ap)
d1 <- data.frame(ap, index= as.Date(ap))
m1 <- lm(ap ~ lag(ap,1), data=d1)
m2 <- dynlm(ap ~ lag(ap,1), data=d1)
m3 <- dyn(lm(ap ~ lag(ap,1), data=d1))
summary(m3)
##Neither  lm or dyn or dynlm obects worked as I want

## Try forecast missing values, 2 steps, rows 143 and 144
d2 <- d1
d2$apx = d2$ap
d2$apx[143:144]= NA
mx <- lm(apx ~ lag(apx,1), data=d2)
b <- forecast(mx,newdata=d2)

结果:

> b
 Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
   1             NA       NA       NA       NA       NA
   2       4.756850 4.619213 4.894488 4.545513 4.968188
   3       4.807218 4.669783 4.944653 4.596191 5.018245
  ....
 140       6.411559 6.273546 6.549572 6.199644 6.623474
 141       6.386407 6.248507 6.524306 6.174667 6.598146
 142       6.216154 6.078941 6.353368 6.005467 6.426841
 143       6.122453 5.985553 6.259354 5.912247 6.332659
 144             NA       NA       NA       NA       NA

其他像对象一样产生预测错误

mx <- dynlm(apx ~ lag(apx,1), data=d2)
b <- forecast(mx,newdata=d2)
  

forecast.lm中的错误(mx,newdata = d2):无效的类型/长度   向量分配中的(符号/ 0)

mx <- dyn(lm(apx ~ lag(apx,1), data=d2))
b <- forecast(mx,newdata=d2)
  

predict.lm中的错误(object,newdata = newdata,se.fit = TRUE,interval   =“预测”,:形式参数“se.fit”与多个实际参数匹配

0 个答案:

没有答案