1 Intervalos de confianza

En esta unidad trabajaremos funciones de R para construir intervalos de confianza (IC) de:

  1. la media \(\)
  2. la proporción \(p\)
  3. la varianza \(^2\)
  4. la diferencia de medias \(_1 - _2\) (independientes y pareadas)
  5. la diferencia de proporciones \(p_1 - p_2\)
  6. la razón de varianzas \(_1^2/_2^2\)

Usaremos como ejemplo la base medidas del cuerpo.

Paquetes usados: car (QQ‑plot), stests (var.test extendido).

req <- c("car")
inst <- req[!req %in% installed.packages()[, "Package"]]
if(length(inst)) install.packages(inst)
suppressPackageStartupMessages(library(car))

# stests desde GitHub si no está
if(!"stests" %in% installed.packages()[, "Package"]) {
  if(!"devtools" %in% installed.packages()[, "Package"]) install.packages("devtools")
  devtools::install_github("fhernanb/stests", force = TRUE)
}
library(stests)
## 
## Adjuntando el paquete: 'stests'
## The following object is masked from 'package:stats':
## 
##     var.test
url <- "https://raw.githubusercontent.com/fhernanb/datos/master/medidas_cuerpo"
datos <- read.table(file = url, header = TRUE)
hombres <- subset(datos, sexo == "Hombre")
mujeres <- subset(datos, sexo == "Mujer")
str(datos)
## 'data.frame':    36 obs. of  6 variables:
##  $ edad  : int  43 65 45 37 55 33 25 35 28 26 ...
##  $ peso  : num  87.3 80 82.3 73.6 74.1 85.9 73.2 76.3 65.9 90.9 ...
##  $ altura: num  188 174 176 180 168 ...
##  $ sexo  : chr  "Hombre" "Hombre" "Hombre" "Hombre" ...
##  $ muneca: num  12.2 12 11.2 11.2 11.8 12.4 10.6 11.3 10.2 12 ...
##  $ biceps: num  35.8 35 38.5 32.2 32.9 38.5 38.3 35 32.1 40.4 ...

1.1 23.1 Función t.test

La función t.test() calcula IC para la media y para la diferencia de medias (muestras independientes o pareadas). Argumentos principales:

t.test(x, y = NULL,
       alternative = c("two.sided", "less", "greater"),
       mu = 0, paired = FALSE, var.equal = FALSE,
       conf.level = 0.95, ...)

1.1.1 23.1.1 Intervalo de confianza bilateral para la media \(\)

Objetivo. IC bilateral para la media poblacional, a partir de una muestra (supuesto de normalidad o \(n\) grande).

Ejemplo (90 %): altura de hombres.

par(mfrow=c(1,2))
qqPlot(hombres$altura, pch=19, id=FALSE,
       main="QQplot altura (Hombres)",
       xlab="Cuantiles teóricos", ylab="Cuantiles muestrales")
hist(hombres$altura, main="Histograma altura (Hombres)",
     xlab="Altura", ylab="Frecuencia")
par(mfrow=c(1,1))

ic_h <- t.test(hombres$altura, conf.level = 0.90)$conf.int
ic_h
## [1] 176.4384 181.7172
## attr(,"conf.level")
## [1] 0.9

Interpretación. Con 90 % de confianza, \(\) (altura media de hombres) está entre los extremos del vector anterior.

1.1.2 23.1.2 Intervalo de confianza bilateral para la diferencia de medias (muestras independientes)

Objetivo. IC de \(_1 - _2\) con dos muestras independientes. Usar var.equal = TRUE si se asume igualdad de varianzas.

ic_diff_ind <- t.test(x = hombres$altura, y = mujeres$altura,
                      var.equal = TRUE, conf.level = 0.95)$conf.int
ic_diff_ind
## [1] 10.06571 20.02318
## attr(,"conf.level")
## [1] 0.95

Interpretación. El intervalo anterior acota la diferencia media de alturas (H − M) al 95 %.

1.1.3 23.1.3 Intervalo de confianza bilateral para la diferencia de medias (muestras pareadas)

Objetivo. IC de \(_D\) cuando cada individuo tiene dos mediciones.

set.seed(123)
# Ejemplo de datos pareados (antes vs después)
antes  <- c(15, 18, 20, 14, 17, 21, 19, 16)
despues<- c(10, 11, 14,  9, 12, 15, 13, 10)
ic_p   <- t.test(antes, despues, paired = TRUE, conf.level = 0.95)$conf.int
ic_p
## [1] 5.158844 6.341156
## attr(,"conf.level")
## [1] 0.95

Lectura. Si el intervalo para \(D = {}-_{}\) es totalmente positivo, “antes” supera a “después”.

1.1.4 23.1.4 Intervalo de confianza unilateral para la media \(\)

Usar alternative = "less" (inferior) o "greater" (superior).

set.seed(321)
x <- rnorm(50, mean = 18, sd = 3)
t.test(x, alternative = "greater", conf.level = 0.90)$conf.int
## [1] 17.7119     Inf
## attr(,"conf.level")
## [1] 0.9

1.2 23.2 Función var.test

Para IC de una varianza o de la razón de varianzas: - stats::var.test() (1 población); - stests::var.test() (1 o 2 poblaciones, versión extendida).

1.2.1 23.2.1 Intervalo de confianza bilateral para la varianza \(^2\)

res_var <- stests::var.test(x = hombres$altura, conf.level = 0.98)
res_var$conf.int
## [1]  21.08468 109.93095
## attr(,"conf.level")
## [1] 0.98

Interpretación. IC al 98 % para la varianza de altura (hombres).

1.2.2 23.2.2 Intervalo de confianza bilateral para la razón de varianzas \(_1^2/_2^2\)

stats::var.test(x = hombres$altura, y = mujeres$altura,
                conf.level = 0.95)$conf.int
## [1] 0.2327398 1.6632830
## attr(,"conf.level")
## [1] 0.95

1.3 23.3 Función prop.test

IC para proporciones y diferencia de proporciones (basado en aproximación normal).

1.3.1 23.3.1 IC bilateral para una proporción \(p\)

Ejemplo (90 %): 275 éxitos en 500 ensayos.

prop.test(x = 275, n = 500, conf.level = 0.90)$conf.int
## [1] 0.5122310 0.5872162
## attr(,"conf.level")
## [1] 0.9

1.3.2 23.3.2 IC bilateral para la diferencia de proporciones \(p_1 - p_2\)

Ejemplo (90 %): defectos antes 75/1500 vs después 80/2000.

prop.test(x = c(75, 80), n = c(1500, 2000), conf.level = 0.90)$conf.int
## [1] -0.002314573  0.022314573
## attr(,"conf.level")
## [1] 0.9

Conclusión. Si 0 está dentro del IC de \(p_1-p_2\), no hay evidencia de cambio real en las proporciones.


1.4 23.4 Resumen

  • t.test() → medias (una muestra, dos muestras independientes, pareadas; bilateral y unilateral).
  • var.test() → varianza y razón de varianzas.
  • prop.test() → proporciones (una o dos).
  • Ajusta el nivel de confianza con conf.level.