Вейвлет финансовых данных

В этом примере показано, как использовать вейвлеты для анализа финансовых данных.

Разделение совокупных данных на различные временные шкалы является мощным инструментом для анализа финансовых данных. Различные рыночные силы влияют на экономические отношения в течение различных периодов времени. Экономические потрясения локализуются во времени и в течение этого периода времени проявляют колебания различной частоты.

Некоторые экономические индикаторы задерживаются, лидируют или совпадают с другими переменными. Различные участники финансовых рынков рассматривают рыночную механику в более коротких и длинных шкалах. Такие термины, как «краткосрочный» и «долгосрочный», являются центральными в моделировании сложных отношений между финансовыми переменными.

Вейвлеты разлагают данные временных рядов на различные шкалы и могут выявить отношения, не очевидные в совокупных данных. Кроме того, часто можно использовать свойства коэффициентов вейвлета, чтобы вывести основанные на шкале оценки для отклонения и корреляции и проверить на значительные различия.

Максимальное перекрытие Дискретное Преобразование Вейвлета -- Волатильность по шкале

Существуют несколько различных изменений вейвлет. Этот пример фокусируется на максимальном перекрывании дискретного вейвлет (MODWT). MODWT является неопределенным вейвлет по диадическим (степеням двойки) шкалам, которое часто используется с финансовыми данными. Одной из приятных функций MODWT для анализа временных рядов является то, что он разделяет отклонение данных по шкалам. Чтобы проиллюстрировать это, рассмотрим ежеквартальные взвешенные по цепочке данные о реальном ВВП США для 1947Q1 к 2011Q4. Данные были преобразованы путем сначала взятия естественного логарифма, а затем вычисления различия за год. Получите MODWT реальных данных ВВП до шестого уровня с вейвлет 'db2'. Исследуйте дисперсию данных и сравните ее с отклонениями по шкале, полученной с помощью MODWT.

load GDPExampleData;
realgdpwt = modwt(realgdp,'db2',6);
vardata = var(realgdp,1);
varwt = var(realgdpwt,1,2);

В vardata у вас есть отклонение для совокупных временных рядов ВВП. В varwt у вас есть отклонение по шкале для MODWT. В varwt семь элементов поскольку вы получили MODWT до шестого уровня, что привело к шести дисперсиям вейвлет-коэффициентов и одной дисперсии масштабирующего коэффициента. Суммируйте отклонения по шкале, чтобы увидеть, что отклонение сохранено. Постройте график отклонений вейвлета с помощью шкалы, игнорирующей дисперсию коэффициента масштабирования.

totalMODWTvar = sum(varwt);
bar(varwt(1:end-1,:))
AX = gca;
AX.XTickLabels = {'[2 4)','[4 8)','[8 16)','[16 32)','[32 64)','[64 128)'};
xlabel('Quarters')
ylabel('Variance')
title('Wavelet Variance by Scale')

Поскольку эти данные являются ежеквартальными, первая шкала захватывает изменения между двумя и четырьмя четвертями, вторая шкала между четырьмя и восемью, третья между 8 и 16 и так далее.

Из MODWT и простой столбиковой диаграммы видно, что циклы в данных от 8 до 32 кварталов составляют наибольшее отклонение в данных ВВП. Если учесть отклонения вейвлет на этих шкалах, они составляют 57% изменчивости в данных ВВП. Это означает, что колебания в ВВП в течение периода от 2 до 8 лет составляют большую часть изменчивости, наблюдаемой во временных рядах.

Отличная модерация - Тестирование на изменения волатильности с MODWT

Вейвлет часто может выявить изменения волатильности, не заметные в совокупных данных. Начнем с графика данных ВВП.

helperFinancialDataExample1(realgdp,year,'Year over Year Real U.S. GDP')

Затенённая область упоминается как «Великая умеренность», означающая период пониженной макроэкономической волатильности в США, начиная с середины 1980-х годов.

Исследуя совокупные данные, неясно, что на самом деле в этот период снижается волатильность. Используйте вейвлеты, чтобы исследовать это, сначала получив мультирезолюционный анализ реальных данных ВВП с помощью вейвлета 'db2' до уровня 6.

realgdpwt = modwt(realgdp,'db2',6,'reflection');
gdpmra = modwtmra(realgdpwt,'db2','reflection');

Постройте график деталей уровня 1, D1. Эти детали захватывают колебания в данных между двумя и четырьмя четвертями в длительности.

helperFinancialDataExample1(gdpmra(1,:),year,...
    'Year over Year Real U.S. GDP - D1')

Исследуя детали уровня один, появляется уменьшение отклонения в период Великой Модерации.

Протестируйте вейвлет первого уровня для значительных точек изменения отклонения.

