I am trying to incorporate measurement uncertainty in some models, following the example in Statistical Rethinking (15.1) as shown here. I have read the discussion in this issue as well as Paul’s note about
mi()'s functionality being expanded to handle both measurement error/noise as well as missing values and I am fairly confused about the differences (if any) between them. My understanding is that
y.m | se(y.sd, sigma = TRUE) and
y.m | mi(y.sd) do the same thing. But then if I try to use
se(y.sd, sigma = TRUE) for a model with a beta distribution I get
Error: Argument 'se' is not supported for family 'beta(logit)'.
However if I use
brm proceeds without an issue, but I am concerned it does not do what I think it does.
So what is going on here, are there differences or are they interchangeable?
I think it could help people to answer you question if you posted the full model.
My understanding is that one would use
se() in a meta-analysis context where one gets the error variance for the outcome from the data.
x | mi(sdy = se) ~ z is used when you know the error variance of the covariate x (it is in the data). If you have only one predictor z with no missing data, this would be a measurement error model with know error variance of the covariate.
x | mi() ~ z would be a simple imputation model (some z are missing) or measurement error model (no z are missing) with estimated error variance.
To the best of my knowledge
mi() supports only gaussian modelling.
se() is the error variance of the outome, this also requires a gaussian model. This could explain the error message when you use the beta family.
Thank you for your reply. My model has the formula
Resp.mu|mi(Resp.sd) ~ 1 + cont + cat + cont:cat + (1 + cat|unit)
cat are a continuous and a 3 level categorical predictor respectively.
I am a bit unsure what you main question is now.
I hope my earlier response could clarify that
se() is not used to model measurement error, this is done with
mi(). To better understand where the error is comming from, one would need to see the full model, or even better a reproducible example (with fake data).
Regarding your model formula
This seems to be only part of the model, because (a) there is no
family = beta(logit) statement and (b) this is only the imputation model (for
Resp.mu) and there is not outcome model in which the imputed values are used (e.g.
y ~ mi(Resp.mu) + ... ).
As an aside, it seems unusual to me to have a measurement error model where the response variable
Resp.mu is modeled by two different variables. I would have expected a mesurement error of this form:
y ~ mi(x.latent),
x.latent | mi(sdy = x.sd) ~ 0 + x.measured
which should be the same as
y ~ se(x.measured, x.sd)