3 개월 데이터 세트로 다변량 시계열 예측


12

3 개월 분량의 데이터 (매일에 해당하는 각 행)가 생성되었으며 동일한 것에 대해 다변량 시계열 분석을 수행하려고합니다.

사용 가능한 열은-

Date    Capacity_booked Total_Bookings  Total_Searches  %Variation

각 날짜에는 데이터 세트에 1 개의 항목이 있고 3 개월의 데이터가 있으며 다변량 시계열 모델을 사용하여 다른 변수도 예측하려고합니다.

지금까지 이것은 나의 시도였으며 기사를 읽음으로써 같은 것을 이루려고 노력했습니다.

나는 똑같이했다-

df['Date'] = pd.to_datetime(Date , format = '%d/%m/%Y')

data = df.drop(['Date'], axis=1)

data.index = df.Date

from statsmodels.tsa.vector_ar.vecm import coint_johansen
johan_test_temp = data
coint_johansen(johan_test_temp,-1,1).eig



#creating the train and validation set
train = data[:int(0.8*(len(data)))]
valid = data[int(0.8*(len(data))):]

freq=train.index.inferred_freq

from statsmodels.tsa.vector_ar.var_model import VAR

model = VAR(endog=train,freq=train.index.inferred_freq)
model_fit = model.fit()


# make prediction on validation
prediction = model_fit.forecast(model_fit.data, steps=len(valid))

cols = data.columns

pred = pd.DataFrame(index=range(0,len(prediction)),columns=[cols])
    for j in range(0,4):
        for i in range(0, len(prediction)):
           pred.iloc[i][j] = prediction[i][j]

유효성 검사 세트와 예측 세트가 있습니다. 그러나 예측은 예상보다 훨씬 나쁩니다.

데이터 세트의 도표는-1입니다. % 변동 여기에 이미지 설명을 입력하십시오

  1. 수용 인원수 여기에 이미지 설명을 입력하십시오

  2. 총 예약 및 검색 여기에 이미지 설명을 입력하십시오

내가 받고있는 출력은-

예측 데이터 프레임-

여기에 이미지 설명을 입력하십시오

유효성 검사 데이터 프레임-

여기에 이미지 설명을 입력하십시오

보시다시피 예측은 예상과는 거리가 멀다는 것을 알 수 있습니다. 누구나 정확성을 향상시킬 수있는 방법을 조언 해 줄 수 있습니까? 또한 모델을 전체 데이터에 맞추고 예측을 인쇄하면 새 달이 시작되었다는 것을 고려하지 않으므로 예측합니다. 여기에 어떻게 통합 할 수 있습니까? 도움을 주시면 감사하겠습니다.

편집하다

데이터 세트에 연결- 데이터 세트

감사


당신은 수업의 표준을 게시 할 수 있습니까
Swarathesh Addanki

@SwaratheshAddanki 질문에 데이터 세트에 대한 링크를 추가했습니다 ... 살펴볼 수 있습니다.
dper

"집에서 만든"기능을 사용하여 고전적인 기계 학습 알고리즘을 사용하려고 시도 할 수 있습니다. 예를 들어 지난 7 일을 사용하여 하루 동안 퍼셉트론, SVM 또는 랜덤 포레스트를 훈련 할 수 있습니다 (4 * 7 기능으로 한 행 만들기). 지난 주 같은 요일 (수요일을 예측하려는 경우 수요일)과 지난 달의 모든 평균 요일을 고려할 수도 있습니다. 또한보다 현실의 성능을 측정해야하기 위해 교차 유효성 검사를 사용
politinsa

@politinsa 당신은 같은 예제를 공유 할 수 있습니까?
dper December

1
좋은 모델에 맞는 데이터가 충분하지 않다고 생각합니다. 주요 기능은 이번 달 말에 급격히 증가한 것 같습니다. 데이터 세트에서 이러한 점프 중 두 개만 볼 수 있으며, 두 번의 관찰만으로 일반적인 점프의 모양에 대해 많은 것을 배울 수 없습니다. 마찬가지로, 달 동안의 성장은 모델이 곡선의 모양을 묘사 할 수있을 정도로 규칙적으로 보이지만, 전형적인 달 동안 값이 얼마나 많이 자랄 지에 대한 정보는 거의 없습니다. 이를 감안할 때 "다음 달은 이전 달과 같습니다"라는 모델이 충분할까요?
jochen

답변:


1

정확성을 높이는 한 가지 방법은 VAR 설명서 페이지에서 제안한대로 각 변수의 자기 상관을 살펴 보는 것입니다.

https://www.statsmodels.org/dev/vector_ar.html

특정 상관에 대한 자기 상관 값이 클수록이 지연이 프로세스에 더 유용합니다.

또 다른 좋은 아이디어는 AIC 기준과 BIC 기준을보고 정확성을 확인하는 것입니다 (위의 동일한 링크에 사용 예가 있음). 값이 작을수록 실제 추정량을 찾았을 가능성이 더 큽니다.

이런 방식으로, 자기 회귀 모델의 순서를 다양하게 할 수 있으며 함께 분석 된 최저 AIC 및 BIC를 제공하는 모델을 볼 수 있습니다. AIC에서 최상의 모형이 3의 지연을 나타내고 BIC가 최상의 모형의 지연이 5임을 나타내는 경우, 3,4 및 5의 값을 분석하여 최상의 결과가있는 모형을 확인해야합니다.

가장 좋은 시나리오는 더 많은 데이터를 보유하는 것이지만 (3 개월은 많지 않음) 이러한 접근 방식이 도움이되는지 확인할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.