[R] D(dnorm...)?

Bill.Venables@csiro.au Bill.Venables at csiro.au
Thu Jan 26 04:39:12 CET 2006


Yes Bert, this time you are missing something (unusually) ...

As Brian Ripley pointed out 'dnorm' is in the derivative table, *but*
only as a function of one variable.  So if you want to find the
derivative of 

dnorm(x, mean, sigma)

you have to write it as 1/sigma * dnorm((x - mu)/sigma).  Here is a
little example:

> D(Quote(pnorm((x-mu)/sigma)), "x")
dnorm((x - mu)/sigma) * (1/sigma)

> D(D(Quote(pnorm((x-mu)/sigma)), "x"), "mu")
(x - mu)/sigma * (dnorm((x - mu)/sigma) * (1/sigma)) * (1/sigma)

---

Like Brian, I recall the suggestion that we make D(...) extensible.  I
still think it is a good idea and worth considering.  Under one scheme
you would specify an object such as

Fnorm <- structure(quote(pnorm(x, mu, sigma)), 
	deriv = 
	list(x = Quote(dnorm(x, mu, sigma)/sigms),
		mu = Quote(-dnorm(x, mu, sigma)/sigma),
		sigma = Quote(-(x - mu)*dnorm(x, mu, sigma)/sigma^2),
	class = "dfunction")

ane write a generic "differentiate" function with a "dfunction" method
and "D" as the default.

I don't think it's quite that easy, but the plan is clear enough.

Bill.





-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Berton Gunter
Sent: Thursday, 26 January 2006 8:58 AM
To: 'Spencer Graves'; r-help at stat.math.ethz.ch
Subject: Re: [R] D(dnorm...)?


dnorm() is an internal function, so I don't see how D (or deriv) can do
anything with it symbolically. Am I missing something?

-- Bert
 
 

> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch 
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Spencer Graves
> Sent: Wednesday, January 25, 2006 2:43 PM
> To: r-help at stat.math.ethz.ch
> Subject: [R] D(dnorm...)?
> 
> 	  Can someone help me understand the following:
> 
>  > D(expression(dnorm(x, mean)), "mean")
> [1] 0
>  > sessionInfo()
> 
> R version 2.2.1, 2005-12-20, i386-pc-mingw32
> 
> attached base packages:
> [1] "methods"   "stats"     "graphics"  "grDevices" "utils"   
>   "datasets"
> [7] "base"
> 
> 	  By my computations, this should be something like 
> ((mean-x)/sd^2)*dnorm(...).
> 
> 	  Thanks for your help.
> 	  Spencer Graves
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html
>

______________________________________________
R-help at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html




More information about the R-help mailing list