R/inits.R

Defines functions inits

Documented in inits

inits <-
function(bug, warn.mess=TRUE){
  if(class(bug)!="tsbugs")
    stop("bug must be object with tsbugs")
  in0<-nodes(bug, "prior")
  if(bug$info$variance=="RV") in0<-rbind(in0,nodes(bug, "likelihood"))
  in0<-in0[in0$stoc==1,]
  if(bug$info$variance!="RV")  in0<-in0[is.na(in0$beg) & is.na(in0$end),]
  if(bug$info$variance=="RV")  in0<-in0[in0$name!="y",]
  n<-dim(in0)[1]
  in1<-as.list(rep(0,n))
  names(in1)<-in0$name
  if(length(grep("sig",names(in1)))>0)  in1[[grep("sig",names(in1))]]<-0.5
  if(length(grep("tau",names(in1)))>0)  in1[[grep("tau",names(in1))]]<-0.5
  if(length(grep("psi",names(in1)))>0)  for(i in grep("psi",names(in1)))  in1[[i]]<-0.5
  if(length(grep("psi0.star",names(in1)))>0)  in1[[grep("psi0.star",names(in1))]]<-20
  if(bug$info$variance=="RV"){
    if(length(grep("lambda",names(in1)))>0)  
      in1[[grep("lambda",names(in1))]]<-1
    if(length(grep("epsilon",names(in1)))>0)  
      in1[[grep("epsilon",names(in1))]]<-0.05
    if(length(grep("delta",names(in1)))>0)  
      in1[[grep("delta",names(in1))]]<-c(rep(NA,in0[grep("delta",names(in1)),"beg"]),
                                         rep(0,in0[grep("delta",names(in1)),"end"]-in0[grep("delta",names(in1)),"beg"]))
    if(length(grep("beta",names(in1)))>0)
      in1[[grep("beta",names(in1))]]<-c(rep(NA,in0[grep("beta",names(in1)),"beg"]),
                                        rep(0,in0[grep("beta",names(in1)),"end"]-in0[grep("beta",names(in1)),"beg"]))
  }
  if(bug$info$variance=="GARCH"){
    if(length(grep("omega",names(in1)))>0)  for(i in grep("omega",names(in1)))  in1[[i]]<-0.5
    in1<-c(in1,list(h=c(rep(0.05,bug$info$args$vol.beg-1), rep(NA,bug$info$nh-bug$info$args$vol.beg+1))))
  }
  if(warn.mess==TRUE) print("guess attempt at initial values, might need to alter")
  return(in1)
}
gjabel/tsbugs documentation built on Aug. 19, 2021, 12:47 a.m.