В этом примере показано, как использовать вейвлеты для анализа финансовых данных.
Разделение агрегированных данных на различные временные шкалы является мощным инструментом для анализа финансовых данных. Различные рыночные силы влияют на экономические отношения в разные периоды времени. Экономические потрясения локализуются во времени и в этот период времени проявляют колебания различной частоты.
Некоторые экономические показатели отстают, приводят или совпадают с другими переменными. Различные участники финансовых рынков рассматривают рыночную механику в более коротких и более длительных масштабах. Такие термины, как «краткосрочный» и «долгосрочный», играют центральную роль в моделировании сложных отношений между финансовыми переменными.
Вейвлеты разбивают данные временных рядов на различные масштабы и могут выявить связи, не очевидные в агрегированных данных. Кроме того, часто можно использовать свойства вейвлет-коэффициентов для получения основанных на масштабе оценщиков дисперсии и корреляции и проверки значительных разностей.
Существует ряд различных вариантов вейвлет-преобразования. Этот пример фокусируется на максимальном перекрывании дискретного вейвлет-преобразования (MODWT). MODWT представляет собой недекимированное вейвлет-преобразование по диадическим (степеням двух) шкалам, которое часто используется с финансовыми данными. Одной из отличительных особенностей MODWT для анализа временных рядов является разделение дисперсии данных по масштабам. Чтобы проиллюстрировать это, рассмотрим квартальные данные реального ВВП США, взвешенные по цепочке, для 1947Q1- 2011Q4. Данные были преобразованы, сначала взяв натуральный логарифм, а затем рассчитав годовую разницу. Получите значение MODWT данных реального ВВП до уровня 6 с помощью вейвлета «db2». Проверьте дисперсию данных и сравните ее с дисперсиями по шкале, полученной с помощью MODWT.
load GDPExampleData; realgdpwt = modwt(realgdp,'db2',6); vardata = var(realgdp,1); varwt = var(realgdpwt,1,2);
В vardata имеется отклонение для совокупного временного ряда ВВП. В varwt имеется отклонение по шкале для MODWT. Существует семь элементов в varwt поскольку вы получили MODWT до уровня 6, что привело к шести дисперсиям вейвлет-коэффициентов и одной дисперсией масштабного коэффициента. Суммируйте отклонения по масштабу, чтобы убедиться, что отклонение сохранено. Постройте график вейвлет-дисперсий по шкале, игнорируя дисперсию масштабного коэффициента.
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 лет составляют большую часть изменчивости, наблюдаемой во временных рядах.
Вейвлет-анализ часто может выявить изменения в волатильности, не очевидные в агрегированных данных. Начните с графика данных ВВП.
helperFinancialDataExample1(realgdp,year,'Year over Year Real U.S. GDP')

Затененный регион называют «Большой умеренностью,» означающей период снижения макроэкономической волатильности в США, начиная с середины 1980-х годов.
При анализе совокупных данных не ясно, действительно ли в этот период наблюдается снижение волатильности. Используйте вейвлеты, чтобы исследовать это, сначала получив анализ множественных решений реальных данных ВВП, используя вейвлет «db2» до уровня 6.
realgdpwt = modwt(realgdp,'db2',6,'reflection'); gdpmra = modwtmra(realgdpwt,'db2','reflection');
Постройте график деталей первого уровня, 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» на уровне 1. Однако эта задержка составляет только две выборки, поэтому она не оказывает заметного влияния на результаты.
Для оценки изменений в волатильности данных о ВВП до и после 1982 года разбить исходные данные на ряды до и после перехода. Получение вейвлет-преобразований пред- и постнаборов данных. В этом случае ряды являются относительно короткими, поэтому используйте вейвлет Хаара для минимизации числа граничных коэффициентов. Вычислите несмещенные оценки вейвлет-дисперсии по масштабу и постройте график результата.
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-х годов и характеризуется как постепенным снижением инфляции, так и сдвигом волатильности в сторону более длительных периодов. Циклы сильной волатильности в 70-х годах и в начале 80-х годов являются результатом энергетического кризиса 70-х годов (нефтяные потрясения), который привел к стагфляции (стагнация роста и инфляция) в основных промышленно развитых странах. Углубленный анализ этих и других макроэкономических данных на основе CWT см. в [1]. Этот пример воспроизводит небольшую часть более широкого и подробного анализа в этой статье.
В этом примере описывается использование MODWT для анализа многомасштабной волатильности и корреляции в данных временных рядов финансов. Пример также продемонстрировал, как вейвлеты могут быть использованы для обнаружения изменений в волатильности процесса во времени. Наконец, пример показывает, как CWT может использоваться для характеристики периодов повышенной волатильности в финансовых временных рядах. Ссылки предоставляют более подробную информацию о вейвлет-приложениях для анализа финансовых данных и временных рядов.
В этом примере используются следующие вспомогательные функции.
[1] Агиар-Конрария, Л., М. М. Ф. Мартинс и М. Дж. Соарес. «Кривая доходности и макроэкономика во времени и частотах». Журнал экономической динамики и контроля. т. 36, № 12, 2012, с. 1950-1970.
[2] Кроули, П. М. «Руководство по вейвлетам для экономистов». Журнал экономических обследований. Том 21, номер 2, 2007, стр. 207-267.
[3] Галлегати, М. и В. Семмлер (Эдс.). Вейвлет-приложения в экономике и финансах. Хайдельберг, Германия: Springer International Publishing, 2014.
[4] Персиваль, D. B. и А. Т. Уолден. Вейвлет-методы для анализа временных рядов. Кембридж, Великобритания: Cambridge University Press, 2000.