这是一种不使用任何“上下文”信息的方法,也就是说,它没有考虑到“某潜艇正在跟随一艘船”这一事实。另一方面,很容易开始:
表示为
xsub(t),ysub(t)
xship(t),yship(t)
t
xdist(t)=xship(t)−xsub(t)
ydist(t)=yship(t)−ysub(t)
My suggestion is that you predict each of these separately (you can tie them together later).
Let's take a moment to picture what these look like. Let's focus on the x-coordinate, and let's say that the ship is moving towards the right with the sub following behind it. Suppose the sub is around 100 meters behind the ship, with a deviation of say 10 meters.
Then
xdist(t)=100±10⋅wiggle(t)
You could then model the "wiggle" function as a Gaussian white-noise variable having zero mean and unit variance.
Now (still focussing on the x coordinate, the story for y is the same) if the wiggle function were white noise, you would be able to compute the mean μ and the standard deviation σ of the series xdist and write
xdist(t)=μ+σ⋅Wx(t)
Since you have actual data, you can compute the time-series Wx(t) and see if it follows a Gaussian (i.e. Normal) distribution. If it does, or even if it is any distribution you recognize, you could then generate values and make predictions for xdist.
Another strategy people employ (which I think will work for you) is that they break up their series into
Polynomial base + Cyclic pattern + Bounded randomness
In the case of a submarine and a ship, the polynomial part would probably be constant and the cyclic part a sum of sines and cosines (from the waves of the ocean...). This may not be the case for eye-tracking.
There are tools which can figure this out for you. Here are two that I know of:
- DTREG (30 day evaluation license)
- Microsoft时间序列算法,是其SQL Server产品的一部分。我目前正在使用他们的180天评估版,易于使用。
这是SQL Server工具的屏幕截图(虚线部分是预测):
他们使用的一种算法称为ARIMA。为了学习它的工作原理,我做了一些谷歌搜索,发现了这本书:时间序列第一门课程(不用担心,您不需要遵循SAS。我不需要。)这是非常可读的。
您不必知道ARIMA如何使用这些工具,但是如果您有上下文,我认为它总是容易的,因为要设置“模型参数”等。