Distribución Normal e Intervalos de Confianza

Sesión del miércoles, 12 de agosto de 2026

Objetivo de la práctica

El objetivo de esta guía práctica es introducirnos en la inferencia estadística, revisando los conceptos y aplicaciones de la curva normal y las probabilidades bajo esta con puntajes Z, además del cálculo del error estándar y de intervalos de confianza.

En detalle, aprenderemos y recordaremos:

  1. Los conceptos de promedio y desviación estándar
  2. Estimación de puntaje Z
  3. Cómo calcular e interpretar el erro estándar
  4. Cómo calcular e interpretar intervalos de confianza

1 Promedio y desviación estándar

El promedio y la desviación estándar son conceptos fundamentales para continuar hacia la estadística inferencial. Repasemos estos conceptos mediante un ejercicio con datos simulados.

Primero, con la función rnorm creamos un vector de 100 valores aleatorios con \(\mu = 5\) y \(\sigma = 2\). Un vector es una estructura básica de datos que contiene una colección ordenada de valores del mismo tipo (como números o caracteres). Luego, con la función summary podemos un resumen de algunos estadísticos del vector que creamos.

set.seed(123) # Fijar la semilla para reproducibilidad
vector <- rnorm(100, mean = 5, sd = 2)
summary(vector) # Ver el vector generado
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.3817  4.0123  5.1235  5.1808  6.3836  9.3747 
Tip

Si no sabes lo que hace una función en específico, puedes correr el comando ?. Por ejemplo, ?summary entrega la descripción, el uso y los argumentos de la función de R base summary

¿Cómo se vería la distribución de este vector aleatorio? Una buena práctica en el análisis de datos es realizar un primera inspección visual de los datos. Los tres gráficos que siguen nos dan una buena idea de la distribución del vector creado.

hist(vector,main="Histograma del Vector",xlab="Valor",ylab="Frecuencia",col="cyan4",border="black")

boxplot(vector,main="Diagrama de Caja del Vector aleatorio",ylab="Valor",col="cyan3")

qqnorm(vector, main="Gráfico Q-Q Normal del Vector",
       xlab="Cuantiles Teóricos", ylab="Cuantiles Muestrales",
       col="cyan4", pch=19)
qqline(vector, col="black", lwd=2)

Ahora, calculamos la media y la desviación estándar del vector. En R, eso se logra con las funciones mean y sd.

media <- mean(vector)
desv_estandar <- sd(vector)

Los vamos a necesitar más adelante, así que lo guardaremos como objetos. Para ver los resultados en la consola basta llamarlos con los nombres que les asignamos

media
[1] 5.180812
desv_estandar
[1] 1.825632

En el caso de nuestro vector, creado con datos aleatorios, la media \(\bar{x} = 5,18\) nos muestra que el promedio de los datos se encuentra en torno a 5,2.

La desviación estándar corresponde, entonces, a un promedio de lo que cada valor se aleja del promedio del vector. En el caso de nuestro vector, \(s = 1,82\) nos muestra que en promedio los datos se alejan \(\pm\) 1,82 puntos del promedio.

2 Puntajes Z

Al estandarizar las variables (como en la Curva Normal Estándar) lo que hacemos es expresar el valor de una distribución en términos de desviaciones estándar basados en la distribución normal. Esto nos permite comparar distribuciones distintas.

Al valor estandarizado lo llamamos puntaje Z, y corresponde a la cantidad de desviaciones estándar que nos alejamos del promedio (para cada variable con la que trabajemos).

2.1 Cálculo de puntaje Z

Recordemos que la formula para calcular el puntaje z es:

\[ z = \frac{x - \bar{x}}{s} \]

donde \(x\) es el valor observado, \(\bar{x}\) la media y \(s\) la desviación estándar.

z_scores <- (vector - media) / desv_estandar

La función head nos muestra los primeros casos del vector (en este caso 10). Lo usamos para inspeccionar los datos y, en este caso, comparar los valores originales con los estandarizados.

