garch

Условная модель временных рядов отклонения GARCH

Описание

Использование garch задавать одномерный GARCH (обобщил авторегрессивное условное выражение heteroscedastic), модель. garch функция возвращает a garch объект, задающий функциональную форму GARCH (P, Q) модель и хранилища ее значения параметров.

Ключевые компоненты garch модель включает:

  • Полином GARCH, который состоит из изолированных условных отклонений. Степень обозначается P.

  • Полином ДУГИ, который состоит из изолированных инноваций в квадрате. Степень обозначается Q.

P и Q являются максимальными ненулевыми задержками в GARCH и полиномах ДУГИ, соответственно. Другие компоненты модели включают инновационное среднее смещение модели, условная постоянная модель отклонения, и инновационное распределение.

Все коэффициенты неизвестны (NaN значения) и допускающий оценку, если вы не задаете их синтаксис аргумента пары "имя-значение" использования значений. Чтобы оценить модели, содержащие все или частично неизвестные определенные данные значений параметров, использовать estimate. Для абсолютно заданных моделей (модели, в которых известны все значения параметров), симулируйте или предскажите использование ответов simulate или forecast, соответственно.

Создание

Описание

пример

Mdl = garch возвращает условную дисперсию нулевой степени garch объект.

пример

Mdl = garch(P,Q) создает условный объект модели отклонения GARCH (Mdl) полиномом GARCH со степенью P и полином ДУГИ со степенью Q. GARCH и полиномы ДУГИ содержат все последовательные задержки от 1 до их степеней, и всеми коэффициентами является NaN значения.

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

пример

Mdl = garch(Name,Value) свойства наборов или аргументы пары "имя-значение" использования дополнительных опций. Заключите каждое имя в кавычки. Например, 'ARCHLags',[1 4],'ARCH',{0.2 0.3} задает два коэффициента ДУГИ в ARCH в задержках 1 и 4.

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

Входные параметры

развернуть все

Краткий синтаксис обеспечивает простой способ к вам создать шаблоны модели, которые подходят для неограниченной оценки параметра. Например, чтобы создать модель GARCH(1,2), содержащую неизвестные значения параметров, введите:

Mdl = garch(1,2);
Чтобы наложить ограничения равенства на значения параметров во время оценки, установите соответствующие значения свойств с помощью записи через точку.

Степень полинома GARCH в виде неотрицательного целого числа. В полиноме GARCH и во время t, MATLAB® включает все последовательные условные условия отклонения от задержки t – 1 через задержку tP.

Можно задать этот аргумент с помощью garch(P,Q) краткий синтаксис только.

Если P > 0, затем необходимо задать Q как положительное целое число.

Пример: garch(1,1)

Типы данных: double

Степень полинома ДУГИ в виде неотрицательного целого числа. В полиноме ДУГИ и во время t, MATLAB включает все последовательные инновационные условия в квадрате от задержки t – 1 через задержку tQ.

Можно задать этот аргумент с помощью garch(P,Q) краткий синтаксис только.

Если P > 0, затем необходимо задать Q как положительное целое число.

Пример: garch(1,1)

Типы данных: double

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

Пример: 'ARCHLags',[1 4],'ARCH',{NaN NaN} задает модель GARCH(0,4) и неизвестные, но ненулевые, содействующие матрицы ДУГИ в задержках 1 и 4.

Полином GARCH отстает в виде разделенной запятой пары, состоящей из 'GARCHLags' и числовой вектор из уникальных положительных целых чисел.

GARCHLags (j) задержка, соответствующая коэффициенту GARCH {j}. Длины GARCHLags и GARCH должно быть равным.

Принятие всех коэффициентов GARCH (заданный GARCH свойство), положительны или NaN значения, max(GARCHLags) определяет значение P свойство.

Пример: 'GARCHLags',[1 4]

Типы данных: double

Полином ДУГИ отстает в виде разделенной запятой пары, состоящей из 'ARCHLags' и числовой вектор из уникальных положительных целых чисел.

ARCHLags (j) задержка, соответствующая содействующей ДУГЕ {j}. Длины ARCHLags и ARCH должно быть равным.

Принятие всех коэффициентов ДУГИ (заданный ARCH свойство), положительны или NaN значения, max(ARCHLags) определяет значение Q свойство.

Пример: 'ARCHLags',[1 4]

Типы данных: double

Свойства

развернуть все

Можно установить перезаписываемые значения свойств, когда вы создаете объект модели при помощи синтаксиса аргумента пары "имя-значение", или после того, как вы создаете объект модели при помощи записи через точку. Например, чтобы создать модель GARCH(1,1) с неизвестными коэффициентами, и затем задать инновационное распределение t с неизвестными степенями свободы, введите:

Mdl = garch('GARCHLags',1,'ARCHLags',1);
Mdl.Distribution = "t";

Это свойство доступно только для чтения.

Степень полинома GARCH в виде неотрицательного целого числа. P максимальная задержка в полиноме GARCH с коэффициентом, который положителен или NaN. Задержки, которые меньше P может иметь коэффициенты, равные 0.

P задает минимальное количество преддемонстрационных условных отклонений, требуемых инициализировать модель.

Если вы используете аргументы пары "имя-значение", чтобы создать модель, то MATLAB реализует одну из этих альтернатив (принимающий, что коэффициент самой большой задержки положителен или NaN):

  • Если вы задаете GARCHLags, затем P самая большая заданная задержка.

  • Если вы задаете GARCH, затем P число элементов заданного значения. Если вы также задаете GARCHLags, затем garch использование GARCHLags определить P вместо этого.

  • В противном случае, P 0.

Типы данных: double

Это свойство доступно только для чтения.

Степень полинома ДУГИ в виде неотрицательного целого числа. Q максимальная задержка в полиноме ДУГИ с коэффициентом, который положителен или NaN. Задержки, которые меньше Q может иметь коэффициенты, равные 0.

Q задает минимальное количество преддемонстрационных инноваций, требуемых инициировать модель.

Если вы используете аргументы пары "имя-значение", чтобы создать модель, то MATLAB реализует одну из этих альтернатив (принимающий, что коэффициент самой большой задержки положителен или NaN):

  • Если вы задаете ARCHLags, затем Q самая большая заданная задержка.

  • Если вы задаете ARCH, затем Q число элементов заданного значения. Если вы также задаете ARCHLags, затем garch использует его значение, чтобы определить Q вместо этого.

  • В противном случае, Q 0.

Типы данных: double

Условная модель отклонения, постоянная в виде положительной скалярной величины или NaN значение.

Типы данных: double

Коэффициенты полинома GARCH в виде вектора ячейки из положительных скалярных величин или NaN значения.

  • Если вы задаете GARCHLags, затем следующие условия применяются.

    • Длины GARCH и GARCHLags равны.

    • GARCH {j} коэффициент задержки GARCHLags (j).

    • По умолчанию, GARCH numel(GARCHLags)- 1 вектор ячейки из NaN значения.

  • В противном случае следующие условия применяются.

    • Длина GARCH P.

    • GARCH {j} коэффициент задержки j.

    • По умолчанию, GARCH P- 1 вектор ячейки из NaN значения.

Коэффициенты в GARCH соответствуйте коэффициентам в базовом LagOp изолируйте полином оператора, и подвергаются тесту исключения почти неприятия. Если вы устанавливаете коэффициент на 1e–12 или ниже, garch исключает тот коэффициент и его соответствующую задержку в GARCHLags из модели.

Типы данных: cell

Коэффициенты полинома ДУГИ в виде вектора ячейки из положительных скалярных величин или NaN значения.

  • Если вы задаете ARCHLags, затем следующие условия применяются.

    • Длины ARCH и ARCHLags равны.

    • ДУГА {j} коэффициент задержки ARCHLags (j).

    • По умолчанию, ARCH numel(ARCHLags)- 1 вектор ячейки из NaN значения.

  • В противном случае следующие условия применяются.

    • Длина ARCH Q.

    • ДУГА {j} коэффициент задержки j.

    • По умолчанию, ARCH Q- 1 вектор ячейки из NaN значения.

