Hola Carlos,
Muchas gracias por tu email y sugerencias. Encontre algunas soluciones mas o
menos
automaticas que resultan bastante buenas.
El paquete "hdrcde" implementa el metodo descripto en el paper que adjunto,
internamente llama al paquete "ash" y construye una "HDR" bivariada.
(El paper tiene tambien un script en S-Plus que utiliza la funcion
"density2d()"
la version en R usa "ash".)
En mi ejemplo las cosas resultan de la siguiente forma:
# comienzo del ejemplo ...
# parametros de la normal
muD <- 1
muS <- 2
sdD <- 2
sdS <- 4
rho <- 0.7
# contorno del 95%
cc95 <- sqrt(qchisq(0.95,2))
muSp <- muS + sdS * cc95 * cos(seq(0, 2*pi, 0.01))
muDp <- muD + sdD * cc95 * cos(seq(0, 2*pi, 0.01) + acos(rho))
par(mfrow=c(1,3))
plot(muDp, muSp, type="l", xlim=c(-10, 10), ylim=c(-10,10))
# simulo 200 casos
library(MASS)
Sigma <- matrix(c(sdD^2, rho*sdD*sdS,
rho*sdD*sdS, sdS^2),2,2)
mu <- c(muD, muS)
y <- mvrnorm(n=200, mu, Sigma)
points(y)
# HDR
library(hdrcde)
hdr.boxplot.2d(y[,1], y[,2], prob=0.05, xlim=c(-10, 10), ylim=c(-10,10))
points(y)
par(c(1,1))
# fin del ejemplo
Para la gente que necesite buscar graficos interesantes en R, la pagina:
http://addictedtor.free.fr/graphiques/
contiene mucha informacion. Aqui encontre el HDR que me soluciona el
problema.
Saludos y buen fin de semana,
Pablo
----- Original Message -----
From: "Carlos J. Gil Bellosta " <gilbellosta en gmail.com>
To: "Pablo Emilio Verde" <PabloEmilio.Verde en uni-duesseldorf.de>
Sent: Thursday, July 30, 2009 7:35 PM
Subject: Re: [R-es] contorno noparametrico
Hola, ¿qué tal?
El problema, es, entiendo, asociar a "niveles" o "curvas de nivel" de
una distribución bidimensional no necesariamente normal la
probabilidad asociada a la región donde la función de densidad está
por debajo (del nivel).
Matemáticamente, dada una función de densidad f sobre RxR, saber
asociar a cada valor x en [0, Inf) la probabilidad
integral_A f(y) dy donde A es la región del plano donde f es menor que x.
PodrÃas muestrear X ~ f y anotar tanto los valores x como f(x).
Ordenas los f(x) y te quedas con el valor que deje a la derecha sólo
un porcentaje dado de las x obtenidas. Vamos, que te quedas con el
cuantil deseado de f(x).
Después, con contour o similares puedes recrear aproximadamente el
contorno de f al nivel que quieres.
Creo que eso valdrÃa (dejando aparte cuestiones sobre velocidad de
convergencia y demás).
Un saludo,
Carlos J. Gil Bellosta
http://www.datanalytics.com
2009/7/30 Pablo Emilio Verde <PabloEmilio.Verde en uni-duesseldorf.de>:
▾ Quoted text (4 lines)
Hola a todos,
En el ejemplo que sigue construyo una elipse de confianza del 95% basada
en
▾ Quoted text (37 lines)
una distribucion normal bivariada.
# comienzo del ejemplo
# parametros de la normal
muD <- 1
muS <- 2
sdD <- 2
sdS <- 4
rho <- 0.7
# contorno del 95%
cc95 <- sqrt(qchisq(0.95,2))
muSp <- muS + sdS * cc95 * cos(seq(0, 2*pi, 0.01))
muDp <- muD + sdD * cc95 * cos(seq(0, 2*pi, 0.01) + acos(rho))
plot(muDp, muSp, type="l")
# simulo 200 casos
library(MASS)
Sigma <- matrix(c(sdD^2, rho*sdD*sdS,
rho*sdD*sdS, sdS^2),2,2)
mu <- c(muD, muS)
y <- mvrnorm(n=200, mu, Sigma)
points(y)
# fin del ejemplo
Conoce alguien como construir la misma elipse pero con alguna de las
funciones de densidad no parametrica?
Pablo
▾ Mailing list footer
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: hdr01.pdf
Type: application/pdf
Size: 313626 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20090731/d60e56a5/attachment-0001.pdf >
Message-ID:
<002d01ca11e3$3092b5d0$7d8f6386@VMED.UKD>