Структурные разрывы

Количественное управление рисками на Python

Jamsheed Shorish

Computational Economist

Риск и распределение

  • Инструментарий управления рисками
    • Снижение рисков: MPT
    • Измерение рисков: VaR, CVaR
  • Риск: дисперсия, волатильность
    • Дисперсия (стандартное отклонение) как мера риска
  • Связь между риском и распределением факторов риска как случайных величин
Количественное управление рисками на Python

Стационарность

  • Допущение: распределение не меняется со временем
  • Неизменное распределение = стационарное
  • Эффективная граница в период глобального финансового кризиса
    • Нестационарная
  • Методы оценки требуют стационарности
    • Исторический: неизвестное стационарное распределение по прошлым данным
    • Параметрический: предполагаемый класс стационарного распределения
    • Метод Монте-Карло: предполагаемое стационарное распределение для случайных выборок
Количественное управление рисками на Python

Структурные разрывы

  • Нестационарность => распределение, возможно, меняется со временем
  • Предполагаются конкретные моменты изменения
    • Данные делятся на подпериоды
    • Внутри каждого подпериода предполагается стационарность
  • Структурный(е) разрыв(ы): точка(и) изменения
    • Изменение «тренда» среднего и/или волатильности данных
Количественное управление рисками на Python

Пример: рост населения Китая

  • Период 1950–2019
  • Тренд примерно линейный...

График численности населения Китая, 1950–2019

Количественное управление рисками на Python

Пример: рост населения Китая

  • Период 1950–2019
  • Тренд примерно линейный...
  • ...но, по всей видимости, замедляется примерно с 1990 года
  • Возможный структурный разрыв около 1990 года.
  • Предполагает изменение распределения прироста населения (рождения – смерти)
  • Возможные причины: государственная политика, уровень жизни и т. д.

График численности населения Китая со стрелками трендов, 1950–2019

Количественное управление рисками на Python

Тест Чоу

  • Предыдущий пример: визуальные свидетельства структурного разрыва
  • Количественная оценка: статистическая мера
  • Тест Чоу:
    • Проверка наличия структурного разрыва при линейной модели
    • Нулевая гипотеза: разрыва нет
    • Требует трёх OLS-регрессий
      • Регрессия для всего периода
      • Две регрессии: _до_ и после разрыва
    • Вычисляется сумма квадратов остатков
    • Тестовая статистика имеет распределение «F»
Количественное управление рисками на Python

Тест Чоу в Python

  • Гипотеза: структурный разрыв в 1990 году для населения Китая
  • Предполагается линейная «факторная модель»: $$\log(\text{Population}_t) = \alpha + \beta * \text{Year}_t + u_t$$
  • OLS-регрессия с помощью объекта OLS из statsmodels за период 1950–2019
    • Получение суммы квадратов остатков res.ssr
import statsmodels.api as sm
res = sm.OLS(log_pop, year).fit()

print('SSR 1950-2019: ', res.ssr)
SSR 1950-2019: 0.29240576138055463
Количественное управление рисками на Python

Тест Чоу в Python

  • Период 1950–2019 делится на подпериоды 1950–1989 и 1990–2019
  • OLS-регрессии для каждого подпериода
    • Получение res_before.ssr и res_after.ssr
pop_before = log_pop.loc['1950':'1989']; year_before = year.loc['1950':'1989'];
pop_after  = log_pop.loc['1990':'2019']; year_after =  year.loc['1990':'2019'];

res_before = sm.OLS(pop_before, year_before).fit() res_after = sm.OLS(pop_after, year_after).fit()
print('SSR 1950-1989: ', res_before.ssr) print('SSR 1990-2019: ', res_after.ssr)
SSR 1950-1989: 0.011741113017411783
SSR 1990-2019: 0.0013717593339608077
Количественное управление рисками на Python

Тест Чоу в Python

  • Вычисление F-распределённой тестовой статистики Чоу
    • Вычисление числителя
      • k = 2 степени свободы = 2 коэффициента OLS $\alpha$, $\beta$
    • Вычисление знаменателя
      • 66 степеней свободы = общее число точек данных (70) − 2*k
numerator = (ssr_total - (ssr_before + ssr_after)) / 2

denominator = (ssr_before + ssr_after) / 66
chow_test = numerator / denominator print("Chow test statistic: ", chow_test, "; Critical value, 99.9%: ", 7.7)
Chow test statistic: 702.8715822890057; Critical value, 99.9%: 7.7
Количественное управление рисками на Python

Давайте потренируемся!

Количественное управление рисками на Python

Preparing Video For Download...