[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