willow1980 wrote:
Dear R users,
I have a problem in plotting 3 dimensional graph using mixed models. My model is
sur_prop ~
afr_c+I(afr_c^2)+I(afr_c^3)+byear_c+I(byear_c^2)+I(byear_c^3)+I(byear_c^4)+(1|Studyparish)+afr_c:byear_c
+afr_c:I(byear_c^2)+afr_c:I(byear_c^3)+afr_c:I(byear_c^4)+I(afr_c^2):byear_c+I(afr_c^2):I(byear_c^2)+I(afr_c^2):I(byear_c^3)+I(afr_c^2):I(byear_c^4) This is a study on the effect of mothers' age and cohort year on children's
survival.
I  can extract predicted value using a suggested method from website:
mo...@x%*%fixef(model). To my knowledge, this method is reasonable. It is a
bit alike matrix representation in multiple regression.
However, I cannot use such predicted values together with age and cohort
values to plot a 3-D surface plot. Since my dataset is very large, it is
certainly useless to plot 3-D points scatter plot, which is very difficult
to discern the pattern. By the way, I have tried "plot3d", "scatterplot" and
"regr2.plot" to give scatter plot. So, do you have any suggestion on how to plot a surface plot given above
information? For example, how to use "persp" or "wireframe" in case of lmer
with more than two explanatory variables?
Thank you very much for helping!

I only see two explanatory variables: afr_c, byear_c. If you have more than two, you can't use a surface plot: surfaces are two dimensional.

All of the 3D surface functions want basically the same thing: a matrix giving evaluations of a function at locations of the explanatory variables. So you need to calculate that. I'd do it by using expand.grid to create a large set of combinations of values of the explanatory variables, ask your model to do predictions at all of those locations, and then reshape the result into a matrix.

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to