Hola a todos,
En el ejemplo que sigue construyo una elipse de confianza del 95% basada en
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
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>:> > Hola a todos, > > En el ejemplo que sigue construyo una elipse de confianza del 95% basada en > 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 > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >
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>:>
> Hola a todos,
>
> En el ejemplo que sigue construyo una elipse de confianza del 95% basada
en> 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
>
> _______________________________________________
> 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>
Hola a todos: Tengo un gran problema, mi computadora tiene Windows Vista SP2 de 64bits y no puedo instalar el SciView. Tengo instalado la última versión de R y actualice los paquetes. En R me sale lo siguiente: R version 2.9.1 (2009-06-26) Copyright (C) 2009 The R Foundation for Statistical Computing ISBN 3-900051-07-0 R es un software libre y viene sin GARANTIA ALGUNA. Usted puede redistribuirlo bajo ciertas circunstancias. Escriba ''license()'' o ''licence()'' para detalles de distribucion. R es un proyecto colaborativo con muchos contribuyentes. Escriba ''contributors()'' para obtener más información y ''citation()'' para saber cómo citar R o paquetes de R en publicaciones. Escriba ''demo()'' para demostraciones, ''help()'' para el sistema on-line de ayuda, o ''help.start()'' para abrir el sistema de ayuda HTML con su navegador. Escriba ''q()'' para salir de R.> library(svGUI)Loading required package: svMisc Loading required package: svSocket Loading required package: tcltk Loading Tcl/Tk interface ... done>Y se queda ahí, porfavor si alguien sabe que es lo que puedo hacer??? Saludos, Ing. Darío Barona _________________________________________________________________ [[alternative HTML version deleted]]