Совместно используйте результаты сеанса приложения Econometric Modeler

Этот пример показывает, как совместно использовать результаты сеанса приложения Econometric Modeler:

  • Экспорт временных рядов и образцовых переменных к MATLAB® Workspace

  • Генерация простого текста MATLAB и живых функций, чтобы использовать вне приложения

  • Генерация отчета действий на временных рядах и оцененных моделях

Во время сеанса пример преобразовывает и отображает данные на графике, запускает статистические тесты и оценивает мультипликативную сезонную модель ARIMA. Набор данных, который хранится в mlr/examples/econ/Data_Airline.mat, содержит ежемесячные количества авиапассажиров. Папка mlr является значением matlabroot.

Импортируйте данные в Econometric Modeler

В командной строке загрузите набор данных Data_Airline.mat.

load(fullfile(matlabroot,'examples','econ','Data_Airline.mat'))

В командной строке откройте приложение Econometric Modeler.

econometricModeler

Также откройте приложение из галереи приложений (см. Econometric Modeler).

Импортируйте DataTable в приложение:

  1. На вкладке Econometric Modeler, в разделе Import, нажатии кнопки.

  2. В диалоговом окне Import Data, в столбце Import?, устанавливают флажок для переменной DataTable.

  3. Нажмите Import.

Переменная PSSG появляется в Data Browser, и его график временных рядов появляется в окне рисунка Time Series Plot(PSSG).

Ряд показывает сезонный тренд, последовательную корреляцию и возможный экспоненциальный рост. Для интерактивного анализа последовательной корреляции смотрите, Обнаруживают Последовательную Корреляцию Используя Приложение Econometric Modeler.

Стабилизируйте ряд

Обратитесь к экспоненциальному тренду путем применяния логарифмического преобразования к PSSG.

  1. В Data Browser выберите PSSG.

  2. На вкладке Econometric Modeler, в разделе Transforms, нажимают Log.

Преобразованная переменная PSSGLog появляется в Data Browser, и его график временных рядов появляется в окне рисунка Time Series Plot(PSSGLog).

Экспоненциальный рост, кажется, удален из ряда.

Обратитесь к сезонному тренду путем применения 12-го порядка сезонное различие. С PSSGLog, выбранным в Data Browser, на вкладке Econometric Modeler, в разделе Transforms, устанавливает Seasonal на 12. Затем нажмите Seasonal.

Преобразованная переменная PSSGLogSeasonalDiff появляется в Data Browser, и его график временных рядов появляется в окне рисунка Time Series Plot(PSSGLogSeasonalDiff).

Преобразованный ряд, кажется, имеет модульный корень.

Протестируйте нулевую гипотезу, что PSSGLogSeasonalDiff имеет модульный корень при помощи Увеличенного Более полного Дики теста. Укажите, что альтернатива является моделью AR (0), затем протестируйте снова определение модели AR (1). Настройте уровень значения к 0,025, чтобы поддержать общий уровень значения 0,05.

  1. С PSSGLogSeasonalDiff, выбранным в Data Browser, на вкладке Econometric Modeler, в разделе Tests, нажимают New Test> Augmented Dickey-Fuller Test.

  2. На вкладке ADF, в разделе Parameters, устанавливает Significance Level на 0.025.

  3. В разделе Tests нажмите Run Test.

  4. В разделе Parameters, набор Number of Lags к 1.

  5. В разделе Tests нажмите Run Test.

Результаты испытаний появляются в таблице Results документа ADF(PSSGLogSeasonalDiff).

Обоим тестам не удается отклонить нулевую гипотезу, что ряд является модульным корневым процессом.

Обратитесь к модульному корню путем применения первого различия для PSSGLogSeasonalDiff. С PSSGLogSeasonalDiff, выбранным в Data Browser, кликните по вкладке Econometric Modeler. Затем в разделе Transforms нажмите Difference.

Преобразованная переменная PSSGLogSeasonalDiffDiff появляется в Data Browser, и его график временных рядов появляется в окне рисунка Time Series Plot(PSSGLogSeasonalDiffDiff).

Переименуйте переменную PSSGLogSeasonalDiffDiff к PSSGStable:

  1. В Data Browser щелкните правой кнопкой по PSSGLogSeasonalDiffDiff.

  2. В контекстном меню выберите Rename.

  3. Введите PSSGStable.

Обновления приложения имена всех документов сопоставлены с преобразованным рядом.

Идентифицируйте модель для ряда

Определите структуру задержки для условной средней модели данных путем графического вывода демонстрационной автокорреляционной функции (ACF) и частичная автокорреляционная функция (PACF).

  1. С PSSGStable, выбранным в Data Browser, кликните по вкладке Plots, затем нажмите ACF.

  2. Покажите первые 50 задержек ACF. На вкладке ACF, набор Number of Lags к 50.

  3. Кликните по вкладке Plots, затем нажмите PACF.

  4. Покажите первые 50 задержек PACF. На вкладке PACF, набор Number of Lags к 50.

  5. Перетащите окно рисунка ACF(PSSGStable) выше окна рисунка PACF(PSSGStable).