Коэффициенты в ARCH соответствуйте коэффициентам в базовом LagOp изолируйте полином оператора, и подвергаются тесту исключения почти неприятия. Если вы устанавливаете коэффициент на 1e–12 или ниже, garch исключает тот коэффициент и его соответствующую задержку в ARCHLags из модели.

Типы данных: cell

Это свойство доступно только для чтения.

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

Безусловное отклонение

σε2=κ(1i=1Pγij=1Qαj).

κ является условной постоянной моделью отклонения (Constant).

Типы данных: double

Инновационное среднее смещение модели или аддитивная постоянная в виде числового скаляра или NaN значение.

Типы данных: double

Распределение условной вероятности инновационного процесса в виде строки или массива структур. garch хранит значение как массив структур.

РаспределениеСтрокаМассив структур
Гауссов"Gaussian"struct('Name',"Gaussian")
t студента"t"struct('Name',"t",'DoF',DoF)

'DoF' поле задает параметр степеней свободы распределения t.

  • DoF > 2 или DoF = NaN.

  • DoF является допускающим оценку.

  • Если вы задаете "t", DoF isnan по умолчанию. Можно изменить его значение при помощи записи через точку после того, как вы создадите модель. Например, Mdl.Distribution.DoF = 3.

  • Если вы предоставляете массив структур, чтобы задать распределение t Студента, то необходимо задать обоих 'Name' и 'DoF' поля .

Пример: struct('Name',"t",'DoF',10)

Описание модели в виде строкового скаляра или вектора символов. garch хранит значение как строковый скаляр. Значение по умолчанию описывает параметрическую форму модели, например , "GARCH(1,1) Conditional Variance Model (Gaussian Distribution)".

Пример: 'Description','Model 1'

Типы данных: string | char

Примечание

Весь NaN- ценные параметры модели, которые включают коэффициенты и t - степени свободы инновационного распределения (если есть), являются допускающими оценку. Когда вы передаете получившийся garch объект и данные к estimate, MATLAB оценивает весь NaN- ценные параметры. Во время оценки, estimate обработки известные параметры как ограничения равенства, то есть,estimate содержит любые известные параметры, зафиксированные в их значениях.

Функции объекта

estimateПодбирайте условную модель отклонения к данным
filterПропустите воздействия через условную модель отклонения
forecastПредскажите условные отклонения из условных моделей отклонения
inferВыведите условные отклонения условных моделей отклонения
simulateСимуляция Монте-Карло условных моделей отклонения
summarizeОтобразите результаты оценки условной модели отклонения

Примеры

свернуть все

Создайте garch по умолчанию объект модели и задает свои значения параметров с помощью записи через точку.

Создайте модель GARCH(0,0).

Mdl = garch
Mdl = 
  garch with properties:

     Description: "GARCH(0,0) Conditional Variance Model (Gaussian Distribution)"
    Distribution: Name = "Gaussian"
               P: 0
               Q: 0
        Constant: NaN
           GARCH: {}
            ARCH: {}
          Offset: 0

Mdl garch модель. Это содержит неизвестную константу, ее смещением является 0, и инновационным распределением является 'Gaussian'. Модель не имеет полином ДУГИ или GARCH.

Задайте два неизвестных коэффициента ДУГИ для задержек одна и две записи через точку использования.

Mdl.ARCH = {NaN NaN}
Mdl = 
  garch with properties:

     Description: "GARCH(0,2) Conditional Variance Model (Gaussian Distribution)"
    Distribution: Name = "Gaussian"
               P: 0
               Q: 2
        Constant: NaN
           GARCH: {}
            ARCH: {NaN NaN} at lags [1 2]
          Offset: 0

Q и ARCH свойства обновляются к 2 и {NaN NaN}. Два коэффициента ДУГИ сопоставлены с задержками 1 и 2.

Создайте garch модель с помощью краткого обозначения garch(P,Q), где P степень полинома GARCH и Q степень полинома ДУГИ.

Создайте модель GARCH(3,2).

