Quadratic यूटिलिटी फ़ंक्शन को अधिकतम करें
पोर्टफोलियो ऑप्टिमाइज़ेशन की चुनौतियों वाले वीडियो में, आपने quadprog पैकेज से quadratic यूटिलिटी ऑप्टिमाइज़ेशन समस्या हल करना देखा था। इस अभ्यास में, आप PortfolioAnalytics पैकेज का उपयोग करके quadratic यूटिलिटी समस्या हल करना सीखेंगे। याद रखें कि quadratic यूटिलिटी फॉर्मुलेशन में दो टर्म होते हैं: एक पोर्टफोलियो के mean रिटर्न के लिए और दूसरा पोर्टफोलियो variance के लिए, जिसमें risk aversion पैरामीटर lambda शामिल होता है।
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में इंटरमीडिएट पोर्टफोलियो विश्लेषण
अभ्यास निर्देश
index_returnsडेटासेट से एसेट नाम लेकर एक पोर्टफोलियो स्पेसिफिकेशन ऑब्जेक्ट बनाएँ और उसका नामport_specरखें.port_specऑब्जेक्ट में full investment constraint जोड़ें ताकि वेट्स का योग 1 हो.port_specऑब्जेक्ट में long only constraint जोड़ें ताकि किसी एसेट का वेट 0 और 1 के बीच रहे.port_specऑब्जेक्ट में पोर्टफोलियो mean रिटर्न को maximize करने का objective जोड़ें.port_specऑब्जेक्ट में पोर्टफोलियो variance को minimize करने का objective जोड़ें। Risk aversion को 10 पर सेट करना चाहिए.- ऑप्टिमाइज़ेशन चलाएँ। यह समस्या quadratic प्रोग्रामिंग solver से हल हो सकती है, इसलिए हम
optimize_method = "ROI"स्पेसिफाई करते हैं.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Create the portfolio specification
port_spec <- portfolio.spec(assets = ___)
# Add a full investment constraint such that the weights sum to 1
port_spec <- add.constraint(portfolio = ___, type = ___)
# Add a long only constraint such that the weight of an asset is between 0 and 1
port_spec <- add.constraint(portfolio = ___, type = ___)
# Add an objective to maximize portfolio mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add an objective to minimize portfolio variance
port_spec <- add.objective(portfolio = port_spec, type = ___, name = ___, risk_aversion = ___)
# Solve the optimization problem
opt <- optimize.portfolio(R = ___, portfolio = ___, optimize_method = "ROI")