# [R] weighted kernel density estimation

Romain François francoisromain at free.fr
Wed Dec 22 14:57:31 CET 2004

Dear wizaRds,

I use the MASS::kde2d function to estimate density of the two first
principal components. I do that to have a graphic visualisation of a
"group structure" in my dataset. So far, no problem.

But i would like to estimate that density using weights according to the
COSÂ² values that tells me if my observation is well represented on the
factorial plan 1-2. I would like to use (1) instead of (2) where the w_i
depends on the COSÂ², i hacked the MASS::kde2d function to do that.

\hat{f}_n(x) = \frac{1}{n|H|} \sum_{i=1}^n w_i \times K\left[H^{-1}(x-X_i)\right]          (1)

\hat{f}_n(x) = \frac{1}{n|H|} \sum_{i=1}^n K\left[H^{-1}(x-X_i)\right]                     (2)

I have uploaded to http://addictedtor.free.fr/testkde2dw the files :
- plan12.pdf             : my factorial plan 1-2 (size of representation
of the observations are proportionnal to the COSÂ²)
- persp.pdf               : the estimation without the "weights"
- perspW.pdf            : the estimation with the "weights"

My questions are : As anyone done that ? Do i have right to do that ?

Thanks a lot.

See my kde2dw function below :

kde2dw <- function (x, y, h, n = 25, lims = c(range(x), range(y)), w)
{
# w is a weight vector, you must have sum(w)=length(x)

nx <- length(x)
if (length(y) != nx)
stop("Data vectors must be the same length")

gx <- seq(lims[1], lims[2], length = n)
gy <- seq(lims[3], lims[4], length = n)
if (missing(h)) h <- c(bandwidth.nrd(x), bandwidth.nrd(y))
if(missing(w))  w <- rep(1,nx)

h <- h/4
ax <- outer(gx, x, "-")/h[1]
ay <- outer(gy, y, "-")/h[2]

z <- matrix(dnorm(ax), n, nx) %*% diag(w) %*% t(matrix(dnorm(ay), n, nx)) / (nx * h[1] * h[2])

return(list(x = gx, y = gy, z = z))
}

--
Romain FRANCOIS : francoisromain at free.fr
page web : http://addictedtor.free.fr/  (en construction)
06 18 39 14 69 / 01 46 80 65 60
_______________________________________________________
Etudiant en 3eme annÃ©e
Institut de Statistique de l'UniversitÃ© de Paris (ISUP)
FiliÃ¨re Industrie et Services
http://www.isup.cicrp.jussieu.fr/