Özel bir moment fonksiyonu tanımla
Sınırlı optimizasyon problemlerinde çoğu zaman portföy yöneticisi ya da analist, belirli bir teknikle momentleri tahmin etmek ve/veya set.portfolio.moments() fikrini daha da genişletmek isteyebilir. Kullanıcı tanımlı özel bir moment fonksiyonunun, keyfi olarak adlandırılmış herhangi argümanları olabilir. Ancak, varlık getirileri için R ve portföy nesnesi için portfolio olarak adlandırılan argümanlar otomatik olarak algılanır ve verimli şekilde işlenir. Bu nedenle, varlık getirileri nesnesi için R ve portföy nesnesi için portfolio kullanmanı şiddetle öneririz.
Özel moment fonksiyonu, elemanları momentleri temsil eden, adlandırılmış bir liste döndürmelidir:
$mu: birinci moment (beklenen getiriler vektörü)$sigma: ikinci moment (varyans-kovaryans matrisi)$m3: üçüncü moment (eş-çarpıklık matrisi)$m4: dördüncü moment (eş-basıklık matrisi)
Bu egzersizde, sağlam (robust) bir yöntem kullanarak varyans-kovaryans matrisini tahmin eden özel bir moment fonksiyonu yazacaksın. MASS paketindeki cov.rob() fonksiyonunu kullanacağız. Fonksiyon imzasında, varlık getirileri için R ve spesifikasyon nesnesi için portfolio adlı argümanlar bulunmalı. Fonksiyon, adlandırılmış bir liste döndürmeli. Yalnızca ikinci momenti tahmin ettiğin için, uygun şekilde adlandırılmış tek bir elemanı olan bir liste döndürmen yeterli. Bu kuralları, faktör modelleri, GARCH modelleri ya da örnek tahmine göre teorik olarak daha iyi sonuç vermesi beklenen diğer model sınıfları için özel moment fonksiyonları yazarken de uygulayabilirsin.
Bu egzersiz
R ile Orta Düzey Portföy Analizi
kursunun bir parçasıdırEgzersiz talimatları
"mcd"yöntemini kullanarak varlık getirilerinin varyans-kovaryans matrisini tahmin edenmoments_robustadlı bir fonksiyon tanımla.- Az önce tanımladığın portföy momentlerini tahmin et. Bunu
momentsadlı bir değişkene ata. Bunu, özel moment fonksiyonunun beklendiği gibi çalıştığını kontrol etmek için yapıyorsun. - Varyans-kovaryans matrisini doğrudan
cov.rob()ile hesapla vemoments$sigmaile eşit olup olmadığını kontrol et
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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$___