[R] Integral of function of dnorm

Peter Ehlers ehlers at ucalgary.ca
Thu Feb 11 18:56:32 CET 2010


Here's another suggestion: evaluate

  -0.5 * (log(2 * pi) + 1)  ## -1.418939

Or you can do the integral:

  f <- function(x, mu = 8, s = 1){
          dnorm(x, mu, s) * log(dnorm(x, mu, s))}

  integrate(f, lower = -2, upper = 18)
#-1.418939 with absolute error < 2.8e-10

Try other values for lower= and upper= and see
if you can understand why -Inf, Inf won't work.

You can also plot your function with, e.g.

  curve(f, 7, 9)

  -Peter Ehlers

Charles Annis, P.E. wrote:
> Here's a suggestion:  Plot the function:
> 
> x <- seq(3, 13, length=101)
> plot(x, y=dnorm(x, mean=8,sd=1)*log(dnorm(x,mean=8,sd=1)))
> 
> x <- seq(7.5, 8.5, length=101)
> plot(x, y=dnorm(x, mean=8,sd=1)*log(dnorm(x,mean=8,sd=1)))
> 
> x <- seq(7.9, 8.1, length=101)
> plot(x, y=dnorm(x, mean=8,sd=1)*log(dnorm(x,mean=8,sd=1)))
> 
> This suggests to me that you can integrate over restricted domains of x, and
> sum the intermediate results.
> 
> 
> Charles Annis, P.E.
> 
> Charles.Annis at StatisticalEngineering.com
> 561-352-9699
> http://www.StatisticalEngineering.com
> 
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
> Behalf Of Trafim Vanishek
> Sent: Thursday, February 11, 2010 11:49 AM
> To: Peter Dalgaard
> Cc: r-help at r-project.org
> Subject: Re: [R] Integral of function of dnorm
> 
> This is exactly what I mean.
> 
> I need to find integrate(dnorm(mean=8,sd=1)*log(dnorm(mean=8,sd=1)), -Inf,
> Inf)
> 
> Which doesn't work like that, because it says:
> Error in dnorm(mean = 8, sd = 1) : element 1 is empty;
>    the part of the args list of '.Internal' being evaluated was:
>    (x, mean, sd, log)
> 
> So how can I define x?
> THanks a lot
> 
> 
>>  Dear all,
>>> How is it possible in R to calculate the following integral:
>>> Integral(-Inf, Inf)[log(dnorm(mean = 3, sd = 1))]
>>>
>>> how can I define that the density dnorm is taken on (-Inf, Inf)
>>>
>>> Thanks a lot!
>>>
>> Er, if you mean integral with respect to the x argument in dnorm, then the
>> answer is -Inf because log(dnorm(x,...)) goes quadratically to -Inf in
> both
>> directions. If you meant otherwise, please tell us what you meant...
>>
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
> 

-- 
Peter Ehlers
University of Calgary



More information about the R-help mailing list