Menu

Intervalos de confianza en R: t.test(), confint() y prop.test()

Obtén intervalos de confianza para medias, proporciones y coeficientes de modelos - t.test(), prop.test(), confint() - además de qué significa realmente "95% de confianza" y cómo el tamaño muestral determina la anchura.

Esta página incluye editores ejecutables: edita, ejecuta y ve el resultado al instante.

Qué significa realmente "95% de confianza"

Un intervalo de confianza convierte una estimación puntual ("la media muestral es 5.61") en un rango honesto ("la media verdadera está plausiblemente entre 5.29 y 5.93"). Pero la expresión 95% de confianza es una de las más malinterpretadas de la estadística, así que aclarémosla desde el principio.

El 95% describe el procedimiento, no el intervalo. Imagina repetir tu estudio una y otra vez: nueva muestra cada vez, nuevo intervalo cada vez. Los intervalos irían saltando de sitio, y alrededor del 95% de ellos capturaría el valor verdadero; el 5% fallaría. Tu único intervalo real es una sola extracción de ese proceso. Lo que el 95% no significa: "hay una probabilidad del 95% de que la media verdadera esté dentro de estos números". La media verdadera es un número fijo (desconocido) - no anda entrando y saliendo de intervalos; lo que varía son los intervalos.

En la práctica, la lectura amable sirve: el intervalo es el rango de valores compatibles con tus datos. Solo debes saber qué afirmación tienes derecho a hacer cuando alguien te apriete.

IC para una media, la vía fácil

Todo t.test() trae consigo un intervalo de confianza; puedes ejecutar el test solo para cosecharlo:

Media 5.61, IC del 95% aproximadamente de 5.29 a 5.93. El intervalo hace el trabajo que una media a secas no puede: muestra cuánta precisión compran realmente diez observaciones.

El mismo IC a mano

La fórmula detrás de ese intervalo merece construirse una vez, porque desmitifica todos los IC que leerás en tu vida: estimación ± valor crítico × error estándar.

Compáralo con la salida de t.test(): el mismo intervalo hasta el último dígito. Tres piezas móviles:

  • El error estándar sd(x)/sqrt(n) mide cuánto oscila la media muestral (consulta estadística descriptiva para la distinción entre sd y error estándar).
  • qt(0.975, df) es el valor crítico de la t: para una cobertura del 95% dejas 2.5% en cada cola, de ahí el 0.975. Con df = 9 es aproximadamente 2.26 - más gordo que el 1.96 de la normal, el impuesto de muestra pequeña por estimar la sd con los mismos datos.
  • El margen de error es su producto - el número "±" que citan los titulares.

Cambiar el nivel: 90%, 99% y el compromiso

conf.level controla la cobertura, y con ella la anchura:

Más confianza cuesta más anchura - un intervalo del 99% debe ser lo bastante ancho para acertar 99 de cada 100 veces, así que se estira; uno del 90% es más estrecho pero falla el doble de veces que el del 95%. No hay almuerzo gratis, solo un dial. El 95% es pura convención: un valor por defecto que conviene mantener salvo que tengas una razón, no una ley de la naturaleza.

IC para una proporción: prop.test()

Supón que 47 de 120 usuarios encuestados adoptan una nueva funcionalidad. ¿Cuál es el rango plausible de la tasa de adopción verdadera?

Proporción muestral 0.39, IC del 95% aproximadamente de 0.30 a 0.49 - así que "alrededor del 40% de adopción" solo es honesto con ese halo de ±9 puntos adjunto. prop.test() usa una aproximación mejor que la fórmula de libro de texto p ± 1.96 × sqrt(p(1−p)/n) (es un intervalo de tipo Wilson con corrección por continuidad), lo cual importa sobre todo cerca de 0 o de 1 - el intervalo de libro de texto puede asomarse fuera de [0, 1]; este no puede. Para recuentos muy pequeños, binom.test(47, 120)$conf.int da la versión exacta.

IC para coeficientes de modelos: confint()

Los modelos ajustados obtienen intervalos mediante una única función genérica:

Cada fila acota un coeficiente de la regresión lineal: el intervalo del 95% de la pendiente de wt va aproximadamente de −6.5 a −4.2 mpg por cada 1000 lbs. Eso es más informativo que el p-valor del summary: dice que el efecto no solo es distinto de cero, sino al menos de ~4 mpg y posiblemente de ~6.5.

Para un glm() logístico, confint(fit) funciona igual pero devuelve límites en log-odds; exponéncialos para obtener intervalos de odds ratios - exp(confint(fit)) - y recuerda que el valor de referencia de "sin efecto" pasa a ser 1 en lugar de 0.

Tamaño muestral: la ley de la raíz cuadrada

La anchura se reduce con sqrt(n), lo cual tiene una consecuencia memorable: cuadruplica los datos, y el intervalo se reduce a la mitad. Míralo suceder con datos simulados - la misma distribución, una muestra 4 veces mayor (fijar la semilla lo hace reproducible; consulta números aleatorios):

Las anchuras quedan cerca de una proporción 2:1 (el ruido muestral impide que sea exacta). La raíz cuadrada es la razón de que la precisión se encarezca: las primeras 100 observaciones te compran más estrechamiento que las 300 siguientes juntas, y reducir a la mitad un intervalo ya estrecho siempre cuesta 4 veces lo que hayas pagado hasta el momento.

IC y p-valor: dos vistas de un mismo test

Un intervalo de confianza y un contraste de hipótesis son la misma información con ropas distintas. El IC del 95% contiene exactamente los valores del parámetro que un test bilateral al nivel 0.05 no lograría rechazar. Por tanto:

  • IC para una diferencia de medias excluye el 0 ⇔ el t-test dice p < 0.05.
  • IC para un odds ratio excluye el 1 ⇔ el p del coeficiente es < 0.05.

Cuando tienes el intervalo, sueles tener el mejor resumen: entrega el mismo veredicto de significación más el tamaño del efecto en unidades reales. "p = 0.03" dice que existe una diferencia; "IC 95%: 0.2 a 7.6" dice que existe y que podría ser trivial o podría ser enorme - que a menudo es el hallazgo que importa.

Lo que te llevas

  • El 95% describe la tasa de acierto a largo plazo del procedimiento, no la probabilidad de que este intervalo concreto haya capturado la verdad.
  • Media: t.test(x)$conf.int, o a mano como media ± qt(0.975, n−1) × error estándar.
  • Proporción: prop.test(x, n)$conf.int; coeficientes de modelos: confint(fit) (exponencia para los odds ratios de glm).
  • Más confianza = intervalo más ancho; el 95% es convención, no ley.
  • La anchura se reduce con sqrt(n): 4 veces más datos reducen el intervalo a la mitad.
  • El IC contiene todos los valores que un test al nivel 0.05 no rechazaría - y, a diferencia del p-valor, muestra el tamaño del efecto.

A continuación: el kit de simulación detrás de todo esto - números aleatorios con rnorm, runif, sample y set.seed.

Preguntas frecuentes

¿Cómo se calcula un intervalo de confianza del 95% en R?

Para una media, la vía más rápida es t.test(x)$conf.int. Para una proporción, prop.test(successes, trials)$conf.int. Para los coeficientes de un modelo lm() o glm() ajustado, confint(fit). Los tres usan 95% por defecto; cámbialo con conf.level = 0.90 (o 0.99).

¿Qué significa realmente un intervalo de confianza del 95%?

Es una afirmación sobre el procedimiento: si repitieras el estudio muchas veces y construyeras un intervalo cada vez, alrededor del 95% de esos intervalos contendría el valor verdadero. No es "una probabilidad del 95% de que el parámetro esté dentro de este intervalo concreto" - el parámetro es un número fijo, y cada intervalo individual lo capturó o no lo capturó.

¿Cómo se calcula un intervalo de confianza a mano en R?

Media ± valor crítico × error estándar. Para una media: m <- mean(x); se <- sd(x)/sqrt(length(x)); m + c(-1, 1) * qt(0.975, df = length(x) - 1) * se. La llamada qt(0.975, df) es el valor crítico de la t que deja 2.5% en cada cola.

¿Cómo afecta el tamaño muestral a un intervalo de confianza?

La anchura se reduce con la raíz cuadrada de n: cuadruplica la muestra y el intervalo se reduce a la mitad. Esa raíz cuadrada es la razón de que el último tramo de precisión salga caro - pasar de ±2 a ±1 cuesta cuatro veces más datos, no dos.

Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR