From ripley at stats.ox.ac.uk  Thu Aug 14 19:59:50 2008
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Thu, 14 Aug 2008 18:59:50 +0100 (BST)
Subject: [Rd] extending the derivs table/fools rushing in
In-Reply-To: <48A461B1.4060709@zoology.ufl.edu>
References: <48A461B1.4060709@zoology.ufl.edu>
Message-ID: <alpine.LFD.1.10.0808141852080.22377@gannet.stats.ox.ac.uk>

The derivative of plogis is surely dlogis.  (And yes, there is a good 
reason why we have such a function: take a look at its C code.)

That means we would need an entry for dlogis too, I guess. I am not 
convinced that there is a real need for these (and where does this stop?) 
What would be much more useful is to make this user-extensible (as Bill 
Venables pointed out a decade ago).  [pd]norm were added in 2002 to 
support MASS, the ability to do all of MASS in R being a goal at the time.

On Thu, 14 Aug 2008, Ben Bolker wrote:

>
>  I added "plogis" to the derivative table in the
> development version of R; the patch against yesterday's
> R-devel src/deriv/main.c is available at
> http://www.zoology.ufl.edu/bolker/deriv_patch.txt .
>
>  I pretty much followed the framework of the other symbols;
> here was my incantation
>
> - 	} else if (CAR(expr) == PlogisSymbol) {
> - 	    ans = simplify(TimesSymbol,
> - 			   PP_S(TimesSymbol,
> - 				PP_S2(ExpSymbol,
> - 				   PP_S2(MinusSymbol,CADR(expr))),
> - 				PP_S(PowerSymbol,
> - 				     PP_S(PlusSymbol,
> - 					  Constant(1.),
> - 					  PP_S2(ExpSymbol,
> - 					     PP_S2(MinusSymbol,CADR(expr)))),
> - 				     Constant(-2.))),
> - 			   PP(D(CADR(expr),var)));
> - 	    UNPROTECT(8);
>
> It seems to work:
>
>> D(quote(plogis(a)),"a")
> exp(-a) * (1 + exp(-a))^-2
>> D(quote(plogis(a+b*x)),"x")
> exp(-(a + b * x)) * (1 + exp(-(a + b * x)))^-2 * b
>
>  Any thoughts?  I'm sure there's a cleverer way to do this ...
>
>  Ben Bolker
>
>  PS I get a minor build error at the end of the compilation
> (on Ubuntu 8.10):
>
> make[2]: *** No rule to make target `VR.ts', needed by
> `stamp-recommended'.  Stop.
> make[2]: Leaving directory
> `/usr/local/src/R/R-devel/src/library/Recommended'
> make[1]: *** [recommended-packages] Error 2
> make[1]: Leaving directory
> `/usr/local/src/R/R-devel/src/library/Recommended'
> make: *** [stamp-recommended] Error 2
>
>  ... don't know if that is important or not.
>
A local-to-you problem.

>
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] extending the derivs table/fools rushing in
Prof Brian Ripley