Первым шагом в многомерном анализе временных рядов является получение, проверка и предварительная обработка данных. В этом разделе описывается следующее:
Загрузка экономических данных в MATLAB ®
Соответствующие типы данных и структуры для многомерных функций анализа временных рядов
Общие характеристики данных временных рядов, которые могут гарантировать преобразование набора перед выполнением анализа
Разделение данных на предварительные, оценочные и прогнозные образцы.
Два основных типа данных многомерных временных рядов:
Данные ответа - наблюдения из n-D многомерных временных рядов ответов yt (см. Типы стационарных многомерных моделей временных рядов).
Экзогенные данные - наблюдения из m-D многомерного временного ряда предикторов xt. Каждая переменная в экзогенных данных по умолчанию отображается во всех уравнениях ответа.
Перед определением какого-либо набора данных в качестве входных данных для функций Toolbox™ Econometrics необходимо соответствующим образом отформатировать данные. Используйте стандартные команды MATLAB или выполните предварительную обработку данных с помощью программы электронной таблицы, программы базы данных, PERL или другого инструмента.
Можно получить исторические данные временных рядов из нескольких свободно доступных источников, таких как база данных экономики Федеральной резервной системы Сент-Луиса (известная как FRED ® ):https://research.stlouisfed.org/fred2/. При наличии лицензии Datafeed Toolbox™ можно использовать функции панели инструментов для доступа к данным из различных источников.
Файл Data_USEconModel поставляется с Econometrics Toolbox. Содержит временные ряды из FRED.
Загрузите данные в рабочую область MATLAB.
load Data_USEconModelПеременные в рабочей области:
Dataматрица 249 на 14, содержащая 14 макроэкономических временных рядов.
DataTableмассив расписания MATLAB 249 на 14, содержащий данные с временной меткой.
dates, вектор из 249 элементов, содержащий порядковые номера MATLAB, представляющие даты выборки. Порядковый номер даты - это количество дней с января 1, 0000 года. (Эта «дата» не является реальной датой, но удобна для вычисления даты. Дополнительные сведения см. в разделе Форматы дат в Руководстве пользователя финансового Toolbox™.)
Descriptionсимвольный массив, содержащий описание серии данных и ключ к меткам для каждой серии.
seriesмассив ячеек 1 на 14 меток для временного ряда.
DataTable содержит те же данные, что и Data. Однако, как и в таблице, расписание позволяет использовать точечную нотацию для доступа к переменной. Например, DataTable.UNRATE определяет временные ряды показателей безработицы. Все расписания содержат переменную Time, который является datetime вектор временных меток наблюдения. Дополнительные сведения см. в разделах Создание расписаний и Представление дат и времени в MATLAB. Можно также работать с серийными номерами MATLAB, хранящимися в dates.
Отображение первого и последнего времени выборки и имен переменных с помощью DataTable.
firstperiod = DataTable.Time(1)
firstperiod = datetime
Q1-47
lastperiod = DataTable.Time(end)
lastperiod = datetime
Q1-09
seriesnames = DataTable.Properties.VariableNames
seriesnames = 1x14 cell
Columns 1 through 6
{'COE'} {'CPIAUCSL'} {'FEDFUNDS'} {'GCE'} {'GDP'} {'GDPDEF'}
Columns 7 through 12
{'GPDI'} {'GS10'} {'HOANBS'} {'M1SL'} {'M2SL'} {'PCEC'}
Columns 13 through 14
{'TB3MS'} {'UNRATE'}
В этой таблице описаны переменные в DataTable.
| Переменная FRED | Описание |
|---|---|
COE | Выплаченная компенсация работникам в миллиардах долларов |
CPIAUCSL
| Индекс потребительских цен (ИПЦ) |
FEDFUNDS | Эффективная ставка федеральных фондов |
GCE | Государственные расходы на потребление и инвестиции в млрд. долл. США |
GDP | Валовой внутренний продукт (ВВП) |
GDPDEF | Валовой внутренний продукт в млрд. долл. США |
GPDI | Валовые частные внутренние инвестиции в млрд. долл. США |
GS10 | Доходность казначейских облигаций за 10 лет |
HOANBS | Индекс отработанных часов в несельскохозяйственном секторе |
M1SL | M1 денежная масса (узкие деньги) |
M2SL | M2 денежная масса (широкие деньги) |
PCEC | Расходы на личное потребление в млрд. долл. США |
TB3MS | Доходность казначейских векселей за три месяца |
UNRATE | Уровень безработицы |
Рассмотрите возможность изучения динамики ВВП, ИПЦ и уровня безработицы и предположим, что государственные расходы на потребление являются экзогенной переменной. Создайте массивы для данных ответа и предиктора. Отображение последних наблюдений в каждом массиве.
Y = DataTable{:,["CPIAUCSL" "UNRATE" "GDP"]};
x = DataTable.GCE;
lastobsresponse = Y(end,:)lastobsresponse = 1×3
104 ×
0.0213 0.0008 1.4090
lastobspredictor = x(end)
lastobspredictor = 2.8833e+03
Y и x представляют один путь наблюдений и соответствующим образом отформатированы для передачи в многомерные функции объекта модели. Информация временных меток не применяется к массивам, поскольку анализ предполагает, что время выборки равномерно разнесено.
Обычно наборы данных ответа и предиктора загружаются в рабочую область MATLAB как числовые массивы, таблицы MATLAB или расписания MATLAB. Однако функции объекта многомерного временного ряда принимают только 2-D или 3-D числовые массивы, и необходимо указать данные ответа и предиктора как отдельные входные данные.
Тип переменной и контекст проблемы определяют формат предоставляемых данных. Для любого массива, содержащего многомерные данные временных рядов:
Строка t массива содержит наблюдения всех переменных в момент времени t.
Столбец j массива содержит все наблюдения переменной j. MATLAB рассматривает каждую переменную в массиве как отдельную.
Матрица данных указывает один путь выборки. Чтобы создать переменную, представляющую один путь длины T данных ответа, поместите данные в матрицу T-by-n Y:
Y( = yj, t, что является наблюдением t переменной ответа j. Единый путь данных, созданных из переменных предиктора или других переменных, имеет аналогичную форму.t,j)
Можно указать один путь наблюдений в качестве входных данных для всех многомерных функций объекта модели, которые принимают данные. Примеры ситуаций, в которых предоставляется один путь:
Соответствие данных ответа и предиктора модели VARX. Вы предоставляете как путь данных ответа, так и путь данных предиктора, см. estimate.
Инициализация модели VEC с путем предварительной выборки данных для прогнозирования или моделирования путей (см. forecast или simulate).
Получение одного пути отклика от фильтрации пути инноваций через модель VAR (см. filter).
Создание условных прогнозов из модели VAR с указанием пути будущих данных ответа (см. forecast).
Числовой массив 3-D указывает несколько независимых путей выборки данных. Можно создать массив T-by-n-by-p Y, представляя p путей выборки данных ответа, путем укладки одиночных путей ответов (матриц) вдоль третьего измерения.