Mdl = garch(3,2)
Mdl = 
  garch with properties:

     Description: "GARCH(3,2) Conditional Variance Model (Gaussian Distribution)"
    Distribution: Name = "Gaussian"
               P: 3
               Q: 2
        Constant: NaN
           GARCH: {NaN NaN NaN} at lags [1 2 3]
            ARCH: {NaN NaN} at lags [1 2]
          Offset: 0

Mdl garch объект модели. Все свойства Mdl, кроме PQ, и Distribution, NaN значения. По умолчанию, программное обеспечение:

  • Включает условную постоянную модель отклонения

  • Исключает условное среднее смещение модели (т.е. смещением является 0)

  • Включает все условия задержки в ДУГУ и полиномы оператора задержки GARCH до задержек Q и P, соответственно

Mdl задает только функциональную форму модели GARCH. Поскольку это содержит неизвестные значения параметров, можно передать Mdl и данные timeseries к estimate оценить параметры.

Создайте garch аргументы пары "имя-значение" использования модели.

Задайте модель GARCH(1,1). По умолчанию условное среднее смещение модели является нулем. Укажите, что смещением является NaN.

Mdl = garch('GARCHLags',1,'ARCHLags',1,'Offset',NaN)
Mdl = 
  garch with properties:

     Description: "GARCH(1,1) Conditional Variance Model with Offset (Gaussian Distribution)"
    Distribution: Name = "Gaussian"
               P: 1
               Q: 1
        Constant: NaN
           GARCH: {NaN} at lag [1]
            ARCH: {NaN} at lag [1]
          Offset: NaN

Mdl garch объект модели. Программное обеспечение устанавливает все параметры (свойства объекта модели) к NaN, кроме PQ, и Distribution.

Начиная с Mdl содержит NaN значения, Mdl только подходит для оценки только. Передайте Mdl и данные timeseries к estimate.

Создайте модель GARCH(1,1) со средним смещением,

yt=0.5+εt,

где εt=σtzt,

σt2=0.0001+0.75σt-12+0.1εt-12,

и zt независимый политик и тождественно распределил стандартный Гауссов процесс.

Mdl = garch('Constant',0.0001,'GARCH',0.75,...
    'ARCH',0.1,'Offset',0.5)
Mdl = 
  garch with properties:

     Description: "GARCH(1,1) Conditional Variance Model with Offset (Gaussian Distribution)"
    Distribution: Name = "Gaussian"
               P: 1
               Q: 1
        Constant: 0.0001
           GARCH: {0.75} at lag [1]
            ARCH: {0.1} at lag [1]
          Offset: 0.5

garch значения по умолчанию присвоений к любым свойствам вы не задаете с аргументами пары "имя-значение".

Доступ к свойствам garch объект модели с помощью записи через точку.

Создайте garch объект модели.

Mdl = garch(3,2)
Mdl = 
  garch with properties:

     Description: "GARCH(3,2) Conditional Variance Model (Gaussian Distribution)"
    Distribution: Name = "Gaussian"
               P: 3
               Q: 2
        Constant: NaN
           GARCH: {NaN NaN NaN} at lags [1 2 3]
            ARCH: {NaN NaN} at lags [1 2]
          Offset: 0

Удалите второй срок GARCH из модели. Таким образом, укажите, что коэффициентом GARCH второго изолированного условного отклонения является 0.

Mdl.GARCH{2} = 0
Mdl = 
  garch with properties:

     Description: "GARCH(3,2) Conditional Variance Model (Gaussian Distribution)"
    Distribution: Name = "Gaussian"
               P: 3
               Q: 2
        Constant: NaN
           GARCH: {NaN NaN} at lags [1 3]
            ARCH: {NaN NaN} at lags [1 2]
          Offset: 0

Полином GARCH имеет два неизвестных параметра, соответствующие задержкам 1 и 3.

Отобразите распределение воздействий.

Mdl.Distribution
ans = struct with fields:
    Name: "Gaussian"

Воздействия являются Гауссовыми со средним значением 0 и отклонением 1.

Укажите что базовый I.I.D. воздействия имеют t распределение с пятью степенями свободы.

