ÎncepețiÎncepe gratuit

Definește o funcție personalizată pentru momente

În multe cazuri, la problemele de optimizare cu constrângeri, managerul de portofoliu sau analistul poate dori să estimeze momentele printr-o tehnică specifică și/sau să extindă conceptul set.portfolio.moments(). O funcție personalizată pentru momente poate avea orice argumente denumite arbitrar. Totuși, argumentele numite R pentru randamentele activelor și portfolio pentru obiectul portofoliu vor fi detectate automat și gestionate eficient. Din acest motiv, este recomandat să folosești R pentru obiectul randamentelor activelor și portfolio pentru obiectul portofoliu.

Funcția personalizată pentru momente trebuie să returneze o listă denumită, ale cărei elemente reprezintă momentele:

  • $mu: primul moment (vectorul randamentelor așteptate)
  • $sigma: al doilea moment (matricea varianță-covarianță)
  • $m3: al treilea moment (matricea cosimetrie)
  • $m4: al patrulea moment (matricea cokurtoză)

În acest exercițiu, vei scrie o funcție personalizată pentru momente care estimează matricea varianță-covarianță printr-o metodă robustă. Vom folosi funcția cov.rob() din pachetul MASS. Semnătura funcției trebuie să includă argumentele R pentru randamentele activelor și portfolio pentru obiectul de specificație. Funcția trebuie să returneze o listă denumită. Deoarece estimezi doar al doilea moment, trebuie să returnezi o listă cu un singur element, denumit corespunzător. Aceste reguli pot fi aplicate pentru a scrie funcții personalizate de momente și pentru alte modele, precum modele factoriale, modele GARCH sau orice altă clasă de modele care teoretic ar trebui să ofere o estimare mai bună decât estimarea pe eșantion.

Acest exercițiu face parte din cursul

Analiză intermediară a portofoliului în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește o funcție numită moments_robust care estimează matricea varianță-covarianță a randamentelor activelor folosind metoda "mcd".
  • Estimează momentele portofoliului pe baza funcției tocmai definite. Atribuie rezultatul unei variabile numite moments. Acest pas servește drept verificare pentru a te asigura că funcția personalizată funcționează corect.
  • Calculează matricea varianță-covarianță direct cu cov.rob() și verifică dacă este egală cu moments$sigma.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# Define custom moment function
moments_robust <- function(R, portfolio){
  out <- list()
  out$___ <- cov.rob(R, method = ___)$cov
  out
}

# Estimate the portfolio moments using the function you just defined 
moments <- moments_robust(R = ___, portfolio = ___)

# Check the moment estimate
cov.rob(___, method = ___)$cov == moments$___
Editează și rulează codul