Distribuciones de variable aleatoria
R tiene varias herramientas para trabajar con variables aleatorias. Las principales son muy sencillas de usar. Para cada variable aleatoria (entre las más comunes) hay una abreviatura. Para trabajar con ellas hay cuatro funciones para cada una de ellas de tal modo que cada función comienza con una letra diferente, de tal modo que
d representa la función densidad
p representa la función de distribución acumulada
q nos da el valor de la distribución a partir de un cuantil (es decir, si le das la probabilidad acumulada te da la posición en la distribución: es la función inversa de p)
r genera un valor aleatorio siguiendo esa distribución
Así, casi todas las funciones que trabajan con variables aleatorias funcionan de un modo similar. El cuadro 1 muestra las abreviatruras y las funciones de densidad de las princiupales variables aleatorias que utilizamos.
De este modo nos resulta muy fácil encontrar funciones para hacer cálculos de probabilidad con varianbles aleatorias y para otros usos, como vamos a ver ahora.
Podemos comenzar construyendo una gráfica de la función densidad de la distribución normal. Hemos visto que, según las reglas que hemos dado, ‘rnorm’ nos debería generar una distribución normal. Podemos representarla fácilmente con la instrucción
plot(pnorm,-3, 3,main ="Distribución normal")
De tal modo que nos va a representar una distribución normal entre los valores Z -3 y 3, con el título que le indicamos.
También podemos generar directamente una variable que contenga valores aleatorios que siguen una distribución normal:
# Generamos una variable con 100 casos que sigue una distribución normal, con media 0 y desviación típica 1
<- rnorm(100, mean = 0, sd = 1)
variable.normal # Como son sólo 100 casos, es posible que la media se aleje un poco del valor 0
summary(variable.normal)
# Podéis examinar los primeros casos con la función head()
head(variable.normal)
# Y podéis ver el conjunto de la distribución visualmente con la función stem()
stem(variable.normal)
La función stem()
`produce un tipo de gráfico que se llama de tallo, en el que la primera cifra, a la izquierda del tallo, es la de las decenas (en este caso decimales) y la segunda, a la derecha, la de las unidades (en este caso centésimas).
La distribución binomial
En el cálculo de probabilidades, utilizamos la distribución binomial para analizar ensayos repetidos de una variable con dos valores posibles cuya probabilidad es conocida. Por ejemplo, ¿cual es la probabilidad de obtener cuatro veces el número 3 al lanzar un dado ocho veces?
La probabilidad de obtener un 3 en un ensayo es de \(P(x=3)=1/6=0.16666666...\)
Hacemos 8 ensayos
Queremos saber la probabilidad de que nos salga un 3 la mitad de las veces, es decir, 4.
Podemos preguntarle por lo tanto directamente a r utilizando la función densidad de la distribucion binomial, en la que primero especificamos el número de aciertos, luego el número de ensayos, y luego la probabilidad:
dbinom(4, 8, 0.166666666)
¿Y cual es la probabilidad de que nos salga un 3 cinco o más veces?
1 - pbinom(5, 8, 0.166666)
Intenta ahora resolver este problema:
Un jugador de baloncesto tiene la probabilidad de encestar una canasta de 0,75. Si realiza una serie de 20 lanzamientos, ¿cuál es la probabilidad de que acierte exactamente 15 canastas? ¿y 16 ó más canastas en esa misma serie?
¿Qué ocurre si tenemos que hacer cálculos con una variable con más de dos estados posibles? En ese caso utilizaremos una distribución multinomial y las funciones dmultinom()
, pmultinom()
, qmultinom()
y rmultinom()
.
La distribución de Poisson
En principio, utilizamos la distribución de Poisson para realizar cálculos de probabilidad cuando el número de ensayos es muy elevado y la probabilidad es muy baja. La forma de la distribución depende de un parámetro Lambda que es igual al producto del número de ensayos por la probabilidad \(\lambda = p * n\). Así, debemos o calcular primero lambda o introducirlo directamente en la fórmula.
La probabilidad de que un niño nazca pelirrojo es de 0,012. ¿Cuál es la probabilidad de que entre 800 recien nacidos haya 5 pelirrojos?
En este caso es igual a 0,012*800, por lo que utilizando la función dpois()
podemos hacer el cálculo fácilmente:
dpois(5, 0.012*800)
Hay muchos problemas de probabilidad que se pueden resolver con facilidad por medio de la distribución de Poisson. Se utiliza a menudo para analizar situaciones en las que se requiere contar el número de veces que se produce un determinado suceso en un periodo determinado de tiempo, a lo largo de una distancia o en un área determinada.
El promedio de visitas a una tienda es de 15 personas por hora, suponemos que durante todo el día. ¿Cuál es la probabilidad de que en una hora determinada haya 5 o menos visitas?
En este caso el valor de lambda se nos da directamente: \(\lambda = 15\). Por lo tanto podemos calcularlo con la función acumulada:
ppois(5, 15)
Que, como veis, es una probabilidad muy pequeña. O también, de modo equivalente:
1 - ppois(5, lambda = 15, lower.tail = FALSE)
O también:
sum(dpois(0:10, lambda = 15))
En este último caso, utilizamos la función densidad pero especificamos un rango de valores para x. En este caso funciona porque, recordad, la distribución de Poisson es discreta, no contínua..
¿Qué ocurre si quiero representar la densidad de probabilidades de distinto número de visitas?:
<- 0:30
x plot(dpois(x, 15))
Observad que, si lambda es más bajo, la distribución tiene una forma diferente:
plot(dpois(x, 5))
Intenta ahora resolver este problema:
Una persona compra el mismo billete de lotería en 500 sorteos distintos. Si en cada sorteo la probabilidad de que gane el premio es de 1/1000, ¿Cuál es la probabilidad aproximada de lo siguiente?
a) De que gane 0 premios
b) De que gane exactamente 1 premio
c) De que gane al menos 2 premios
Saltar la banca: la distribución hipergeométrica
En ocasiones hay que resolver problemas de probabilidad que no implican reemplazamiento, es decir, que los elementos seleccionados aleatoriamente salen del espacio de resultados posibles. En este caso, la distribución hipergeométrica nos permite hacer cálculos de probabilidad con mucha precisión. La función densidad de la distribución hipergeométrica en realidad es muy sencilla y los cálculos podrían hacerse a manjo, pero vamos a utilizar r para que veáis cómo resolver problemas sin reemplazamiento.
En ungrupo de clase hay 10 estudiantes de los cuales 6 son hombres y 4 mujeres. Si extraimos al azar y sin reemplazamiento a 5 personas del grupo. ¿Cuál es la probabilidad de que sean 3 hombres y 2 mujeres?
¿Por qué tiene sentido utilizar en este caso la distribución hipergeométrica? Porque se da el caso de que cada vez que seleccionamos a una persona la eliminamos del conjunto de personas que podemos seleccionar de nuevo, por lo que se alteran las probabilidades posteriores de ser seleccionado de cada uno. los datos relevants en este caso son: queremos saber la probabilidad de sacar tres hombres de una selección de cinco. Hay seis hombres y cuatro mujeres. Por lo tanto el comando:
dhyper(3, 6, 4, 5)
Nos dará la solución.
los problemas relacionados con barajas son relativamente sencillos applicando la distribución hipergeométrica: ¿Qué probabilidad tenemos de sacar un póker de mano si extraemos cinco cartas de una baraja completa (sin comodines)? Dado que deben ser cuatro cartas iguales, nos da igual cuales sean. por lo tanto, la instrucción
dyper(4, 4, 48, 5)
Nos debe dar la solución, que es una probabilidad muy pequeña.
Fijáos en que la principal diferencia entre la distribución biomial y la hipergeométrica es que en una suponemos que hay reemplazamiento y en la otra no. Ocurre que si el tamaño del universo es muy grande en relación con el de la muestra que extraemos, cada vez es menos probable que un elemento salga dos veces, de modo que la distribución hipergeométrica y la binomial se van pareciendo cada vez más: a medida que N crece las probabilidades convergen y la esperanza matemática y la varianza de las dos distribuciones también.
Tiempos de espera: la distribución geométrica y la exponencial
El análisis de tiempos de espera o de número de intentos hasta que se consigue un éxito, que son la versión contínua y discreta del mismo problema, se realizan por medio de las distribuciones exponencial y geométrica respectivamente. Fijaos en que al utilizar la distibución binomial lo que hacíamos era calcular un determinado resultado entre dos opciones para una serie de ensayos de Bernoulli (en los que puede haber dos resultados, que solemos llamar éxcito y fracaso). La distribución geométrica nos permite calcular la probabilidad de que tengamos que realizar un determinado número de ensaypos hasta tener un éxito. Este número es indeterinado y en realidad puede ser enorme. Por ejemplo, supongamos que nuestro jugador de baloncesto acierta los triples un 60% de las veces; la distribución del número de ensayos que debe hacer hasta acertar sigue una distribución geométrica, que podemos analizar en r con la ayuda de la función dgeom()
y su familia.
dgeom(0, 0.6)
nos da la probabilidad de que acierte en el primer intento, mientras
pgeom(2, 0.6)
de que lo haga en el tercero o antes.
Si lo que debemos analizar son tiempos de espera, nos conviene utilizar la variante contínua de la distribución geométrica, que llamamos distribución exponencial. Supongamos que estamos estudiando los tiempos de espera a los que se ven sometidos los usuarios de una administración pública, en la atención en una ventanilla en la que el promedio de tiempo hasta que se recibe atención es de 30 minutos. ¿Cual es la probabilidad de que un ciudadano sea atendido antes de 20 minutos? La distribución exponencial nos permite resolver el problema rápidamente, por medio de la función dexp()
y pexp(). Ahora bien, lo que nos pide la función no es el tiempo esperado (la media o esperanza de la distribiución), sino la tasa por unidad de tiempo, por lo que debemos dividir el tiempo promedio por la unidad de tiempo. Así
dexp(20, 1/30)
Nos da la probabilidad de que una persona sea atendida a los 20 minutos de llegar (recordad, función densidad), mientras que
pexp(20, 1/30)
nos dice la probabilidad de que sea atendida en los primeros 20 minutos (función de distribución acumulada).
También podemos analizar periodos intermedios pensando un poco:
Si los graduados en ciencias sociales tardan en promedio un año en encontrar trabajo: - ¿Cuántos lo encontrarán entre año y medio y dos años después de terminar? - ¿Y cuántos lo habrán encontrado a los seis meses? - ¿Cuándo tendrá trabajo un tercio de ellos?
pexp(24, 1/12)- pexp(18, 1/12)
pexp(6,1/12)
qexp(1/3, 1/12)
Intenta ahora resolver este problema:
Llamas a un servicio de atención telefónica en el que tardan en promedio 7 minutos en atenderte. ¿Qué probabilidad hay de que entres tarde a la reunión que tienes dentro de 10 minutos?
Si quieres ver el aspecto que tiene una distribución exponencial:
curve(dexp(x, rate = .5), from=0, to=10, col='blue')
La forma de la distribución cambia a medida que vamos cambiando la tasa:
#Dibujar las funciones densidad
curve(dexp(x, rate = .3), from=0, to=10, col='green')
curve(dexp(x, rate = .5), from=0, to=10, col='blue', add=TRUE)
curve(dexp(x, rate = 1), from=0, to=10, col='red', add=TRUE)
curve(dexp(x, rate = 1.5), from=0, to=10, col='purple', add=TRUE)
#Añadir leyenda
legend(7, .5, legend=c("tasa=.3", "tasa=.5", "tasa=1", "tasa=1.5"),
col=c("green","blue", "red", "purple"), lty=1, cex=1.2)
La distribución normal
Los cálculos a partir de la distribución normal se hacen de forma análoga a todos los anteriores, teniendo en cuenta que se trata de una distribución contínua, por lo que los cálculos sobre intervalos (el equivalente a utilizar una tabla de una sola cola) se harán por medio de la distribución acumulada, es decir, por medio de la función pnorm()
. Los cálculos inversos, cuando se nos pide un valor de Z a partir de una probabilidad, los podemos calcular con qnorm()
. Así
pnorm(1,96)
nos da la probabilidad acumulada a la derecha de la media de la distribución y a una distancia de 1,96 unidades z de éste, mientras que
qnorm(1/3)
nos dice que en que valor en unidades Z desde el origen (a la izquierda del todo) alcanzamos un tercio de los casos (o de las probabilidades). Con combinaciones de estas dos funciones podemos calcular cualquier intervalo:
round((qnorm(0.975) - qnorm(0.025))/2, 2)
Nos da el intervalo de confianza del 95% en unidades Z (la instrucción round()
redondea el resultado, en este caso a dos decimales).
Estas funciones trabajan por defecto con los datos estandarizados; es decir, con media 0 y desviación típica 1. Si trabajamos con una distribución no estandarizada, con métrica, podemos especificarlo en la misma función. Así, para calcular en qué valor alcanzamos el percentil cuarenta de una distribución normal con media 60 y desviación típica 17 podemos calcularlo con
qnorm(0.4, mean = 60, sd = 17)
Vamos a trabajar un ejemplo un poco largo para ver cómo funciona.
En una encuesta del CIS sobre uso de los teléfonos móviles realizada en septiembre de 2000 y aplicada a una muestra de 2500 españoles, 910 declararon que utilizaban el teléfono móvil todos los días. La media de edad de este grupo de usuarios era de 31,7 años y la desviación típica de 6,3 años. La edad se distribuye normalmente. Calcular:
1. El número de usuarios de teléfono móvil con más de 38 años.
2. El número de usuarios entre 25 y 35 años.
3. El porcentaje de usuarios menores de 35 años.
4 ¿Entre qué edades alrededor de la media se moverá el 90% de los casos?
En el primer problema calculamos el complementario a 1 la probabilidad de estar por debajo del valor 38 y lo multiplicamos por el número de casos
910*(1 - pnorm(38, mean = 31.7, sd = 6.3))
En el segundo problema debemos calcular la probabilidad de un rango y multiplicarla por el número de casos:
910*(pnorm(35, mean = 31.7, sd = 6.3) - pnorm(25, mean = 31.7, sd = 6.3))
(podéis redondearlo si queréis). En el tercer problema sólo hay que aclcular la proporción de casos por debajo del valor 35 (está incluido en el problema anterior):
910*pnorm(35, mean = 31.7, sd = 6.3)
En el último problema tenemos que aplicar la misma lógica que cuando calculamos el rango del 95% del nivel de confianza.
qnorm(0.05, mean = 31.7, sd = 6.3)
qnorm(0.95, mean = 31.7, sd = 6.3)
Ahora toca pensar un poco y resolver estos problemas:
En una muestra de 1800 niños de 12 años se observó una altura media de 150 cm con una desviación típica de 7,0. Suponiendo que las alturas se distribuyen de acuerdo con la curva normal, queremos saber:
a) El número de niños que tienen una altura inferior a 150 cm
b) El porcentaje de niños cuya altura se encuentra entre 140 cm y 160 cm.
c) La probabilidad de encontrar a un niño cuya altura sea superior a 160 cm.
En una pregunta del CIS sobre la edad hasta la que consideran convenientes los padres controlar los programas y el tiempo de televisión de los hijos, la media fue de 15,4 años y la desviación típica de 2,11. Teniendo en cuenta que las respuestas se distribuyen aproximadamente como la curva normal y que van de los 7 a los 24 años, calcular:
a) Cuantos respondieron que la edad debe ser hasta los 13 años
b) Cuantos dijeron que debe estar entre 14 y 17 años.
c) Cuantos respondieron que debe estar por encima de los 19 años
El tiempo de vida de una televisión es una variable aleatoria normal con media 8,2 años y desviación típica 1,4 años. Calcula el porcentaje de televisores que duran:
a) más de 10 años
b) menos de 5 años
c) entre 5 y 10 años