Фон
Несколько лет назад пользователи попросили создать более современный интерфейс в MS Excel для популярной программы X12-ARIMA и ее методологии сезонной корректировки (X11). Бюро переписи населения США разработало и поддерживает программу X12-ARIMA (X12A), поэтому она находится в свободном доступе, и почти все в бизнесе принимают и высоко оценивают программу X12A и ее методологию.
В то время мы решили интегрировать NumXL в X12ARIMA, но в качестве внешней программы.
Что означает интеграция с внешними программами?
В двух словах, NumXL реализует несколько функций excel и предлагает пользовательский интерфейс для приема вводимых пользователем данных. За кулисами NumXL передает данные и вводимые пользователем данные в программу X12A для выполнения вычислений, а по завершении NumXL возвращает результаты пользователю в Excel.
Почему это должно вас волновать?
Мы предполагаем, что вы уже используете X12A/X11, и хотим поделиться некоторыми советами и обходными путями, которые мы составили для преодоления некоторых ограничений X12A, чтобы оптимизировать время выполнения и отзывчивость вашей модели.
Независимо от того, одна у вас модель X12ARIMA или сотни моделей, ваша рабочая книга должна быть способна их обрабатывать.
Внимание
Начиная с версии 1.67 (MARTHA), NumXL поддерживает новейшую программу сезонной корректировки переписи населения США X13ARIMA-SEATS. Перепись населения США не поддерживает программу сезонной корректировки X12ARIMA, и NumXL включает эту модель, чтобы помочь нашим клиентам перенести существующие модели X12 на эквиваленты X13.
Проблема 1: Ограничение X12A на длину входных данных
US Census X12 ARIMA принимает временные ряды длиной от 12 (для месячных) и 4 для квартальных данных, вплоть до 600 наблюдений.
Функции NumXL принимают временной ряд любой длины, но для целей X12A используют только самые последние 600 (не пропущенных) наблюдений и соответствующим образом сдвигают начальную дату.
Как пользователю, вам не нужно ничего менять, вы передаете данные, как обычно, а NumXL обрабатывает это ограничение за сценой.
Задача 2: Добавить новое наблюдение к ряду данных
Со временем появляются новые наблюдения, которые добавляются к набору исходных данных. Мы должны уточнить определение X12ARIMA, чтобы включить эти наблюдения, и повторно запустить модель для обновления сезонной поправки и прогноза.
Приведенный выше сценарий может показаться интуитивно понятным, но имейте в виду, что вам придется изменить диапазон входных ячеек в формуле каждой модели X12ARIMA в вашей рабочей книге. Это не проблема для одной серии, но как быть с десятками или сотнями временных рядов и соответствующих моделей? Вам придется периодически повторять одно и то же упражнение, поэтому нам нужен лучший подход.
Обходной путь такой же, как и тот, который мы приводили в статье: “Как настроить автоматическое обновление регрессионного анализа.” Мы добавим "#N/A" после конца ваших исходных данных, чтобы зарезервировать их. Затем включите эти ячейки в определение модели X12ARIMA.
Первоначально NumXL игнорирует все "#N/A", встречающиеся после последнего наблюдения с не пропущенным значением. В дальнейшем, по мере появления новой точки данных, мы заменяем #N/A на фактическое число, тем самым увеличивая набор входных данных.
Эта техника добавляет новое наблюдение в набор входных данных без необходимости редактировать формулу определения. Для обновления выходных данных модели все равно потребуется пересчет.
Проблема 3: Время, затрачиваемое на создание моделей, слишком велико!
X12A выполняет полный набор действий по выбору и калибровке моделей, поэтому, если в вашем рабочем листе более нескольких моделей X12ARIMA, расчет всего листа займет более нескольких секунд.
Решение этой проблемы состоит из двух частей:
- Отключите автоматический расчет и установите значение "Вручную".
Если установить для вычислений значение "Вручную", excel не будет пытаться принудительно выполнить вычисления при касании ячейки или изменении ее значения. Вместо этого вам придется запускать вычисления, нажимая F9 или SHIFT+F9.
При этом вы можете вносить множество изменений, а excel по-прежнему очень отзывчив. - Отключите очистку диска X12ARIMA и оставьте сгенерированные промежуточные файлы X12ARIMA на диске.
Перейдите в каталог установки NumXL (например, C:\users\<username>\AppData\Roaming\NumXL) и откройте файл NumXL.conf с помощью блокнота или вашего любимого текстового редактора.
Найдите запись "CLEANUP_EXIT" в разделе X12ARIMA.
Убедитесь, что соответствующее значение установлено на "false".
Примечание: замените <имя пользователя> на ваше реальное имя входа в систему 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) и увеличивая ее по мере убывания.
Другой подход заключается в использовании встроенной функции Excel COUNT() и подсчете количества ячеек от начала входных данных до нашей текущей позиции.
Проблема 7: Ограничения политики ИТ/МИС
В некоторых средах IT/MIS устанавливает ограничительные политики безопасности, запрещающие запуск программ в локальном профиле пользователя (например, C:\users\<username>\AppData\LocalData). При такой настройке программа X12A не может быть запущена и, следовательно, генерировать какие-либо выходные данные.
Обходным решением этой проблемы является изменение настройки "каталога данных" в файле "NumXL.conf" на каталог, в котором у пользователя достаточно прав для запуска программ.
Для этого перейдите в каталог установки NumXL (например, C:\users\<username>\AppData\Roaming\NumXL) и откройте файл NumXL.conf с помощью блокнота или вашего любимого текстового редактора.
Найдите запись "DATAPATH" в разделе [GLOBASLS], откомментируйте (удалите хэштег) и установите ее значение в каталог на вашем диске с достаточным разрешением для запуска программы X12A.
Заключение
В этом выпуске мы представили ряд проблем, с которыми сталкиваются наши пользователи при использовании модели NumXL X12ARIMA в Excel для повседневной работы. Для каждого случая мы указали соответствующее усовершенствование, рекомендации и, в некоторых случаях, обходные пути решения.
Заглядывая в будущее, мы берем эти ценные уроки с собой, так как работаем над новейшей программой X13ARIMA-SEATS от US Census.
Комментарии
Войдите в службу, чтобы оставить комментарий.