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

Подгонка распределения Стьюдента к данным

Распределение Стьюдента, как правило, значительно лучше описывает дневную, недельную и месячную доходность, чем нормальное распределение.

Создать его можно с помощью функции fit.st() из пакета QRM. Результирующая подогнанная модель содержит компонент оценок параметров par.ests, который можно присвоить списку tpars, чтобы сохранить значения nu, mu и sigma для дальнейшего использования:

> tfit <- fit.st(ftse)
> tpars <- tfit$par.ests
> tpars
          nu           mu        sigma
2.949514e+00 4.429863e-05 1.216422e-02

В этом упражнении вы подгоните распределение Стьюдента к дневной лог-доходности индекса Доу Джонса за 2008–2011 годы, которая хранится в djx. Затем вы построите гистограмму данных и добавите на неё красную линию, отображающую подогнанную плотность распределения Стьюдента. Данные djx и пакет QRM уже загружены.

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

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

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

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

  • Используйте fit.st(), чтобы подогнать распределение Стьюдента к данным в djx, и присвойте результат переменной tfit.
  • Присвойте компонент par.ests подогнанной модели переменной tpars, а элементы tpars — переменным nu, mu и sigma соответственно.
  • Заполните hist(), чтобы построить гистограмму djx.
  • Заполните dt(), чтобы вычислить подогнанную плотность распределения Стьюдента для значений djx, и присвойте результат переменной yvals. Уравнение смотрите в видео.
  • Заполните lines(), чтобы добавить на гистограмму djx красную линию, отображающую подогнанную плотность распределения Стьюдента.

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

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

# Fit a Student t distribution to djx
tfit <- ___(___)

# Define tpars, nu, mu, and sigma
tpars <- ___
nu <- ___
mu <- ___
sigma <- ___

# Plot a histogram of djx
hist(___, nclass = 20, probability = TRUE, ylim = range(0, 40))

# Compute the fitted t density at the values djx
yvals <- dt((___ - ___)/___, df = ___)/___

# Superimpose a red line to show the fitted t density
lines(___, yvals, col = "red")
Редактировать и запускать код