Y( = yj, t, k, который является наблюдением t переменной ответа j от пути k, k = 1,..., p. Все пути должны иметь одинаковое время выборки, а переменные между путями должны соответствовать друг другу. Дополнительные сведения см. в разделе Многомерные массивы.t,j,k)
Можно указать массив из нескольких путей ответов или нововведений в качестве входных данных для нескольких функций объекта многомерной модели, которые принимают данные. Примеры ситуаций, в которых предоставляется несколько путей:
Инициализация модели VEC с несколькими путями предварительной выборки данных для прогнозирования или моделирования нескольких путей. Каждый заданный путь может представлять различные начальные условия, из которых функции генерируют прогнозы или моделирование.
Получение нескольких путей отклика из фильтрации нескольких путей инноваций через модель VAR. Этот процесс является альтернативным способом моделирования нескольких путей ответа.
Создание нескольких путей условного прогноза из модели VAR с несколькими путями будущих данных ответа.
estimate не поддерживает спецификацию нескольких путей данных ответа.
Все функции объекта многомерной модели, которые принимают экзогенные данные в качестве входных данных, принимают матрицу X, представляющую один путь наблюдений. MATLAB включает все экзогенные переменные в компонент регрессии каждого уравнения ответа. Для модели VAR (p) уравнениями отклика являются:
+∑j=1pΦjyt−j+εt.
Чтобы настроить компоненты регрессии уравнений отклика, работайте с матрицей коэффициентов регрессии (сохраненной в Beta свойство объекта модели), а не данные. Дополнительные сведения см. в разделах Создание модели VAR и Выбор экзогенных переменных для уравнений ответа.
Функции объекта многомерной модели не поддерживают несколько путей данных предиктора. Однако если указать путь данных предиктора и несколько путей данных ответа или нововведений, функция связывает одни и те же данные предиктора со всеми путями. Например, при моделировании путей ответов из модели VARX и указании нескольких путей значений предварительной выборки simulate применяет одни и те же экзогенные данные к каждому сгенерированному пути ответа.
Данные могут иметь характеристики, нарушающие предположения модели. Например, можно иметь данные с экспоненциальным ростом или данные из нескольких источников с различной периодичностью. В таких случаях выполняется предварительная обработка или преобразование данных в приемлемую форму для анализа.
Проверьте данные на отсутствие значений, которые указаны NaNs. По умолчанию функции объекта используют удаление на основе списка для удаления наблюдений, содержащих по крайней мере одно отсутствующее значение. Если по меньшей мере одна переменная ответа или предиктора имеет отсутствующее значение для временной точки (строки), MATLAB удаляет все наблюдения за это время (всю строку матрицы данных ответа и предиктора). Такое удаление может иметь последствия для временной базы и эффективного размера выборки. Поэтому перед началом анализа необходимо исследовать и устранить все отсутствующие значения.
Для данных из нескольких источников необходимо решить, как синхронизировать данные. Синхронизация данных может включать агрегирование или дезагрегирование данных, и последняя может создавать шаблоны отсутствующих значений. К этим типам индуцированных отсутствующих значений можно обратиться путем исчисления предыдущих значений (т.е. отсутствующее значение не изменяется по сравнению с предыдущим значением) или путем их интерполяции из соседних значений.
Если временные ряды являются переменными в расписании, то можно синхронизировать данные с помощью synchronize.
Для временных рядов, демонстрирующих экспоненциальный рост, можно предварительно обработать данные, взяв логарифм растущих рядов. В некоторых случаях необходимо применить первое различие результата (см. price2ret). Дополнительные сведения о стабилизации временных рядов см. в разделе Нестатичность корня блока. Пример см. в разделе Пример модели VAR.
Примечание
Если применить первое различие ряда, результирующий ряд будет на одно наблюдение короче исходного ряда. Если в наборе данных применяется первое различие только для некоторых временных рядов, усечение других рядов таким образом, чтобы все они имели одинаковую длину, или добавление разностных рядов с начальными значениями.
При подгонке модели временных рядов к данным запаздывающие термины в модели требуют инициализации, как правило, с наблюдениями в начале выборки. Кроме того, чтобы измерить качество прогнозов из модели, необходимо сохранить данные в конце выборки из оценки. Поэтому перед анализом данных разбейте временную базу на три последовательных непересекающихся интервала:
Три секции временной базы для многомерных моделей векторной авторегрессии (VAR) и векторной коррекции ошибок (VEC) являются периодами предварительной выборки, оценки и прогноза.
Период предварительного отбора - содержит данные, используемые для инициализации запаздывающих значений в модели. Как модели VAR (p), так и модели VEC (p-1) требуют периода предварительной выборки, содержащего по меньшей мере p многомерных наблюдений. Например, если планируется подогнать модель VAR (4), условное ожидаемое значение yt, учитывая его историю, содержит yt - 1, yt - 2, yt - 3 и yt - 4. Условное ожидаемое значение y5 является функцией y1, y2, y3 и y4. Следовательно, вклад правдоподобия y5 требует y1-y4, что подразумевает, что данные не существуют для вклада правдоподобия y1-y4. В этом случае оценка модели требует периода предварительной выборки, по меньшей мере, из четырех временных точек.
Период оценки - содержит наблюдения, к которым явно подходит модель. Количество наблюдений в оценочной выборке является эффективным размером выборки. Для идентификации параметров эффективный размер выборки должен быть, по крайней мере, количеством оцениваемых параметров.
Период прогноза - дополнительный период, в течение которого создаются прогнозы, известный как горизонт прогноза. Этот раздел содержит данные удержания для проверки предсказуемости модели.
Предположим, yt является серией 2-D ответа, а xt - 1-D экзогенной серией. Рассмотрите возможность подгонки модели VARX (p) yt к данным ответа в матрице T-by-2Y и экзогенные данные в T-by-1 векторе x. Кроме того, требуется, чтобы горизонт прогноза имел длину K (т. е. требуется сохранить наблюдения K в конце выборки для сравнения с прогнозами из подогнанной модели). На этом рисунке показаны разделы временной базы для оценки модели.

