各位大牛你们好,我写了一个程序,折腾好多天了,可是老是不出正确的结果。
其中以下的BX就是图片中的X,  M就是途中delta_n矩阵,lm1就是参数Lambda
里面涉及到的(ln), 都是已经包含在以下的参数里面了。
道理就是不同的ln算出一个bic的值,然后选取bic最小的ln.我找了半天都是在ln=0时最小,显然不对,所以,想让各位帮忙看下,这个bic的算法是否有问题。
先谢谢各位了。
    BX<-matrix(rep(0,dm^3),ncol=dm)
     for(i in 1:dm)
     {
      BX[,i]<-as.vector(Et1[,i]%*%t(Et1[,i]))
     }
     BY<-as.vector(M)
     BL<-diag(w/abs(lm1))
     BL[BL == Inf] <- 0
     BP<-BX%*%(solve(t(BX)%*%(BX)+dm^2*BL))%*%t(BX)
     Btr<-sum(diag(BP))
     BN<-BY-BX%*%lm1
     bic<-log((norm(BN,"F"))^2)+log(dm^2)/dm^2*Btr
                                        
                                    
附件列表