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]
유효성 검사 세트와 예측 세트가 있습니다. 그러나 예측은 예상보다 훨씬 나쁩니다.
내가 받고있는 출력은-
예측 데이터 프레임-
유효성 검사 데이터 프레임-
보시다시피 예측은 예상과는 거리가 멀다는 것을 알 수 있습니다. 누구나 정확성을 향상시킬 수있는 방법을 조언 해 줄 수 있습니까? 또한 모델을 전체 데이터에 맞추고 예측을 인쇄하면 새 달이 시작되었다는 것을 고려하지 않으므로 예측합니다. 여기에 어떻게 통합 할 수 있습니까? 도움을 주시면 감사하겠습니다.
편집하다
데이터 세트에 연결- 데이터 세트
감사
답변
정확성을 높이는 한 가지 방법은 VAR 설명서 페이지에서 제안한대로 각 변수의 자기 상관을 살펴 보는 것입니다.
https://www.statsmodels.org/dev/vector_ar.html
특정 상관에 대한 자기 상관 값이 클수록이 지연이 프로세스에 더 유용합니다.
또 다른 좋은 아이디어는 AIC 기준과 BIC 기준을보고 정확성을 확인하는 것입니다 (위의 동일한 링크에 사용 예가 있음). 값이 작을수록 실제 추정량을 찾았을 가능성이 더 큽니다.
이런 방식으로, 자기 회귀 모델의 순서를 다양하게 할 수 있으며 함께 분석 된 최저 AIC 및 BIC를 제공하는 모델을 볼 수 있습니다. AIC에서 최상의 모형이 3의 지연을 나타내고 BIC가 최상의 모형의 지연이 5임을 나타내는 경우, 3,4 및 5의 값을 분석하여 최상의 결과가있는 모형을 확인해야합니다.
가장 좋은 시나리오는 더 많은 데이터를 보유하는 것이지만 (3 개월은 많지 않음) 이러한 접근 방식이 도움이되는지 확인할 수 있습니다.