X12-ARIMA의 문제점 및 해결 방법

배경

몇 년 전, 사용자들은 널리 사용되는 X12-ARIMA와 그 계절 조정 방법론(X11)에 대한 MS Excel의 보다 현대적인 인터페이스를 요청했습니다. 미국 인구조사국에서 X12-ARIMA 프로그램(X12A)을 개발 및 유지 관리하기 때문에 무료로 사용할 수 있으며, 거의 모든 업계에서 X12A 프로그램과 그 방법론을 높이 평가하고 받아들입니다.

당시 저희는 NumXL을 X12ARIMA와 통합하기로 결정했지만, 외부 프로그램으로 사용하기로 했습니다.

외부 프로그램과의 통합은 무엇을 의미하나요?

간단히 말해, NumXL은 여러 엑셀 함수를 구현하고 사용자의 입력과 데이터를 받아들이는 사용자 인터페이스를 제공합니다. 뒤에서 NumXL은 데이터와 사용자의 입력을 다시 X12A 프로그램으로 전송하여 계산을 수행하고, 계산이 완료되면 사용자에게 Excel로 출력을 다시 가져옵니다.

이 그림에서 단순화된 순서도는 NumXL이 데이터와 입력을 X12A 프로그램으로 전송하여 계산을 수행하고, 그 결과를 다시 사용자에게 Excel로 가져오는 과정을 시각화합니다.

왜 신경 써야 할까요?

이미 X12A/X11을 사용 중이라고 가정하고, 모델의 런타임과 응답성을 최적화하기 위해 X12A의 몇 가지 한계를 극복하기 위해 마련한 몇 가지 팁과 해결 방법을 공유하고자 합니다.

X12ARIMA 모델이 하나이든 수백 개의 모델이든 통합 문서에서 이를 처리할 수 있어야 합니다.

 경고

버전 1.67(MARTHA)부터 NumXL은 최신 미국 인구조사 X13ARIMA-SEATS 계절 조정 소프트웨어를 지원합니다. 미국 인구조사에서는 X12ARIMA 계절 조정 소프트웨어를 유지하지 않으며, 고객이 기존 X12 모델을 X13으로 마이그레이션할 수 있도록 NumXL에 이 모델이 포함되어 있습니다.

문제 1: 입력 데이터 길이에 대한 X12A 제한

미국 인구조사 X12 ARIMA는 월별 데이터의 경우 12개, 분기별 데이터의 경우 4개부터 최대 600개의 관측치까지 시계열 길이를 허용합니다.

NumXL 함수는 모든 길이의 시계열을 허용하지만 X12A 목적으로 가장 최근의 600개(누락되지 않은) 관측치만 사용하고 시작 날짜를 그에 따라 이동합니다.

사용자는 아무것도 변경할 필요 없이 평소처럼 데이터를 전달하면 NumXL이 이 제약 조건을 백그라운드에서 처리합니다.

문제 2: 데이터 계열에 새 관측값 추가하기

시간이 지남에 따라 새로운 관측이 실현되고 입력 데이터 세트에 추가됩니다. 이러한 관측치를 포함하도록 X12ARIMA 정의를 세분화하고 모델을 다시 실행하여 계절 조정 및 예측을 업데이트해야 합니다.

위의 시나리오는 직관적으로 들릴 수 있지만 통합 문서에 있는 모든 X12ARIMA 모델의 수식에서 입력 셀 범위를 변경해야 한다는 점을 염두에 두어야 합니다.  이것은 하나의 시계열에서는 문제가 되지 않지만, 수십 또는 수백 개의 시계열과 해당 모델은 어떨까요? 같은 작업을 주기적으로 반복해야 하므로 더 나은 접근 방식이 필요했습니다.

해결 방법은 팁에서 설명한 것과 동일합니다: “자동으로 업데이트되도록 회귀 분석을 설정하는 방법.” 입력 데이터의 끝 부분에 "#N/A"를 추가하여 해당 셀을 예약합니다. 다음으로 해당 셀을 X12ARIMA 모델 정의에 포함시킵니다.

