Dear all.
I am trying to add age as covariant into my liability threshold model. the script runs well before I add age covariant, However, after I add age covariate into the model, OpenMx always give me this error message:
Error in if (label %in% fixedVars && startVals[[label]] != value) { :
missing value where TRUE/FALSE needed.
I googled this error message, it seem to be too many missing values in age variables. But I still can not get the answer which how to fix this issue. I am wondering is any body has experience to fix that? If so, could you give me some suggestion about that?
Thank you very much in advance!
The codes as below:
mean
meanG <-mxMatrix( type="Zero", nrow=1, ncol=8, name="expMean" )
slope
beta1 <- mxMatrix( type="Full", nrow=1, ncol=1, free=TRUE,
values=0, labels='betage', name="b1" )
age matrix
ObsAge<-mxMatrix( type="Full", nrow=1,ncol=8, free=F, values=c(all$age7,all$age8,all$age1,all$age2,all$age3,all$age4,all$age5,all$age6),label=c('age7','age8','age1','age2','age3','age4','age5','age6'), name="Age")
Matrices to calculate effect on mean (beta * definition variable)
Defage <- mxAlgebra(expression= b1 %*% Age,name="Defage")
interception
intercep <- mxMatrix( type="Full", nrow=1, ncol=8, free=TRUE, values=-0.25, lbound=-.99, ubound=.99,
labels="thresh", name="intercept" )
threshold
expThresh <- mxAlgebra( intercept + Defage, name="expThre")
correlations
corMZM <-mxMatrix(type="Stand", nrow=8, ncol=8, free=T, values=corValsMZ, lbound=-.99, ubound=.99, labels=c(
'rFM','rFS','rFS','rFS','rFS','rFD','rFD','rMS','rMS',"rMS",'rMS','rMD','rMD',
'rMZM','rBB','rBB','rBS','rBS','rBB','rBB','rBS','rBS',
'rBB','rBS','rBS','rBS','rBS','rSS'), name="expCorMZM")
corMZF <-mxMatrix(type="Stand", nrow=8, ncol=8, free=T, values=corValsMZ, lbound=-.99, ubound=.99, labels=c(
'rFM','rFD','rFD','rFS','rFS','rFD','rFD','rMD','rMD',"rMS",'rMS','rMD','rMD',
'rMZF','rBS','rBS','rSS','rSS','rBS','rBS','rSS','rSS',
'rBB','rSS','rBS','rBS','rBS','rSS'), name="expCorMZF")
corDZM <-mxMatrix(type="Stand", nrow=8, ncol=8, free=T, values=corValsDZ, lbound=-.99, ubound=.99, labels=c(
'rFM','rFS','rFS','rFS','rFS','rFD','rFD','rMS','rMS',"rMS",'rMS','rMD','rMD',
'rDZM','rBB','rBB','rBS','rBS','rBB','rBB','rBS','rBS',
'rBB','rBS','rBS','rBS','rBS','rSS'), name="expCorDZM")
corDZF <-mxMatrix(type="Stand", nrow=8, ncol=8, free=T, values=corValsDZ, lbound=-.99, ubound=.99, labels=c(
'rFM','rFD','rFD','rFS','rFS','rFD','rFD','rMD','rMD',"rMS",'rMS','rMD','rMD',
'rDZF','rBS','rBS','rSS','rSS','rBS','rBS','rSS','rSS',
'rBB','rSS','rBS','rBS','rBS','rSS'), name="expCorDZF")
corDZMF <-mxMatrix(type="Stand", nrow=8, ncol=8, free=T, values=corValsDZ, lbound=-.99, ubound=.99, labels=c(
'rFM','rFS','rFD','rFS','rFS','rFD','rFD','rMS','rMD',"rMS",'rMS','rMD','rMD',
'rDZMF','rBB','rBB','rBS','rBS','rBS','rBS','rSS','rSS',
'rBB','rBS','rBS','rBS','rBS','rSS'), name="expCorDZMF")
corDZFM <-mxMatrix(type="Stand", nrow=8, ncol=8, free=T, values=corValsDZ, lbound=-.99, ubound=.99, labels=c(
'rFM','rFD','rFS','rFS','rFS','rFD','rFD','rMD','rMS',"rMS",'rMS','rMD','rMD',
'rDZFM','rBS','rBS','rSS','rSS','rBB','rBB','rBS','rBS',
'rBB','rSS','rBS','rBS','rBS','rSS'), name="expCorDZFM")
Data objects for Multiple Groups
dataMZM <-mxData(mzmData, type="raw")
dataDZM <-mxData(dzmData, type="raw")
dataMZF <-mxData(mzfData, type="raw")
dataDZF <-mxData(dzfData, type="raw")
dataDZMF <-mxData(dzmfData, type="raw")
dataDZFM <-mxData(dzfmData, type="raw")
Objective objects for Multiple Groups
objMZM <-mxFIMLObjective( covariance="expCorMZM", means="expMean", dimnames=selVars, thresholds="expThre" )
objDZM <-mxFIMLObjective( covariance="expCorDZM", means="expMean", dimnames=selVars, thresholds="expThre" )
objMZF <-mxFIMLObjective( covariance="expCorMZF", means="expMean", dimnames=selVars, thresholds="expThre" )
objDZF <-mxFIMLObjective( covariance="expCorDZF", means="expMean", dimnames=selVars, thresholds="expThre" )
objDZMF <-mxFIMLObjective( covariance="expCorDZMF", means="expMean", dimnames=selVars, thresholds="expThre" )
objDZFM <-mxFIMLObjective( covariance="expCorDZFM", means="expMean", dimnames=selVars, thresholds="expThre" )
Combine Groups
pars<- list(meanG,beta1,ObsAge,Defage)
groupMZM <-mxModel("MZM", pars,corMZM, dataMZM, objMZM,intercep,expThresh)
groupDZM <-mxModel("DZM", pars,corDZM, dataDZM, objDZM,intercep,expThresh )
groupMZF <-mxModel("MZF", pars,corMZF, dataMZF, objMZF,intercep,expThresh )
groupDZF <-mxModel("DZF", pars,corDZF, dataDZF, objDZF,intercep,expThresh )
groupDZMF <-mxModel("DZMF", pars,corDZMF, dataDZMF, objDZMF,intercep,expThresh )
groupDZFM <-mxModel("DZFM", pars,corDZFM, dataDZFM, objDZFM,intercep,expThresh)
minus2ll<-mxAlgebra( MZM.objective + DZM.objective+ MZF.objective + DZF.objective + DZMF.objective+DZFM.objective, name="minus2sumloglikelihood" )
obj <-mxAlgebraObjective("minus2sumloglikelihood")
twinSatModel <-mxModel( "twin", minus2ll, obj, groupMZM, groupDZM,groupMZF, groupDZF, groupDZMF, groupDZFM)
------------------------------------------------------------------------
RUN SATURATED MODEL (Tetrachoric correlations)
-----------------------------------------------------------------------
twinSatFit <- mxRun(twinSatModel, intervals=F)
Running twin
Error in if (label %in% fixedVars && startVals[[label]] != value) { :
missing value where TRUE/FALSE needed