SVM regression on time series, is there a lag?

1 min read

It would be nice if we can predict the future. For example, give the following time series, can we predict the next point?

Let’s use SVM regression, which is said to be powerful. We use the immediate past data point as the predictor. We train our model with the first 70% of data. Blue and Black are actual data, and Red and Pink are predicted data.

The prediction in general matches the trend. But if you look closely, you see that the predicted data is always lagging the actual data by one time step. See a zoom in below.

Why does this lag come from?

Let’s plot the predictor and the predicted (i.e. the current data point vs the next data point):

It looks normal to me.

It took me a few hours to think about this. Well, the reason turns out to be simple. It’s because our SVM model is too simple (only taking the last data point as predictor): if a data has a increasing trend, then the SVM model, which only consider the immediate history, will give a high predicted value if the current data value is high, a low value if the current data value is low. As a consequence, the predicted value is actually more similar to the current value – and that gives a lag if compared to the actual data.

To reduce the lag, you can build a more powerful SVM model – say use the past 2 data points as the predictor. It will make a more reliable prediction – if the data is not random. See below comparison: you can easily see the lag is much smaller.

Source code can be downloaded here test_svr. Part of the source code is adapted from http://stackoverflow.com/questions/18300270/lag-in-time-series-regression-using-libsvm


Subscribe to my blog
Don't want to miss new papers in your field? Check out Stork we developed:

fNIRS Journal Club

We have an online fNIRS Journal Club in the end of each month. For the last journal club on March 21st, the presenter was...
Xu Cui
22 sec read

NIRS知识红包竞猜

想了解近红外fnirs技术的同学,可以考虑参加我们周六中午的知识竞猜活动。因为心仪科技的慷慨赞助,我们今年的红包比往年大几倍,从5元涨到20元,最后还有大题,奖励100元的大红包。欢迎大家踊跃参加,也欢迎邀请朋友来。 时间:北京时间本周六(2020/2/15)中午12点,在“NIRS知识红包竞猜”群。 不了解心仪的同学,可以趁此机会了解一下: 上海心仪电子科技有限公司是一家专业从事心理学、认知神经科学和脑科学产品技术服务商,目前公司代理了德国ANT便携式脑电、美国ISS公司的Imagent近红外、韩国OBELAB便携式近红外、MAG&More公司的PowerMag系列经颅磁,为脑功能成像和调控提供全套解决方案。
Xu Cui
2 sec read

After fNIRS experiment …

Xu Cui
13 sec read

8 Replies to “SVM regression on time series, is there a lag?”

  1. Hi Mr Cui,
    I have found the same situation that you described here in this post.
    I tried to add more data points before the day that I want to predict, despite that the lag is still there. How is possible that? I have to change in manual way some weights in the the SMV Function about these previous data in order to obtain a future value?

  2. Hi Xu Cui,

    1)Which part of your source codes correspond to the lag reduction?
    2)What if my data do not have a trend? If it’s random, can the code be used to reduce the lag?

Leave a Reply

Your email address will not be published. Required fields are marked *