처음에 NumXL은 마지막 관측 이후에 발생하는 모든 "#N/A"를 누락되지 않은 값으로 무시합니다. 나중에 새로운 데이터 포인트가 실현되면 #N/A를 실제 숫자로 대체하여 입력 데이터 집합을 늘립니다.

이 기술은 정의 공식을 편집할 필요 없이 입력 데이터 세트에 새 관측값을 추가합니다. 모델의 출력을 업데이트하려면 여전히 다시 계산해야 합니다.

이 이미지는 입력 데이터의 끝 부분에 #N/A를 추가하여 예약하는 방법을 보여줍니다.

문제 3: 모델 제작에 소요되는 시간이 너무 길어요!

X12A는 전체 모델 선택 및 보정을 수행하므로 워크시트에 X12ARIMA 모델이 몇 개 이상 있는 경우 전체 시트를 계산하는 데 몇 초 이상 걸립니다.

이 문제의 해결 방법은 두 가지로 구성되어 있습니다:

  1. 자동 계산을 비활성화하고 수동으로 설정합니다.
    이 이미지는 자동 계산을 비활성화하고 수동으로 설정하는 방법을 보여줍니다.
    계산을 수동으로 설정하면 셀을 터치하거나 값을 변경할 때 Excel에서 강제로 계산을 시도하지 않습니다. 대신 F9 또는 Shift+F9를 눌러 계산을 시작해야 합니다.
    그 동안에도 엑셀은 여전히 매우 빠르게 반응하면서 많은 변경을 수행할 수 있습니다.
  2. X12ARIMA 디스크 정리를 비활성화하고 생성된 X12ARIMA 중간 파일을 디스크에 그대로 둡니다.
    NumXL 설치 디렉토리(예: C:\users\<사용자 이름>\AppData\Roaming\NumXL)로 이동하여 메모장 또는 선호하는 텍스트 편집기를 사용하여 NumXL.conf 파일을 엽니다.
    X12ARIMA 섹션에서 "CLEANUP_EXIT" 항목을 찾습니다.
    이 이미지는 NumXL.conf 파일과 'false'로 설정된 CLEANUP_EXIT 항목 값을 보여줍니다.

해당 값이 "false"로 설정되어 있는지 확인합니다.

참고: <username>를 실제 Windows 로그인 이름으로 대체하세요.

이제 통합 문서를 열면 NumXL은 X12A 프로그램을 실행할 필요 없이 저장된 모델과 그 출력을 필요에 따라 로드합니다.

문제 4: 내 데이터 피드가 많은 셀에 닿아 있습니다.

많은 환경에서 데이터 피드 프로그램은 X12ARIMA 모델에 사용되는 입력 데이터를 생성하고 업데이트(온디맨드 또는 주기적)합니다. 이 설정은 매우 흥미롭지만 입력 셀을 자주 건드리게 되고 Excel은 엄청난 규모의 계산 요청을 트리거하므로 수동 계산을 실행할 때 많은 모델이 재평가 대상에 올라오게 됩니다.

NumXL에서는 입력 데이터 세트와 모델 매개변수 값에 대한 체크섬(일명 해시)을 내부적으로 계산하여 저장합니다. 따라서 Excel에서 새 모델 평가 요청을 하면 NumXL은 새 체크섬을 계산하여 이미 가지고 있는 체크섬과 비교합니다. 변경 사항을 찾지 못하면 NumXL은 단순히 요청을 무시합니다.

그 결과, 얼마나 많은 X12ARIMA 모델을 보유하고 있든 상관없이 NumXL은 마지막 실행 이후 실제로 변경된 입력(즉, 모델의 파라미터 또는 입력 데이터)이 있는 모델만 평가합니다. 따라서 X12ARIMA는 필요할 때만 실행됩니다.

