[R-sig-ME] MCMCglmm: predictions for posterior predictive checks
Jarrod Hadfield
j.hadfield at ed.ac.uk
Sat Mar 1 20:19:49 CET 2014
Hi,
Sorry, kronecker(V, diag(2)) should have been kronecker(V, matrix(1,2,2)).
Cheers,
Jarrod
Quoting Jarrod Hadfield <j.hadfield at ed.ac.uk> on Sat, 01 Mar 2014
18:32:36 +0000:
> Hi,
>
> post.pred is equivalent to y^{rep} but you have to be careful about
> whether you want to marginlaise the random effects or not. If you
> don't marginalise the random effects then post.pred is usually the
> joint posterior predictive distribution of y (where I take y to be a
> vector, and joint refers to the fact that it is the joint
> distribution of y^{rep}_{1},y^{rep}_{2} ...y^{rep}_{n}). However,
> post.pred always marginalises the residuals (or it wouldn't be a
> predictive distribution!). If, for example, the model was bivariate
> with observations x and y, and R-structure of the form
> us(trait):units then post.pred does not give the joint posterior
> predictive distribution of x and y: it will give the joint posterior
> predictive distribution of x marginal to the residuals of y, and
> vice versa.
>
> If the random effects are marginalised then post.pred is returning
> the marginal posterior predictive distribution for each observation.
> This might not always be what you want. Imagine you make two
> observations on the same individuals at each of two time points, and
> you have the random effect structure us(time):individual. This fits
> different between-individual variances for observations at different
> times, and also fits a between-individual across-time covariance. If
> you marginalise the individual effects (for example if you want to
> get a posterior predictive distribution for an observation made on a
> random individual) then post.pred will not preserve the covariation
> structure of the four observations. For example, have Y_ijk as the
> kth observation at time j for individual i. We have Y_i11, Y_i12
> Y_i21, Y_i22. Imagine us(time):individual gives us a covariance
> matrix V with 1 and 2 along the diagonal, and sqrt(1/2) on the
> off-diagonals (ie. a correlation of 0.5). If you marginalise the
> individual effects then the they are assumed to be drawn from a
> distribution with diagonal variance structure Diag{1,1,2,2}, whereas
> perhaps you would prefer them to be drawn from kronecker(V, diag(2)).
>
> This is a bit hard to explain! If it doesn't make sense let me know,
> and I'll try again.
>
> Cheers,
>
> Jarrod
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Cheers,
>
> Jarrod
>
>
> Quoting Ramon Diaz-Uriarte <rdiaz02 at gmail.com> on Sat, 01 Mar 2014
> 12:44:04 +0100:
>
>> Dear List,
>>
>> I want to perform a simple posterior predictive check on some Poisson
>> models I've fitted using MCMCglmm. I immediately though about using
>> predict.MCMCglmm as
>>
>> predict(mymodel, type = "response", marginal = 0, interval = "prediction")
>>
>> However, predict returns the expectation (in fact one of its very last
>> lines have pred <- matrix(colMeans(post.pred), dim(post.pred)[2], 1)).
>>
>>
>> I can hack predict.MCMCglmm and directly return the "post.pred" object
>> which, IIUC, would give me the "y^{rep}" (in Gelman et al., 1996,
>> notation.). But having to do this makes me wonder if I am understanding
>> this correctly.
>>
>> Is directly using the "post.pred" object the right way of getting the
>> y^{rep} with MCMCglmm?
>>
>>
>> Best,
>>
>>
>> R.
>>
>>
>>
>>
>> P.S. I am using "marginal = 0" as I want what, e.g., Green et al., 2009
>> ("Use of posterior predictive assessments to evaluate model fit in
>> multilevel logistic regression", Vet. Res, 40) call "full": "The predictive
>> distribution was conditional on all fixed effect and random effect
>> parameters estimated in the final model and a replicate observation
>> y_{ijk}^{full} generated from the conditional distribution (...)".
>>
>> --
>> Ramon Diaz-Uriarte
>> Department of Biochemistry, Lab B-25
>> Facultad de Medicina
>> Universidad Autónoma de Madrid
>> Arzobispo Morcillo, 4
>> 28029 Madrid
>> Spain
>>
>> Phone: +34-91-497-2412
>>
>> Email: rdiaz02 at gmail.com
>> ramon.diaz at iib.uam.es
>>
>> http://ligarto.org/rdiaz
>>
>> _______________________________________________
>> R-sig-mixed-models at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>>
>
>
>
> --
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
> _______________________________________________
> R-sig-mixed-models at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>
--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
More information about the R-sig-mixed-models
mailing list