[pts_Opt,kopt,t_est] = wvarchg(realgdpwt(1,1:numel(realgdp)),2);
years(pts_Opt)
ans = 

  duration

   142 yrs

Существует точка изменения отклонения, идентифицированная в 1982 году. Этот пример не исправляет задержку, введенную вейвлетом 'db2' на первом уровне. Однако эта задержка составляет только две выборки, поэтому она не оказывает заметного влияния на результаты.

Чтобы оценить изменения в волатильности данных ВВП до и после 1982 года, разделите исходные данные на серии до и после изменений. Получите вейвлет набора наборов данных до и после. В этом случае ряд относительно короток, поэтому используйте wavelet Haar, чтобы минимизировать количество граничных коэффициентов. Вычислите объективные оценки отклонения вейвлета по шкале и постройте график результата.

tspre = realgdp(1:pts_Opt);
tspost = realgdp(pts_Opt+1:end);
wtpre = modwt(tspre,'haar',5);
wtpost = modwt(tspost,'haar',5);
prevar = modwtvar(wtpre,'haar','table');
postvar = modwtvar(wtpost,'haar','table');
xlab = {'[2Q,4Q)','[4Q,8Q)','[8Q,16Q)','[16Q,32Q)','[32Q,64Q)'};
helperFinancialDataExampleVariancePlot(prevar,postvar,'table',xlab)
title('Wavelet Variance By Scale');
legend('Pre 1982 Q2','Post 1982 Q2','Location','NorthWest');

Из предыдущего графика видно, что существуют значительные различия между pre-1982Q2 и post-1982Q2 отклонениями в шкалах от 2 до 16 четвертей.

Поскольку временные ряды в этом примере настолько коротки, может быть полезно использовать смещенные оценки отклонения. Смещенные оценки не удаляют граничные коэффициенты. Используйте вейвлет 'db2' с четырьмя коэффициентами.

wtpre = modwt(tspre,'db2',5,'reflection');
wtpost = modwt(tspost,'db2',5,'reflection');
prevar = modwtvar(wtpre,'db2',0.95,'EstimatorType','biased','table');
postvar = modwtvar(wtpost,'db2',0.95,'EstimatorType','biased','table');
xlab = {'[2Q,4Q)','[4Q,8Q)','[8Q,16Q)','[16Q,32Q)','[32Q,64Q)'};
figure;
helperFinancialDataExampleVariancePlot(prevar,postvar,'table',xlab)
title('Wavelet Variance By Scale');
legend('Pre 1982 Q2','Post 1982 Q2','Location','NorthWest');

Результаты подтверждают наш первоначальный вывод о том, что Великая Умеренность проявляется в снижении волатильности по шкалам от 2 до 16 четвертей.

Вейвлет анализ данных о компонентах ВВП

Можно также использовать вейвлеты для анализа корреляции между двумя наборами данных по шкале. Изучить корреляцию между совокупными данными о государственных расходах и частных инвестициях. Данные охватывают тот же период, что и реальные данные по ВВП, и преобразуются точно так же.

[rho,pval] = corrcoef(privateinvest,govtexp);

Государственные расходы и личные инвестиции демонстрируют слабую, но статистически значимую отрицательную корреляцию -0,215. Повторите этот анализ с помощью MODWT.

wtPI = modwt(privateinvest,'db2',5,'reflection');
wtGE = modwt(govtexp,'db2',5,'reflection');
wcorrtable = modwtcorr(wtPI,wtGE,'db2',0.95,'reflection','table');
display(wcorrtable)
wcorrtable =

  6x6 table

          NJ      Lower        Rho         Upper        Pvalue      AdjustedPvalue
          ___    ________    ________    __________    _________    ______________

    D1    257    -0.29187    -0.12602      0.047192       0.1531         0.7502   
    D2    251    -0.54836    -0.35147      -0.11766    0.0040933       0.060171   
    D3    239    -0.62443    -0.35248    -0.0043207     0.047857        0.35175   
    D4    215    -0.70466    -0.32112       0.20764      0.22523        0.82773   
    D5    167    -0.63284     0.12965       0.76448      0.75962              1   
    S5    167    -0.63428     0.12728       0.76347      0.76392              1   

Многомасштабная корреляция, доступная с MODWT, показывает значительную отрицательную корреляцию только в шкале 2, которая соответствует циклам в данных между 4 и 8 кварталами. Даже эта корреляция незначительно значима при корректировке для нескольких сравнений.

Многомасштабный корреляционный анализ показывает, что легкая отрицательная корреляция в совокупных данных определяется поведением данных по шкалам от четырех до восьми четвертей. Когда вы рассматриваете данные за различные периоды времени (шкалы), нет значительной корреляции.

