[Rd] proposed simulate.glm method

Heather Turner Heather.Turner at warwick.ac.uk
Fri Feb 13 12:49:06 CET 2009

Dear Martin,

I think a simulate.glm method ought to be able to work for gnm objects
too. David Firth and I started to work on this a long time ago, but
stopped part-way through when simulate.lm was introduced, thinking that
simulate.glm was probably in the pipeline and we were duplicating
effort. Obviously we have let this slip when a contribution might have
been useful. We developed a prototype for poisson, binomial, gaussian,
gamma and inverse gaussian models which might be usefully merged with
Ben's proposed simulate.glm. What's the best way to go about this? I
would also like to test the proposed simulate.glm to check whether it
will work with gnm objects or whether a simulate.gnm will be necessary.

Thanks and best regards,


Martin Maechler wrote:
>>>>>> "BB" == Ben Bolker <bolker at ufl.edu>
>>>>>>     on Thu, 12 Feb 2009 11:29:14 -0500 writes:
>     BB> I have found the "simulate" method (incorporated
>     BB> in some packages) very handy. As far as I can tell the
>     BB> only class for which simulate is actually implemented
>     BB> in base R is lm ... this is actually a little dangerous
>     BB> for a naive user who might be tempted to try
>     BB> simulate(X) where X is a glm fit instead, because
>     BB> it defaults to simulate.lm (since glm inherits from
>     BB> the lm class), and the answers make no sense ...
>     BB> Here is my simulate.glm(), which is modeled on
>     BB> simulate.lm .  It implements simulation for poisson
>     BB> and binomial (binary or non-binary) models, should
>     BB> be easy to implement others if that seems necessary.
>     BB> I hereby request comments and suggest that it wouldn't
>     BB> hurt to incorporate it into base R ...  (I will write
>     BB> docs for it if necessary, perhaps by modifying ?simulate --
>     BB> there is no specific documentation for simulate.lm)
>     BB> cheers
>     BB> Ben Bolker
> [...............]
> Hi Ben,
> thank you for your proposals.
> I agree that  simulate.glm() has been in missing in some way,
> till now, in particular, as, as you note, "glm" objects extend
> "lm" ones and hence  simulate(<glm>, ...) currently dispatches to
> calling simulate.lm(....) which is only correct in the case of
> the gaussian family.
> I have looked at your proposal a bit, already "improved" the
> code slightly (e.g. re-include the comment you lost when you
> ``copied'' simulate.lm():  In such cases, please work from the
> source, not from what you get by print()ing
> stats:::simulate.lm --- the source is either a recent tarball,
> or the SVN repository, in this case, file
> https://svn.r-project.org/R/trunk/src/library/stats/R/lm.R ]
> and am planning to look at your and some own examples; 
> all with the goal to indeed include this in the R standard
> 'stats' package in R-devel [to become R 2.9.0 in the future].
> About the help page:  At the moment, I think that only a few
> words would need to be added to the simulate help page,
> i.e., https://svn.r-project.org/R/trunk/src/library/stats/man/simulate.Rd
> and will be happy to receive a patch against this file.
> Thank you again, and best regards,
> Martin Maechler, ETH Zurich
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

More information about the R-devel mailing list