楼主: snowsummery
12123 13

[问答] 【求助】用R软件做copula的参数估计过程中出错,求解 [推广有奖]

  • 0关注
  • 0粉丝

初中生

66%

还不是VIP/贵宾

-

威望
0
论坛币
473 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
121 点
帖子
8
精华
0
在线时间
27 小时
注册时间
2012-11-21
最后登录
2021-3-15

楼主
snowsummery 在职认证  发表于 2013-1-13 17:09:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我刚接触R软件不久,用R软件做copula的参数估计的过程中出现错误,程序如下

gumbel.cop<-gumbelCopula(3,dim=2)
gumbel.ml<-fitCopula(gumbel.cop,clind(u(x),v(y)),method="ml")
clind(u(x),v(y))是经过概率积分变换处理的数据矩阵


错误于optim(start, loglikCopula, lower = lower, upper = upper, method = method,  :   'vmmin'的初始值不能为无穷大

希望各位帮帮忙,帮我看看
这是哪里的错误呢?应该怎样修改呢?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Copula opula 参数估计 r软件 method 初学者 start

回帖推荐

yf130203 发表于5楼  查看完整内容

pobs()是Given n realizations x_i=(x_{i1},...,x_{id}), i in {1,...,n} of a random vector X, the pseudo-observations are defined via u_{ij}=r_{ij}/(n+1) for i in {1,...,n} and j in {1,...,d}, where r_{ij} denotes the rank of x_{ij} among all x_{kj}, k in {1,...,n}. The pseudo-observations can thus also be computed by component-wise applying the empirical distribution functions to the data and scal ...

沙发
snowsummery 在职认证  发表于 2013-1-13 17:37:25
gumbel.cop<-gumbelCopula(3,dim=2)
gumbel.ml<-fitCopula(gumbel.cop,cbind(u(x),v(y)),method="ml")
cbind(u(x),v(y))是经过概率积分变换处理的数据矩阵

刚刚手误打错了,程序里输入的是cbind,出现的以上错误

藤椅
yf130203 发表于 2013-1-15 00:33:53
snowsummery 发表于 2013-1-13 17:37
gumbel.cop
你令p<-cbind(cbind(u(x),v(y))),p<-pobs(p),再把p代入进去拟合,你试试可以吗

板凳
snowsummery 在职认证  发表于 2013-1-16 10:37:59
yf130203 发表于 2013-1-15 00:33
你令p
可以的,谢谢你~还想请问pobs()这个函数是什么意思?
这段时间我试了u<-pobs(data),其中data是原始数据x,y组成的矩阵,然后对u做fitCopula,就可以得出结果
试了画图 plot(x,u[,1]),以及plot(y,u[,2]),感觉好像u就是x和y的分布函数上的点 组成的矩阵,
想问问pobs()是不是可以等同于对data的概率积分变换么?

报纸
yf130203 发表于 2013-1-16 10:54:16
snowsummery 发表于 2013-1-16 10:37
可以的,谢谢你~还想请问pobs()这个函数是什么意思?
这段时间我试了u
pobs()是Given n realizations x_i=(x_{i1},...,x_{id}), i in {1,...,n} of a random vector X, the pseudo-observations are defined via u_{ij}=r_{ij}/(n+1) for i in {1,...,n} and j in {1,...,d}, where r_{ij} denotes the rank of x_{ij} among all x_{kj}, k in {1,...,n}. The pseudo-observations can thus also be computed by component-wise applying the empirical distribution functions to the data and scaling the result by n/(n+1). This asymptotically negligible scaling factor is used to force the variates to fall inside the open unit hypercube, for example, to avoid problems with density evaluation at the boundaries.
因为你原来的数据里有(1,1)这一项,这一项是数据边界上,就是这一项导致了错误出现,具体为什么我也不清楚,我也是查错误一点点查出来的。经过这种变换后(1,1)变成了(0.99....,0.99...)程序就能用了

地板
snowsummery 在职认证  发表于 2013-1-16 11:29:44
yf130203 发表于 2013-1-16 10:54
pobs()是Given n realizations x_i=(x_{i1},...,x_{id}), i in {1,...,n} of a random vector X, the pse ...
原来是这样,谢谢你~O(∩_∩)O
R软件做copula的蒙特卡罗模拟是不是得自己编程?
如果是这样,请问 要求copula函数的偏导数和反函数,以及分布函数的反函数,在R中应该如何实现呢?

7
yf130203 发表于 2013-1-16 11:35:17
snowsummery 发表于 2013-1-16 11:29
原来是这样,谢谢你~O(∩_∩)O
R软件做copula的蒙特卡罗模拟是不是得自己编程?
如果是这样,请问 要求 ...
rcopula()是蒙特卡洛模拟,其余的那几个你看copula程序包里有没有,我也不太清楚

8
snowsummery 在职认证  发表于 2013-1-16 14:58:54
yf130203 发表于 2013-1-16 11:35
rcopula()是蒙特卡洛模拟,其余的那几个你看copula程序包里有没有,我也不太清楚
噢,对哦~rCopula直接就可以产生蒙特卡罗模拟的随机数撒,我还脑袋短路去生成均匀分布的随机序列再计算偏导数……
实在是太感谢了~O(∩_∩)O~非常谢谢你~

9
Vansy 在职认证  发表于 2013-3-20 21:44:23
yf130203 发表于 2013-1-15 00:33
你令p
请问pobs需要加载什么程序包啊,为什么说没有这个函数啊?

10
rockfill 在职认证  发表于 2014-4-28 08:39:33
gumbel.ml<-fitCopula(gumbel.cop,clind(u(x),v(y)),method="itau")
换个itau方法试试
还不行的话,换个计算机系统或R版本试试

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

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