- Introducción
- Función t.test
- Intervalo de confianza bilateral para la media \(\mu\) con varianza \(\sigma^2\) desconocida.
- Intervalo de confianza bilateral para la diferencia de medias \((\mu_1 -\mu_2)\) de muestras independientes
- Intervalo de confianza bilateral para la varianza $frac{_1^2}{_2^2}
- Intervalo de confianza bilateral para la proporción Para calcular intervalos de confianza bilaterales para la proporción con la función prop.test es necesario definir 3 argumentos:
- Intervalo de confianza bilateral para la diferencia de proporciones \(p_1 − p_2\)
##
## Adjuntando el paquete: 'stests'
## The following object is masked from 'package:stats':
##
## var.test
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## Warning: package 'nortest' was built under R version 4.5.2
## Warning: package 'nortest' is in use and will not be installed
Introducción
En esta parte del curso se estimarán parámetros, que son las medidas númericas que caracterizan una distribución de probabilidad.
Esto se hará a través de muestras tomadas aleatoriamente de poblaciones, casi siempre con distribución normal y lo que se persigue es estimar, a través de estadísticos cuáles son los parámetros.
Lo primero que se hará será estimar el parámetro \(\mu\) que caracteriza una distribución de probabilidad normal con varianza poblacional \(\sigma^2\) desconocida.
Función t.test
La función t.test se usa para calcular intervalos de confianza para la media, \(\scriptsize \mu\) y para diferencia de medias, con muestras independientes y con muestras dependientes (o pareadas). La función y sus argumentos son los siguientes:
Intervalo de confianza bilateral para la media \(\mu\) con varianza \(\sigma^2\) desconocida.
Ejemplo
Suponga que se quiere obtener un intervalo de confianza bilateral del 90% para la altura promedio de los hombres de la base de datos medidas del cuerpo.
Solución
Para calcular el intervalo de confianza, primero se carga la base de datos usando la url apropiada, luego se crea un subconjunto de datos y se aloja en el objeto hombres como sigue a continuación:
url <- 'https://raw.githubusercontent.com/fhernanb/datos/master/medidas_cuerpo'
datos <- read.table(file=url, header=TRUE)
hombres <- datos[datos$sexo =="Hombre", ]
hombres## 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
## 11 43 89.1 179.1 Hombre 11.3 36.5
## 12 30 62.3 170.2 Hombre 11.5 34.2
## 13 26 82.7 177.8 Hombre 11.5 35.2
## 14 51 79.1 179.1 Hombre 11.8 34.0
## 15 30 98.2 190.5 Hombre 10.7 34.8
## 16 24 84.1 177.8 Hombre 11.5 38.6
## 17 35 83.2 180.3 Hombre 11.1 36.4
## 18 37 83.2 180.3 Hombre 10.5 34.0
##
## Anderson-Darling normality test
##
## data: hombres$altura
## A = 0.43553, p-value = 0.266
##
## Cramer-von Mises normality test
##
## data: hombres$altura
## W = 0.074395, p-value = 0.2304
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: hombres$altura
## D = 0.14693, p-value = 0.384
Ya sabiendo que los datos de las alturas de los hombres provienen de una normal, se encuentra el intervalo para la media de las alturas de todos los hombres de esa universidad.
res <- t.test(x=hombres$altura, conf.level=0.90)$conf.int
cat("Con una confianza del 90% se estima que las alturas de los hombres en esa U está entre",res)## Con una confianza del 90% se estima que las alturas de los hombres en esa U está entre 176.4384 181.7172
Ejemplo
Encontrar un intervalo de confianza para el peso de las estudiantes en esa U
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: muj_peso$peso
## D = 0.14245, p-value = 0.4335
sol_p <- t.test(x = muj_peso$peso,conf.level = 0.95)$conf.int
cat("Con una confianza del 95% se estima que los pesos de las mujeres en esa U está entre",sol_p)## Con una confianza del 95% se estima que los pesos de las mujeres en esa U está entre 52.57902 61.96542
Intervalo de confianza bilateral para la diferencia de medias \((\mu_1 -\mu_2)\) de muestras independientes
Ejemplo
Se quiere saber si existe diferencia estadísticamente significativa entre las alturas de los hombres y las mujeres. Para responder esto se va a construir un intervalo de confianza del 95% para la diferencia de las altura promedio de los hombres y de las mujeres \((\mu_{hombres}-\mu_{mujeres})\)
Solución
Para construir el intervalo de confianza, primero se carga la base de datos usando la url apropiada, luego se crean dos subconjuntos de datos y se alojan en los objetos hombres y mujeres como sigue a continuación:
hombres <- datos[datos$sexo=="Hombre", ]
mujeres <- datos[datos$sexo=="Mujer", ]
lillie.test(x = mujeres$altura)##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: mujeres$altura
## D = 0.13578, p-value = 0.5119
resp.1 <- t.test(x=hombres$altura, y=mujeres$altura,
var.equal=TRUE, conf.level = 0.95)$conf.int
resp.2 <- t.test(x=hombres$altura, y=mujeres$altura,
var.equal=FALSE, conf.level = 0.95)$conf.int
cat("Se estima que las diferencias en altura entre hombres y mujeres con 95% de confianza y varianzas iguales está entre:", resp.1)## Se estima que las diferencias en altura entre hombres y mujeres con 95% de confianza y varianzas iguales está entre: 10.06571 20.02318
cat("Se estima que las diferencias en altura entre hombres y mujeres con 95% de confianza varianzas diferentes está entre:", resp.2)## Se estima que las diferencias en altura entre hombres y mujeres con 95% de confianza varianzas diferentes está entre: 10.05574 20.03315
## Warning: package 'devtools' was built under R version 4.5.2
## Warning: package 'usethis' was built under R version 4.5.2
##
## ── R CMD build ─────────────────────────────────────────────────────────────────
## checking for file 'C:\Users\joseg\AppData\Local\Temp\RtmpG08aSW\remotes51e828476cec\fhernanb-stests-b25bf7e/DESCRIPTION' ... checking for file 'C:\Users\joseg\AppData\Local\Temp\RtmpG08aSW\remotes51e828476cec\fhernanb-stests-b25bf7e/DESCRIPTION' ... ✔ checking for file 'C:\Users\joseg\AppData\Local\Temp\RtmpG08aSW\remotes51e828476cec\fhernanb-stests-b25bf7e/DESCRIPTION' (490ms)
## ─ preparing 'stests': (7.2s)
## 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 (619ms)
## ─ checking for empty or unneeded directories
## Omitted 'LazyData' from DESCRIPTION
## ─ building 'stests_0.1.0.tar.gz' (783ms)
##
##
## Warning: package 'stests' is in use and will not be installed
resp <- stests:: var.test(x=hombres$altura , conf.level = 0.9)$conf.int
cat("el intervalo de confianza del 90% indica que la desviacion estandar de la estatura de los estudiantes hombres encuentra netre:",round(sqrt(resp),2))## el intervalo de confianza del 90% indica que la desviacion estandar de la estatura de los estudiantes hombres encuentra netre: 5.05 9.01
resp1 <- stests:: var.test(x=hombres$altura , conf.level = 0.9)$conf.int
cat("el intervalo de confianza del 90% indica que la desviacion estandar de la estatura de los estudiantes hombres encuentra netre:",resp1)## el intervalo de confianza del 90% indica que la desviacion estandar de la estatura de los estudiantes hombres encuentra netre: 25.53407 81.23046
Intervalo de confianza bilateral para la varianza $frac{_1^2}{_2^2}
resp <- stats:: var.test(x=hombres$altura , y=mujeres$altura, conf.level = 0.9)$conf.int
cat("el intervalo de confianza del 90% indica que la desviacion estandar de la estatura de los estudiantes hombres encuentra netre:",resp)## el intervalo de confianza del 90% indica que la desviacion estandar de la estatura de los estudiantes hombres encuentra netre: 0.2738612 1.413534
resp2 <- stests:: var.test(x=hombres$altura , y=mujeres$altura, conf.level = 0.9)$conf.int
cat("el intervalo de confianza del 90% indica que la desviacion estandar de la estatura de los estudiantes hombres encuentra netre:",resp2)## el intervalo de confianza del 90% indica que la desviacion estandar de la estatura de los estudiantes hombres encuentra netre: 0.2738612 1.413534
Intervalo de confianza bilateral para la proporción Para calcular intervalos de confianza bilaterales para la proporción con la función prop.test es necesario definir 3 argumentos:
x considera el conteo de éxitos, n indica el número de eventos, conf.level corresponde al nivel de confianza.
ejemplo El gerente de una estación de televisión debe determinar en la ciudad qué porcentaje de casas tienen más de un televisor. Una muestra aleatoria de 500 casas revela que 275 tienen dos o más televisores. ¿Cuál es el intervalo de confianza del 90% para estimar la proporción de todas las casas que tienen dos o más televisores?
Solución
resp3 <- prop.test(x=275, n=500, conf.level=0.90)$conf.int
cat("la proporcion de casas con dos tv o mas en casa esta entre:",resp3)## la proporcion de casas con dos tv o mas en casa esta entre: 0.512231 0.5872162
Intervalo de confianza bilateral para la diferencia de proporciones \(p_1 − p_2\)
Para construir intervalos de confianza bilaterales para la proporción a partir de la función prop.test es necesario definir 3 argumentos:
x: vector con el conteo de éxitos de las dos muestras, n: vector con el número de ensayos, conf.level: nivel de confianza.
Ejemplo
Se quiere determinar si un cambio en el método de fabricación de una piezas ha sido efectivo o no. Para esta comparación se tomaron 2 muestras, una antes y otra después del cambio en el proceso y los resultados obtenidos son los siguientes.
df1<- data.frame(Num_piezas= c("defectuosas", "analizadas"), antes= c(75,1500), despues=c (80,2000))
flextable(df1)Num_piezas | antes | despues |
|---|---|---|
defectuosas | 75 | 80 |
analizadas | 1,500 | 2,000 |