Mdl.Distribution = struct('Name','t','DoF',5)
Mdl = 
  garch with properties:

     Description: "GARCH(3,2) Conditional Variance Model (t Distribution)"
    Distribution: Name = "t", DoF = 5
               P: 3
               Q: 2
        Constant: NaN
           GARCH: {NaN NaN} at lags [1 3]
            ARCH: {NaN NaN} at lags [1 2]
          Offset: 0

Укажите, что коэффициенты ДУГИ 0.2 для первой задержки и 0.1 для второй задержки.

Mdl.ARCH = {0.2 0.1}
Mdl = 
  garch with properties:

     Description: "GARCH(3,2) Conditional Variance Model (t Distribution)"
    Distribution: Name = "t", DoF = 5
               P: 3
               Q: 2
        Constant: NaN
           GARCH: {NaN NaN} at lags [1 3]
            ARCH: {0.2 0.1} at lags [1 2]
          Offset: 0

Чтобы оценить остающиеся параметры, можно передать Mdl и ваши данные к estimate и используйте заданные параметры в качестве ограничений равенства. Или, можно задать остальную часть значений параметров, и затем симулировать или предсказать условные отклонения из модели GARCH путем передачи полностью заданной модели simulate или forecast, соответственно.

Подбирайте модель GARCH к ежегодным временным рядам датской номинальной биржи, возвращается от 1922-1999.

Загрузите Data_Danish набор данных. График номинал возвращается (nr).

load Data_Danish;
nr = DataTable.RN;

figure;
plot(dates,nr);
hold on;
plot([dates(1) dates(end)],[0 0],'r:'); % Plot y = 0
hold off;
title('Danish Nominal Stock Returns');
ylabel('Nominal return (%)');
xlabel('Year');

Номинальный ряд возврата, кажется, имеет ненулевое условное среднее смещение и, кажется, показывает кластеризацию энергозависимости. Таким образом, изменчивость меньше в течение более ранних лет, чем это в течение более поздних лет. В данном примере примите, что модель GARCH(1,1) подходит для этого ряда.

Создайте модель GARCH(1,1). Условное среднее смещение является нулем по умолчанию. Чтобы оценить смещение, укажите, что это - NaN.

Mdl = garch('GARCHLags',1,'ARCHLags',1,'Offset',NaN);

Подбирайте модель GARCH(1,1) к данным.

EstMdl = estimate(Mdl,nr);
 
    GARCH(1,1) Conditional Variance Model with Offset (Gaussian Distribution):
 
                  Value      StandardError    TStatistic     PValue  
                _________    _____________    __________    _________

    Constant    0.0044476      0.007814        0.56918        0.56923
    GARCH{1}      0.84932       0.26495         3.2056      0.0013477
    ARCH{1}       0.07325       0.14953        0.48986        0.62423
    Offset        0.11227      0.039214         2.8629      0.0041974

EstMdl полностью заданный garch объект модели. Таким образом, это не содержит NaN значения. Можно оценить соответствие модели путем генерации остаточных значений с помощью infer, и затем анализ их.

Чтобы симулировать условные отклонения или ответы, передайте EstMdl к simulate.

Чтобы предсказать инновации, передайте EstMdl к forecast.

Симулируйте условное отклонение или пути к ответу от полностью заданного garch объект модели. Таким образом, симулируйте от предполагаемого garch модель или известный garch модель, в которой вы задаете все значения параметров.

Загрузите Data_Danish набор данных.

load Data_Danish;
nr = DataTable.RN;

Создайте модель GARCH(1,1) с неизвестным условным средним смещением. Подбирайте модель к ежегодному номинальному ряду возврата.

Mdl = garch('GARCHLags',1,'ARCHLags',1,'Offset',NaN);
EstMdl = estimate(Mdl,nr);
 
    GARCH(1,1) Conditional Variance Model with Offset (Gaussian Distribution):
 
                  Value      StandardError    TStatistic     PValue  
                _________    _____________    __________    _________

    Constant    0.0044476      0.007814        0.56918        0.56923
    GARCH{1}      0.84932       0.26495         3.2056      0.0013477
    ARCH{1}       0.07325       0.14953        0.48986        0.62423
    Offset        0.11227      0.039214         2.8629      0.0041974

