Zacznij terazZacznij za darmo

Estymacja momentów na podstawie próby

Domyślną metodą estymacji momentów portfela jest metoda oparta na próbie. Momenty są obliczane w funkcji optimize.portfolio() przez wywołanie funkcji przekazanej do argumentu momentFUN. Domyślną wartością momentFUN jest set.portfolio.moments(), która domyślnie oblicza momenty próby. Tak wyznaczone momenty są następnie używane jako dane wejściowe do funkcji celu. To, które momenty wymagają estymacji, zależy od przyjętych celów. Na przykład cel polegający na minimalizacji odchylenia standardowego portfela wymaga jedynie estymacji drugiego momentu. Dla porównania – cel polegający na maksymalizacji wskaźnika Sharpe'a wymaga estymacji zarówno pierwszego, jak i drugiego momentu. Estymacja momentów na podstawie próby ma swoje wady: generuje błąd estymacji i jest podatna na przekleństwo wymiarowości. Ryzyko błędu estymacji rośnie wraz ze wzrostem liczby aktywów i parametrów do wyznaczenia.

To ćwiczenie jest częścią kursu

Analiza portfela – poziom średniozaawansowany w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Dodaj cel zwrotu, podając "mean" jako nazwę celu.
  • Oblicz momenty próby za pomocą set.portfolio.moments. Przypisz wynik do zmiennej o nazwie moments.
  • Sprawdź, czy pierwszy moment jest równy estymatorowi próby średnich zwrotów.
  • Dodaj cel ryzyka, podając "StdDev" jako nazwę celu.
  • Oblicz momenty próby za pomocą set.portfolio.moments. Przypisz wynik do zmiennej o nazwie moments.
  • Sprawdź, czy drugi moment jest równy estymatorowi próby macierzy wariancji-kowariancji.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod