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% basadaen> 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]]