DLM - это круто, но они не так просты, как, скажем, ARIMA или другие методы. В других методах вы вставляете свои данные, а затем настраиваете некоторые параметры алгоритма, возможно, обращаясь к различным диагностикам, чтобы управлять вашими настройками.
С DLM вы создаете машину пространства состояний, которая состоит из нескольких матриц, которые в основном реализуют что-то вроде скрытой модели Маркова. Некоторые пакеты ( sspirя думаю, среди прочих) ожидают, что вы понимаете концепцию и то, что делают матрицы. Я настоятельно рекомендую вам начать с dlmпакета и, как рекомендует @RockScience, пройтись по виньетке.
При этом dlmвы собираетесь в основном сделать несколько шагов:
Какие компоненты описывают мою серию? Тенденция? Сезонность? Экзогенные переменные? Вы будете использовать dlmтакие инструменты, как dlmModPolyдля реализации этих компонентов, с помощью +оператора, чтобы объединить их в одну модель.
Создайте подпрограмму R, которая принимает столько параметров, сколько требуется для этой модели, создает компоненты с этими параметрами, затем складывает их вместе и возвращает полученную модель.
Используйте dlmMLEдля поиска / оптимизации, чтобы найти подходящие параметры (используя MLE, который в основном является оптимизацией, с подводными камнями, которые могут возникнуть при оптимизации). dlmMLEнесколько раз вызывает вашу подпрограмму R с параметрами-кандидатами для создания моделей, а затем проверяет их.
Создайте свою окончательную модель, используя подпрограмму R, которую вы создали, плюс параметры, которые вы нашли в шаге 3.
Отфильтруйте данные с помощью dlmFilter, а затем, возможно, сглаживайте dlmSmooth.
Если вы используете dlmModRegили делаете что-либо, что приводит к тому, что модель имеет изменяющиеся во времени параметры, вы не можете использовать ее dlmForecastдля прогнозирования ряда. Если вы в конечном итоге получите модель, изменяющуюся во времени, вы захотите заполнить свои входные данные с помощью NA и разрешить dlmFilterзаполнение NA для вас (прогноз плохого человека), так dlmForecastкак не работает с изменяющимися во времени параметрами.
Если вы хотите изучить компоненты по отдельности (скажем, тренд отдельно от сезонного), вам нужно понять матрицы и то, что находится в каждом столбце, а также немного понять, как dlmих собрать (порядок имеет значение!).
Есть еще один пакет, имя которого избегает меня, который пытается создать внешний интерфейс, который может использовать несколько из этих пакетов (в том числе dlmв качестве внутреннего). К сожалению, я никогда не делал так, чтобы это работало хорошо, но это может быть только я.
Я действительно рекомендовал бы получить книгу по DLM. Я получил пару из них и много играл, dlmчтобы добраться туда, где я нахожусь, и я ни в коем случае не эксперт.