head(data.frame(Valor=vector, Z=z_scores), 10)
      Valor           Z
1  3.879049 -0.71304802
2  4.539645 -0.35120270
3  8.117417  1.60854170
4  5.141017 -0.02179795
5  5.258575  0.04259548
6  8.430130  1.77983218
7  5.921832  0.40589817
8  2.469878 -1.48492941
9  3.626294 -0.85149566
10 4.108676 -0.58726835

Ahora bien, R trae incorporadas funciones que permiten hacer estos cálculos de manera directa. En este caso, usamos la función scale para estandarizar los puntajes del vector

# Estandarizar el vector
z_scores_scale <- scale(vector)

# Comparar valores originales y estandarizados según ambos métodos. 
head(data.frame(Valor=vector, Z_manual=z_scores, z_scale=z_scores_scale), 10)
      Valor    Z_manual     z_scale
1  3.879049 -0.71304802 -0.71304802
2  4.539645 -0.35120270 -0.35120270
3  8.117417  1.60854170  1.60854170
4  5.141017 -0.02179795 -0.02179795
5  5.258575  0.04259548  0.04259548
6  8.430130  1.77983218  1.77983218
7  5.921832  0.40589817  0.40589817
8  2.469878 -1.48492941 -1.48492941
9  3.626294 -0.85149566 -0.85149566
10 4.108676 -0.58726835 -0.58726835
Tip

Noten que ambos procedimientos llegan al mismo resultado

2.1.1 Cálculo de probabilidades a partir de Z

Los valores estandarizados o puntajes Z además nos permiten conocer probabilidades.

El código de más abajo crea y dibuja la curva de una distribución normal estándar: en la primera línea, seq(-4, 4, length=1000) genera 1000 valores entre -4 y 4, que representan puntuaciones Z; en la segunda línea, la función dnorm() calcula, para cada uno de esos valores, la altura correspondiente en la curva de densidad normal, es decir, qué tan probable o frecuente es ese valor; y en la tercera línea, plot() dibuja ambos conjuntos de números.

x_values <- seq(-4,4,length=1000)
y_values <- dnorm(x_values)
plot(x_values,y_values,type="l",xlab="Valor Z",ylab="Probabilidad",main="Distribución Normal")

Podemos preguntar qué parte de la curva cae por debajo de un valor particular. Por ejemplo, preguntaremos sobre el valor 0 antes de ejecutar el código. Piense ¿cuál debería ser la respuesta?

# Probabilidades acumuladas
pnorm(0)       # P(Z <= 0)
[1] 0.5

3 Error Estándar

El error estándar es la desviación estándar de la distribución muestral de la media, es una estimación cuánto varía dicho estadístico entre distintas muestras de una misma población. Se define formalmente como:

\[ SE = \frac{s}{\sqrt{n}} \]

donde \(s\) es la desviación estándar de la muestra y \(n\) es el tamaño de la muestra.

Calculemos el Error Estándar de nuestro vector:

n_vector <- length(vector) # calculamos el tamaño muestral

ee_vector <- desv_estandar/sqrt(n_vector)

ee_vector
[1] 0.1825632

El resultado nos indica que si tomáramos muchas muestras de tamaño n de esta misma población, y calculáramos la media de cada uno, esas medias tendrían una variarían, en promedio, \(\pm\) 0,18 unidades respecto a la media.

Importante

No se debe confundir error estándar y desviación estándar. La desviación estándar describe la dispersión de los datos individuales dentro la muestra; el error estándar describe cuánto varía la media de una muestra a otra. Compara la desviación estándar (que calculamos antes) con el error estándar, y observa en cómo se diferencian (y cómo están relacionados).

4 Intervalos de confianza

4.1 De la estimación puntual a los intervalos de confianza

