Undécima sesión con Rcmdr: la distribución normal

Densidad de probabilidad y función de distribución (acumulada) de probabilidad

En las clases hemos visto aparecer la distribución normal de forma natural al considerar distribuciones binomiales B(n,p) para valores de n cada vez más grandes. Esta distribución continua ocupa el lugar más destacado entre todas las que estudiaremos en Estadística. Y en esta entrada vamos a aprender los comandos básicos para trabajar en R con la distribución normal.

La distribución normal es en realidad una familia de distribuciones que dependen de dos parámetros, \mu y \sigma, que se corresponden respectivamente con la media y desviación típica de una variable aleatoria X que siga esta distribución. Decimos entonces que X es de tipo N(\mu,\sigma).

Su función de densidad de probabilidad es

f_{\mu,\sigma}(x)=\dfrac{1}{\sigma\sqrt{2\pi}} e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2}

En R podemos calcular los valores de esta función mediante el comando dnorm. Por ejemplo, para calcular el valor de f_{3,2}(4) (es decir, $\latex \mu=3, \sigma=2$ y X=4) usaríamos un código como este:

# Introducimos los parametros de la normal X de tipo  N(mu,sigma)
mu = 3
sigma = 2
# Calculamos la densidad en un valor x
X = 4
dnorm(X,mean=mu,sd=sigma)

y se obtiene como resultado 0.1760327. Antes de seguir, observemos que el comando dnorm sigue el esquema de nombres que ya anunciamos al hablar de la distribución binomial. Todas las funciones relacionadas con la distribución normal usan el sufijo norm, precedido de una letra que nos indica el tipo de resultado. Así, en esta entrada, además de dnorm, y por orden, vamos a conocer las funciones pnorm, qnorm y rnorm.

Aunque está bien saber calcular los valores de la función de densidad mediante dnorm, lo cierto es que, tratándose de una distribución continua, no vamos a usarlos prácticamente nunca. Pero, antes de despedirnos de dnorm,  vamos a aprovechar esta función para hacer una breve incursión en las capacidades gráficas de R. Para dibujar la función de densidad f, por ejemplo en el intervalo que va desde \mu-4\sigma hasta  \mu+4\sigma, usaremos el comando curve de esta manera

curve(dnorm(x,mean=mu,sd=sigma),from=mu-4*sigma,to=mu+4*sigma)

Este es el comando curve más básico, pero podemos añadir parámetros opcionales para controlar al detalle el aspecto final del gráfico. Proponemos aquí sólo un ejemplo para que puedas experimentar cambiando los valores de algunos parámetros.

curve(dnorm(x,mu,sigma),from=mu-4*sigma,to=mu+4*sigma,col="red",ylim=range(0, 0.5),lwd=6)

(Pistas: col viene de “color”, lwd de “line width” (ancho de línea) e ylim es “y limit”). El resultado es Como ya hemos dicho, aparte de los gráficos le vamos a dar poco uso a la función dnorm. En cambio, la función pnorm es muy interesante. Si tenemos una variable X de tipo N(\mu,\sigma) y queremos calcular el valor

P(X<k)

(es decir, lo que llamamos la cola izquierda de la distribución normal en el punto k) entonces podemos ejecutar estas instrucciones:

# Introducimos los parametros de la normal X de tipo  N(mu,sigma)
mu = 3
sigma = 2
# Calculamos la probabilidad de la cola izquierda de un valor k
k = 4
pnorm(k,mean=mu,sd=sigma)

Podemos calcular cualquier valor de probabilidad de la distribución normal combinando la función pnorm con las propiedades básicas de la probabilidad, y teniendo en cuenta que (tratándose de una distribución continua) no hay ninguna diferencia entre

P(X<k)    y     P(X\leq k)

Por ejemplo, si X es de tipo N(10,2) y queremos calcular la probabilidad

P(X>11)

usaríamos

1-pnorm(11,mean=10,sd=2)

Y si queremos calcular

P(7<X<12)

usaríamos

pnorm(12,mean=10,sd=2)-pnorm(7,mean=10,sd=2)

Estos ejemplos cubren, en realidad, todas las situaciones que se presentan en la práctica con problemas de probabilidad directos para la distribución normal. Recordemos que hemos llamado problemas directos a aquellos en los que la pregunta tiene la forma

P(dato)=??

Terminamos esta visita a la función pnorm con un encargo para el lector. Sean cuales sean \mu y \sigma, ¿cuál es el resultado de este comando?

