여러 시리즈를 동시에 처리하는 방법?


14

25 개 기간 동안 여러 제품 (1200 개 제품)의 수요를 포함한 데이터 세트가 있으며 다음 기간 동안 각 제품의 수요를 예측해야합니다. 처음에는 ARIMA를 사용하고 각 제품에 대한 모델을 학습하고 싶었지만 제품 수와 (p, d, q) 매개 변수 조정으로 인해 시간이 많이 걸리고 실용적이지 않습니다. 이전 요구가 독립 변수 인 경우 회귀를 사용하는 것이 좋습니다 (자동 회귀)?

모든 1200 개 제품의 수요 예측을 위해 단일 모델을 훈련시키는 방법이 있는지 알 수 있습니까? 파이썬을 사용하고 있기 때문에 파이썬으로 라이브러리를 제안 할 수 있다면 고맙겠습니다.


3
내가 아는 고차원 시계열 분석을위한 가장 진보 된 패키지 bigtime는 R에 있습니다. 아마도 파이썬에서 R을 호출하여 사용할 수 있습니다.
Richard Hardy

답변:


11

일반적으로 시계열이 여러 개인 경우 일종의 벡터 기반 모델을 사용하여 모두 동시에 모델링합니다. 이 목적을위한 ARIMA 모델의 자연스러운 확장은 VARIMA (Vector ARIMA) 모델입니다. 1200 개의 시계열 이 있다는 사실 은 모든 시계열 변수 쌍에 대해 자유 매개 변수를 처리 할 수 ​​없으므로 모델의 상호 상관 용어에 대한 일부 매개 변수 제한 사항을 지정해야 함을 의미합니다.

낮은 정도의 간단한 벡터 기반 모델 (예 : VAR, VMA, VARMA)로 시작하고 상호 상관을위한 간단한 매개 변수 제한을 제안합니다. 적어도 1 도의 지연에 대한 상호 상관을 포함하는 합리적인 모델을 찾은 다음 거기에서 이동하십시오. 이 연습에서는 벡터 기반 시계열 모델을 읽어야합니다. MTS패키지bigtimepacakage 의는 R또한이 패키지에 익숙하게 자신을 가치가있을 것입니다, 그래서 다변량 시계열 처리에 대한 몇 가지 기능이 있습니다.


내가 알고있는 고차원 시계열 분석을위한 가장 진보 된 패키지 bigtime는 R에 있습니다. 아는 MTS한 실제 작업 도구보다 교과서 예제를 더 많이 보여줍니다. 일부 다변량 예제는 계산 부담을 질식시키기 전에 3 차원 계열 만 처리 할 수 ​​있습니다.
Richard Hardy

@Richard Hardy : 감사합니다 --- 이것을 포함하도록 답변을 편집했습니다.
복원 Monica Monica

1
이를 수행하는 좋은 방법은 베이지안 VAR 또는보다 구체적으로 큰 베이지안 VAR 모델을 고려하는 것입니다.
Graeme Walsh

6

Ben이 언급했듯이 여러 시계열에 대한 교과서 방법은 VAR 및 VARIMA 모델입니다. 그러나 실제로는 수요 예측과 관련하여 자주 사용되는 것을 보지 못했습니다.

팀에서 현재 사용하는 것을 포함하여 훨씬 더 일반적인 것은 계층 적 예측입니다 ( 여기 참조 ). 계층 적 예측은 유사한 시계열 그룹이있을 때마다 사용됩니다 (유사하거나 관련 제품 그룹에 대한 판매 내역, 지역별로 그룹화 된 도시에 대한 관광 데이터 등).

아이디어는 서로 다른 제품을 계층 적으로 나열한 다음 기본 수준 (예 : 각 개별 시계열에 대한)과 제품 계층 구조에 의해 정의 된 집계 수준에서 모두 예측하는 것입니다 (첨부 된 그래픽 참조). 그런 다음 비즈니스 목표와 원하는 예측 목표에 따라 다른 수준 (예 : 하향식, Botton Up, 최적 조정 등)으로 예측을 조정합니다. 이 경우 하나의 큰 다변량 모델을 적합하지 않지만 계층 구조의 서로 다른 노드에있는 여러 모델을 선택한 다음 선택한 조정 방법을 사용하여 조정합니다.

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

이 방식의 장점은 유사한 시계열을 그룹화하여 이들 간의 상관 관계와 유사성을 활용하여 단일 시계열로 파악하기 어려운 패턴 (계절 변화 등)을 찾을 수 있다는 것입니다. 수동으로 튜닝 할 수없는 많은 수의 예측을 생성하므로 시계열 예측 절차를 자동화해야하지만 너무 어렵지는 않습니다 . 자세한 내용은 여기를 참조하십시오 .

하나의 대형 RNN / LSTM 신경망이 모든 시계열에 대해 하나의 훈련을받는 Amazon 및 Uber는보다 고급이지만 비슷한 방식으로 Amazon과 Uber에서 접근합니다. 계층 적 예측과 정신적으로 유사합니다. 또한 관련 시계열 간의 유사성과 상관 관계에서 패턴을 학습하려고하기 때문입니다. 예측을 수행하기 전에이 관계를 미리 결정하고 고정시키는 대신 시계열 자체 간의 관계를 학습하려고하기 때문에 계층 적 예측과 다릅니다. 이 경우 하나의 모델 만 튜닝하므로 더 이상 자동 예측 생성을 처리 할 필요가 없지만 모델이 매우 복잡한 모델이므로 더 이상 간단한 AIC / BIC 최소화 작업이 아니므로 튜닝 절차가 더 이상 필요하지 않습니다. 보다 고급형 하이퍼 파라미터 튜닝 절차를 살펴 보려면

추가 세부 사항 은 이 응답 및 주석 을 참조하십시오.

Python 패키지의 경우 PyAF 를 사용할 수 있지만 널리 사용되지는 않습니다. 대부분의 사람들 은 R 에서 HTS 패키지를 사용하는데 , 더 많은 커뮤니티 지원이 있습니다. LSTM 기반 접근 방식의 경우, 지불해야하는 서비스의 일부인 Amazon의 DeepAR 및 MQRNN 모델이 있습니다. Keras를 사용하여 수요 예측을 위해 LSTM을 구현 한 사람들도 있습니다.


1
여담으로 . AUTOBOX는 SARMAX 모델을 사용하여 CHILDREN의 예측을 지원하기 위해 GROUP 총계를 가능한 구동 시리즈로 사용하는 동안 참조한 종류의 계층 모델링을 구현합니다. 아동 예측의 불확실성은 부모의 불확실성의 누적 함수이기도하며 미래의 맥박이 발생할 가능성을 통합합니다.
IrishStat

아마존은 최근 MxNet 프레임 워크를 활용하는 GluonTS 프레임 워크에서 소스 형 DeepAR 알고리즘을 오픈했습니다. aws.amazon.com/blogs/opensource/…
hardikudeshi

5

제안 된 대량 피팅 패키지의 문제점은 펄스, 레벨 / 스텝 시프트, 계절 펄스 및 시간 추세와 같은 잠재 결정 론적 구조를 균일하게 처리하지 못하거나 https : //에 따라 사용자가 제안한 원인을 효율적으로 처리한다는 것입니다 . autobox.com/pdfs/SARMAX.pdf

또한 계산 시간은 심각한 합병증이 될 수 있습니다. AUTOBOX (개발에 도움이 됨)에는 모델을 보관하는 매우 정교한 모델 구축 단계와 이전에 개발 된 모델을 재사용하는 매우 빠른 예측 옵션이있어 예측 시간을 엄격한 모델 개발 시간의 일부로 줄이면서 최근의 새로운 예측을 조정합니다. 모델이 개발되고 저장된 후에 관찰 된 데이터. 이는 Price 및 Weather를 고려한 50 개 이상의 품목에 대한 Annheuser-Busch의 600,000 개 매장 예측 프로젝트를 위해 구현되었습니다.

필요에 따라 이전 모델을 대체하여 모델을 롤링 방식으로 업데이트 할 수 있습니다.

파라 메트릭 제한이 불필요하거나 VAR 및 VARIMA에서와 같이 인과 변수의 동시 효과를 생략하면서 ARIMA의 모든 시리즈의 과거에만 의존합니다.

모델이 개별 시리즈에 맞게 조정 / 최적화되어야하므로 1 개의 매개 변수 세트가있는 1 개의 모델 만 있으면됩니다.

불행히도 아직 파이썬 솔루션은 없지만 희망은 영원히 솟아납니다.


1
흥미로운 것 같습니다. 간단한 퀴즈 : VAR과 같은 간단한 경우에도 각 계열은 고유 한 방정식을 얻으므로 1 개의 매개 변수 세트를 가진 단 하나의 모델 만 있으면됩니다 . 동일한 시리즈에 대해 여러 모델을 제안하지 않는 한 예측 조합의 관점에서 좋은 아이디어 일 수 있습니다.
Richard Hardy

"? 모든 1200 개 제품의 수요 예측을위한 하나의 모델을 학습하는"목적 나는 모든 1200 시간 시리즈 "에서 추정 된 고정 / 글로벌 매개 변수의 1 개 세트와 그 문자 1과 유형 방정식을했다 아마도 내가 이상 읽기.
IrishStat

아니면 내가 틀렸을 수도 있습니다.
Richard Hardy

3

1200 제품은 문제의 차원의 주요 동인입니다. 이제 25 개의 기간 만 있습니다. 이것은 데이터가 거의 없으므로 모든 종류의 블랭킷 상관 분석을 수행하기에는 충분하지 않습니다. 즉, 차원을 줄이지 않고 모든 제품을 동시에 예측할 수있는 데이터가 없습니다. 이것은 모든 VARMA와 다른 멋진 이론적 모델을 거의 제거합니다. 이러한 모델의 계수를 처리하는 것은 불가능합니다. 추정 할 수있는 모델이 너무 많습니다.

간단한 상관 관계 분석을 고려하십시오. 공분산 / 상관 행렬에 (1200x1200 + 1200) / 2 셀이 필요합니다. 25 개의 데이터 포인트 만 있습니다. 매트릭스는 엄청나게 효율적으로 순위가 매겨 질 것입니다. 당신은 무엇을 할 것입니까? 일반적으로 두 가지 간단한 접근 방식이 있습니다 : 개별 예측 및 요인 모델.

첫 번째 방법은 분명합니다. 각 제품을 독립적으로 실행합니다. 변형은 예를 들어 "mens Closing"과 같은 섹터와 같은 기능별로 그룹화하는 것입니다.

나는=제이에프제이β제이나는+이자형나는에프제이

외인성 요인이라면 이러한 요인에 대한 시리즈를 개별적으로 회귀하여 베타를 구해야합니다. PCA의 경우 강력한 PCA를 수행하고 베타 인 가중치를 사용하여 처음 몇 가지 요소를 얻을 수 있습니다.

에프^제이


매우 짧은 시계열을 만드는 약 25 개의 기간에 대한 요점을 알지만 월별 값이면 어떻게 되나요? 그렇다면 OP에는 2 년간의 월간 데이터가 있는데, 이는 계절성을 포착하거나 최소한 간단한 지수 평활을 사용하기에 충분합니까?
Skander H.

@SkanderH., 25 개의 포인트는 하나의 시리즈 (즉, 각 시리즈를 자체적으로) 또는 집계를 실행하기에 충분할 수 있습니다. 내 요점은 이것을 시스템으로 실행하는 것만으로는 충분하지 않다는 것입니다.
Aksakal

또는 예를 들어 PCA 분석으로 얻은 요인과 같은 외인성 요인 일 수 있습니다. 아마도 내생 ?
Richard Hardy

1

클라우드 기반 솔루션에 관심이 있는지 확실하지 않지만 Amazon은 여기 에서 볼 수 있듯이 AWS SageMaker를 통해 "DeepAR"이라는 알고리즘을 제공 합니다 .

이 알고리즘은 특히 정적 및 동적 기능을 포함하여 예측을 생성하기 위해 여러 입력 시계열에서 학습 할 수 있도록 고안되었습니다. 위의 링크 된 페이지에서 발췌 한 내용 :

DeepAR 알고리즘에 대한 훈련 입력은 동일한 프로세스 또는 유사한 프로세스에 의해 생성 된 하나 이상의 목표 시계열이다. 이 입력 데이터 세트를 기반으로 알고리즘은이 프로세스 / 프로세스의 근사치를 학습하고이를 사용하여 대상 시계열이 어떻게 진화하는지 예측하는 모델을 학습시킵니다. 각각의 목표 시계열은 선택적으로 cat 필드에 의해 제공되는 정적 (시간 독립적) 범주 형 특징의 벡터 및 dynamic_feat 필드에 의해 제공되는 동적 (시간 의존) 시계열의 벡터와 연관 될 수있다.

불행히도, 내가 알 수있는 한, 그들은이 알고리즘을 오프라인 / 자체 호스팅 사용에 제공하지 않습니다.

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