Supongamos que nuestro vector en realidad fuera una muestra de 100 casos sobre algún tema de interés — imaginemos, por ejemplo, que representan los resultados de una prueba estandarizada rendida por 5.000 estudiantes universitarios. Antes, calculamos que la media para estos 100 casos es de 5,18. ¿Se arriesgarían a decir que la media para el total de la población es exactamente 5,18?

A esta primera estimación le llamamos estimación puntual. En cambio, a partir del error estándar, es posible construir rangos de probabilidad basados en la distribución normal, conocidos como intervalos de confianza.

4.2 Intervalos de confianza y Error Estándar

El cálculo de los intervalos de confianza es una de las principales aplicaciones prácticas del error estándar. Dado que las medias muestrales siguen la distribución normal, es posible concluir que aproximadamente el 68% de las medias muestrales se encontrarán a 1 error estándar del promedio poblacional. Por lo tanto, si construimos un rango de ±1 error estándar alrededor de nuestra propia media muestral, ese rango debería contener el promedio poblacional en aproximadamente el 68% de los casos. El siguiente código calcula ese rango para nuestro vector:

media - ee_vector
[1] 4.998249
media + ee_vector
[1] 5.363375

De tal modo, es posible concluir que el 68% de los casos se encuentra en un intervalo que va desde 5,00 a 5,36. Del mismo modo, hay un 32% de posibilidades de que el parámetro de la población esté fuera de ese rango. ¿Les parece aceptable este nivel?

4.3 El nivel de confianza

Existe un trade-off entre nivel de confianza y precisión: un intervalo más angosto es más preciso, pero tiene un menor nivel de confianza; un intervalo más amplio aumenta la confianza, pero reduce la precisión. Convencionalmente, se suele aceptar como estadísticamente significativa una probabilidad de error menor al 5%, es decir, un nivel de confianza de al menos un 95%. Un 95% de confianza significa que, si extrajéramos múltiples muestras, el 95% de las veces nuestro intervalo contendría el promedio poblacional.

4.4 Cálculo de intervalos de confianza para medias

En el caso de nuestro vector aleatorio, presentamos tres maneras de calcular el intervalo de confianza para la media.

Primero, a través del cálculo manual, recordando que:

\[ IC = \bar{x} \pm z \cdot \frac{s}{\sqrt{n}} \]

donde \(\bar{x}\) es la media muestral, \(z\) es el valor crítico según el nivel de confianza, \(s\) la desviación estándar y \(n\) el tamaño de la muestra.

Importante

Recordemos: \(\frac{s}{\sqrt{n}}\) es igual al Error Estándar.

4.5 ¿De dónde sale el valor crítico?

Si quiero un 95% de confianza, tengo un 5% de error para repartir. Este error se reparte en ambas colas por igual (2,5% en cada cola). Con la función qnorm podemos encontrar estos puntos.

z_inf <- qnorm(0.025) # ¿Qué Z deja 2.5% de error a la izquierda?
z_sup <- qnorm(0.975) # ¿Qué Z deja 2.5% de error a la derecha?

z_inf
[1] -1.959964
z_sup
[1] 1.959964

Vemos que el valor Z correspondiente a un 2,5% en cada cola es de ±1,96 (en desviaciones estándar de la curva normal estándar). Es decir, sumando y restando 1,96 errores estándar al promedio construimos un intervalo de confianza del 95%. El siguiente código nos permite visualizarlo.

plot(x_values, y_values, type = "l", xlab = "Valor Z", ylab = "Densidad",
     main = "Distribución Normal Estándar: 95% central")

abline(v = c(z_inf, z_sup), lty = 2, col = "black")

De tal modo, para obtener el intervalo de confianza al 95%:

media - 1.96 * ee_vector # Limite inferior del Intervalo
[1] 4.822988
media + 1.96 * ee_vector # Límite superior del Intervalo
[1] 5.538636

