Hi there,
I am trying to run a three-level logistic growth curve model. For some reason this works fine for one outcome (health_bin) but not for another (Kess_bin)
Using the following syntax I obtain the following model output for binary-self-rated health:
runmlwin health_bin cons E_D E_E W_A W_D S_A S_D NI_A NI_D hiinc_lowocc hiocc_lowinc gm_age, level3(mcsid: cons) level2(urn: cons gm_age) level1(time) discrete(distribution(binomial) link(logit) denominator(cons)) nopause
However if I specify the same model using binary Kessler scores then the slope variance and covariance are both estimated as zero:
runmlwin Kess_bin cons E_D E_E W_A W_D S_A S_D NI_A NI_D hiinc_lowocc hiocc_lowinc gm_age, level3(mcsid: cons) level2(urn: cons gm_age) level1(time) discrete(distribution(binomial) link(logit) denominator(cons)) nopause
I'm really struggling to see why this would be the case and wondered if you could offer any possible explanations?
Many thanks,
Elisabeth
Logistic growth curve model problem
-
- Posts: 2
- Joined: Wed Aug 19, 2015 2:20 pm
Re: Logistic growth curve model problem
Hi Elisabeth,
I'm certainly no expert here, but you could try using pql2 instead. Either way, you should probably follow each model by an MCMC run using the initsprevious option. e.g.
runmlwin Kess_bin cons E_D E_E W_A W_D S_A S_D NI_A NI_D hiinc_lowocc hiocc_lowinc gm_age, level3(mcsid: cons) level2(urn: cons gm_age) level1(time) discrete(distribution(binomial) link(logit) denominator(cons) pql2) nopause
Then
runmlwin Kess_bin cons E_D E_E W_A W_D S_A S_D NI_A NI_D hiinc_lowocc hiocc_lowinc gm_age, level3(mcsid: cons) level2(urn: cons gm_age) level1(time) discrete(distribution(binomial) link(logit) denominator(cons)) mcmc(orthogonal) initsprevious nopause
Good luck!
Stuart
I'm certainly no expert here, but you could try using pql2 instead. Either way, you should probably follow each model by an MCMC run using the initsprevious option. e.g.
runmlwin Kess_bin cons E_D E_E W_A W_D S_A S_D NI_A NI_D hiinc_lowocc hiocc_lowinc gm_age, level3(mcsid: cons) level2(urn: cons gm_age) level1(time) discrete(distribution(binomial) link(logit) denominator(cons) pql2) nopause
Then
runmlwin Kess_bin cons E_D E_E W_A W_D S_A S_D NI_A NI_D hiinc_lowocc hiocc_lowinc gm_age, level3(mcsid: cons) level2(urn: cons gm_age) level1(time) discrete(distribution(binomial) link(logit) denominator(cons)) mcmc(orthogonal) initsprevious nopause
Good luck!
Stuart
-
- Site Admin
- Posts: 432
- Joined: Fri Apr 01, 2011 2:14 pm
Re: Logistic growth curve model problem
Hi Elisabeth,
MQL1 estimates of variance components are biased downwards and this bias can be strong when there is severe clustering, as for example with repeated measures data which is what you have. This might be one reason why your slope variance is stuck on zero. So moving to PQL2 and especially MCMC may well help as Stuart suggests.
However, more fundamentally, while for some individuals you have 3 measurements, on average you only have 2 measurements per individual. You are trying to fit a random-intercept variance, a random-slope variance and their covariance. This is very demanding even if you had continuous response data (which carry more information), but you have binary data, and repeated measures binary data at that. In some ways it is more surprising that your first model "worked", than your second model "not working"! I would be inclined to stick with a random-intercept model for these data, or only put the random slope in at level-3 (if that makes substantive sense), as I don't think you really have enough data to be able to estimate random-slopes at the individual level.
Best wishes
George
MQL1 estimates of variance components are biased downwards and this bias can be strong when there is severe clustering, as for example with repeated measures data which is what you have. This might be one reason why your slope variance is stuck on zero. So moving to PQL2 and especially MCMC may well help as Stuart suggests.
However, more fundamentally, while for some individuals you have 3 measurements, on average you only have 2 measurements per individual. You are trying to fit a random-intercept variance, a random-slope variance and their covariance. This is very demanding even if you had continuous response data (which carry more information), but you have binary data, and repeated measures binary data at that. In some ways it is more surprising that your first model "worked", than your second model "not working"! I would be inclined to stick with a random-intercept model for these data, or only put the random slope in at level-3 (if that makes substantive sense), as I don't think you really have enough data to be able to estimate random-slopes at the individual level.
Best wishes
George