Search code examples
matlabtime-serieslibsvmforecasting

Direct forecast using epsilion-SVR


Is it possible to predict directly into the future using epsilion-svr?

My dataset is a univariate time series and has per line a record in this format:

Y(t-W), Y(t-W+1), ..., Y(t), Y(t+PH)

W is the number of time steps to consider

PH controls how many steps into the future I want to forecast.

Is this valid for PH > 1?


Solution

  • A Support-Vector-Regression based predictor is used for exactly that.

    It shall stand for PH >= 1.

    The value of epsilon in the epsilon-SVR model specifies the epsilon-tube, within which no penalty is associated in the training loss function with points predicted within a distance epsilon from the actual value Y(t).

    model = svmtrain( Y_targets,      %% Mx1 vector of the training data target response values,
                      X_trainSamples, %% MxN matrix of the training samples, having N features, where N = W + 1
                      param           %% ref. below
                      );
    

    param is a string which specifies the model parameters.

    For Regression, a typical parameter string may look like, ‘-s 3 -t 2 -c 20 -g 64 -p 1’ where

    -s svm type,        3 for epsilon-SVR
    -t kernel type,     2 for radial basis function
    -c cost parameter C of epsilon-SVR
    -g width parameter gamma for RBF kernel
    -p epsilon for epsilon-SVR
    

    Anyway, check your SVR-implementation detailed documentation on further details.