Estimări ale momentelor eșantionului
Metoda implicită pentru estimarea momentelor de portofoliu este metoda eșantionului. Momentele sunt calculate în optimize.portfolio() prin evaluarea funcției transmise argumentului momentFUN. Valoarea implicită pentru momentFUN este set.portfolio.moments(), care calculează implicit momentele eșantionului. Aceste momente sunt apoi utilizate ca date de intrare pentru funcțiile obiectiv. Momentele care trebuie estimate depind de obiective. De exemplu, un obiectiv de minimizare a deviației standard a portofoliului necesită doar o estimare a celui de-al doilea moment. Compară aceasta cu obiectivul de maximizare a Sharpe Ratio, care necesită estimarea atât a primului, cât și a celui de-al doilea moment. Estimările eșantionului pentru momente prezintă dezavantaje, printre care eroarea de estimare și blestemul dimensionalității. Riscul erorii de estimare crește pe măsură ce cresc dimensiunea activelor și numărul parametrilor de estimat.
Acest exercițiu face parte din cursul
Analiză intermediară a portofoliului în R
Instrucțiuni pentru exercițiu
- Adaugă un obiectiv de rentabilitate cu
"mean"ca nume al obiectivului. - Calculează momentele eșantionului folosind
set.portfolio.moments. Atribuie rezultatul unei variabile numitemoments. - Verifică dacă primul moment este egal cu estimarea eșantionului pentru rentabilitatea medie.
- Adaugă un obiectiv de risc cu
"StdDev"ca nume al obiectivului. - Calculează momentele eșantionului folosind
set.portfolio.moments. Atribuie rezultatul unei variabile numitemoments. - Verifică dacă al doilea moment este egal cu estimarea eșantionului pentru matricea varianță-covarianță.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)