楼主: dedongzhuang
6751 33

[问答] Splus 中的integrate 怎么用 急需 赏金10元 [推广有奖]

21
dedongzhuang 发表于 2012-3-12 12:20:15
图片

cc.png (6.41 KB)

cc.png

22
dedongzhuang 发表于 2012-3-12 12:22:10
这张才对

cc1.png (21.07 KB)

cc1.png

23
dedongzhuang 发表于 2012-3-12 12:23:57
第二张是dx.y算出了的数值图

24
qoiqpwqr 发表于 2012-3-12 12:56:47
看样子dx.y不是一个连续的函数啊,这个用integrate来积分可能会有问题。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
aspenroad + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

25
dedongzhuang 发表于 2012-3-12 14:49:02
哦,原来这样,那我怎么办呢

26
dedongzhuang 发表于 2012-3-12 14:55:01
我把超过阈值的数据y3放进dx.yh<-function(x){
                a=0
                j=1
                for(i in 1:length(x))
  if(x<u){a[j]=x
                        j=j+1}
                a}
y3<-h(y1)
dx.y<-function(x){dcopula(rcop.bb7.fit,gpd.2p(y3,gpd.y1.fit2),gpd.2p(y2.VaR,gpd.y2.fit2))*dx(x)}
plot(dx.y(y3),type="l")得到的图形是这样的



cc2.png (8.57 KB)

cc2.png

27
dedongzhuang 发表于 2012-3-12 15:15:24
我应该怎么办,运行下去的时候程序出现
> f <- function(x)
{
        out <- 0 * x
        for(i in 1:length(x))
                out[i] <- integrate(dx.y, lower = -90, upper = x[i])$integral -
                        0.05
        out
}
> CoVaR = uniroot(f, c(-71, 0))$root

Problem in dcopula(rcop.bb7.fit, gpd.2p(y3, gpd.y1...: length of longer operand (71) should be a multiple of length of shorter (15)
Use traceback() to see the call stack

28
dedongzhuang 发表于 2012-3-12 15:17:49
楼上的还在吗

29
qoiqpwqr 发表于 2012-3-12 22:29:57
看样子问题在你调用dcopula的时候两个向量的长度不一致,单独运行一下这个函数试试。

30
dedongzhuang 发表于 2012-3-13 10:34:00
这两个变量需要怎么设置呢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-3 12:48