2016-08-20 7 views
-1

私は8つの時系列を含む行列を持っています。時系列のPython回帰

時刻tの値と時刻t-1, t-2,..., t-kの値の間のモデルを作成したいとします。

は線形モデルsk.linear_model.LinearRegressionと時系列があること簡単にするためとしましょう:X=np.random.normal(0, 1, (1000, 8))

どのように私はX(t)を推定するために、前k値を使用してコードを書くことができますか?私はまた、X(t+1)を予測するために推定されたX(t)を使用したいと思います。

+0

これまでに何を試しましたか?サンプルの入力と出力スニペットを入力してください。 – albert

+0

あなたのkはどれくらいの大きさで、システムを延長する予定ですか? – bpachev

答えて

0

短い答えは、Pythonで深刻な時系列解析を行いたい場合は、おそらくstatsmodels.tsaのような特定のlibarayを使うべきです。

しかし、あなたがsklearnの使用を強く求めている場合は、モデルに合わせて初期トレーニングセットを設定する必要があります。次の1つを予測するためにk点を使用していて、8次元の時系列を持つ場合は、トレーニングセットのk * 8のフィーチャと8つのターゲットで終わる必要があります。ここで所望のように、それぞれの機能、ラベルの形状のため

(997, 24) (997, 8) 

を出力3.

import numpy as np 
k = 3 #example 
n = 1000 
num_series = 8 
raw_x = np.random.normal(0, 1, (n, num_series)) 
y = raw_x[k:] 
X = np.empty((n-k, k*num_series)) 
for i in xrange(n-k): 
    X[i] = np.ravel(raw_x[i:i+k]) 
print X.shape, y.shape 

にk個のセットを有するサンプルです。

このxとyは、複数のターゲットをサポートするSklearnのモデル(LinearRegressionを含む)に渡すことができます。将来のポイントを予測したい場合は、適合モデルのpredictメソッドに適切なデータを渡すだけです。