2016-08-20 11 views
-1

나는 8 개의 시계열을 포함하는 행렬을 가지고있다.파이썬 회귀 (시계열)

시간이 t 일 때의 값과 시간이 t-1, t-2,..., t-k 일 때 값을 구합니다.

은 선형 모델 sk.linear_model.LinearRegression 및 시계열 될 편의상 가정하자 : X=np.random.normal(0, 1, (1000, 8))

가 어떻게 X(t)을 추정하기 이전 k 값을 사용하는 코드를 작성할 수있다? 나는 또한 X(t)을 사용하여 X(t+1)을 예측하려고합니다.

+0

지금까지 해보신 것은 무엇입니까? 견본 입력 및 출력 스 니펫을 제공하십시오. – albert

+0

귀하의 k는 얼마입니까? 그리고 귀하의 마지막 시간 가치가 시스템 연장까지 얼마나 남았습니까? – bpachev

답변

0

짧은 대답은 파이썬으로 심각한 시계열 분석을 수행하려는 경우 statsmodels.tsa과 같은 특정 libaray를 사용해야한다는 것입니다.

그러나 sklearn 사용에 대한 주장이 있다면 모델에 맞게 초기 교육 세트를 설정해야합니다. 다음 점을 예측하기 위해 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 메소드에 전달하기 만하면됩니다.