Mendefinisikan fungsi momen kustom
Dalam banyak kasus untuk masalah optimisasi dengan batasan, manajer portofolio atau analis mungkin ingin mengestimasi momen dengan teknik tertentu dan/atau memperluas gagasan set.portfolio.moments(). Fungsi momen kustom yang didefinisikan pengguna dapat memiliki argumen bernama apa pun. Namun, argumen bernama R untuk imbal hasil aset dan portfolio untuk objek portofolio akan terdeteksi secara otomatis dan ditangani dengan efisien. Karena itu, sangat dianjurkan untuk menggunakan R untuk objek imbal hasil aset dan portfolio untuk objek portofolio.
Fungsi momen kustom harus mengembalikan list bernama di mana elemennya mewakili momen:
$mu: momen pertama (vektor ekspektasi imbal hasil)$sigma: momen kedua (matriks varians-kovarians)$m3: momen ketiga (matriks coskewness)$m4: momen keempat (matriks cokurtosis)
Dalam latihan ini, Anda akan menulis fungsi momen kustom untuk mengestimasi matriks varians-kovarians menggunakan metode yang robust. Kita akan menggunakan fungsi cov.rob() dari paket MASS. Tanda tangan fungsi harus memiliki argumen bernama R untuk imbal hasil aset dan portfolio untuk objek spesifikasi. Fungsi harus mengembalikan list bernama. Karena Anda hanya mengestimasi momen kedua, Anda hanya perlu mengembalikan list dengan satu elemen yang dinamai dengan tepat. Anda dapat menerapkan aturan ini untuk menulis fungsi momen kustom bagi model lain seperti model faktor, model GARCH, atau kelas model apa pun yang secara teoretis seharusnya memberikan estimasi yang lebih baik daripada estimasi sampel.
Latihan ini adalah bagian dari kursus
Analisis Portofolio Tingkat Menengah di R
Petunjuk latihan
- Definisikan fungsi bernama
moments_robustyang mengestimasi matriks varians-kovarians dari imbal hasil aset menggunakan metode"mcd". - Estimasikan momen portofolio yang baru saja Anda definisikan. Simpan ke variabel bernama
moments. Anda melakukan ini sebagai pemeriksaan untuk memastikan fungsi momen kustom Anda bekerja sebagaimana mestinya. - Hitung matriks varians-kovarians secara langsung menggunakan
cov.rob()dan periksa apakah nilainya sama denganmoments$sigma
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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$___