문제 5: 누락된 값(#N/A)

미국 인구조사 X12A 프로그램은 결측값을 처리하지 않지만, 문제 2에서 살펴본 것처럼 결측값은 유용하게 사용할 수 있습니다.

NumXL은 (결측값이 없는) 데이터 집합의 시작 또는 종료 전 또는 후에 결측값이 있는 입력 데이터 집합을 허용합니다. NumXL은 결측값이 있는 중간 관측값은 지원하지 않습니다.

왜 입력 데이터 집합의 시작 전에 결측값이 있는 관측치를 삽입해야 하는지 궁금할 수 있습니다. 사용자는 항상 데이터 집합이 같은 행에서 시작하도록 정렬하기를 원하지만, 데이터 집합의 시작 날짜가 다를 수 있으므로 시작 부분에 #N/A를 넣으면 모든 시계열이 같은 날짜에 시작되도록 할 수 있습니다.

시계열의 양쪽 끝에 결측값이 있는 관측값을 추가해도 NumXL이 시작 날짜(및 종료 날짜)를 가장 가까운 결측값이 없는 관측값의 날짜로 조정하므로 출력에는 영향을 주지 않습니다.

문제 6: X12ACOMP의 오프셋 인수

X12ARIMA 출력 시계열(예: 계절 조정)을 표시하려면 워크시트 함수 X12ACOMP()를 사용해야 하지만, 이 함수에는 모델 이름, 출력 유형, 오프셋이 필요합니다.

오프셋은 입력 데이터 집합의 시작부터의 관측치 수입니다. 관측값에는 누락된 값(즉, 처음에 채워진 값)이 포함되어야 합니다.

오프셋을 계산하려면 열을 정수 시퀀스로 채우고 1부터 시작하여 아래로 내려갈수록 증가시킬 수 있습니다.

이미지에서는 1에서 시작하여 아래로 내려갈수록 증가하는 정수 시퀀스로 열을 채우는 모습을 보여 줍니다.

또 다른 접근 방식은 Excel의 내장 함수 COUNT()를 사용하여 입력 데이터의 시작부터 현재 위치까지의 셀 수를 계산하는 것입니다.

이미지에서는 COUNT() 함수를 사용하여 입력 데이터의 시작 부분부터 셀 수를 계산하는 방법을 보여줍니다.

문제 7: IT/MIS 정책 제한 사항

일부 환경에서는 IT/MIS에서 제한적인 보안 정책을 설정하여 사용자의 로컬 프로필(예: C:\users\<사용자 이름>\AppData\LocalData)에서 프로그램이 실행되지 못하도록 합니다. 이 설정은 X12A 프로그램의 실행을 금지하여 출력을 생성하지 못하도록 합니다.

이 문제의 해결 방법은 "NumXL.conf" 파일의 "데이터 디렉토리" 설정을 사용자가 프로그램을 실행할 수 있는 충분한 권한이 있는 디렉토리로 변경하는 것입니다.

이렇게 하려면 NumXL 설치 디렉토리(예: C:\users\<사용자 이름>\AppData\로밍\NumXL)로 이동하여 메모장이나 자주 사용하는 텍스트 편집기를 사용하여 NumXL.conf 파일을 엽니다.

이 그림에서는 NumXL.conf 파일에 있는 구성 속성(DATAPATH)을 보여줍니다.

GLOBASLS] 섹션에서 "DATAPATH" 항목을 찾아 주석 처리(해시태그 삭제)를 해제하고 해당 값을 X12A 프로그램을 실행할 수 있는 충분한 권한이 있는 디스크의 디렉토리로 설정합니다.

결론

이번 호에서는 사용자가 일상적으로 Excel에서 NumXL X12ARIMA 모델을 사용하면서 직면하는 일련의 문제를 제시했습니다. 각 사례에 해당하는 개선 사항, 권장 사항 및 경우에 따라 이를 극복할 수 있는 해결 방법을 제시했습니다.

앞으로 저희는 미국 인구조사국의 최신 X13ARIMA-SEATS 프로그램을 도입하면서 이러한 귀중한 교훈을 바탕으로 더욱 발전해 나갈 것입니다.

댓글

댓글을 남기려면 로그인하세요.

도움이 되었습니까?
0명 중 0명이 도움이 되었다고 했습니다.