predict.far: Forecasting of FARX(1) model

View source: R/far.R

predict.farR Documentation

Forecasting of FARX(1) model

Description

Forecasting using FAR(1) or FARX(1) model

Usage

## S3 method for class 'far'
predict(object, ..., newdata=NULL, label, na.rm=TRUE, positive=FALSE)

Arguments

object

A far object result of the far function.

newdata

A data matrix (one column for each observation) used to predict the FAR(1) model from the values in newdata, or NULL to predict one step forward with the data in object.

label

A vector of character giving the dates to associate to the predicted observations.

na.rm

Logical. Does the n.a. need to be removed.

positive

Logical. Does the result must be forced to positive values.

...

Additional arguments.

Details

This function computes one step forward prediction for a far model.

Use the newdata option to input the past values, and the label option value to define the labels for the new observations. Notices that the output as the same length as newdata in the case of a FAR model, and the length of newdata minus one in the case of a FARX model. This is due to the time shift of the exogeneous variable: Xt+1 and Yt are used in the computation of Ypt+1.

In some special context, the user may need to suppress the na.rm observations with the na.rm option, or force the prediction to be positive with the positive option (in this case the result will be maximum of 0 and the predicted value).

Value

A fdata object.

Author(s)

J. Damon

See Also

far, pred.persist, predict.kerfon.

Examples

  # Simulation of a FARX process
  data1 <- simul.farx(m=10,n=400,base=base.simul.far(20,5),
                base.exo=base.simul.far(20,5),
                d.a=matrix(c(0.5,0),nrow=1,ncol=2),
                alpha.conj=matrix(c(0.2,0),nrow=1,ncol=2),
                d.rho=diag(c(0.45,0.90,0.34,0.45)),
                alpha=diag(c(0.5,0.23,0.018)),
                d.rho.exo=diag(c(0.45,0.90,0.34,0.45)),
                cst1=0.0)

  # Cross validation (joined and separate)
  model1.cv <- far.cv(data=data1, y="X", x="Z", kn=8, ncv=10, cvcrit="X",
                center=FALSE, na.rm=FALSE, joined=TRUE)
  model2.cv <- far.cv(data=data1, y="X", x="Z", kn=c(4,4), ncv=10, cvcrit="X",
                center=FALSE, na.rm=FALSE, joined=FALSE)
  print(model1.cv)
  print(model2.cv)
  k1 <- model1.cv$minL2[1]
  k2 <- model2.cv$minL2[1:2]

  # Modelization of the FARX process (joined and separate)
  model1 <- far(data=data1, y="X", x="Z", kn=k1,
                center=FALSE, na.rm=FALSE, joined=TRUE)
  model2 <- far(data=data1, y="X", x="Z", kn=k2,
                center=FALSE, na.rm=FALSE, joined=FALSE)

  # Predicting values
  pred1 <- predict(model1,newdata=data1)
  pred2 <- predict(model2,newdata=data1)
  # Persistence
  persist1 <- pred.persist(select.fdata(data1,date=1:399),x="X")
  # Real values
  real1 <- select.fdata(data1,date=2:400)

  errors0 <- persist1[[1]]-real1[[1]]
  errors1 <- pred1[[1]]-real1[[1]]
  errors2 <- pred2[[1]]-real1[[1]]

  # Norm of observations
  summary(real1)
  # Persistence
  summary(as.fdata(errors0))
  # FARX models
  summary(as.fdata(errors1))
  summary(as.fdata(errors2))

far documentation built on Aug. 14, 2022, 1:06 a.m.