r - R:如何添加这样的无差异曲线?
问题描述
我有一个如下图,除了没有红色和蓝色的无差异曲线(水平集)。我知道我可以使用contour()
,但这会产生从边缘到边缘的长曲线。
有什么办法可以创建这样的曲线吗?他们不必特别关注函数或任何数据,我只想展示一般情况。
解决方案
你可以试试轮廓
sig <- seq(0,0.25,by=.01)
exr <- seq(0,.20,length.out = length(sig))
# define function
Uf=function(sig,ret,ra=1)ret-0.5*(1/ra)*sig^2
u = outer(sig,exr,function(sd,mr)Uf(sd,mr,ra=0.075))
#image(sig,exr,u)
#contour(sig,exr,u)
contour(sig,exr,u, levels =c(0.04666667, 0.07500000, 0.10333333),col=3,drawlabels = F)
v = outer(sig,exr,function(sd,mr)Uf(sd,mr,ra=0.195))
contour(sig,exr,v, levels =c(0.07333333, 0.09500000, 0.11666667),add = T,col=4,drawlabels = F)
abline(a=0.03,b=0.6666667)
编辑
Uf
是一个经典的二次偏好函数,它取决于风险、收益和风险厌恶。在这里查看更多信息。
outer
首先对提供的向量sig
和进行所有可能的组合exr
,然后取每一对值并计算 的效用Uf
。尝试head(u)
或View(u)
。
contour
取所有值以绘制所需的水平(无差异曲线)。
abline
添加您在绘图中实际拥有的参考线。
推荐阅读
- cmake - Catkin 无法找到 gmock - Ubuntu 16.04
- javascript - 用 Google Apps 脚本替换数组中的变音符号
- .htaccess - 尝试使用 .htaccess 添加查询参数
- c# - '查询值和目标字段的数量不同。'
- swagger - 将 Swagger-UI 与 Angular-8 应用程序集成
- sql - 计数 ID 在 B 列中只有一个不同的值
- python - 什么时候在 Python 构造函数表达式中初始化对象?
- android - 当前(2019 年 10 月中旬)在 Android 应用中包含实现 Compat 依赖项的方式是什么?
- graphdb - 显示空白节点的可视化图表
- node.js - 即使文件位于同一目录中,节点 js 中也没有此类文件或目录错误