【R】【课程笔记】08 金融投资组合决策分析

这篇博客是《数据科学与金融计算》课程的笔记,重点探讨了金融投资组合决策的均值-方差模型和均值-CVaR模型。内容包括模型的理论解释、应用及代码实践,同时也提到了均值-CDaR和高阶矩模型。
摘要由CSDN通过智能技术生成

本文是课程《数据科学与金融计算》第8章的学习笔记,主要介绍均值-方差模型、均值-VaR模型、均值-CVaR模型,用于知识点总结和代码练习,Q&A为问题及解决方案。

往期回顾:

博文 内容
【R】【课程笔记】01 R软件基础知识 数据类型、数据结构、运算、绘图等
【R】【课程笔记】02+03 基于R软件的计算 聚类分析、因子分析、神经网络、支持向量机等
【R】【课程笔记】04+05 数据预处理+收益率计算 金融数据处理、收益率、R与C++等
【R】【课程笔记】06 金融波动模型 GARCH、SV、高频波动模型等
【R】【课程笔记】07 分位数回归与VaR(ES)计算 VaR、ES、极值模型等
【R】【课程笔记】08 金融投资组合决策分析 均值-方差模型、均值-VaR模型、均值-CVaR模型等


8.1 均值-方差分析

在这里插入图片描述
证明题:求w(见笔记,图片有误)
在这里插入图片描述
在这里插入图片描述

options(digits=4, width=70)

library(fPortfolio)
library(timeSeries)

# 1. 投资线
# (1) 设置参数
mu.1 <- 0.10
mu.2 <- 0.05
sig.1 <- 0.08
sig.2 <- 0.04

rhos <- seq(-1, 1, by = 0.5)
weights <- seq(0, 1, length = 100)

# (2) 建立投资组合
twoAssetsPortfolio <- function(mu, sigma, weight, rho) {
   
  # (1) 计算组合的期望收益和方差
  mu.p <- weight * mu[1] + (1 - weight) * mu[2]
  sig2.p <- weight ^ 2 * sigma[1] ^ 2 + 2 * weight * (1 - weight) * rho * sigma[1] *
    sigma[2] + (1 - weight) ^ 2 * sigma[2] ^ 2
  sig.p <- sqrt(sig2.p)
  
  # (2) 输出
  ans <- cbind(weight, mu.p, sig.p)
  colnames(ans) <- c('weights', 'return', 'Std.')
  return(ans)
}

# (3) 画图
portfolio.results_1 <- matrix(NA, nrow = length(weights), ncol = 3)
colnames(portfolio.results_1) <- c('weights', 'return', 'Std.')
portfolio.results_5 <-portfolio.results_4 <-portfolio.results_3 <-portfolio.results_2 <- portfolio.results_1
for (i in seq_along(weights)){
   
  weight <- weights[i]
  portfolio.results_1[i,] <- twoAssetsPortfolio(mu=c(mu.1, mu.2), sigma=c(sig.1, sig.2), weight=weight, rho=1)
  portfolio.results_2[i,] <- twoAssetsPortfolio(mu=c(mu.1, mu.2), sigma=c(sig.1, sig.2), weight=weight, rho=0.5)
  portfolio.results_3[i,] <- twoAssetsPortfolio(mu=c(mu.1, mu.2), sigma=c(sig.1, sig.2), weight=weight, rho=0)
  portfolio.results_4[i,] <- twoAssetsPortfolio(mu=c(mu.1, mu.2), sigma=c(sig.1, sig.2), weight=weight, rho=-0.5)
  portfolio.results_5[i,] <- twoAssetsPortfolio(mu=c(mu.1, mu.2), sigma=c(sig.1, sig.2), weight=weight, rho=-1)
}

par(mfrow=c(1,1))
plot(portfolio.results_1[,'Std.'], portfolio.results_1[,'return'], xlim=c(0, max(sig.1, sig.2)),
     ylim=c(0.04, max(mu.1, mu.2)), type='l', xlab=expression(sigma[p]), ylab=expression(mu[p]))
lines(portfolio.results_2[,'Std.'], portfolio.results_2[,'return'], lty=2)
lines(portfolio.results_3[,'Std.'], portfolio.results_3[,'return'], lty=3)
lines(portfolio.results_4[,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值