Contamos con una media de 5,18 como estimación puntual. Pero también podemos decir que con un 95% de confianza el parámetro poblacional se encontrará entre 4,82 y 5,54. O, más precisamente, tenemos un 95% de confianza de que el intervalo entre 4,82 y 5,54 contendrá el parámetro poblacional.

4.6 Nivel de confianza al 99%

Podemos calcular el intervalo de confianza para cualquier nivel de confianza que necesitemos. Además del 95%, la cifra más utilizada es el 99% de confianza. Esto corresponde a un valor crítico de 2,58 errores estándar.

qnorm(0.005) # ¿Qué Z deja 0.5% de error a la izquierda?
[1] -2.575829
qnorm(0.995) # ¿Qué Z deja 0.5% de error a la derecha?
[1] 2.575829

Así, para calcular el intervalo de confianza al 99%:

media - 2.58 * ee_vector # Limite inferior del Intervalo
[1] 4.709799
media + 2.58 * ee_vector # Límite superior del Intervalo
[1] 5.651825

Podemos concluir que con un 99% de confianza el parámetro poblacional se encontrará entre 4,71 y 5,65.

Resumen

Hoy pudimos aprender y recordar:

  1. Los conceptos de promedio y dispersión
  2. Estimación de puntajes Z
  3. Cálculo del Error Estándar
  4. Cálculo de intervalos de confianza

Ejercicio práctico de trabajo autónomo

En este ejercicio aplicará los contenidos revisados: cálculo de media y desviación estándar, puntajes Z, error estándar e intervalos de confianza, pero esta vez con datos reales en lugar de datos simulados.

Trabajaremos con el conjunto de datos Galton, incluido en el paquete HistData, que contiene las estaturas de 928 hijos e hijas adultos recopiladas por Francis Galton en 1886. Este es, de hecho, el conjunto de datos histórico que dio origen al estudio de la curva normal aplicada a variables biológicas.

Nota

Francis Galton, primo de Charles Darwin, no sólo hizo aportes importantes al uso de la distribución normal, también fue pionero en el uso de correlaciones, inventó la línea de regresión, fundo la psicometría, ideó un método para clasificar huellas dáctilares y fue iniciador de de la ciencia metereológica.

En su lado menos alegre, inventó el concepto de eugenesia… y abogó activamente por ella.

Instrucciones

  1. Cargue la base de datos.
if (!requireNamespace("pacman", quietly = TRUE)) install.packages("pacman") # Si no está instalado, instala el paquete
pacman::p_load(HistData)
data("Galton")

names(Galton) # revisar las variables disponibles: "parent" y "child"
[1] "parent" "child" 
altura <- Galton$child # creamos el vector con la variable de interés
Tip

La unidad de medida de la variable se encuentra en pulgadas.

  1. Calcule y describa la distribución
  • Obtenga la media y desviación estándar de la estatura.
  • Visualice la distribución en un histograma
  1. Estandarice los datos (puntajes Z)
  • Transforme la variable a puntajes Z
  • Muestre los primeros 10 valores (head()).
  • Muestre también los últimos 10 valores (tail()).
  • ¿Cuál es el máximo puntaje Z y el mínimo puntaje Z? ¿A qué estatura corresponden?
  • Verifique la media y desviación estándar
  1. Calcule el error estándar de la variable

  2. Calcule el intervalo de confianza para la media

  • Estime el IC para un 95% de confianza
  • Estime el IC para un 99% de confianza. ¿Qué sucede con el ancho del intervalo?
  1. Explore el efecto del tamaño muestral
  • Generemos 3 submuestras aleatorias con la función sample().
set.seed(123)
muestra_100 <- sample(altura, 100)
muestra_200 <- sample(altura, 200)
muestra_400 <- sample(altura, 400)
  • Calcule el error estándar y el intervalo de confianza al 95% de cada muestra ¿Qué pasa con el error estándar y el intervalo de confianza a medida que aumenta el tamaño de la muestra?

Referencias

Análisis de datos en Lenguaje R