Симулируйте 100 путей условных отклонений и ответов в течение каждого периода из предполагаемой модели GARCH.

numObs = numel(nr); % Sample size (T)
numPaths = 100;     % Number of paths to simulate
rng(1);             % For reproducibility
[VSim,YSim] = simulate(EstMdl,numObs,'NumPaths',numPaths);

VSim и YSim T- numPaths матрицы. Строки соответствуют периоду расчета, и столбцы соответствуют симулированному пути.

Постройте среднее значение и процентили на 2,5% и на 97,5% симулированных путей. Сравните статистику симуляции с исходными данными.

VSimBar = mean(VSim,2);
VSimCI = quantile(VSim,[0.025 0.975],2);
YSimBar = mean(YSim,2);
YSimCI = quantile(YSim,[0.025 0.975],2);

figure;
subplot(2,1,1);
h1 = plot(dates,VSim,'Color',0.8*ones(1,3));
hold on;
h2 = plot(dates,VSimBar,'k--','LineWidth',2);
h3 = plot(dates,VSimCI,'r--','LineWidth',2);
hold off;
title('Simulated Conditional Variances');
ylabel('Cond. var.');
xlabel('Year');

subplot(2,1,2);
h1 = plot(dates,YSim,'Color',0.8*ones(1,3));
hold on;
h2 = plot(dates,YSimBar,'k--','LineWidth',2);
h3 = plot(dates,YSimCI,'r--','LineWidth',2);
hold off;
title('Simulated Nominal Returns');
ylabel('Nominal return (%)');
xlabel('Year');
legend([h1(1) h2 h3(1)],{'Simulated path' 'Mean' 'Confidence bounds'},...
    'FontSize',7,'Location','NorthWest');

Предскажите условные отклонения от полностью заданного garch объект модели. Таким образом, предсказанный от предполагаемого garch модель или известный garch модель, в которой вы задаете все значения параметров. Пример следует из Оценки Модель GARCH.

Загрузите Data_Danish набор данных.

load Data_Danish;
nr = DataTable.RN;

Создайте модель GARCH(1,1) с неизвестным условным средним смещением и подбирайте модель к ежегодному, номинальному ряду возврата.

Mdl = garch('GARCHLags',1,'ARCHLags',1,'Offset',NaN);
EstMdl = estimate(Mdl,nr);
 
    GARCH(1,1) Conditional Variance Model with Offset (Gaussian Distribution):
 
                  Value      StandardError    TStatistic     PValue  
                _________    _____________    __________    _________

    Constant    0.0044476      0.007814        0.56918        0.56923
    GARCH{1}      0.84932       0.26495         3.2056      0.0013477
    ARCH{1}       0.07325       0.14953        0.48986        0.62423
    Offset        0.11227      0.039214         2.8629      0.0041974

Предскажите условное отклонение номинальных лет серии 10 возврата в будущее с помощью предполагаемой модели GARCH. Задайте целый ряд возвратов как преддемонстрационные наблюдения. Программное обеспечение выводит преддемонстрационные условные отклонения с помощью преддемонстрационных наблюдений и модели.

numPeriods = 10;
vF = forecast(EstMdl,numPeriods,nr);

График предсказанные условные отклонения номинала возвращается. Сравните прогнозы с наблюдаемыми условными отклонениями.

v = infer(EstMdl,nr);

figure;
plot(dates,v,'k:','LineWidth',2);
hold on;
plot(dates(end):dates(end) + 10,[v(end);vF],'r','LineWidth',2);
title('Forecasted Conditional Variances of Nominal Returns');
ylabel('Conditional variances');
xlabel('Year');
legend({'Estimation sample cond. var.','Forecasted cond. var.'},...
    'Location','Best');

Больше о

развернуть все

Советы

Можно задать garch модель как часть состава условного среднего значения и моделей отклонения. Для получения дополнительной информации смотрите arima.

Ссылки

[1] Tsay, R. S. Анализ Финансовых Временных рядов. 3-й редактор Хобокен, NJ: John Wiley & Sons, Inc., 2010.

Представленный в R2012a
Для просмотра документации необходимо авторизоваться на сайте