From nikko at hailmail.net  Sat Feb 14 17:34:45 2009
From: nikko at hailmail.net (Nicholas Lewin-Koh)
Date: Sat, 14 Feb 2009 08:34:45 -0800
Subject: [Rd] proposed simulate.glm method
In-Reply-To: <mailman.19.1234609204.29849.r-devel@r-project.org>
References: <mailman.19.1234609204.29849.r-devel@r-project.org>
Message-ID: <1234629285.24649.1300366683@webmail.messagingengine.com>

Hi,
For extended glms such as gams, gnm or other distributions
such as negative binomial, would there need to be a separate simulate
method?
Or, could the current framework, rather than stopping with an error
look for the appropriate model matrix, coefficients, distribution
function and family object
to simulate from? 

Nicholas 


> Message: 9
> Date: Fri, 13 Feb 2009 21:27:57 +0100
> From: Martin Maechler <maechler at stat.math.ethz.ch>
> Subject: Re: [Rd] proposed simulate.glm method
> To: Heather Turner <Heather.Turner at warwick.ac.uk>
> Cc: r-devel at r-project.org, Martin Maechler
> 	<maechler at stat.math.ethz.ch>
> Message-ID: <18837.55245.15158.29378 at cmath-5.math.ethz.ch>
> Content-Type: text/plain; charset=us-ascii
> 
> Thank you, Heather and Ben,
> 
> >>>>> "HT" == Heather Turner <Heather.Turner at warwick.ac.uk>
> >>>>>     on Fri, 13 Feb 2009 15:52:37 +0000 writes:
> 
>     HT> Yes, thanks to Ben for getting the ball rolling. His
>     HT> code was more streamlined than mine, pointing to further
>     HT> simplifications which I've included in the extended
>     HT> version below.
> 
>     HT> The code for the additional families uses functions from
>     HT> MASS and SuppDists - I wasn't sure about the best way to
>     HT> do this, so have just used :: for now.
> 
>     HT> It appears to be working happily for both glm and gnm
>     HT> objects (no gnm-specific code used).
> 
>     HT> Best wishes,
> 
>     HT> Heather
> 
> [....]
> 
> I have now followed Brian Ripley's suggetion to just extend
> simulate.lm() to also deal with "glm" objects, but using
> Heather's suggestions for the different families;
> I've just commited src/library/stats/R/lm.R  with the new code.
> (get it from  svn.r-project.org/R/trunk/ or this night's R-devel
>  tarball).
> 
> One difference to your propsal: Instead of just
>     object$fitted , the code is using
>     fitted(object)  ... something which should properly to the na.action
> used.
> 
> For the (MASS and) SuppDists package requirement, I'm using 
> the following
> 
>       if(is.null(tryCatch(loadNamespace("SuppDists"),
> 			  error = function(e) NULL)))
> 	  stop("Need CRAN package 'SuppDists' for 'inverse.gaussian' family")
> 
> 
> I've not yet updated the help page for simulate(),
> and have only tested relatively few cases for binomial, poisson
> and Gamma.
> I've wanted to expose this to you, so you can provide more
> feedback and possibly even a patch to
>    svn.r-project.org/R/trunk/src/library/stats/man/simulate.Rd
> 
> Martin
> 
> 
>



[Rd] proposed simulate.glm method
Nicholas Lewin-Koh