pnorm(mu,mu,sigma)

La normal estándar

De entre todas las distribuciones normales, la más simple, y a la vez más destacada, es la que tiene media o y desviación típica 1, a la que llamamos normal estándar y que representamos con la letra Z. La normal estándar ocupa un lugar destacado en la Estadística, y en R no podía suceder otra cosa. De hecho, si no le damos ninguna información sobre la media y la desviación típica, R siempre asume que la normal de la que hablamos es la estándar. Así pues, si escribimos

pnorm(1.5)

entonces R asume que estamos interesados en conocer el valor de

P(Z<1.5)

donde, insistimos, Z representa a una normal estándar de tipo N(0,1) (y la respuesta es 0.9331928). En toda las funciones que vamos a ver en esta entrada se aplica el mismo principio: una normal, por defecto, es estándar para R, salvo que indiquemos su media y desviación típica explícitamente.

Problemas inversos. Cuantiles.

Un problema inverso de probabilidad (problema de cuantiles) es aquel en el que se la pregunta tiene la forma general

P(??)=dato

Por ejemplo,  en una distribución normal de tipo N(5,2), ¿cuál es el valor k para el que se cumple esta ecuación?

P(X< k)=1/3

Muy pronto veremos (en clase y en próximas entradas del blog) que este tipo de preguntas son extremadamente importantes cuando tenemos que calcular intervalos de confianza basados en la distribución normal (los primeros que encontraremos al adentrarnos en la inferencia).

En el caso de la distribución normal, y para responder a este tipo de preguntas, en R disponemos de la función qnorm. Para el ejemplo anterior la respuesta se obtiene ejecutando:

qnorm(1/3,mean=5,sd=2)

El  resultado es k=4.138545. Podemos verificarlo usando pnorm. Si se calcula

pnorm(4.138545,mean=5,sd=2)

Se obtiene como resultado 0.3333333, que es aproximadamente 1/3. Para otros problemas inversos de probabilidad tendremos que modificar un poco la llamada a la función. Por ejemplo, si en X, que sigue una distribución normal de tipo N(5,2), queremos saber cuál es el valor k para el que se cumple

P(X>k)=0.05

entonces debemos tener en cuenta que

P(X>k)=1-P(X<k)

y que por lo tanto estamos buscando el valor para el que se cumple

1-P(X<k)=0.05,

es decir

P(X<k)=1-0.05=0.95.

Eso nos lleva a usar el comando

qnorm(1-0.05,mean=5,sd=2)

para calcular el cuantil que deseábamos obtener. Ya hemos dicho que este tipo de cálculos jugarán un papel muy importante en la construcción de intervalos de confianza, así que volveremos a hablar de ellos cuando tratemos ese asunto en una próxima entrada del blog.

Finalmente, señalemos que la función qnorm sigue, como ya habíamos anunciado, el convenio de notación de R para las distribuciones de probabilidad: la q es por quantile, y norm identifica a la distribución normal.

Muestras aleatorias de distribuciones normales

Ya vimos como usar la función rbinom para generar valores aleatorios de una distribución binomial. Así que, siguiendo el convenio de notación, no debería sorprendernos que la función rnorm nos proporcione valores aleatorios de una distribución normal. Por ejemplo

rnorm(50,mean=100,sd=5)

nos proporciona 50 valores aleatorios de una distribución de tipo N(100,5). Obtendremos una salida similar a esta (distinta cada vez, claro, son muestras aleatorias):

>rnorm(50,mean=100,sd=5)
[1] 101.33299  98.01174 101.60873  94.73994 101.00582 103.88962 109.29085 103.30387 100.65213  95.60944 100.78252 106.23386 102.42284  99.72567  87.68830 101.69162 100.32440  99.91586
[19]  99.08630 101.33887  95.65277  96.94155  95.68294 103.15907 102.56853 101.74651  94.19673 101.46866  93.44603 103.69243 108.92536  95.41126 102.06478 109.04288  98.17461  98.70458
[37] 107.13320 105.30013 104.27446 101.50243  99.57164  97.45771  96.61668  96.50402  97.46888  92.25941 101.06347  97.29899  95.18880  88.48130

Gracias por la atención.

Un pensamiento en “Undécima sesión con Rcmdr: la distribución normal

  1. Pingback: Duodécima sesión en R: funciones de densidad para variables aleatorias continuas. | PostData

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s