求助R报错找不到对象

写mcmc方法的时


library(coda)
library(MASS)
library(MCMCpack)
options(digits=9)
warnings('off')
#Import Data

#index <- read.csv("y.csv",header=TRUE)  #return data

index <- read.csv("res2.csv",header=TRUE) 
y <- index$x
n <- length(y)

#Initialize Parameters
m <- 50;    #Times for Iterations
Burn_in=10;   #Burn-in Period
mu <- matrix(0,m,1); phi<-matrix(0,m,1); tau2<-matrix(0,m,1); 
a<-matrix(0,m,1);b<-matrix(0,m,1);
h <- matrix( 0,m,n)
mu[1]<- 0; phi[1]<- 0.95; tau2[1]<- 0.02 ;a[1]<- 0.046;b[1]<- 0.03#Initial Value

#Gibbs Sampling
for (k in 2:m){ 
  #Sample for ht
  h[k,1] <- mean(h[k-1, ])
  for (t in 2:(n-1)){
    ft <- function(ht,htl,htr,muh,phih,tau2h,a,b,yt){
      # hts <- muh+phih*((htl-muh)+(htr-muh))/(1+phih^2)
      #v2 <- tau2h/(1+phih^2)
      hts <- muh+phih*(htl-muh) 
      v2 <- tau2h
      
      return(dnorm(ht, hts, sqrt(v2),log=TRUE)+log(dNIG(yt,a,b/exp(ht))))}
    out <- MCMCmetrop1R(ft, h[k-1,t], burnin=5, mcmc=50, verbose=0, htl=h[k-1, t-1], htr=h[k-1, t+1], 
                        muh=mu[k-1], phih=phi[k-1], tau2h=tau2[k-1],a=a[k-1], b=b[k-1],yt=y[t],log=TRUE)
    h[k,t] <- sample(out,1)}
  h[k,n]<-mean(h[k-1, ])
  
  #Sample for alpha
  fa <- function(a,b,ht,yt){
    s4 <- 0
    for (i in 1:n){s4=s4+(-a-1/2)*log(1+yt[i]^2*exp(ht[i])/(2*b))}
    pri <- 3*log(a)-a/2
    return(pri+n*log(gamma(a+1/2)/(b^(1/2)*gamma(a)))+sum(ht)/2+s4)}
  outa <- tryCatch(MCMCmetrop1R(fa, 0.046, burnin=10, mcmc=50, verbose=0, ht=h[k, ], b=b[k-1],yt=y,log=TRUE),error=function(e){return(outa)})
  a[k] <- sample(outa,1)
  
  #Sample for beta
  fb <- function(a,b,ht,yt){
    s5 <- 0
    for (i in 1:n){s5=s5+(-a-1/2)*log(1+yt[i]^2*exp(ht[i])/(2*b))}
    pri <- 3*log(b)-b/2
    return(pri+n*log(gamma(a+1/2)/(b^(1/2)*gamma(a)))+sum(ht)/2+s4)}
  outb <- tryCatch(MCMCmetrop1R(fb, 0.046, burnin=10, mcmc=50, verbose=0, ht=h[k, ], a=a[k-1],yt=y,log=TRUE),error=function(e){return(outb)})
  b[k] <- sample(outb,1)
  }
}


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The Metropolis acceptance rate was 0.51667
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Error in value[[3L]](cond) : 找不到对象'outb'
此外: There were 14 warnings (use warnings() to see them)

候参数b是从a直接复制改过去的,a可以运行但b一直报错,求助大佬

你这value[[3L]](cond)的代码在哪呢?贴出来的看不到啊

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632