R:由于反转矩阵而导致循环终止

问题描述

我正在尝试使用 R 重现 Wang 和 Xia (2009) 结果,并且我有以下 for 循环:

B #  'initialization'. Matrix of estimates based on varying Coefficient Model
a = c(seq(0,1,length = 50),seq(2,100,length = 10))
all_B = list()

for(i in 1:length(a)){
  tol = 1e-6
  itr = 0
  Bhat_old = B
  lambdaj  = a/ n**(-0.5)/apply(B,2,euclidean)
   
 repeat{

    itr = itr + 1
    Bhat_new = My_fn(Bhat_old,x,y,z,lambdaj)

    criterion = max(abs(Bhat_new - Bhat_old))
    if(criterion < tol) break 

    Bhat_old = Bhat_new
  }
  all_B[[i]] = Bhat_new
  
}

其中 euclideanMy_fn 分别是计算欧氏距离和新估计值的函数z 是索引变量。

我的问题是 My_fn 需要计算某个矩阵的逆。有时,经过几次迭代后,我会收到以下错误

系统在计算上是奇异的:倒数条件数 = 0

我在 tol = 1e-20 中设置了参数 solve(),但仍然出现相同的错误。我在需要求逆的矩阵的对角线上添加一个小数 1e-4,但也无济于事。

我想执行以下操作之一:

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)