Согласно [1], автокорреляции в ACF и PACF предполагают, что следующий SARIMA (0,1,1) × (0,1,1) 12 моделей подходит для PSSGLog.

(1L)(1L12)yt=(1+θ1L)(1+Θ12L12)εt.

Закройте все окна рисунка.

Задайте и оцените модель SARIMA

Задайте SARIMA (0,1,1) × (0,1,1) 12 моделей.

  1. В Data Browser выберите временные ряды PSSGLog.

  2. На вкладке Econometric Modeler, в разделе Models, кликают по стрелке> SARIMA.

  3. В диалоговом окне SARIMA Model Parameters, на вкладке Lag Order:

    • Раздел Nonseasonal

      1. Установите Degrees of Integration на 1.

      2. Установите Moving Average Order на 1.

      3. Снимите флажок Include Constant Term.

    • Раздел Seasonal

      1. Установите Period на 12 указывать на ежемесячные данные.

      2. Установите Moving Average Order на 1.

      3. Установите флажок Include Seasonal Difference.

  4. Нажмите Estimate.

Образцовая переменная SARIMA_PSSGLog появляется в Data Browser, и его сводные данные оценки появляются в документе Model Summary(SARIMA_PSSGLog).

Экспортируйте переменные в рабочую область

Экспортируйте PSSGLog, PSSGStable и SARIMA_PSSGLog к рабочему пространству MATLAB.

  1. На вкладке Econometric Modeler, в разделе Export, нажатии кнопки.

  2. В диалоговом окне Export Variables установите флажки Select для PSSGLog и временных рядов PSSGStable и модели SARIMA_PSSGLog (при необходимости). Приложение автоматически устанавливает флажки для всех переменных, которые подсвечены в Data Browser.

  3. Нажмите Export.

В командной строке перечислите все переменные в рабочей области.

whos
  Name                  Size            Bytes  Class        Attributes

  Data                144x1              1152  double                 
  DataTable           144x1              3192  timetable              
  Description          22x54             2376  char                   
  PSSGLog             144x1              1152  double                 
  PSSGStable          144x1              1152  double                 
  SARIMA_PSSGLog        1x1              7963  arima                  
  dates               144x1              1152  double                 
  series                1x1               162  cell                   

Содержимое Data_Airline.mat, числовые векторы PSSGLog и PSSGStable и предполагаемый объект модели arima SARIMA_PSSGLog является переменными в рабочей области.

Предскажите следующие три года (36 месяцев) логарифмических количеств авиапассажира с помощью SARIMA_PSSGLog. Задайте PSSGLog как преддемонстрационные данные.

numObs = 36;
fPSSG = forecast(SARIMA_PSSGLog,numObs,'Y0',PSSGLog);

Постройте пассажирские количества и прогнозы.

fh = DataTable.Time(end) + calmonths(1:numObs);

figure;
plot(DataTable.Time,exp(PSSGLog));
hold on
plot(fh,exp(fPSSG));
legend('Airline Passenger Counts','Forecasted Counts',...
     'Location','best')
title('Monthly Airline Passenger Counts, 1949-1963')
ylabel('Passenger counts')
hold off

Сгенерируйте функцию простого текста от сеанса приложения

Сгенерируйте функцию MATLAB для использования вне приложения. Функция возвращает предполагаемую модель SARIMA_PSSGLog, данную DataTable.

  1. В Data Browser приложения выберите модель SARIMA_PSSGLog.

  2. На вкладке Econometric Modeler, в разделе Export, нажимают Export> Generate Function. Редактор MATLAB открывает и содержит функцию с именем modelTimeSeries. Функция принимает DataTable (переменная, которую вы импортировали на этом сеансе), преобразовывает данные и возвращает предполагаемый SARIMA (0,1,1) × (0,1,1) 12 моделей SARIMA_PSSGLog.

  3. На вкладке Editor нажмите Save> Save.

  4. Сохраните функцию в свою текущую папку путем нажатия на Save в диалоговом окне Select File for Save As.

В командной строке оцените SARIMA (0,1,1) × (0,1,1) 12 моделей путем передачи DataTable modelTimeSeries.m. Назовите модель SARIMA_PSSGLog2. Сравните предполагаемую модель с SARIMA_PSSGLog.

SARIMA_PSSGLog2 = modelTimeSeries(DataTable);

