楼主: 赵小哈
981 1

[问答] 用R做BEKK 一直出现H IS SINGULAR!后报错如正文内容,求助!!! [推广有奖]

  • 0关注
  • 0粉丝

大专生

20%

还不是VIP/贵宾

-

威望
0
论坛币
87 个
通用积分
0.0321
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
109 点
帖子
10
精华
0
在线时间
71 小时
注册时间
2022-4-30
最后登录
2024-11-19

楼主
赵小哈 发表于 2024-1-22 11:36:57 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求助!用R做BEKK 一直出现H IS SINGULAR!后报错  [size=13.3333px]In BEKK(garchbekk) : negative inverted hessian matrix element。[size=13.3333px]请问这是怎么回事呢?
[size=13.3333px]

[size=13.3333px] 代码如下:就是这个for循环出的问题:

[size=13.3333px]

[size=13.3333px]for (ii in 1:(nn1-1)){
[size=13.3333px]  for (jj in (ii+1):nn1){
[size=13.3333px]    if (exists('estimated'))
[size=13.3333px]    {
[size=13.3333px]      rm(estimated)
[size=13.3333px]    }
[size=13.3333px]    if(sum(data_3[,ii])!=0 & sum(data_3[,jj])!=0)
[size=13.3333px]    {
[size=13.3333px]      try({garchbekk <- cbind(data_3[,ii],data_3[,jj])
[size=13.3333px]      estimated <- BEKK(garchbekk)},silent = T)
[size=13.3333px]      if (exists('estimated')){
[size=13.3333px]        t_a21=estimated$est.params$`2`[2,1]/estimated$asy.se.coef[[2]][2,1]
[size=13.3333px]        t_a12=estimated$est.params$`2`[1,2]/estimated$asy.se.coef[[2]][1,2]
[size=13.3333px]        t_b21=estimated$est.params$`3`[2,1]/estimated$asy.se.coef[[3]][2,1]
[size=13.3333px]        t_b12=estimated$est.params$`3`[1,2]/estimated$asy.se.coef[[3]][1,2]
[size=13.3333px]        p_a21=2*(1-pnorm(abs(t_a21)))
[size=13.3333px]        p_a12=2*(1-pnorm(abs(t_a12)))
[size=13.3333px]        p_b21=2*(1-pnorm(abs(t_b21)))
[size=13.3333px]        p_b12=2*(1-pnorm(abs(t_b12)))
[size=13.3333px]        if(p_a21<=0.05){a21=estimated$est.params$`2`[2,1]}else{a21=0}      
[size=13.3333px]        if(p_a12<=0.05){a12=estimated$est.params$`2`[1,2]}else{a12=0}
[size=13.3333px]        if(p_b21<=0.05){b21=estimated$est.params$`3`[2,1]}else{b21=0}
[size=13.3333px]        if(p_b12<=0.05){b12=estimated$est.params$`3`[1,2]}else{b12=0}
[size=13.3333px]      
[size=13.3333px]        data_4[ii,jj]=a21                                                  
[size=13.3333px]        data_4[jj,ii]=a12                                                  
[size=13.3333px]        data_5[ii,jj]=b21                                                   
[size=13.3333px]        data_5[jj,ii]=b12                                                   
[size=13.3333px]      }
[size=13.3333px]    }                                                               
[size=13.3333px]    next                                 
[size=13.3333px]  }
[size=13.3333px]}

二维码

扫码加我 拉你入群

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

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

关键词:singular bekk ING LAR estimated

沙发
719812133 学生认证  发表于 2024-1-26 09:50:39
对于任何需要使用MLE为参数估计方法的计量模型,其模型参数估计之后所得到这组参数估计值(大部分程序优化过程为求极小值),它对应的正常的Hessian matrix应该是正定矩阵,即说明优化计算求得的该组参数估计值是 (局部) 极小值,这时候其inverse matrix (variance-covariance matrix) 也是正定矩阵,所以主对角线上的元素都是正的,能正常进行开根号运算得到每一个参数估计值对应的hessian inverse普通标准误。如果该组参数估计值对应的Hessian matrix是不定矩阵,那么这组参数估计值就不是 (局部) 极小值,而只是落在一个鞍点的位置,这时候该矩阵同时有正特征值和负特征值,其inverse matrix (variance-covariance matrix) 也是不定矩阵,所以其主对角线上的元素会出现有正有负,而负数是不能进行开根号运算的,因此负数元素对应的参数估计值们就求不到对应的hessian inverse普通标准误,R以及其他编程语言或者商业软件会为这些求不出标准误的参数估计值的标准误返回类似NaN的非值数值对象,并在计算结果中告知hessian matrix出现的这一现象,或者直接跳过参数估计结果的展示直接以hessian matrix的这一结果发出提示警告。

发生这种计算情况,就是说明针对所分析的样本数据,所选择模型的参数估计存在困难,在优化过程中,它难以找到一组参数估计值能以 (局部) 极小值收敛,从根本上来说,这经常是在提示你该模型的设定对于样本数据来说不合适或者模型的机制太复杂,或许换一个更适合数据的模型方法会更恰当,当然还有一种情况就是优化过程的计算有问题,但后者一般不常是主要原因,因为很多程序包开发者的优化计算都是调用很成熟的程序算法进行的,所以前者一般常是问题所在。
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-4-26 13:44