Foro de debate

Obtener datos aleatorios de una distribución normal en un rango de números

Obtener datos aleatorios de una distribución normal en un rango de números

de Laura Martinelli -
Número de respuestas: 6

Buenas!
Estoy un poco enredada, espero ser clara y que me puedan ayudar.
Mi tutor quiere que el programa le permita tanto importar datos de una población, como definirla mediante el ingreso de datos como la media, el desvío, el tamaño, valor minimo y máximo.
Mi problema surge en este ultimo caso cuando no tengo los datos de la población sino medidas de resumen de ella.

Ejecuto el siguiente código que me permite obtener n números de una distribución normal, para luego poder manipularlos y por ejemplo, obtener muestras de ella:

poblacion <<- rnorm(as.numeric(poblacion.largo),mean=as.numeric(poblacion.media), sd=as.numeric(poblacion.sd))

(donde poblacion.largo, poblacion.media y poblacion.sd son los valores ingresados por el usuario).

Mediante este código logro dibujar el polígono de la población, en caso que se trate de una distribución normal:

x <- seq(as.numeric(poblacion.min), as.numeric(poblacion.max), length=as.numeric(poblacion.largo))
plot(x, dnorm(x, mean=poblacion.media, sd=poblacion.sd), xlab="x", ylab="Densidad", main=expression(paste("Distribución Normal")), type="l")

(donde poblacion.largo, poblacion.media, poblacion.sd, poblacion.min y poblacion.max son los valores ingresados por el usuario).

Problemas:

Los datos de la población que obtengo con rnorm tienen la media y el desvío que quiere el operador pero pueden superar los valores mínimo y máximo que ingresó.

Si bien logro graficar el polígono con los datos del operador, si quiero graficar un histograma como necesito los datos de la población y éstos superan los valores mínimos y máximos que introdujo el operador, el histograma no se condice con el polígono.

Espero que me puedan ayudar,
muchas gracias nuevamente.
Saludos, Laura.



En respuesta a Laura Martinelli

Re: Obtener datos aleatorios de una distribución normal en un rango de números

de Manuel Muñoz Márquez -
Lo único importante de una distribución no son la media, mínimo, máximo, ... Además dudo mucho que la distribución normal se ajuste a las poblaciones que debes simular.

Mi recomendación es que te asesores sobre que familia de distribuciones ajusta los datos que tienes y que utilices dicha familia ajustando los parámetros para la generación de valores aleatorios. Otra alternativa sería permitir al usuario la elección de la familia de distribuciones y de los parámetros.

Saludos.
En respuesta a Manuel Muñoz Márquez

Re: Obtener datos aleatorios de una distribución normal en un rango de números

de Laura Martinelli -
Disculpas por no aclararlo, pero el usuario además de ingresar dichos valores selecciona la distribución, entre ellas la normal, uniforme, t, etc..
El problema que les presenté lo tengo con todas las distribuciones. Ya que, por si no fui clara, mi problema es como generar números aleatrorios que pertenezcan a alguna de esas distribuciones entre un mínimo y máximo establecido también por el usuario. Para una vez obtenidos dichos valores, pueda hacer un histograma o sacar una muestra.
Espero haber sido más clara...
Saludos
En respuesta a Laura Martinelli

Re: Obtener datos aleatorios de una distribución normal en un rango de números

de Manuel Muñoz Márquez -
El procedimiento consistiría en generarlos primero y luego quedarte con los que verifican la condición.

Pero, si generas valores de una distribución, por ejemplo N(5,17), y luego los truncas tienes OTRA distribución que NO es una distribución Normal, por lo que ya NO estarías representando la distribución que ha elegido el usuario.

Saludos.
En respuesta a Manuel Muñoz Márquez

Re: Obtener datos aleatorios de una distribución normal en un rango de números

de Laura Martinelli -
A ver si te entiendo, entonces me decís que no hay manera de generarlos asegurándome que están en un rango determinado?
Saludos
En respuesta a Laura Martinelli

Re: Obtener datos aleatorios de una distribución normal en un rango de números

de Manuel Muñoz Márquez -
No.

Cada distribución tiene su propio rango y si alteras el rango alteras la distribución.

Saludos.