Mike.Gahan
Mike.Gahan

Reputation: 4615

Extracting probability from density object

I am currently building density objects for an ecology project I am working on. The density function in R works quite nicely for fitting density functions to my data.

An example of how I am using the density function is shown below:

dens.iris <- density(iris$Sepal.Length, bw = "bcv")

This works very well. However, the predict function does not seem to work with density objects. Does anyone know a way to extract the density value for a specific point (e.g. in the iris dataset, extract a Sepal.Length of 6.432)? It is important that I use a biased cross validation technique for this.

Upvotes: 5

Views: 1614

Answers (1)

MrFlick
MrFlick

Reputation: 206197

You could use the approxfun function to linearly interpolate points between those given by the density result. Thus you could use

diris <- with(dens.iris, approxfun(x, y, rule=1))
diris(6.432)
# [1] 0.349344

also

curve(diris(x), from=4.0, to=7.9)

enter image description here

Of course you have to remember that values of a density curve are not the same thing as probabilities. As with any continuous distribution, the probability that the sepal length is exactly 6.432 is 0.

Upvotes: 8

Related Questions