【自学笔记】基于R语言的copula函数重现期等值线绘制

1.加载相应的包和数据

设置工作路径,并加载相应的边缘分布的pdf(累积分布函数概率值),这期主要讲解重现期等值线,因此具体的边缘分布函数的拟合过程和copula函数的拟合过程就不具体介绍了。

setwd("F:/copula-work")
library(copula) 
library(VineCopula) 
library(MASS)
library(FAdist)
library(fitdistrplus) 
library(copBasic)
data<- read.csv('shuju.csv')
ls<-data[,1]#这里的数据为单变量分布函数F(X)
ld<-data[,2]#这里的数据为单变量分布函数F(Y)

2.绘制联合重现期等值线

根据定义,联合重现期是指P\left ( X>x \, \, \, or\, \, \, Y>y \right ),我们先将其转换为1-P\left ( X<x\, \,\, and\, \,\, Y<y\right ),那么就可以根据copBasic包里的joint.curvesCOP()函数的定义进行计算,函数内定义type=“and"即为计算P[U ≤ v, V ≤ v] = t = C(u, v)情况下的等值线,那么我们可以知道当计算20年一遇时,即1-P[U ≤ v, V ≤ v]=1/20=0.05,所以P[U ≤ v, V ≤ v]=0.95,类似这样的规律,因此可写代码如下:

#family= clayton copula#
UV <- simCOP(n=1000, cop=CLcop, para=xm[1], snv=TRUE)#模拟拟合的copula函数的UV
AND <- joint.curvesCOP(cop=CLcop, para=xm[1], type="and",
                     divisor=1000, tol=.Machine$double.eps)#得到C(u,v)的等值线
#先弄一个绘图区域
plot(100, 100, type="n",
     xlab="原始数据X", las=1,ylab="原始数据Y",xlim=c(0,60),ylim=c(0,3.5),main="
  • 15
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值