# NOT RUN {
#get data
sunspots<-sunspot.year
sunspots<-sunspots[50: (length(sunspots) - (1988-1924))]
id <- 1
time <- 1749:1924
datalong <- cbind(id, time, sunspots)
#setup model
model <- ctModel(type='stanct', n.latent=2, n.manifest=1,
manifestNames='sunspots',
latentNames=c('ss_level', 'ss_velocity'),
LAMBDA=matrix(c( -1, 'ma1' ), nrow=1, ncol=2),
DRIFT=matrix(c(-.0001, 'a21', 1, 'a22'), nrow=2, ncol=2),
MANIFESTMEANS=matrix(c('m1'), nrow=1, ncol=1),
CINT=matrix(c(0, 0), nrow=2, ncol=1),
T0VAR=matrix(c(1,0,0,1), nrow=2, ncol=2), #Because single subject
DIFFUSION=matrix(c(0.0001, 0, 0, "diffusion"), ncol=2, nrow=2))
model$pars$indvarying<-FALSE #Because single subject
model$pars$transform[14]<- '(param)*5+44 ' #Because not mean centered
model$pars$transform[4]<-'-log(exp(-param*1.5)+1)' #To avoid multi modality
#fit and plot importance sampling diagnostic
fit <- ctStanFit(datalong, model, chains=1,optimcontrol=list(isloops=5,issamples=500),optimize=TRUE)
isdiag(fit)
# }
Run the code above in your browser using DataLab