exponenta event banner

garch

Модель временного ряда условной дисперсии GARCH

Описание

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

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

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

  • Полином ARCH, который состоит из запаздывающих квадратичных нововведений. Степень обозначается Q.

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

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

Создание

Описание

пример

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

пример

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

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

пример

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

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

Входные аргументы

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

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

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

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

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

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

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

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

Степень полинома ARCH, заданная как неотрицательное целое число. В полиноме ARCH и в момент времени t MATLAB включает все последовательные квадратичные члены инноваций от запаздывания t - 1 до запаздывания t - Q.

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

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

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

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

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

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

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

Пример: 'ARCHLags',[1 4],'ARCH',{NaN NaN} задает модель GARCH (0,4) и неизвестные, но ненулевые матрицы коэффициентов ARCH с лагами1 и 4.

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

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

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

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

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

Задержки полинома ARCH, указанные как пара, разделенная запятыми, состоящая из 'ARCHLags' и числовой вектор уникальных положительных чисел.

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

Предполагается, что все коэффициенты ARCH (указаны ARCH свойство) являются положительными или NaN значения, max(ARCHLags) определяет значение Q собственность.

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

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

Свойства

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

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

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

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

Степень полинома ARCH, заданная как неотрицательное целое число. Q - максимальное отставание в полиноме ARCH с положительным коэффициентом или 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

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

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

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

    • ARCH{j} - коэффициент запаздывания ARCHLags(j).

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

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

    • Длина ARCH является Q.

    • ARCH{j} - коэффициент запаздывания j.

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

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

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

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

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

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

α2 = (1−∑i=1Pγi−∑j=1Qαj).

δ - константа модели условной дисперсии (Constant).

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

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

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

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

РаспределениеПоследовательностьСтруктурный массив
Гауссовский"Gaussian"struct('Name',"Gaussian")
Студенческая т"t"struct('Name',"t",'DoF',DoF)

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

  • DoF > 2 или DoF = NaN.

  • DoF является оценочным.

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

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

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

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

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

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

Примечание

Все NaN-значимые параметры модели, которые включают коэффициенты и степени свободы t-innovation-distribution (если присутствуют), могут быть оценены. При прохождении результирующего 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 или ARCH.

Укажите два неизвестных коэффициента ARCH для интервалов 1 и 2, используя точечную нотацию.

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}. Два коэффициента ARCH связаны с лагами 1 и 2.

Создать garch модель с использованием краткой нотации garch(P,Q), где P - степень полинома GARCH и Q - степень полинома ARCH.

Создайте модель 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, за исключением P, Q, и Distributionявляются NaN значения. По умолчанию программное обеспечение:

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

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

  • Включает все члены запаздывания в многочлены оператора запаздывания ARCH и GARCH до запаздываний Q и P, соответственно

Mdl указывает только функциональную форму модели GARCH. Поскольку он содержит неизвестные значения параметров, его можно передать Mdl и данные временных рядов для 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, за исключением P, Q, и Distribution.

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

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

yt = 0,5 + αt,

где αt = starttzt ,

startt2 = 0,0001 + 0,75startt-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

Укажите, что коэффициенты ARCH равны 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');

Figure contains an axes. The axes with title Danish Nominal Stock Returns contains 2 objects of type line.

Номинальная возвращаемая серия, по-видимому, имеет ненулевое условное среднее смещение и, по-видимому, демонстрирует кластеризацию волатильности. То есть изменчивость меньше для более ранних лет, чем для более поздних. В этом примере предположим, что модель 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 матрицы. Строки соответствуют периоду выборки, а столбцы - моделируемому пути.

Постройте график среднего значения и 97,5% и 2,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');

Figure contains 2 axes. Axes 1 with title Simulated Conditional Variances contains 103 objects of type line. Axes 2 with title Simulated Nominal Returns contains 103 objects of type line. These objects represent Simulated path, Mean, Confidence bounds.

Прогнозировать условные отклонения от полностью указанного 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');

Figure contains an axes. The axes with title Forecasted Conditional Variances of Nominal Returns contains 2 objects of type line. These objects represent Estimation sample cond. var., Forecasted cond. var..

Подробнее

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