如何解决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
}
其中 euclidean
和 My_fn
分别是计算欧氏距离和新估计值的函数。 z
是索引变量。
我的问题是 My_fn
需要计算某个矩阵的逆。有时,经过几次迭代后,我会收到以下错误
系统在计算上是奇异的:倒数条件数 = 0
我在 tol = 1e-20
中设置了参数 solve()
,但仍然出现相同的错误。我在需要求逆的矩阵的对角线上添加了一个小数 1e-4
,但也无济于事。
我想执行以下操作之一:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。