[R] density(): obtaining p-values
Frank E Harrell Jr
fharrell at virginia.edu
Mon Mar 3 12:53:03 CET 2003
On Mon, 3 Mar 2003 12:40:37 +0100
"Pfaff, Bernhard" <Bernhard.Pfaff at drkw.com> wrote:
> Dear R-List-Member,
>
> is there a more elegant way to obtain p-values of a vector x, whose
> empirical density has been estimated with density(), than summing up the
> rectangles as an approximation of the area beneath the empirical
> distribution function and interpolating the values of x by using approx()?
>
> pval.emp <- function(x)
> {
> df <- density(x,from=min(x),to=max(x),kernel="gaussian")
> width <- df$x[2]-df$x[1]
> rect <- df$y*width
> cdf.emp <- cumsum(rect)
> approx(df$x,cdf.emp,x)$y
> }
>
> Many thks in advance,
> Bernhard
>
>
You may want to refer to this just as "probability" and not "p-values". It may not be fruitful to fit a density if what you want is cumulative probabilities. Just compute the empirical cumulative distribution function of the original x:
library(stepfun)
ecdf(x)
--
Frank E Harrell Jr Prof. of Biostatistics & Statistics
Div. of Biostatistics & Epidem. Dept. of Health Evaluation Sciences
U. Virginia School of Medicine http://hesweb1.med.virginia.edu/biostat
More information about the R-help
mailing list