시계열 예측을 위해 데이터 세트를 분할하는 방법은 무엇입니까?


22

제과점의 과거 판매 데이터가 있습니다 (매일, 3 년 이상). 이제 주중, 날씨 변수 등과 같은 기능을 사용하여 향후 판매를 예측하는 모델을 만들고 싶습니다.

모델 피팅 및 평가를 위해 데이터 세트를 어떻게 분할해야합니까?

  1. 시간순으로 기차 / 검증 / 테스트 분할해야합니까?
  2. 그런 다음 열차 및 검증 세트로 하이퍼 파라미터 튜닝을 수행합니까?
  3. (중첩 된) 교차 검증이 시계열 문제에 대한 나쁜 전략입니까?


편집

다음은 @ ene100에서 제안한 URL을 따른 후 나온 몇 가지 링크입니다.

  • 이론실제 에서 "롤링 예측 원점"을 설명하는 Rob Hyndman (R 코드 포함)
  • 롤링 예측 원점에 대한 다른 용어 는 " 도면 앞으로 최적화"( 여기 또는 여기 ), "롤링 지평"또는 "이동 원점"입니다.
  • “이러한 기술에 대한 수요와 반성이 불분명하기 때문에”( 여기에 설명되어 있음 ) 가까운 시일 내에 이러한 기술이 사이키 학습에 통합되지 않는 것 같습니다 .

그리고 이것은 시계열 교차 검증에 대한 또 다른 제안입니다.

답변:


8

Rob Hyndman의 블로그 링크에는 다음과 같은 유용한 정보가 있습니다. http://robjhyndman.com/hyndsight/crossvalidation/

내 경험상 데이터를 연대기 세트 (연도 1, 2 년 등)로 나누고 시간이 지남에 따라 매개 변수 안정성을 확인하는 것은 강력한 것을 만드는 데 매우 유용합니다. 또한 데이터가 계절적이거나 그룹 (예 : 지리적 영역)으로 분리 할 수있는 또 다른 확실한 방법이있는 경우 해당 하위 그룹의 매개 변수 안정성을 확인하면 모델의 강도와 적합 여부를 결정하는 데 도움이 될 수 있습니다 별도의 데이터 범주에 대한 별도의 모델.

통계 테스트는 유용 할 수 있지만 최종 결과는 "냄새 테스트"를 통과해야합니다.


3

1) 기술적으로 말하면 AIC 및 유사한 기준을 사용하면 과적 합을 피할 수 있으므로 샘플에서 테스트 할 필요가 없습니다.

3) 표준 CV를 수행하는 방법을 모르겠습니다. 일부 결 측값으로 시계열 모델을 훈련한다는 의미이기 때문입니다. 대신 훈련을 위해 롤링 창을 사용 해보고 창을 따르는 하나 이상의 지점에서 응답을 예측하십시오.


3
시계열의 AIC는 종종 한 기간 앞서 예측 오류를 기반으로합니다. 동적 n- 기간 선행 예측 성능에 대해서는 많이 설명하지 않습니다. 따라서 충분하지 않습니다.
Aksakal

당신은 참조를 제공 할 수 있습니까?
James

1

나는 종종 베이지안 관점에서 문제에 접근합니다. 이 경우 과대 평가를 전략으로 사용하는 것이 좋습니다 . 이는 데이터에 대한 가능성을 설정하지만 일부 결과는 생략 함을 의미합니다. 해당 값을 결 측값으로 취급하고 해당 공변량을 사용하여 결측 결과를 모델링합니다. 그런 다음 데이터가 생략되는 방향으로 회전하십시오. 예를 들어 10 배 CV 절차 내에서이 작업을 수행 할 수 있습니다.

이는 샘플링 프로그램 내에서 구현 될 때 각 단계에서 생략 된 데이터 값 (매개 변수와 함께)의 후보 값을 도출하고 제안 된 모델과의 가능성을 평가 함을 의미합니다. 정상 성을 달성 한 후에는 예측 오차를 평가하는 데 사용할 수있는 모형에 대해 반 실제 표본 값을 얻습니다 .이 표본은 "이 값이없는 경우 내 모형은 어떻게 보였을까요?"라는 질문에 대답합니다. 이러한 예측은 계수 추정치에 존재하는 불확실성에서 불확실성을 상속하므로 2010 년 3 월 1 일과 같이 예측 된 모든 값을 함께 수집하면 해당 날짜에 대한 예측 분포 를 갖게됩니다.

