A residual vs fits plot from a manyany
or glm1path
object.
1 2 
x 

... 
other parameters to be passed through to plotting functions. 
plot.manyany
is used to check assumptions that are made
when fitting a model via manyany
or glm1path
. As in Wang et al (2012), you should check
the residual vs fits plot for no pattern (hence no suggestion of failure of any linearity
and meanvariance assumptions).
It is also desirable that residuals follow a straight line of slope one on a
normal QQ plot.
These plots use DunnSmyth residuals (Dunn & Smyth 1996), described at residuals.manyglm
.
Note that for discrete data, these residuals involve random number generation, and
will not return identical results on replicate runs  so it is recommended that you
plot your data a few times to check if any pattern shows up consistently across replicate plots.
Note also that for glm1path
objects, slope coefficients have been shrunk towards zero so it is not unusual to see an increasing slope on the residual plot, with larger residuals coinciding with larger fitted values. This arises a a consequent of shrinkage, check if it goes away upon removing the penaly term (e.g. on refitting using manyglm
) before ringing any alarm bells.
David Warton <David.Warton@unsw.edu.au>.
Dunn, P.K., & Smyth, G.K. (1996). Randomized quantile residuals. Journal of Computational and Graphical Statistics 5, 236244.
Wang Y., Naumann U., Wright S.T. & Warton D.I. (2012). mvabund  an R package for modelbased analysis of multivariate abundance data. Methods in Ecology and Evolution 3, 471474.
glm1path
, manyany
, manyglm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  require(graphics)
data(spider)
abund < mvabund(spider$abund)
X < spider$x
## Plot the diagnostics for a loglinear model assuming counts are poisson:
spidPois < manyany("glm", abund, data=X, abund ~ X, family=poisson())
plot(spidPois,pch=19,cex=0.2)
## Fanshape means trouble for our Poisson assumption.
## Try a negative binomial instead...
require(MASS) # this package is needed for its negative binomial family function
spidNB < manyany("manyglm", abund, data=X, abund ~ X, family="negative.binomial")
plot(spidNB,pch=19,cex=0.2,xlim=c(15,6))
## That's looking a lot better...

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
All documentation is copyright its authors; we didn't write any of that.