summarize(SARIMA_PSSGLog)
summarize(SARIMA_PSSGLog2)
   ARIMA(0,1,1) Model Seasonally Integrated with Seasonal MA(12) (Gaussian Distribution)
 
    Effective Sample Size: 144
    Number of Estimated Parameters: 3
    LogLikelihood: 276.198
    AIC: -546.397
    BIC: -537.488
 
                  Value      StandardError    TStatistic      PValue  
                _________    _____________    __________    __________

    Constant            0              0           NaN             NaN
    MA{1}        -0.37716       0.066794       -5.6466      1.6364e-08
    SMA{12}      -0.57238       0.085439       -6.6992      2.0952e-11
    Variance    0.0012634     0.00012395        10.193      2.1406e-24

 
 
 
   ARIMA(0,1,1) Model Seasonally Integrated with Seasonal MA(12) (Gaussian Distribution)
 
    Effective Sample Size: 144
    Number of Estimated Parameters: 3
    LogLikelihood: 276.198
    AIC: -546.397
    BIC: -537.488
 
                  Value      StandardError    TStatistic      PValue  
                _________    _____________    __________    __________

    Constant            0              0           NaN             NaN
    MA{1}        -0.37716       0.066794       -5.6466      1.6364e-08
    SMA{12}      -0.57238       0.085439       -6.6992      2.0952e-11
    Variance    0.0012634     0.00012395        10.193      2.1406e-24

Как ожидалось модели идентичны.

Сгенерируйте живую функцию от сеанса приложения

В отличие от функции простого текста, живая функция содержит форматированный текст и уравнения, которые можно изменить при помощи Live Editor.

Сгенерируйте живую функцию для использования вне приложения. Функция возвращает предполагаемую модель SARIMA_PSSGLog, данную DataTable.

  1. В Data Browser приложения выберите модель SARIMA_PSSGLog.

  2. На вкладке Econometric Modeler, в разделе Export, нажимают Export> Generate Live Function. Live Editor открывает и содержит функцию с именем modelTimeSeries. Функция принимает DataTable (переменная, которую вы импортировали на этом сеансе), преобразовывает данные и возвращает предполагаемый SARIMA (0,1,1) × (0,1,1) 12 моделей SARIMA_PSSGLog.

  3. На вкладке Live Editor, в разделе File, нажимают Save> Save.

  4. Сохраните функцию в свою текущую папку путем нажатия на Save в диалоговом окне Select File for Save As.

В командной строке оцените SARIMA (0,1,1) × (0,1,1) 12 моделей путем передачи DataTable modelTimeSeries.m. Назовите модель SARIMA_PSSGLog2. Сравните предполагаемую модель с SARIMA_PSSGLog.

SARIMA_PSSGLog2 = modelTimeSeries(DataTable);

summarize(SARIMA_PSSGLog)
summarize(SARIMA_PSSGLog2)
   ARIMA(0,1,1) Model Seasonally Integrated with Seasonal MA(12) (Gaussian Distribution)
 
    Effective Sample Size: 144
    Number of Estimated Parameters: 3
    LogLikelihood: 276.198
    AIC: -546.397
    BIC: -537.488
 
                  Value      StandardError    TStatistic      PValue  
                _________    _____________    __________    __________

    Constant            0              0           NaN             NaN
    MA{1}        -0.37716       0.066794       -5.6466      1.6364e-08
    SMA{12}      -0.57238       0.085439       -6.6992      2.0952e-11
    Variance    0.0012634     0.00012395        10.193      2.1406e-24

 
 
 
   ARIMA(0,1,1) Model Seasonally Integrated with Seasonal MA(12) (Gaussian Distribution)
 
    Effective Sample Size: 144
    Number of Estimated Parameters: 3
    LogLikelihood: 276.198
    AIC: -546.397
    BIC: -537.488
 
                  Value      StandardError    TStatistic      PValue  
                _________    _____________    __________    __________

    Constant            0              0           NaN             NaN
    MA{1}        -0.37716       0.066794       -5.6466      1.6364e-08
    SMA{12}      -0.57238       0.085439       -6.6992      2.0952e-11
    Variance    0.0012634     0.00012395        10.193      2.1406e-24

Как ожидалось модели идентичны.

Сгенерируйте отчет

Сгенерируйте отчет PDF всех своих действий с PSSGLog и временными рядами PSSGStable и моделью SARIMA_PSSGLog.

  1. На вкладке Econometric Modeler, в разделе Export, нажимают Export> Generate Report.

  2. В диалоговом окне Select Variables for Report установите флажки Select для PSSGLog и временных рядов PSSGStable и модели SARIMA_PSSGLog (при необходимости). Приложение автоматически устанавливает флажки для всех переменных, которые подсвечены в Data Browser.

  3. Нажмите OK.

  4. В диалоговом окне Select File to Write перейдите к папке C:\MyData.

  5. В поле File name введите SARIMAReport.

  6. Нажмите Save.

Приложение публикует код, требуемый создать PSSGLog, PSSGStable и SARIMA_PSSGLog в C:\MyData\SARIMAReport.pdf PDF. Отчет включает в себя:

  • Титульный лист и оглавление

  • Графики, которые включают выбранные временные ряды

  • Описания преобразований применились к выбранному временному ряду

  • Результаты статистических тестов проведены на выбранных временных рядах

  • Сводные данные оценки выбранных моделей

Ссылки

[1] Поле, G. E. P. Г. М. Дженкинс и Г. К. Рейнсель. Анализ timeseries: Прогнозирование и Управление. 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.

Смотрите также

Приложения

Объекты

Функции

Похожие темы