이러한 값이 샘플링 된다는 것은 모든 단계에서 샘플링 된 결과 값을 사용할 수 있기 때문에 전체 데이터 시리즈를 사용할 수있는 (예 : 이동 평균)에 따라 오류 항을 계속 사용할 수 있음을 의미합니다.


1

귀하의 경우에는 많은 옵션이 없습니다. 빵집이 하나 뿐인 것 같습니다. 따라서 샘플 외부 테스트를 실행하는 유일한 방법은 시간 분리입니다. 즉, 훈련 샘플은 처음부터 최근 시점까지, 그리고 해당 시점부터 오늘까지의 기간입니다.

와이=에프()+ε에프()와이에스<


유망한 소리. y_s <= t에서 아래 첨자 "s"는 무엇입니까?
tobip

와이에스에스<

제 빵집 판매는 외인성 요인에 달려 있다고 생각합니다. 예를 들어 주식 가격과 같이 엄격하게 역동적 인 시계열 모델이라고 생각하지 않습니다. 내 데이터에서 일반적인 5 중 CV의 평균 평균 오류는 여기에 설명 된대로 연대의 순서를 유지하는 5 중 시계열 CV보다 약간 더 큽니다 (예 : ExtraTreesRegressor의 경우 30.7 vs. 33.8). . 이것이 동적 모델을 실험적으로 테스트하는 올바른 방법인지 확실하지 않습니까?
2'15

ARIMA와 같은 것은 역동적 인 모델입니다. 판매는 일반적으로 지속됩니다. 즉, 오늘의 판매는 어제의 판매와 같습니다.
Aksakal

0

면책 조항 : 여기에 설명 된 방법 은 문학을 철저히 읽은 것이 아닙니다 . 데이터 소스의 비균질 존재에 문제가있는 비교적 짧은 입력 창 길이 (더 긴 시간 범위에 대한 종속성이 없거나 낮을 것으로 가정)가있는 다변량 시계열 분석을 위해 K- 폴드 CV 방법을 개선하는 것이 최선의 시도입니다. 데이터 수집 기간.

먼저 일련의 관측치가 window_length 길이의 일련의 관측 이력 창으로 변환되고 창 사이에 1 단계가 있습니다 (보폭 없음). 그런 다음 "샤드"로 창 데이터 세트를 window_length보다 여러 배 더 길지만 (모델 인스턴스 수보다 많음) 샤드 (카드 놀이와 같은)를 유효성 검사 데이터로 처리하여 모델 인스턴스를 분리하는 것이 원칙입니다. 모델을보다 명확하게 분리하기 위해 각 샤드 시작 부분에있는 window_length의 격리 창은 모든 교육에서 제외됩니다.

모델은 자체 샤드를 제외한 모든 샤드에 대해 학습되며 자체 샤드에서 유효성 검증이 수행됩니다. 모델의 수집 / 앙상블의 유효성 검사는 모든 샤드에 대한 유효성 검사 오류를 합산하여 수행됩니다. 여기서 각 샤드는 해당 하위 모델에 의해 처리됩니다. 보이지 않는 데이터에 대한 테스트는 훈련 된 모든 모델의 평균 출력 (또는 다른 적절한 조합)을 사용하여 수행 할 수 있습니다.

이 방법은 전체 데이터 수집 기간 동안 동일한 시스템 (및 데이터 소스)에 대한 종속성을 줄이기 위해 고안되었습니다. 또한 데이터의 모든 거친 부분에 모델에 동일한 영향을 주도록 고안되었습니다. 검역소가 훈련에 해를 끼치 지 않도록하려면 샤드 길이가 데이터에 나타나는 기간 (예 : 매일, 매주 및 매년주기)과 너무 잘 맞지 않는 것이 중요합니다.

앙상블 모델은 완전히 새로운 데이터를 잘못 처리 할 수 ​​있습니다. (아직 모르겠습니다.)

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