[R] help in density estimation

(Ted Harding) Ted.Harding at manchester.ac.uk
Thu Sep 23 21:38:56 CEST 2010


There was a typo error in my code below. See the inserted correction.

On 23-Sep-10 17:05:45, Ted Harding wrote:
> On 23-Sep-10 16:52:09, Duncan Murdoch wrote:
>>   On 23/09/2010 11:42 AM, wangguojie2006 wrote:
>>> b<-runif(1000,0,1)
>>> f<-density(b)
>> 
>> f is a list of things, including x values where the density is
>> computed, 
>> and y values for the density there.  So you could do it by linear 
>> interpolation using approx or approxfun.  For example
>> 
>>  > b <- runif(1000,0,1)
>>  > flist <- density(b)
>>  > f <- approxfun(flist$x, flist$y)
>>  > f(0.2)
>> [1] 0.9717893
>>  > f(-1)
>> [1] NA
>> 
>> If you don't like the NA for an out-of-range argument, then choose 
>> something different from the default for the "rule" argument to
>> approxfun.
>> 
>> Duncan Murdoch
> 
> Or, perhaps more transparently (and more explicitly modifiable):
 
  b<-runif(1000,0,1)
  f <- density(b, from=0, to=1, n=512)
  plot(f$x, f$y, type="l", col="blue",
       xlim=c(0,1), ylim=c(0,1.5))     ## Plot the density estimate
  x0 <- 0.5                            ## Target value of x
  i0 <- max(which(f$x <= x0))
  i1 <- min(which(f$x > x0))
##u0 <- f$x[i0] ; v0 <- f$y[i1]        ## WRONG!
  u0 <- f$x[i0] ; v0 <- f$y[i0]        ## Correction
  u1 <- f$x[i1] ; v1 <- f$y[i1]
  y0 <- v0 + (v1-v0)*(x0-u0)/(u1-u0)   ## Linear interpolation
  points(x0, y0, pch="+", col="red")   ## Add interpolated point
 
> Ted.
> 
> --------------------------------------------------------------------
> E-Mail: (Ted Harding) <Ted.Harding at manchester.ac.uk>
> Fax-to-email: +44 (0)870 094 0861
> Date: 23-Sep-10                                       Time: 18:05:41
> ------------------------------ XFMail ------------------------------

--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at manchester.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 23-Sep-10                                       Time: 20:38:53
------------------------------ XFMail ------------------------------



More information about the R-help mailing list