НачатьНачать бесплатно

Перекрывающиеся доходности

При агрегировании рядов путём суммирования дневных лог-доходностей в более длинные интервалы количество наблюдений уменьшается. Чтобы сохранить объём данных, можно вычислить перекрывающиеся доходности с помощью функции rollapplyr() — правда, это создаёт сильную корреляцию между наблюдениями.

В среднем в календарной неделе 5 торговых дней. Вычислив 5-дневные скользящие суммы лог-доходностей дневных данных индекса, вы получите приблизительные перекрывающиеся недельные доходности, заканчивающиеся в каждую календарную неделю. Аналогично, 21-дневные скользящие суммы дают приблизительные месячные доходности, а 63-дневные — квартальные.

Рассмотрим пример с данными дневных доходностей индекса Dow Jones в djx. Поскольку для вычисления каждой скользящей суммы используются 5 значений, первые 4 значения результата равны NA. В данном случае мы удалим их с помощью индексирования:

> djx5 <- rollapplyr(djx, width = 5, FUN = sum)
> head(djx5)
                  ^DJI
2008-01-03          NA
2008-01-04          NA
2008-01-07          NA
2008-01-08          NA
2008-01-09 -0.02394677
2008-01-10 -0.01571869

> djx5 <- djx5[-(1:4)]

В этом упражнении вы вычислите скользящие суммы с различными интервалами на основе djx, который уже загружен в вашем рабочем пространстве. Затем вы найдёте асимметрию и эксцесс полученных данных и проведёте тест Харке–Бера, как и в предыдущих упражнениях. Похожи ли перекрывающиеся доходности на нормально распределённые?

Это упражнение является частью курса

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

Посмотреть курс

Инструкции к упражнению

  • Вычислите 21-дневную скользящую сумму лог-доходностей из djx, удалите первые 20 значений и присвойте результат переменной djx21.
  • Вычислите 63-дневную скользящую сумму лог-доходностей из djx, удалите первые 62 значения и присвойте результат переменной djx63.
  • Используйте merge() с параметром all = FALSE, чтобы объединить djx, djx21 и djx63 в указанном порядке, и присвойте результат переменной djx2. Постройте график с помощью plot.zoo().
  • Используйте apply() и соответствующие функции, чтобы вычислить асимметрию и эксцесс для каждого ряда в djx2.
  • Используйте apply() и соответствующую функцию, чтобы провести тест Харке–Бера для каждого ряда в djx2.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Calculate a 21-day moving sum of djx
djx21 <- ___(___, ___, ___)[___]

# Calculate a 63-day moving sum of djx
djx63 <- ___(___)[___]

# Merge the three series and plot
djx2 <- ___(___)
___(___)

# Compute the skewness and kurtosis for each series in djx2
___(___)
___(___)

# Conduct the Jarque-Bera test to each series in djx2
___(___)
Редактировать и запускать код