Поперечные корреляционные последовательности Вейвлета - ведущие и отстающие переменные

С финансовыми данными часто существует ведущая или отстающая связь между переменными. В этих случаях полезно изучить последовательность перекрестной корреляции, чтобы определить, максимизирует ли отставание одной переменной по отношению к другой их перекрестную корреляцию. Для того чтобы проиллюстрировать это, рассмотрим взаимосвязь между двумя компонентами ВВП -- личными расходами на потребление и валовыми частными внутренними инвестициями.

piwt = modwt(privateinvest,'fk8',5);
pcwt = modwt(pc,'fk8',5);
figure;
modwtcorr(piwt,pcwt,'fk8')

Личные расходы и личные инвестиции отрицательно коррелируют в течение 2-4 кварталов. В более длительных шкалах наблюдается сильная положительная корреляция между личными расходами и личными инвестициями. Исследуйте вейвлет последовательность в шкале, представляющей 2-4 квартальных цикла.

[xcseq,xcseqci,lags] = modwtxcorr(piwt,pcwt,'fk8');
zerolag = floor(numel(xcseq{1})/2)+1;
plot(lags{1}(zerolag:zerolag+20),xcseq{1}(zerolag:zerolag+20));
hold on;
plot(lags{1}(zerolag:zerolag+20),xcseqci{1}(zerolag:zerolag+20,:),'r--');
xlabel('Lag (Quarters)');
grid on;
title('Wavelet Cross-Correlation Sequence -- [2Q,4Q)');

Самая мелкая вейвлет корреляционная последовательность показывает пиковую положительную корреляцию с задержкой в одну четверть. Это указывает на то, что личные инвестиции отстают от личных расходов на один квартал.

Непрерывный вейвлет уровня инфляции в США

Используя дискретный вейвлет, вы ограничены диадическими шкалами. Это ограничение снимается при использовании непрерывного вейвлет.

Загрузка данных по темпам инфляции в США за период с мая 1961 года по ноябрь 2011 года.

load CPIInflation;
figure
plot(yr,inflation)
AX = gca;
AX.XTick = 1962:10:2011;
title('CPI Inflation -- 1961 to 2011')
axis tight; grid on;
xlabel('Year')

В данных о времени медленное колебание появляется в начале 1970-х годов и, похоже, рассеивается к концу 1980-х годов.

Чтобы охарактеризовать периоды повышенной летучести, получите непрерывное вейвлет-преобразование (CWT) данных с помощью аналитического вейвлета Морле.

cwt(inflation,'amor',years(1/12));
AX = gca;
AX.XTick = 8/12:10:596/12;
AX.XTickLabels = yr(round(AX.XTick*12));

CWT обнаруживает самые сильные колебания в данных по уровню инфляции в приблизительной области значений 4-6 лет. Эта волатильность начинает рассеиваться к середине 1980-х годов и характеризуется как постепенным снижением инфляции, так и сдвигом волатильности к более длительным периодам. Сильные циклы волатильности в 1970-х годах и в начале 1980-х годов являются результатом энергетического кризиса 1970-х годов (нефтяные потрясения), который привел к стагфляции (стагнация роста и инфляция) в основных промышленно развитых странах. Подробный анализ этих и других макроэкономических данных на основе CWT см. в разделе [1]. Этот пример воспроизводит небольшую часть более широкого и подробного анализа в этой статье.

Заключения

В этом примере вы научились использовать MODWT для анализа многомасштабной волатильности и корреляции в данных финансовых временных рядов. Пример также продемонстрировал, как вейвлеты могут использоваться для обнаружения изменений летучести процесса с течением времени. Наконец, пример показал, как CWT может использоваться для характеристики периодов повышенной волатильности в финансовых временных рядах. Ссылки предоставляют более подробную информацию о вейвлетах для финансовых данных и анализа временных рядов.

Приложение

В этом примере используются следующие вспомогательные функции.

*helperFinancialDataExample1

* helper Financial Data Example Variance Plot

* helperCWTTimeFreqPlot

Ссылки

[1] Aguiar-Conraria, L., M. M. F. Martins, and M. J. Soares. Кривая выражения и макроэкономика по времени и частотам. Журнал экономической динамики и контроля. Том 36, № 12, 2012, стр. 1950-1970.

[2] Crowley, P. M. «A Guide to Wavelets for Economists». Журнал экономических обследований. Том 21, № 2, 2007, стр. 207-267.

[3] Gallegati, M., and W. Semmler (Eds.). Вейвлет в экономике и финансах. Гейдельберг, Германия: Springer International Publishing, 2014.

[4] Персиваль, Д. Б., и А. Т. Уолден. Вейвлет для анализа временных рядов. Кембридж, Великобритания: Cambridge University Press, 2000.

См. также

| |