La estadística inferencial utiliza técnicas para
estimar parámetros que caracterizan una distribución.
En este curso estudiaremos dos herramientas fundamentales:
Un intervalo de confianza nos da un rango de valores plausibles para un parámetro poblacional, acompañado de un nivel de confianza (ej. 95%).
t.testLa función t.test permite calcular intervalos de
confianza para la media y para la diferencia de medias.
Se basa en la distribución t de Student, que es
adecuada cuando la varianza poblacional es desconocida.
Cuando la población es normal y la varianza es desconocida, usamos la distribución t para construir intervalos de confianza de la media.
Ejemplo: Intervalo de confianza del 90% para la altura promedio de los hombres.
url <- 'https://raw.githubusercontent.com/fhernanb/datos/master/medidas_cuerpo'
datos <- read.table(file = url, header = TRUE)
head(datos,10)
## edad peso altura sexo muneca biceps
## 1 43 87.3 188.0 Hombre 12.2 35.8
## 2 65 80.0 174.0 Hombre 12.0 35.0
## 3 45 82.3 176.5 Hombre 11.2 38.5
## 4 37 73.6 180.3 Hombre 11.2 32.2
## 5 55 74.1 167.6 Hombre 11.8 32.9
## 6 33 85.9 188.0 Hombre 12.4 38.5
## 7 25 73.2 180.3 Hombre 10.6 38.3
## 8 35 76.3 167.6 Hombre 11.3 35.0
## 9 28 65.9 183.0 Hombre 10.2 32.1
## 10 26 90.9 183.0 Hombre 12.0 40.4
attach(datos)
hombres <- datos[sexo == "Hombre",]
attach(hombres)
# Mostrar si altura proviene de una distribución normal
lillie.test(altura)$p.value
## [1] 0.3839829
cvm.test(altura)$p.value
## [1] 0.2303828
pearson.test(altura)$p.value
## [1] 0.694963
ad.test(altura)$p.value
## [1] 0.2659667
sf.test(altura)$p.value
## [1] 0.3764676
cat("Con todas las pruebas de normalidad probadas, se concluye que las alturas de los hombres provienen de una distribución normal")
## Con todas las pruebas de normalidad probadas, se concluye que las alturas de los hombres provienen de una distribución normal
res <- t.test(x = hombres$altura, conf.level = 0.90)$conf.int
cat(" El intervalo de confianza del 90% para μ está entre:", res)
## El intervalo de confianza del 90% para μ está entre: 176.4384 181.7172
Cuando queremos comparar dos poblaciones independientes (ej. hombres
vs mujeres), usamos t.test con los argumentos
x, y, paired=FALSE y
var.equal.
Ejemplo: Intervalo de confianza del 95% para la diferencia de alturas entre hombres y mujeres.
mujeres <- datos[datos$sexo == "Mujer", ]
# Prueba de normalidad para las alturas
lillie.test(x = hombres$altura)$p.value
## [1] 0.3839829
lillie.test(x = mujeres$altura)$p.value
## [1] 0.51194
res1 <- t.test(x=hombres$altura, y=mujeres$altura,
var.equal = FALSE, conf.level = 0.95)$conf.int
cat("El intervalo de confianza del 95% para la diferencia de alturas (Hombres - Mujeres) está entre:", res1)
## El intervalo de confianza del 95% para la diferencia de alturas (Hombres - Mujeres) está entre: 10.05574 20.03315
var.testLa varianza mide la dispersión de los datos. Para construir intervalos de confianza de la varianza poblacional, se usa la distribución Chi-cuadrado.
if (!require('devtools')) install.packages('devtools')
devtools::install_github('fhernanb/stests', force=TRUE)
##
## ── R CMD build ─────────────────────────────────────────────────────────────────
## checking for file 'C:\Users\esspa\AppData\Local\Temp\RtmpqUG0UJ\remotes2594638751f5\fhernanb-stests-b25bf7e/DESCRIPTION' ... ✔ checking for file 'C:\Users\esspa\AppData\Local\Temp\RtmpqUG0UJ\remotes2594638751f5\fhernanb-stests-b25bf7e/DESCRIPTION' (336ms)
## ─ preparing 'stests': (3.7s)
## checking DESCRIPTION meta-information ... checking DESCRIPTION meta-information ... ✔ checking DESCRIPTION meta-information
## ─ checking for LF line-endings in source and make files and shell scripts (388ms)
## ─ checking for empty or unneeded directories
## Omitted 'LazyData' from DESCRIPTION
## ─ building 'stests_0.1.0.tar.gz' (506ms)
##
##
library(stests)
Ejemplo: Intervalo de confianza del 90% para la varianza de la altura de los hombres.
res2 <- stests::var.test(x = hombres$altura, conf.level = 0.90)$conf.int
cat("El intervalo de confianza del 90% para la varianza poblacional está entre:", res2)
## El intervalo de confianza del 90% para la varianza poblacional está entre: 25.53407 81.23046
Si el intervalo incluye el valor 1, concluimos que las varianzas son iguales.
resp1 <- stests::var.test(x=hombres$altura, y=mujeres$altura, conf.level=0.95)$conf.int
resp1
## [1] 0.2327398 1.6632830
## attr(,"conf.level")
## [1] 0.95
prop.testLa función prop.test se usa para calcular intervalos de
confianza para proporciones y diferencias de proporciones.
Ejemplo: Proporción de casas con más de dos televisores.
resp2 <- prop.test(x = 275, n = 500, conf.level=0.90)$conf.int
resp2
## [1] 0.5122310 0.5872162
## attr(,"conf.level")
## [1] 0.9
Ejemplo: Comparación de piezas defectuosas antes y después de un cambio en el proceso.
tabla2 <- data.frame(Num_piezas=c("Defectuosas", "Analizadas"), Antes=c(75,1500),
Después=c(80,2000))
flextable(tabla2)
Num_piezas | Antes | Después |
|---|---|---|
Defectuosas | 75 | 80 |
Analizadas | 1,500 | 2,000 |
resp3 <- prop.test(x=c(75, 80), n=c(1500, 2000), conf.level=0.90)$conf.int
resp3
## [1] -0.002314573 0.022314573
## attr(,"conf.level")
## [1] 0.9
Los intervalos de confianza son una herramienta poderosa para la
estimación estadística.
Permiten cuantificar la incertidumbre y tomar decisiones fundamentadas
en datos.
En este documento vimos ejemplos para: