Microsoft 시계열 알고리즘에는 시계열을 분석하기 위한 두 가지 알고리즘이 포함되어 있습니다.
SQL Server 2005에서 도입된 ARTXP 알고리즘은 계열의 다음 값 예측에 최적화되어 있습니다.
장기 예측의 정확도를 향상시키기 위해 SQL Server 2008에 ARIMA 알고리즘이 추가되었습니다.
기본적으로 Analysis Services는 각 알고리즘을 개별적으로 사용하여 모델을 학습한 다음 결과를 혼합하여 가변적인 수의 예측에 대한 최상의 예측을 생성합니다. 데이터 및 예측 요구 사항에 따라 알고리즘 중 하나만 사용하도록 선택할 수도 있습니다. SQL Server 2008 Enterprise에서는 예측 중에 알고리즘의 혼합을 제어하는 컷오프 지점을 사용자 지정할 수도 있습니다.
이 항목에서는 각 알고리즘이 구현되는 방법과 분석 및 예측 결과를 미세 조정하기 위해 매개 변수를 설정하여 알고리즘을 사용자 지정하는 방법에 대한 추가 정보를 제공합니다.
Microsoft 시계열 알고리즘 구현
Microsoft Research는 MICROSOFT 의사 결정 트리 알고리즘을 기반으로 SQL Server 2005에서 사용된 원래 ARTXP 알고리즘을 개발했습니다. 따라서 ARTXP 알고리즘은 주기적인 시계열 데이터를 나타내는 자동 회귀 트리 모델로 설명될 수 있습니다. 이 알고리즘은 예측 중인 각 현재 항목과 이전 항목의 가변 개수를 연결합니다. ARTXP라는 이름은 자동 회귀 트리 메서드(ART 알고리즘)가 알 수 없는 여러 이전 상태에 적용된다는 사실에서 파생됩니다. ARTXP 알고리즘에 대한 자세한 설명은 Time-Series 분석을 위한 자동 회귀 트리 모델을 참조하세요.
장기 예측을 개선하기 위해 ARIMA 알고리즘이 SQL Server 2008의 Microsoft 시계열 알고리즘에 추가되었습니다. Box 및 Jenkins에서 설명한 자동 회귀 통합 이동 평균을 계산하는 프로세스의 구현입니다. ARIMA 방법론을 사용하면 순차적으로 수행된 관찰에서 종속성을 확인할 수 있으며 임의 충격을 모델의 일부로 통합할 수 있습니다. ARIMA 메서드는 곱하기 계절성도 지원합니다. ARIMA 알고리즘에 대해 자세히 알아보려는 독자는 Box 및 Jenkins의 주요 저작을 읽는 것이 좋습니다. 이 섹션은 Microsoft 시계열 알고리즘에서 ARIMA 방법론이 구현된 방법에 대한 구체적인 정보를 제공하기 위한 것입니다.
기본적으로 Microsoft 시계열 알고리즘은 ARTXP 및 ARIMA 메서드를 모두 사용하고 결과를 혼합하여 예측 정확도를 향상시킵니다. 특정 메서드만 사용하려는 경우 ARTXP 또는 ARIMA만 사용하거나 알고리즘의 결과를 결합하는 방법을 제어하도록 알고리즘 매개 변수를 설정할 수 있습니다. ARTXP 알고리즘은 교차 예측을 지원하지만 ARIMA 알고리즘은 지원하지 않습니다. 따라서 교차 예측은 알고리즘의 혼합을 사용하거나 ARTXP만 사용하도록 모델을 구성하는 경우에만 사용할 수 있습니다.
ARIMA 차이 순서 이해
이 섹션에서는 ARIMA 모델을 이해하는 데 필요한 몇 가지 용어를 소개하고 Microsoft 시계열 알고리즘에서 차이점을 구현 하는 구체적인 구현에 대해 설명합니다. 이러한 사용 약관 및 개념에 대한 전체 설명을 보려면 Box 및 Jenkins를 검토하는 것이 좋습니다.
용어는 수학 방정식의 구성 요소입니다. 예를 들어 다항식 수식의 용어에는 변수와 상수의 조합이 포함될 수 있습니다.
Microsoft 시계열 알고리즘에 포함된 ARIMA 수식은 자동 회귀 및 이동 평균 용어를 모두 사용합니다.
시계열 모델은 고정 또는 비정상일 수 있습니다. 고정 모델은 주기가 있을 수 있지만 평균으로 되돌리는 모델이지만 비 정상 모델은 평형에 초점을 맞추지 않으며 충격 또는 외부 변수에 의해 도입된 더 큰 분산 또는 변경의 대상이 됩니다.
차이점을 적용하는 목표는 시계열을 안정시키고 고정하는 것입니다.
차이의 순서는 시계열에 대해 값 간의 차이가 발생하는 횟수를 나타냅니다.
Microsoft 시계열 알고리즘은 데이터 계열의 값을 가져와서 데이터를 패턴에 맞추려고 시도하여 작동합니다. 데이터 계열이 아직 고정되어 있지 않은 경우 알고리즘은 차이 순서를 적용합니다. 차이 순서가 증가할 때마다 시계열이 더 고정되는 경향이 있습니다.
예를 들어 시계열(z1, z2, ..., zn)이 있고 한 가지 차수로 계산을 수행하는 경우 새 계열(y1, y2,...., yn-1)을 얻습니다. 여기서 yi = zi+1-zi입니다. 차이 순서가 2이면 알고리즘은 첫 번째 순서 수식에서 파생된 y 계열을 기반으로 다른 계열(x1, x2, ..., xn-2)을 생성합니다. 차이점의 정확한 양은 데이터에 따라 달라집니다. 단일 차이 순서는 일정한 추세를 표시하는 모델에서 가장 일반적입니다. 차이점의 두 번째 순서는 시간에 따라 달라지는 추세를 나타낼 수 있습니다.
기본적으로 Microsoft 시계열 알고리즘에 사용되는 차이 순서는 -1입니다. 즉, 알고리즘이 차이 순서에 가장 적합한 값을 자동으로 검색합니다. 일반적으로 가장 좋은 값은 1(차이점이 필요한 경우)이지만 특정 상황에서 알고리즘은 해당 값을 최대 2로 증가합니다.
Microsoft 시계열 알고리즘은 자동 회귀 값을 사용하여 최적의 ARIMA 차이 순서를 결정합니다. 알고리즘은 AR 값을 검사하고 AR 용어의 순서를 나타내는 숨겨진 매개 변수 ARIMA_AR_ORDER 설정합니다. 이 숨겨진 매개변수 ARIMA_AR_ORDER는 값의 범위가 -1부터 8까지입니다. 기본값 -1에서 알고리즘은 자동으로 적절한 차이 순서를 선택합니다.
ARIMA_AR_ORDER 값이 1보다 클 때마다 알고리즘은 시계열을 다항식 용어로 곱합니다. 다항식 수식의 한 용어가 1 또는 1에 가까운 루트로 확인되면 알고리즘은 용어를 제거하고 차이 순서를 1로 늘려 모델의 안정성을 유지하려고 시도합니다. 차차 순서가 이미 최대값인 경우 용어가 제거되고 차이 순서가 변경되지 않습니다.
예를 들어 AR = 2의 값이면 결과 AR 다항식 용어는 1 - 1.4B + .45B^2 = (1- .9B)(1- 0.5B)와 같을 수 있습니다. 루트가 약 0.9인 용어(1- .9B)를 적어 둡니다. 알고리즘은 다항식 수식에서 이 용어를 제거하지만 이미 최대값이 2이므로 차이 순서를 1씩 늘릴 수 없습니다.
차이점 순서를 강제로 변경할 수 있는 유일한 방법은 지원되지 않는 매개 변수인 ARIMA_DIFFERENCE_ORDER 사용하는 것입니다. 이 숨겨진 매개 변수는 알고리즘이 시계열에서 차이점을 수행하는 횟수를 제어하며 사용자 지정 알고리즘 매개 변수를 입력하여 설정할 수 있습니다. 그러나 실험할 준비가 되어 있고 관련된 계산에 익숙하지 않은 경우 이 값을 변경하지 않는 것이 좋습니다. 또한 현재는 차수 증가가 트리거되는 임계값을 제어할 수 있는 숨겨진 매개 변수를 비롯한 메커니즘이 없습니다.
마지막으로 위에서 설명한 수식은 계절성 힌트가 없는 간소화된 사례입니다. 계절성 힌트가 제공되면 각 계절성 힌트에 대해 수식 왼쪽에 별도의 AR 다항식 용어가 추가되고, 차이가 있는 계열을 불안정하게 만들 수 있는 용어를 제거하기 위해 동일한 전략이 적용됩니다.
Microsoft 시계열 알고리즘 사용자 지정
Microsoft 시계열 알고리즘은 결과 마이닝 모델의 동작, 성능 및 정확도에 영향을 주는 다음 매개 변수를 지원합니다.
비고
Microsoft 시계열 알고리즘은 모든 버전의 SQL Server에서 사용할 수 있습니다. 그러나 시계열 분석을 사용자 지정하기 위한 매개 변수를 비롯한 일부 고급 기능은 특정 버전의 SQL Server에서만 지원됩니다. SQL Server 버전에서 지원하는 기능 목록은 SQL Server 2012 버전에서 지원하는 기능을 참조하세요.
계절성 탐지
ARIMA 및 ARTXP 알고리즘은 모두 계절성 또는 주기성 검색을 지원합니다. Analysis Services는 빠른 푸리에 변환을 사용하여 학습 전에 계절성을 검색합니다. 그러나 알고리즘 매개 변수를 설정하여 계절성 검색 및 시계열 분석 결과에 영향을 줄 수 있습니다.
AUTODETECT_SEASONALITY 값을 변경하면 생성된 가능한 시간 세그먼트 수에 영향을 줄 수 있습니다.
PERIODICITY_HINT 값 또는 여러 값을 설정하여 알고리즘에 데이터의 예상 주기에 대한 정보를 제공하고 잠재적으로 검색 정확도를 높일 수 있습니다.
비고
ARTXP 및 ARIMA 알고리즘은 모두 계절성 힌트에 매우 민감합니다. 따라서 잘못된 힌트를 제공하면 결과에 부정적인 영향을 줄 수 있습니다.
알고리즘 선택 및 알고리즘 혼합 지정
기본적으로 또는 MIXED 옵션을 선택하면 Analysis Services는 알고리즘을 결합하고 동일한 가중치를 할당합니다. 그러나 SQL Server 2008 Enterprise에서 특정 알고리즘을 지정하거나 결과 가중치를 단기 또는 장기 예측으로 설정하는 매개 변수를 설정하여 결과에서 각 알고리즘의 비율을 사용자 지정할 수 있습니다. 기본적으로 FORECAST_METHOD 매개 변수는 MIXED로 설정되고 Analysis Services는 두 알고리즘을 모두 사용한 다음 해당 값의 가중치를 적용하여 각 알고리즘의 강도를 최대화합니다.
알고리즘 선택을 제어하려면 FORECAST_METHOD 매개 변수를 설정합니다.
교차 예측을 사용하려면 ARIMA가 교차 예측을 지원하지 않으므로 ARTXP 또는 MIXED 옵션을 사용해야 합니다.
단기 예측을 선호하려면 FORECAST_METHOD ARTXP로 설정합니다.
장기 예측을 개선하려면 FORECAST_METHOD ARIMA로 설정합니다.
SQL Server 2008 Enterprise에서는 Analysis Services가 ARIMA 및 ARTXP 알고리즘의 조합을 혼합하는 방법을 사용자 지정할 수도 있습니다. PREDICTION_SMOOTHING 매개 변수 를 설정하여 혼합물의 시작점과 변경 속도를 모두 제어할 수 있습니다.
PREDICTION_SMOOTHING 0으로 설정하면 모델은 ARTXP만 사용합니다.
PREDICTION_SMOOTHING 1로 설정하면 모델은 ARIMA만 사용합니다.
PREDICTION_SMOOTHING 0에서 1 사이의 값으로 설정하면 모델은 ARTXP 알고리즘을 예측 단계의 기하급수적으로 감소하는 함수로 가중치를 적용합니다. 동시에 모델은 ARIMA 알고리즘의 가중치를 ARTXP 가중치의 1보수로 가중치를 지정합니다. 모델은 정규화 및 안정화 상수로 곡선을 부드럽게 합니다.
일반적으로 최대 5개의 시간 조각을 예측하는 경우 ARTXP는 거의 항상 더 나은 선택입니다. 그러나 예측할 시간 조각 수를 늘리면 일반적으로 ARIMA가 더 나은 성능을 발휘합니다.
다음 다이어그램에서는 PREDICTION_SMOOTHING 기본값 0.5로 설정된 경우 모델이 알고리즘을 혼합하는 방법을 보여 줍니다. ARIMA 및 ARTXP는 처음에는 동일하게 가중치를 부여하지만 예측 단계 수가 증가함에 따라 ARIMA의 무게가 더 많이 측정됩니다.
반면, 다음 다이어그램은 PREDICTION_SMOOTHING 0.2로 설정된 경우 알고리즘의 혼합을 보여 줍니다. 0단계의 경우 모델은 ARIMA를 0.2로, ARTXP를 0.8로 가중치를 지정합니다. 그 후 ARIMA의 가중치가 기하급수적으로 증가하고 ARTXP의 무게가 기하급수적으로 감소합니다.
알고리즘 매개 변수 설정
다음 표에서는 Microsoft 시계열 알고리즘과 함께 사용할 수 있는 매개 변수에 대해 설명합니다.
| 매개 변수 | 설명 |
|---|---|
| 주기_자동_감지 | 주기를 검색하는 0에서 1 사이의 숫자 값을 지정합니다. 기본값은 0.6입니다. 값이 0에 가까울 경우 주기성은 강력한 주기적 데이터에 대해서만 검색됩니다. 이 값을 1에 가깝게 설정하면 거의 주기적인 많은 패턴을 검색하고 주기 힌트를 자동으로 생성할 수 있습니다. 참고: 많은 주기 힌트를 처리하면 모델 학습 시간이 훨씬 길어지지만 더 정확한 모델이 발생할 수 있습니다. |
| 복잡성 패널티 | 의사 결정 트리의 증가를 제어합니다. 기본값은 0.1입니다. 이 값을 줄이면 분할 가능성이 높아질 수 있습니다. 이 값을 늘리면 분할 가능성이 줄어듭니다. 참고: 이 매개 변수는 일부 SQL Server 버전에서만 사용할 수 있습니다. |
| 예측 방법 | 분석 및 예측에 사용할 알고리즘을 지정합니다. 가능한 값은 ARTXP, ARIMA 또는 MIXED입니다. 기본값은 MIXED입니다. |
| HISTORIC_MODEL_COUNT | 빌드할 기록 모델의 수를 지정합니다. 기본값은 1입니다. 참고: 이 매개 변수는 일부 SQL Server 버전에서만 사용할 수 있습니다. |
| 역사적 모델 차이 | 연속된 두 기록 모델 간의 시간 지연을 지정합니다. 기본값은 10입니다. 값은 모델에 의해 단위가 정의되는 시간 단위 수를 나타냅니다. 예를 들어 이 값을 g로 설정하면 시간 조각에 의해 g, 2*g, 3*g 등의 간격으로 잘리는 데이터에 대해 기록 모델이 빌드됩니다. 참고: 이 매개 변수는 일부 SQL Server 버전에서만 사용할 수 있습니다. |
| 불안정성_민감도 | 예측 분산이 특정 임계값을 초과할 경우, 그 지점을 제어한 후 ARTXP 알고리즘이 예측을 억제합니다. 기본값은 1입니다. 참고: 이 매개 변수는 ARIMA만 사용하는 모델에는 적용되지 않습니다. 기본값 1은 SQL Server 2005와 동일한 동작을 제공합니다. Analysis Services는 각 예측에 대해 정규화된 표준 편차를 모니터링합니다. 이 값이 예측의 임계값을 초과하는 즉시 시계열 알고리즘은 NULL을 반환하고 예측 프로세스를 중지합니다. 값이 0이면 불안정성 검색이 중지됩니다. 즉, 분산에 관계없이 무한 수의 예측을 만들 수 있습니다. 참고: 이 매개 변수는 SQL Server Enterprise에서만 수정할 수 있습니다. SQL Server Standard에서 Analysis Services는 기본값 1만 사용합니다. |
| MAXIMUM_SERIES_VALUE | 예측에 사용할 최대값을 지정합니다. 이 매개 변수는 MINIMUM_SERIES_VALUE 함께 사용하여 예측을 예상 범위로 제한합니다. 예를 들어 하루의 예상 판매 수량이 재고의 제품 수를 초과하지 않도록 지정할 수 있습니다. 참고: 이 매개 변수는 일부 SQL Server 버전에서만 사용할 수 있습니다. |
| MINIMUM_SERIES_VALUE | 예측할 수 있는 최소값을 지정합니다. 이 매개 변수는 MAXIMUM_SERIES_VALUE 함께 사용하여 예측을 예상 범위로 제한합니다. 예를 들어 예측된 판매 수량이 음수가 되어서는 안 되도록 지정할 수 있습니다. 참고: 이 매개 변수는 일부 SQL Server 버전에서만 사용할 수 있습니다. |
| MINIMUM_SUPPORT | 각 시계열 트리에서 분할을 생성하는 데 필요한 최소 시간 조각 수를 지정합니다. 기본값은 10입니다. |
| MISSING_VALUE_SUBSTITUTION | 기록 데이터의 간격을 채우는 방법을 지정합니다. 기본적으로 데이터의 간격은 허용되지 않습니다. 데이터에 여러 계열이 포함된 경우 계열에 비정형 가장자리도 있을 수 없습니다. 즉, 모든 계열의 시작점과 끝점이 같아야 합니다. 또한 Analysis Services는 시계열 모델을 수행할 때 새 데이터의 간격을 채우기 위해 이 매개 변수의 값을 PREDICTION JOIN 사용합니다. 다음 표에서는 이 매개 변수에 사용할 수 있는 값을 나열합니다.없음: 기본값입니다. 누락된 값을 학습된 모델의 곡선을 따라 그려진 값으로 바꿉니다. 이전: 이전 시간 조각의 값을 반복합니다. 평균: 학습에 사용되는 시간 조각의 이동 평균을 사용합니다. 숫자 상수: 지정된 숫자를 사용하여 누락된 모든 값을 바꿉다. |
| PERIODICITY_HINT | 데이터의 주기성에 대한 힌트를 알고리즘에 제공합니다. 예를 들어 판매량이 연도별로 다르고 계열의 측정 단위가 월인 경우 주기는 12입니다. 이 매개 변수는 {n [, n]}의 형식을 사용합니다. 여기서 n은 양수입니다. 대괄호[]의 n은 선택 사항이며 필요에 따라 자주 반복할 수 있습니다. 예를 들어 매월 제공된 데이터에 대해 여러 주기 힌트를 제공하려면 {12, 3, 1}을(를) 입력하여 연도, 분기 및 월의 패턴을 검색할 수 있습니다. 그러나 주기성은 모델 품질에 강력한 영향을 미칩니다. 제공하는 힌트가 실제 주기와 다른 경우 결과에 부정적인 영향을 줄 수 있습니다. 기본값은 {1}입니다. 참고: 중괄호는 필수입니다. 또한 이 매개 변수에는 문자열 데이터 형식이 있습니다. 따라서 이 매개 변수를 DMX(데이터 마이닝 확장) 문의 일부로 입력하는 경우 숫자와 중괄호를 따옴표로 묶어야 합니다. |
| PREDICTION_SMOOTHING | 예측을 최적화하기 위해 모델을 혼합하는 방법을 지정합니다. 이 매개 변수는 일부 SQL Server 버전에서만 사용할 수 있습니다. 0에서 1 사이의 값을 입력하거나 다음 값 중 하나를 사용할 수 있습니다. 0: 예측에서 ARTXP만 사용되도록 지정합니다. 예측은 더 적은 수의 예측에 최적화되어 있습니다. 0.5: (기본값) 예측을 위해 두 알고리즘을 모두 사용하고 결과를 혼합되도록 지정합니다. 1: 예측에서 ARIMA만 사용되도록 지정합니다. 예측은 많은 예측에 최적화되어 있습니다. 참고: FORECAST_METHOD 매개 변수를 사용하여 학습을 제어합니다. |
모델링 플래그
Microsoft 시계열 알고리즘은 다음 모델링 플래그를 지원합니다. 마이닝 구조 또는 마이닝 모델을 만들 때 분석 중에 각 열의 값을 처리하는 방법을 지정하는 모델링 플래그를 정의합니다. 자세한 내용은 모델링 플래그(데이터 마이닝)를 참조하세요.
| 모델링 플래그 | 설명 |
|---|---|
| NULL이 아님 (NOT NULL) | 열에 null을 포함할 수 없음을 나타냅니다. 모델 학습 중에 Analysis Services가 null을 발견하면 오류가 발생합니다. 마이닝 구조 열에 적용됩니다. |
| 모델_존재_전용 | 열이 누락 및 기존 상태라는 두 가지 가능한 상태를 갖는 것으로 처리됨을 의미합니다. null이 누락된 값입니다. 마이닝 모델 열에 적용됩니다. |
요구 사항
시계열 모델에는 고유한 값, 입력 열 및 하나 이상의 예측 가능한 열이 포함된 키 시간 열이 포함되어야 합니다.
입력 열 및 예측 가능한 열
Microsoft Time Series 알고리즘은 다음 표에 나열된 특정 입력 열 콘텐츠 형식, 예측 가능한 열 콘텐츠 형식 및 모델링 플래그를 지원합니다.
| 칼럼 | 내용 유형 |
|---|---|
| 입력 특성 | 연속, 중심, 주요 시간 및 표 |
| 예측 가능한 특성 | 연속, 표 |
비고
주기적 및 순서가 지정된 콘텐츠 형식은 지원되지만 알고리즘은 이를 불연속 값으로 처리하며 특수한 처리를 수행하지 않습니다.
또한 참조하십시오
Microsoft 시계열 알고리즘시계열 모델 쿼리 예제시계열 모델에 대한 마이닝 모델 콘텐츠(Analysis Services - 데이터 마이닝)