如果相关,如何从另一个时间序列预测一个时间序列


14

一年多来,我一直在试图解决这一问题,但进展不大。它是我正在做的一个研究项目的一部分,但我将用我编写​​的一个故事示例进行说明,因为问题的实际范围有点令人困惑(视线跟踪)。

您是一架追踪穿越海洋的敌舰的飞机,因此您已收集了该舰的一系列(x,y,time)坐标。您知道,一艘隐藏的潜艇会随船一起航行以保护它,但是尽管它们的位置之间存在关联,但潜艇经常会从船上滑落,因此虽然它通常在船的附近,但是它也可能在船的另一侧世界偶尔。您想预测潜艇的路径,但不幸的是,它对您而言是隐藏的。

但是在4月份的一个月中,您会注意到潜艇忘记隐藏自己,因此您在进行1000次航行时都对潜艇和船只具有一系列坐标。使用这些数据,您想建立一个模型,以仅考虑船的运动来预测隐藏式潜艇的路径。天真的基准就是说“潜艇位置猜测=”船的当前位置”,但是从4月份可见潜艇的数据中,您会注意到潜艇有可能稍微领先于船舶,因此“潜艇位置“猜测= 1分钟内的位置”是一个更好的估计。此外,4月份的数据显示,当船舶停泊在水中一段较长的时间时,潜艇很可能不在沿海水域巡逻。还有其他模式当然。

以四月份的数据作为训练数据,您将如何构建该模型来预测潜艇的航行路线?我当前的解决方案是临时线性回归,其中因素包括“行程时间”,“船的x坐标”,“船闲置1天”等,然后让R找出权重并进行交叉验证。 。但是,我真的很喜欢从四月份的数据自动生成这些因素的方法。另外,使用序列或时间的模型会很好,因为线性回归不适用,而且我认为这很重要。

感谢您通读所有内容,我很乐意澄清所有内容。


5
一种可能更容易构建模型的方法是使用极坐标而不是笛卡尔坐标。如果将原点设置为与敌方舰船相等,并使该舰始终向北,那么您可以说类似在时间处的潜艇位置为r t jθ t j),其中r为距离和θ为角度。现在,我们期待| θ | 之所以要变小,是因为潜艇通常在船的前方,并且r应该很小但不接近零(否则潜艇会撞到船上)。你也有ŤĴ[RŤĴθŤĴ[Rθ|θ|[R对于停顿的船只越来越大。[R
概率

2
我打算提出一些与概率逻辑类似的东西-您需要一个变量,即船与潜艇之间的距离。关于极坐标的好处是,还包括此信息以及方向性。然后,您可以尝试对该新变量进行线性回归。
学习者

感谢您的建议。我在极坐标中苦苦挣扎的一件事是,如果我尝试预测角度变量,它会“循环”,所以0 == 360,这在预测角度上是没有意义的。有什么建议如何处理吗?
货船和潜艇

@probabilityislogic再多考虑一下之后,使用极坐标但使用sin(theta)而不是theta作为预测变量会有意义吗?尽管那样,它的行为更像是delta_y。
货船和潜艇

关于极坐标的使用,您可能需要阅读方向统计
fish鱼

Answers:


3

这是一种不使用任何“上下文”信息的方法,也就是说,它没有考虑到“某潜艇正在跟随一艘船”这一事实。另一方面,很容易开始:

表示为

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±10wiggle(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:

  1. DTREG (30 day evaluation license)
  2. Microsoft时间序列算法,是其SQL Server产品的一部分。我目前正在使用他们的180天评估版,易于使用。

这是SQL Server工具的屏幕截图(虚线部分是预测):

在此处输入图片说明

他们使用的一种算法称为ARIMA。为了学习它的工作原理,我做了一些谷歌搜索,发现了这本书:时间序列第一门课程(不用担心,您不需要遵循SAS。我不需要。)这是非常可读的。

您不必知道ARIMA如何使用这些工具,但是如果您有上下文,我认为它总是容易的,因为要设置“模型参数”等。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.