美文网首页Cook RR语言与统计分析
类似投资组合排序的R实现

类似投资组合排序的R实现

作者: 六胜一平 | 来源:发表于2020-02-28 11:28 被阅读0次

今天遇到一个小的需求,类似于实证金融中常用的投资组合排序方法,但相比起来更简单一些,比较适合learn the hard way。

需求描述如下:

有量级可比拟的两列数据p和ps(比如一支股票的收益率和滞后一期收益率),需要用ps的20%分位点将p分成5份,再统计每一份的均值,并画出每一份的核密度曲线。

代码如下,作为一个简单示意,此处的p和ps分别来自两个参数不同的Vasicek模型的蒙特卡洛模拟。

sp=function(x,q){

  res=max(which(q<=x))

  if(res==length(q))

    res=res-1

  return(res)

}

mc=function(r0,T,deltaT,a,b,sigma){

  path=rep(r0,T/deltaT)

  for(i in 2:length(path)){

    path[i]=path[i-1]+a*(b-path[i-1])+sigma*rnorm(1,0,1)

  }

  path

}

p=mc(0.03,10,0.0001,0.1,0.04,0.02)

ps=mc(0.05,10,0.0001,0.15,0.05,0.10)

q=quantile(ps,seq(0,1,0.2))

c=apply(X=as.array(p), MARGIN = 1, FUN=sp,q)

m=tapply(p,c,mean)

co=tapply(p,c,length)
Rplot.jpeg

PS:这个小需求还可以用base里面的cut函数完成。

相关文章

网友评论

    本文标题:类似投资组合排序的R实现

    本文链接:https://www.haomeiwen.com/subject/imvkhhtx.html