На этом рисунке показаны части массивов, которые соответствуют входным аргументам estimate функция.

Y является необходимым вводом для указания данных ответа, которым соответствует модель.
Y0 является необязательным аргументом пары имя-значение для указания данных ответа предварительной выборки. Y0 должен иметь не менее p строк. Чтобы инициализировать модель, estimate использует только последние p наблюдения Y0((end – .p + 1):end,:)
X - необязательный аргумент пары имя-значение для указания экзогенных данных для компонента линейной регрессии. По умолчанию estimate исключает компонент регрессии из модели независимо от значения коэффициента регрессии Beta из arima шаблон модели для оценки.
Если не указать 'Y0', estimate удаляет наблюдения 1-p из Y для инициализации модели, а затем подгонки модели к остальным данным Y((. То есть p + 1):end,:)estimate выводит периоды предварительной выборки и оценки из Y. Хотя estimate извлекает предварительный образец из Y по умолчанию можно извлечь предварительный пример из данных и указать его с помощью Y0 аргумент пары имя-значение, который гарантирует, что estimate инициализирует и подгоняет модель к вашим спецификациям.
При указании 'X':
estimate синхронизируется X и Y относительно последнего наблюдения в массивах (T - K на предыдущем рисунке) и применяет только необходимое количество наблюдений к регрессионной составляющей. Это действие подразумевает, что X может иметь больше строк, Y.
Если также указать 'Y0', estimate использует только последние экзогенные наблюдения, необходимые для соответствия модели (наблюдения от J + 1 до T - K на предыдущем рисунке). estimate игнорирует предварительную выборку экзогенных данных.
Если планируется проверить прогностическую мощность подогнанной модели, перед оценкой необходимо извлечь образец прогноза из набора данных.
Рассмотрите возможность подгонки модели VAR (4) к данным и переменным в Load Multivarate Economic Data и сохранения последних 2 лет данных для проверки прогнозирующей мощности подогнанной модели .
Загрузите данные. Создание расписания, содержащего переменные предиктора и ответа
load Data_USEconModel responsenames = ["CPIAUCSL" "UNRATE" "GDP"]; predictorname = "GCE"; TT = DataTable(:,[responsenames predictorname]);
Определите все строки в расписании, содержащие хотя бы одно отсутствующее наблюдение (NaN).
whichmissing = ismissing(TT); idxvar = sum(whichmissing) > 0; hasmissing = TT.Properties.VariableNames(idxvar)
hasmissing = 1x1 cell array
{'UNRATE'}
wheremissing = find(whichmissing(:,idxvar) > 0)
wheremissing = 4×1
1
2
3
4
Уровень безработицы отсутствует первый год данных в выборке.
Удалите наблюдения (строки) с первыми отсутствующими значениями из данных.
TT = rmmissing(TT);
rmmissing используется для удаления всех строк из расписания ввода, содержащих по крайней мере одно отсутствующее наблюдение.
Модель VAR (4) требует 4 предварительных ответов, а прогнозная выборка требует 2 года (8 кварталов) данных. Разбиение данных ответа на предварительные, оценочные и прогнозные выборочные переменные. Разбиение данных предиктора на переменные оценки и выборки прогноза (данные предиктора предварительного отбора не считаются оценкой).
p = 4; % Num. presample observations fh = 8; % Forecast horizon T = size(TT,1); % Total sample size eT = T - p - fh; % Effective sample size idxpre = 1:p; idxest = (p + 1):(T - fh); idxfor = (T - fh + 1):T; Y0 = TT{idxpre,responsenames}; % Presample responses YF = TT{idxfor,responsenames}; % Forecast sample responses Y = TT{idxest,responsenames}; % Estimation sample responses xf = TT{idxfor,predictorname}; x = TT{idxest,predictorname};
При оценке модели с использованием estimate, укажите varm шаблон модели, представляющий модель VAR (4) и данные выборки оценкиY в качестве входных данных. Укажите данные предварительного примера ответа Y0 для инициализации модели с помощью 'Y0' аргумент пары имя-значение и укажите данные предиктора выборки оценки x с помощью 'X' аргумент пары имя-значение. Y и x являются синхронизированными наборами данных, в то время как Y0 происходит в течение предыдущих четырех периодов до начала выборки оценки.
После оценки можно прогнозировать модель с помощью forecast путем указания оценочного объекта модели VARX (4), возвращаемого estimate, горизонт прогноза fhи оценочные выборочные данные ответа Y для инициализации модели для прогнозирования. Укажите данные предиктора выборки прогноза xf для компонента регрессии модели с помощью 'X' аргумент пары имя-значение. Определение прогнозирующей мощности модели оценки путем сравнения прогнозов с данными выборки прогноза YF.