Численные тесты на нормальность
Пакет moments содержит функции для вычисления эксцесса и асимметрии данных, а также для проведения теста Харке–Бера — теста на нормальность, основанного на моментах высших порядков. За одну команду он сравнивает асимметрию и эксцесс данных с теоретическими значениями для нормального распределения, которые равны 0 и 3 соответственно.
jarque.test(x)
skewness(x, na.rm = FALSE)
kurtosis(x, na.rm = FALSE)
В этом упражнении вы вычислите асимметрию и эксцесс для djx — индекса Dow Jones за 2008–2011 годы — и проведёте тест Харке–Бера на нормальность. Затем вы примените те же методы к djreturns, который содержит данные по 29 акциям индекса Dow Jones за тот же период.
Напомним, что функция apply(X, MARGIN, FUN, …) применяет функцию к заданным измерениям массива. Параметр MARGIN указывает, где именно будет применяться функция; в данном случае используйте значение 2, чтобы функция FUN применялась к столбцам матрицы X.
Пакет moments уже импортирован, а данные djx и djreturns доступны в вашем рабочем пространстве.
Это упражнение является частью курса
Количественное управление рисками в R
Инструкции к упражнению
- Вычислите асимметрию и эксцесс доходностей индекса Dow Jones из
djxс помощью функцийskewness()иkurtosis()соответственно. - Проведите тест Харке–Бера на нормальность для
djxс помощьюjarque.test(). - Используйте
apply()для вычисления асимметрии и эксцесса доходностей отдельных акций изdjreturns, сохранив результаты в переменныеsиkсоответственно. - Заполните вызов
plot(), чтобы построить графикkпротивsс параметромtype = "n", а затем разместите символы акций в точках с помощью командыtext()(это уже сделано за вас). - Используйте
apply()для проведения теста Харке–Бера по каждой из акций, входящих в составdjreturns.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Calculate skewness and kurtosis of djx
___(___)
___(___)
# Carry out a Jarque-Bera test for djx
___(___)
# Calculate skewness and kurtosis of djreturns
s <- ___(___)
k <- ___(___)
# Plot k against s and add text labels to identify stocks
plot(___, ___, ___)
text(s, k, names(s), cex = 0.6)
# Carry out Jarque-Bera tests for each constituent in djreturns
___(___)