[R] lookup function for density(...) objects

Ross Ihaka ihaka at stat.auckland.ac.nz
Sat May 12 03:01:18 CEST 2001


Martin Maechler pointed out to me that you wanted the cumulative
probabilities.  Here is a quick and dirty solution.

#  Given a kernel density estimate, this function
#  carries out a (very quick and dirty) numerical
#  integration, and then fits a spline to get a function
#  which can be used to look up cumulative probabilities.

smoothed.df <-
  function(d)
  {
    F <- cumsum(d$y)
    F <- F/F[length(F)]
    splinefun(d$x, F)
  }


# Generate a bimodal test distribution
# Estimate the desnsity and distribution function
x <- rnorm(1000) + ifelse(runif(1000) > .5, -3, 3)
d <- density(x)
F <- smoothed.df(d)   # F returns cumulative probs

# Plot the true and estimated distribution function
curve(0.5 * dnorm(x, -3) + 0.5 * dnorm(x, 3), col="red")
lines(d)

# Plot the true and estimated distribution function
F <- smoothed.d
curve(F(x), add=TRUE)

-- 
Ross Ihaka                         Email:  ihaka at stat.auckland.ac.nz
Department of Statistics           Phone:  (64-9) 373-7599 x 5054
University of Auckland             Fax:    (64-9) 373-7018
Private Bag 92019, Auckland
New Zealand
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list