शुरू करेंमुफ़्त में शुरू करें

कस्टम मोमेंट फंक्शन परिभाषित करें

कई constrained optimization समस्याओं में, पोर्टफोलियो मैनेजर या विश्लेषक किसी विशेष तकनीक से मोमेंट्स का अनुमान लगाना चाहेंगे और/या set.portfolio.moments() की अवधारणा को आगे बढ़ाना चाहेंगे। एक यूज़र-परिभाषित कस्टम मोमेंट फंक्शन में कोई भी मनमाने नाम वाले आर्गुमेंट हो सकते हैं। हालाँकि, R (एसेट रिटर्न्स के लिए) और portfolio (पोर्टफोलियो ऑब्जेक्ट के लिए) नाम वाले आर्गुमेंट अपने-आप पहचाने जाते हैं और कुशल तरीके से हैंडल किए जाते हैं। इसी कारण, एसेट रिटर्न्स ऑब्जेक्ट के लिए R और पोर्टफोलियो ऑब्जेक्ट के लिए portfolio का उपयोग करना अत्यधिक अनुशंसित है।

कस्टम मोमेंट फंक्शन को एक named list लौटानी चाहिए, जहाँ तत्व मोमेंट्स को दर्शाते हैं:

  • $mu: पहला मोमेंट (expected returns vector)
  • $sigma: दूसरा मोमेंट (variance-covariance matrix)
  • $m3: तीसरा मोमेंट (coskewness matrix)
  • $m4: चौथा मोमेंट (cokurtosis matrix)

इस अभ्यास में, आप एक कस्टम मोमेंट फंक्शन लिखेंगे जो robust पद्धति से variance-covariance matrix का अनुमान लगाएगा। हम MASS पैकेज के cov.rob() फंक्शन का उपयोग करेंगे। फंक्शन सिग्नेचर में R (एसेट रिटर्न्स के लिए) और portfolio (स्पेसिफिकेशन ऑब्जेक्ट के लिए) नाम वाले आर्गुमेंट होने चाहिए। फंक्शन को एक named list लौटानी चाहिए। क्योंकि आप केवल दूसरा मोमेंट अनुमानित कर रहे हैं, इसलिए आपको केवल एक तत्व वाली सूची लौटानी है, जिसका नाम उपयुक्त हो। आप इन्हीं नियमों का उपयोग कर अन्य मॉडलों, जैसे factor models, GARCH models, या किसी भी ऐसे मॉडल वर्ग के लिए कस्टम मोमेंट फंक्शंस लिख सकते हैं जो सैंपल estimate से सिद्धांततः बेहतर अनुमान देते हों।

यह अभ्यास पाठ्यक्रम का हिस्सा है

R में इंटरमीडिएट पोर्टफोलियो विश्लेषण

पाठ्यक्रम देखें

अभ्यास निर्देश

  • moments_robust नाम का एक फंक्शन परिभाषित करें जो "mcd" मेथड का उपयोग करके एसेट रिटर्न्स की variance-covariance matrix का अनुमान लगाए।
  • अभी जो पोर्टफोलियो मोमेंट्स आपने परिभाषित किए हैं, उन्हें estimate करें। इसे moments नाम के वैरिएबल में असाइन करें। आप यह इसलिए कर रहे हैं ताकि सुनिश्चित हो सके कि आपका कस्टम मोमेंट फंक्शन अपेक्षा के अनुसार काम कर रहा है।
  • cov.rob() का उपयोग करके variance-covariance matrix सीधे compute करें और जाँचें कि क्या यह moments$sigma के बराबर है।

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# 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$___
कोड संपादित करें और चलाएँ