Nothing
if(identical(Sys.getenv("NOT_CRAN"), "true")& .Machine$sizeof.pointer != 4){
library(ctsem)
library(testthat)
context("ctBinaryGaussianMix") #develop some expectations here!
test_that("ctBinaryGaussianMix1", {
set.seed( 1234 )
cores=2
invlog=function (x) exp(x)/(1 + exp(x))
#gen data
gm <- ctModel(DRIFT= c(-.2, .2,
0,-.1),
DIFFUSION=c(.3,0,
0,.4),
CINT=c(.1,.1),
# TRAITVAR=diag(.3,2), #old approach to allow individual variation
LAMBDA= diag(1,2),
n.latent=2,n.manifest=2,Tpoints=50)
d=ctGenerate(gm,n.subjects = 50,logdtsd=.2,dtmean = .2,burnin = 20)
d[,gm$manifestNames[1]] <- d[,gm$manifestNames[1]] + rnorm(nrow(d),0,.2)
d=data.frame(d)
for(i in 1:10){
d[[paste0('b',i)]] <- rbinom(nrow(d),size=1,prob=invlog(d[,gm$manifestNames[2]]))
}
# plot(invlog(d[,gm$manifestNames[2]])[1:100],type='l',col=2)
# points( apply(d[,paste0('b',1:10)],1,function(x) mean(x))[1:100],type='l')
MANIFESTVAR = diag(c(1,rep(0,10)),11)
MANIFESTVAR[1]='mvar1'
m <- ctModel(type='stanct',
manifestNames = c('Y1',paste0('b',1:10)),
LAMBDA=rbind(diag(1,2),cbind(rep(0,9),rep(1,9))),
MANIFESTMEANS = 0,
MANIFESTVAR = MANIFESTVAR,
CINT=c('CINT1','cint2'))
m$manifesttype[2:11]=1 #set type to binary
m$pars$indvarying=F
#fit with integration (linearised approximation)
f <- ctStanFit( datalong = d, ctstanmodel = m,cores=cores,plot=10)
#test if the estimated model pars 95% confidence intervals contain true pars
lowmats <- ctStanContinuousPars(f,calcfuncargs = list(probs=.025))
upmats <- ctStanContinuousPars(f,calcfuncargs = list(probs=.975))
gmn <- ctsem:::ctModeltoNumeric(gm)
gmn$DIFFUSIONcov <- tcrossprod(gmn$DIFFUSION)
mats <- c('DRIFT','DIFFUSIONcov','CINT')
for(i in 1:length(mats)){
expect_true(all(lowmats[[mats[i]]] < gmn[[mats[i]]] & upmats[[mats[i]]] > gmn[[mats[i]]]))
}
})
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.