Оценки выборочных моментов
По умолчанию для оценки моментов портфеля используется выборочный метод. Моменты вычисляются внутри optimize.portfolio() путём вызова функции, переданной в аргумент momentFUN. Значение momentFUN по умолчанию — set.portfolio.moments(), которая рассчитывает выборочные моменты. Затем эти моменты передаются в целевые функции. Набор оцениваемых моментов зависит от поставленных целей. Например, для минимизации стандартного отклонения портфеля достаточно оценить только второй момент, тогда как максимизация коэффициента Шарпа требует оценки и первого, и второго моментов. Выборочные оценки моментов имеют свои недостатки: в частности, ошибку оценивания и проклятие размерности. Чем больше активов и параметров необходимо оценить, тем выше риск ошибки оценивания.
Это упражнение является частью курса
Промежуточный анализ портфеля в R
Инструкции к упражнению
- Добавьте целевую функцию доходности, указав
"mean"в качестве имени цели. - Рассчитайте выборочные моменты с помощью
set.portfolio.moments. Сохраните результат в переменнуюmoments. - Проверьте, совпадает ли первый момент с выборочной оценкой средней доходности.
- Добавьте целевую функцию риска, указав
"StdDev"в качестве имени цели. - Рассчитайте выборочные моменты с помощью
set.portfolio.moments. Сохраните результат в переменнуюmoments. - Проверьте, совпадает ли второй момент с выборочной оценкой матрицы ковариаций.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Add a return objective with "mean" as the objective name
port_spec <- add.objective(portfolio = port_spec, type = ___, name = ___)
# Calculate the sample moments
moments <- set.portfolio.moments(R = ___, portfolio = ___)
# Check if moments$mu is equal to the sample estimate of mean returns
moments$mu == colMeans(asset_returns)
# Add a risk objective with "StdDev" as the objective name
port_spec <- add.objective(portfolio = port_spec, type = ___, name = ___)
# Calculate the sample moments using set.portfolio.moments. Assign to a variable named moments.
moments <- set.portfolio.moments(R = ___, portfolio = ___)
# Check if moments$sigma is equal to the sample estimate of the variance-covariance matrix
moments$sigma == cov(asset_returns)