09/09/26
Abstract
La teoría mencionada puede revisarse en el TEXTO GUÍA o en la BIBLIOGRAFÍA COMPLEMENTARIA. En Rpubs:: toc se pueden ver otros documentos de posible interés.
Primero, debemos instalar, si es necesario, y cargar los paquetes que vamos a utilizar.
library(lsm) # Para acceder a la base de datos survey
library(knitr) # Para construir tablas
library(kableExtra) # Para mejorar la presentación de las tablas
La siguiente tabla resume las funciones desarrolladas para construir los intervalos de confianza y señala el procedimiento estadístico correspondiente.
| Función | Descripción |
|---|---|
|
Intervalo Z para una media cuando la desviación estándar poblacional σ es conocida. |
|
Intervalo t para una media cuando la desviación estándar poblacional es desconocida. |
|
Intervalo Z para estimar una proporción poblacional. |
|
Intervalo para estimar una varianza poblacional. |
|
Intervalo Z para la diferencia de medias con varianzas poblacionales conocidas. |
|
Intervalo t para la diferencia de medias con varianzas desconocidas pero iguales. |
|
Intervalo t de Welch para la diferencia de medias con varianzas desconocidas y diferentes. |
|
Intervalo Z para la diferencia de dos proporciones poblacionales. |
|
Intervalo para la razón de dos varianzas poblacionales. |
A continuación se presentan las funciones desarrolladas para calcular los intervalos de confianza estudiados en este capítulo. Su objetivo es automatizar los cálculos, organizar los resultados en un formato uniforme y facilitar la interpretación de cada procedimiento.
# ============================================================
# 1. Intervalo Z para una media con sigma conocida
# ============================================================
ic_media_z <- function(media, sigma, n, conf = 0.95,
digitos = 4) {
alpha <- 1 - conf
z <- qnorm(1 - alpha / 2)
error_estandar <- sigma / sqrt(n)
margen_error <- z * error_estandar
inferior <- media - margen_error
superior <- media + margen_error
resultado <- data.frame(
Medida = c(
"Media",
"\u03c3",
"Error estándar",
"n",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Resultado = c(
round(media, digitos),
round(sigma, digitos),
round(error_estandar, digitos),
n,
round(conf, digitos),
round(z, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(media, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 2. Intervalo t para una media con sigma desconocida
# ============================================================
ic_media_t <- function(media, s, n, conf = 0.95,
digitos = 4) {
alpha <- 1 - conf
gl <- n - 1
t_critico <- qt(1 - alpha / 2, df = gl)
error_estandar <- s / sqrt(n)
margen_error <- t_critico * error_estandar
inferior <- media - margen_error
superior <- media + margen_error
resultado <- data.frame(
Medida = c(
"Media",
"s",
"Error estándar",
"n",
"Grados de libertad",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Resultado = c(
round(media, digitos),
round(s, digitos),
round(error_estandar, digitos),
n,
gl,
round(conf, digitos),
round(t_critico, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(media, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 3. Intervalo Z para una proporción
# ============================================================
ic_proporcion <- function(exitos, n, conf = 0.95,
digitos = 4) {
if (exitos < 0 || exitos > n) {
stop("El número de éxitos debe estar entre 0 y n.")
}
alpha <- 1 - conf
z <- qnorm(1 - alpha / 2)
proporcion <- exitos / n
error_estandar <- sqrt(proporcion * (1 - proporcion) / n)
margen_error <- z * error_estandar
inferior <- max(0, proporcion - margen_error)
superior <- min(1, proporcion + margen_error)
resultado <- data.frame(
Medida = c(
"Éxitos",
"n",
"Proporción",
"Error estándar",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Resultado = c(
exitos,
n,
round(proporcion, digitos),
round(error_estandar, digitos),
round(conf, digitos),
round(z, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(proporcion, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 4. Intervalo para una varianza
# ============================================================
ic_varianza <- function(varianza, n, conf = 0.95,
digitos = 4) {
if (varianza <= 0) {
stop("La varianza debe ser positiva.")
}
alpha <- 1 - conf
gl <- n - 1
chi_inferior <- qchisq(alpha / 2, df = gl)
chi_superior <- qchisq(1 - alpha / 2, df = gl)
inferior <- gl * varianza / chi_superior
superior <- gl * varianza / chi_inferior
resultado <- data.frame(
Medida = c(
"Varianza muestral",
"n",
"Grados de libertad",
"Grado de confianza",
"Cuantil inferior",
"Cuantil superior",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Resultado = c(
round(varianza, digitos),
n,
gl,
round(conf, digitos),
round(chi_inferior, digitos),
round(chi_superior, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
"(",
round(inferior, digitos),
", ",
round(superior, digitos),
")"
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 5. Intervalo Z para diferencia de medias
# Varianzas poblacionales conocidas
# ============================================================
ic_dif_medias_z <- function(media1, media2,
sigma1, sigma2,
n1, n2,
conf = 0.95,
digitos = 4) {
alpha <- 1 - conf
z <- qnorm(1 - alpha / 2)
diferencia <- media1 - media2
error_estandar <- sqrt(
sigma1^2 / n1 +
sigma2^2 / n2
)
margen_error <- z * error_estandar
inferior <- diferencia - margen_error
superior <- diferencia + margen_error
resultado <- data.frame(
Medida = c(
"Media (Muestra 1)",
"σ (Muestra 1)",
"n (Muestra 1)",
"Media (Muestra 2)",
"σ (Muestra 2)",
"n (Muestra 2)",
"Diferencia estimada",
"Error estándar",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Valor = c(
round(media1, digitos),
round(sigma1, digitos),
n1,
round(media2, digitos),
round(sigma2, digitos),
n2,
round(diferencia, digitos),
round(error_estandar, digitos),
round(conf, digitos),
round(z, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(diferencia, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 6. Intervalo t para diferencia de medias
# Varianzas desconocidas, pero iguales
# ============================================================
ic_dif_medias_t_si <- function(media1, media2,
s1, s2,
n1, n2,
conf = 0.95,
digitos = 4) {
alpha <- 1 - conf
diferencia <- media1 - media2
# Grados de libertad
gl <- n1 + n2 - 2
# Varianza combinada
varianza_combinada <- (
(n1 - 1) * s1^2 +
(n2 - 1) * s2^2
) / gl
# Desviación estándar combinada
s_combinada <- sqrt(varianza_combinada)
# Error estándar
error_estandar <- s_combinada *
sqrt(1 / n1 + 1 / n2)
# Valor crítico
t_critico <- qt(
1 - alpha / 2,
df = gl
)
# Margen de error
margen_error <- t_critico * error_estandar
# Límites
inferior <- diferencia - margen_error
superior <- diferencia + margen_error
resultado <- data.frame(
Medida = c(
"Media (Muestra 1)",
"s (Muestra 1)",
"n (Muestra 1)",
"Media (Muestra 2)",
"s (Muestra 2)",
"n (Muestra 2)",
"Diferencia estimada",
"Varianza combinada",
"Desviación combinada",
"Grados de libertad",
"Error estándar",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Valor = c(
round(media1, digitos),
round(s1, digitos),
n1,
round(media2, digitos),
round(s2, digitos),
n2,
round(diferencia, digitos),
round(varianza_combinada, digitos),
round(s_combinada, digitos),
gl,
round(error_estandar, digitos),
round(conf, digitos),
round(t_critico, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(diferencia, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 7. Intervalo t para diferencia de medias
# Varianzas desconocidas, pero diferentes
# Método de Welch
# ============================================================
ic_dif_medias_t_no <- function(media1, media2,
s1, s2,
n1, n2,
conf = 0.95,
digitos = 4) {
alpha <- 1 - conf
diferencia <- media1 - media2
termino1 <- s1^2 / n1
termino2 <- s2^2 / n2
error_estandar <- sqrt(termino1 + termino2)
gl <- (termino1 + termino2)^2 /
(
termino1^2 / (n1 - 1) +
termino2^2 / (n2 - 1)
)
t_critico <- qt(
1 - alpha / 2,
df = gl
)
margen_error <- t_critico * error_estandar
inferior <- diferencia - margen_error
superior <- diferencia + margen_error
resultado <- data.frame(
Medida = c(
"Media (Muestra 1)",
"s (Muestra 1)",
"n (Muestra 1)",
"Media (Muestra 2)",
"s (Muestra 2)",
"n (Muestra 2)",
"Diferencia estimada",
"Grados de libertad",
"Error estándar",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Valor = c(
round(media1, digitos),
round(s1, digitos),
n1,
round(media2, digitos),
round(s2, digitos),
n2,
round(diferencia, digitos),
round(gl, digitos),
round(error_estandar, digitos),
round(conf, digitos),
round(t_critico, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(diferencia, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 8. Intervalo Z para diferencia de proporciones
# ============================================================
ic_dif_proporciones <- function(exitos1, n1,
exitos2, n2,
conf = 0.95,
digitos = 4) {
if (exitos1 < 0 || exitos1 > n1 ||
exitos2 < 0 || exitos2 > n2) {
stop("Los números de éxitos deben estar entre 0 y n.")
}
alpha <- 1 - conf
z <- qnorm(1 - alpha / 2)
p1 <- exitos1 / n1
p2 <- exitos2 / n2
diferencia <- p1 - p2
error_estandar <- sqrt(
p1 * (1 - p1) / n1 +
p2 * (1 - p2) / n2
)
margen_error <- z * error_estandar
inferior <- diferencia - margen_error
superior <- diferencia + margen_error
resultado <- data.frame(
Medida = c(
"Éxitos (Muestra 1)",
"n (Muestra 1)",
"Proporción (Muestra 1)",
"Éxitos (Muestra 2)",
"n (Muestra 2)",
"Proporción (Muestra 2)",
"Diferencia estimada",
"Error estándar",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Resultado = c(
exitos1,
n1,
round(p1, digitos),
exitos2,
n2,
round(p2, digitos),
round(diferencia, digitos),
round(error_estandar, digitos),
round(conf, digitos),
round(z, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(diferencia, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 9. Intervalo para la razón de varianzas
# ============================================================
ic_razon_varianzas <- function(varianza1, varianza2,
n1, n2,
conf = 0.95,
digitos = 4) {
if (varianza1 <= 0 || varianza2 <= 0) {
stop("Las varianzas deben ser positivas.")
}
alpha <- 1 - conf
gl1 <- n1 - 1
gl2 <- n2 - 1
razon <- varianza1 / varianza2
f_inferior <- qf(
alpha / 2,
df1 = gl1,
df2 = gl2
)
f_superior <- qf(
1 - alpha / 2,
df1 = gl1,
df2 = gl2
)
inferior <- razon / f_superior
superior <- razon / f_inferior
resultado <- data.frame(
Medida = c(
"Varianza (Muestra 1)",
"n (Muestra 1)",
"Grados de libertad (Muestra 1)",
"Varianza (Muestra 2)",
"n (Muestra 2)",
"Grados de libertad (Muestra 2)",
"Razón de varianzas",
"Grado de confianza",
"Valor crítico inferior",
"Valor crítico superior",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Valor = c(
round(varianza1, digitos),
n1,
gl1,
round(varianza2, digitos),
n2,
gl2,
round(razon, digitos),
round(conf, digitos),
round(f_inferior, digitos),
round(f_superior, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
"(",
round(inferior, digitos),
", ",
round(superior, digitos),
")"
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
En esta sección se presentan ejemplos sencillos utilizando estadísticas resumidas (media, desviación estándar, varianza, tamaño muestral, etc.). Esto permite comprender el cálculo de los intervalos de confianza sin necesidad de trabajar inicialmente con una base de datos.
Cuando la desviación estándar poblacional (\(\sigma\)) es conocida, el intervalo de confianza para la media se construye utilizando la distribución normal estándar.
resultado <- ic_media_z(
media = 100,
sigma = 15,
n = 25,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media | 100 |
| σ | 15 |
| Error estándar | 3 |
| n | 25 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 5.8799 |
| Extremo inferior | 94.1201 |
| Extremo superior | 105.8799 |
| Intervalo | 100 ± 5.8799 |
Cuando la desviación estándar poblacional es desconocida, se utiliza la desviación estándar muestral (\(s\)) y la distribución \(t\) de Student.
resultado <- ic_media_t(
media = 19.48,
s = 0.98,
n = 6,
conf = 0.90
)
resultado
| Medida | Valor |
|---|---|
| Media | 19.48 |
| s | 0.98 |
| Error estándar | 0.4001 |
| n | 6 |
| Grados de libertad | 5 |
| Grado de confianza | 0.9 |
| Valor crítico | 2.015 |
| Margen de error | 0.8062 |
| Extremo inferior | 18.6738 |
| Extremo superior | 20.2862 |
| Intervalo | 19.48 ± 0.8062 |
Este ejemplo calcula un intervalo de confianza para una proporción poblacional a partir del número de éxitos observados en una muestra.
resultado <- ic_proporcion(
exitos = 77,
n = 350,
conf = 0.99
)
resultado
| Medida | Valor |
|---|---|
| Éxitos | 77 |
| n | 350 |
| Proporción | 0.22 |
| Error estándar | 0.0221 |
| Grado de confianza | 0.99 |
| Valor crítico | 2.5758 |
| Margen de error | 0.057 |
| Extremo inferior | 0.163 |
| Extremo superior | 0.277 |
| Intervalo | 0.22 ± 0.057 |
Cuando se desea estimar la variabilidad de una población, el intervalo de confianza para la varianza se basa en la distribución chi-cuadrada (\(\chi^2\))
resultado <- ic_varianza(
varianza = 0.00153,
n = 20,
conf = 0.90
)
resultado
| Medida | Valor |
|---|---|
| Varianza muestral | 0.0015 |
| n | 20 |
| Grados de libertad | 19 |
| Grado de confianza | 0.9 |
| Cuantil inferior | 10.117 |
| Cuantil superior | 30.1435 |
| Extremo inferior | 0.001 |
| Extremo superior | 0.0029 |
| Intervalo | (0.001, 0.0029) |
Si las desviaciones estándar poblacionales son conocidas, el intervalo para la diferencia de medias utiliza la distribución normal estándar.
La diferencia se calcula en el orden:
\[\text{Grupo 1} \; −\; \text{Grupo 2}\]
resultado <- ic_dif_medias_z(
media1 = 3.01,
media2 = 2.88,
sigma1 = 1.09,
sigma2 = 1.01,
n1 = 321,
n2 = 94,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 3.01 |
| σ (Muestra 1) | 1.09 |
| n (Muestra 1) | 321 |
| Media (Muestra 2) | 2.88 |
| σ (Muestra 2) | 1.01 |
| n (Muestra 2) | 94 |
| Diferencia estimada | 0.13 |
| Error estándar | 0.1206 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.2364 |
| Extremo inferior | -0.1064 |
| Extremo superior | 0.3664 |
| Intervalo | 0.13 ± 0.2364 |
Cuando las varianzas poblacionales son desconocidas, pero pueden asumirse iguales, se utiliza la varianza combinada (pooled variance).
La diferencia se calcula en el orden:
\[\text{Grupo 1} \; −\; \text{Grupo 2}\]
resultado <- ic_dif_medias_t_si(
media1 = 9.972,
media2 = 2.098,
s1 = 7.470,
s2 = 10.834,
n1 = 6,
n2 = 9,
conf = 0.90
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 9.972 |
| s (Muestra 1) | 7.47 |
| n (Muestra 1) | 6 |
| Media (Muestra 2) | 2.098 |
| s (Muestra 2) | 10.834 |
| n (Muestra 2) | 9 |
| Diferencia estimada | 7.874 |
| Varianza combinada | 93.693 |
| Desviación combinada | 9.6795 |
| Grados de libertad | 13 |
| Error estándar | 5.1016 |
| Grado de confianza | 0.9 |
| Valor crítico | 1.7709 |
| Margen de error | 9.0345 |
| Extremo inferior | -1.1605 |
| Extremo superior | 16.9085 |
| Intervalo | 7.874 ± 9.0345 |
Si no es razonable asumir igualdad de varianzas, se utiliza el intervalo de confianza de Welch.
La diferencia se calcula en el orden:
\[\text{Grupo 1} \; −\; \text{Grupo 2}\]
resultado <- ic_dif_medias_t_no(
media1 = 3.84,
media2 = 1.49,
s1 = 3.07,
s2 = 0.80,
n1 = 15,
n2 = 12,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 3.84 |
| s (Muestra 1) | 3.07 |
| n (Muestra 1) | 15 |
| Media (Muestra 2) | 1.49 |
| s (Muestra 2) | 0.8 |
| n (Muestra 2) | 12 |
| Diferencia estimada | 2.35 |
| Grados de libertad | 16.3278 |
| Error estándar | 0.8256 |
| Grado de confianza | 0.95 |
| Valor crítico | 2.1165 |
| Margen de error | 1.7474 |
| Extremo inferior | 0.6026 |
| Extremo superior | 4.0974 |
| Intervalo | 2.35 ± 1.7474 |
Este ejemplo estima el intervalo de confianza para la diferencia entre dos proporciones poblacionales independientes.
La diferencia se calcula en el orden:
\[\text{Grupo 1} \; −\; \text{Grupo 2}\]
resultado <- ic_dif_proporciones(
exitos1 = 107,
n1 = 120,
exitos2 = 73,
n2 = 141,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Éxitos (Muestra 1) | 107 |
| n (Muestra 1) | 120 |
| Proporción (Muestra 1) | 0.8917 |
| Éxitos (Muestra 2) | 73 |
| n (Muestra 2) | 141 |
| Proporción (Muestra 2) | 0.5177 |
| Diferencia estimada | 0.3739 |
| Error estándar | 0.0508 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.0995 |
| Extremo inferior | 0.2745 |
| Extremo superior | 0.4734 |
| Intervalo | 0.3739 ± 0.0995 |
Cuando se desea comparar la variabilidad de dos poblaciones, se utiliza un intervalo de confianza para la razón de sus varianzas, basado en la distribución \(F\). .
La razón se calcula en el orden:
\[\frac{\text{Grupo 1}}{\text{Grupo 2}}\]
resultado <- ic_razon_varianzas(
varianza1 = 9.4249,
varianza2 = 0.64,
n1 = 15,
n2 = 12,
conf = 0.98
)
resultado
| Medida | Valor |
|---|---|
| Varianza (Muestra 1) | 9.4249 |
| n (Muestra 1) | 15 |
| Grados de libertad (Muestra 1) | 14 |
| Varianza (Muestra 2) | 0.64 |
| n (Muestra 2) | 12 |
| Grados de libertad (Muestra 2) | 11 |
| Razón de varianzas | 14.7264 |
| Grado de confianza | 0.98 |
| Valor crítico inferior | 0.2588 |
| Valor crítico superior | 4.2932 |
| Extremo inferior | 3.4301 |
| Extremo superior | 56.9034 |
| Intervalo | (3.4301, 56.9034) |
En esta sección construiremos un data frame sencillo a partir de vectores definidos manualmente. Posteriormente calcularemos las estadísticas muestrales necesarias y las utilizaremos como argumentos de las funciones definidas anteriormente.
El siguiente código crea un data frame con dos
variables cuantitativas (puntaje y edad), una
variable dicotómica (fumador) y una variable de agrupación
(grupo), la cual identifica las dos muestras que se
compararán en algunos de los ejemplos.
grupo <- c(
rep("Grupo 1",10),
rep("Grupo 2",10)
)
puntaje <- c(
72,68,75,70,73,71,69,74,70,72,
65,63,67,69,64,66,62,68,65,67
)
edad <- c(
38,42,41,39,40,37,43,40,39,41,
35,37,34,36,38,35,39,37,36,34
)
fumador <- c(
"Sí","Sí","No","Sí","No", "Sí","Sí","No","Sí","Sí",
"No","Sí","No","No","Sí", "No","Sí","No","Sí","No"
)
datos <- data.frame(
grupo,
puntaje,
edad,
fumador
)
datos
| grupo | puntaje | edad | fumador |
|---|---|---|---|
| Grupo 1 | 72 | 38 | Sí |
| Grupo 1 | 68 | 42 | Sí |
| Grupo 1 | 75 | 41 | No |
| Grupo 1 | 70 | 39 | Sí |
| Grupo 1 | 73 | 40 | No |
| Grupo 1 | 71 | 37 | Sí |
| Grupo 1 | 69 | 43 | Sí |
| Grupo 1 | 74 | 40 | No |
| Grupo 1 | 70 | 39 | Sí |
| Grupo 1 | 72 | 41 | Sí |
| Grupo 2 | 65 | 35 | No |
| Grupo 2 | 63 | 37 | Sí |
| Grupo 2 | 67 | 34 | No |
| Grupo 2 | 69 | 36 | No |
| Grupo 2 | 64 | 38 | Sí |
| Grupo 2 | 66 | 35 | No |
| Grupo 2 | 62 | 39 | Sí |
| Grupo 2 | 68 | 37 | No |
| Grupo 2 | 65 | 36 | Sí |
| Grupo 2 | 67 | 34 | No |
La variable grupo identifica las dos muestras;
puntaje y edad son cuantitativas, mientras que
fumador toma los valores Si para éxito y
No para fracaso.
Para ilustrar el procedimiento con \(Z\), se calcula la media de \(x\) y se supone conocida una desviación estándar poblacional igual a \(9\).
# Calcula media y tamaño
media_puntaje <- mean(datos$puntaje)
n_puntaje <- length(datos$puntaje)
# Calcula el intervalo
resultado <- ic_media_z(
media = media_puntaje,
sigma = 9,
n = n_puntaje,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media | 68.5 |
| σ | 9 |
| Error estándar | 2.0125 |
| n | 20 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 3.9444 |
| Extremo inferior | 64.5556 |
| Extremo superior | 72.4444 |
| Intervalo | 68.5 ± 3.9444 |
Como normalmente la desviación estándar poblacional es desconocida, se estima mediante la desviación estándar muestral del puntaje.
# Calcula media y tamaño
media_puntaje <- mean(datos$puntaje)
s_puntaje <- sd(datos$puntaje)
n_puntaje <- length(datos$puntaje)
# Calcula el intervalo
resultado <- ic_media_t(
media = media_puntaje,
s = s_puntaje,
n = n_puntaje,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media | 68.5 |
| s | 3.6778 |
| Error estándar | 0.8224 |
| n | 20 |
| Grados de libertad | 19 |
| Grado de confianza | 0.95 |
| Valor crítico | 2.093 |
| Margen de error | 1.7213 |
| Extremo inferior | 66.7787 |
| Extremo superior | 70.2213 |
| Intervalo | 68.5 ± 1.7213 |
En este caso, un valor igual a Sí en la variable exito
representa un éxito. La suma del número de categorías de esta variable
proporciona el número total de éxitos. Se evalúa si la proporción de
éxitos es igual a 0.50.
# Calcula total de éxitos y tamaño
total_fumador <- sum(datos$fumador == "Sí")
n_fumador <- length(datos$fumador)
# Calcula el intervalo
resultado <- ic_proporcion(
exitos = total_fumador,
n = n_fumador,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Éxitos | 11 |
| n | 20 |
| Proporción | 0.55 |
| Error estándar | 0.1112 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.218 |
| Extremo inferior | 0.332 |
| Extremo superior | 0.768 |
| Intervalo | 0.55 ± 0.218 |
La varianza muestral del puntaje se utiliza para estimar la varianza de la población.
varianza_puntaje <- var(datos$puntaje)
n_puntaje <- length(datos$puntaje)
resultado <- ic_varianza(
varianza = varianza_puntaje,
n = n_puntaje,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Varianza muestral | 13.5263 |
| n | 20 |
| Grados de libertad | 19 |
| Grado de confianza | 0.95 |
| Cuantil inferior | 8.9065 |
| Cuantil superior | 32.8523 |
| Extremo inferior | 7.8229 |
| Extremo superior | 28.8553 |
| Intervalo | (7.8229, 28.8553) |
Para comparar las medias de los dos grupos, primero se separan los valores de la variable puntaje según el grupo al que pertenece cada observación. De esta manera se obtienen dos muestras independientes: una correspondiente al Grupo 1 y otra al Grupo 2.
# Se extraen los valores de la variable puntaje correspondientes a cada uno de los grupos.
puntaje1 <- datos$puntaje[datos$grupo == "Grupo 1"]
puntaje2 <- datos$puntaje[datos$grupo == "Grupo 2"]
# Se calculan las estadísticas resumidas de cada grupo.
media_gr1 <- mean(puntaje1)
media_gr2 <- mean(puntaje2)
s_gr1 <- sd(puntaje1)
s_gr2 <- sd(puntaje2)
n_gr1 <- length(puntaje1)
n_gr2 <- length(puntaje2)
A partir de estos resultados, se obtiene el siguiente resumen para cada grupo.
tabla_muestras <- data.frame(
Estadística = c(
"Tamaño muestral (n)",
"Media",
"Desviación estándar (s)"
),
`Grupo 1` = c(
n_gr1,
round(media_gr1, 2),
round(s_gr1, 2)
),
`Grupo 2` = c(
n_gr2,
round(media_gr2, 2),
round(s_gr2, 2)
),
check.names = FALSE
)
tabla_muestras
| Estadística | Grupo 1 | Grupo 2 |
|---|---|---|
| Tamaño muestral (n) | 10.00 | 10.00 |
| Media | 71.40 | 65.60 |
| Desviación estándar (s) | 2.22 | 2.22 |
Las estadísticas presentadas en la tabla corresponden a los argumentos que posteriormente se utilizarán en las funciones para comparar las medias de los dos grupos:
media1 y media2: medias
muestrales;
s1 y s2: desviaciones estándar
muestrales;
n1 y n2: tamaños muestrales.
Para utilizar el intervalo Z , se supone que las desviaciones estándar poblacionales son conocidas.
La diferencia se calcula en el orden:
\[\text{Grupo 1} \; −\; \text{Grupo 2}\]
resultado <- ic_dif_medias_z(
media1 = media_gr1,
media2 = media_gr2,
sigma1 = 8,
sigma2 = 10,
n1 = n_gr1,
n2 = n_gr2,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 71.4 |
| σ (Muestra 1) | 8 |
| n (Muestra 1) | 10 |
| Media (Muestra 2) | 65.6 |
| σ (Muestra 2) | 10 |
| n (Muestra 2) | 10 |
| Diferencia estimada | 5.8 |
| Error estándar | 4.0497 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 7.9372 |
| Extremo inferior | -2.1372 |
| Extremo superior | 13.7372 |
| Intervalo | 5.8 ± 7.9372 |
\[\text{Grupo 1} \; −\; \text{Grupo 2}\]
resultado <- ic_dif_medias_t_si(
media1 = media_gr1,
media2 = media_gr2,
s1 = s_gr1,
s2 = s_gr2,
n1 = n_gr1,
n2 = n_gr2,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 71.4 |
| s (Muestra 1) | 2.2211 |
| n (Muestra 1) | 10 |
| Media (Muestra 2) | 65.6 |
| s (Muestra 2) | 2.2211 |
| n (Muestra 2) | 10 |
| Diferencia estimada | 5.8 |
| Varianza combinada | 4.9333 |
| Desviación combinada | 2.2211 |
| Grados de libertad | 18 |
| Error estándar | 0.9933 |
| Grado de confianza | 0.95 |
| Valor crítico | 2.1009 |
| Margen de error | 2.0869 |
| Extremo inferior | 3.7131 |
| Extremo superior | 7.8869 |
| Intervalo | 5.8 ± 2.0869 |
Cuando no se supone igualdad de varianzas, se utiliza el procedimiento de Welch.
La diferencia se calcula en el orden:
\[\text{Grupo 1} \; −\; \text{Grupo 2}\]
resultado <- ic_dif_medias_t_no(
media1 = media_gr1,
media2 = media_gr2,
s1 = s_gr1,
s2 = s_gr2,
n1 = n_gr1,
n2 = n_gr2,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 71.4 |
| s (Muestra 1) | 2.2211 |
| n (Muestra 1) | 10 |
| Media (Muestra 2) | 65.6 |
| s (Muestra 2) | 2.2211 |
| n (Muestra 2) | 10 |
| Diferencia estimada | 5.8 |
| Grados de libertad | 18 |
| Error estándar | 0.9933 |
| Grado de confianza | 0.95 |
| Valor crítico | 2.1009 |
| Margen de error | 2.0869 |
| Extremo inferior | 3.7131 |
| Extremo superior | 7.8869 |
| Intervalo | 5.8 ± 2.0869 |
Se calcula el número de éxitos y el tamaño muestral dentro de cada grupo.
La diferencia se calcula en el orden:
\[\text{Grupo 1} \; −\; \text{Grupo 2}\]
# Se calcula el número de éxitos para cada uno de los dos grupos
fumador_gr1 <- sum(datos$fumador[datos$grupo == "Grupo 1"] == "Sí")
fumador_gr2 <- sum(datos$fumador[datos$grupo == "Grupo 2"] == "Sí")
# Se calcula el tamaño muestral para cada uno de los dos grupos
n_gr1 <- sum(datos$grupo == "Grupo 1")
n_gr2 <- sum(datos$grupo == "Grupo 2")
# Calcula el intervalo
resultado <- ic_dif_proporciones(
exitos1 = fumador_gr1,
n1 = n_gr1,
exitos2 = fumador_gr2,
n2 = n_gr2,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Éxitos (Muestra 1) | 7 |
| n (Muestra 1) | 10 |
| Proporción (Muestra 1) | 0.7 |
| Éxitos (Muestra 2) | 4 |
| n (Muestra 2) | 10 |
| Proporción (Muestra 2) | 0.4 |
| Diferencia estimada | 0.3 |
| Error estándar | 0.2121 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.4158 |
| Extremo inferior | -0.1158 |
| Extremo superior | 0.7158 |
| Intervalo | 0.3 ± 0.4158 |
Este intervalo permite comparar la variabilidad de la variable x en los dos grupos.
La razón se calcula en el orden:
\[\frac{\text{Grupo 1}}{\text{Grupo 2}}\]
var_gr1 <- var(puntaje1)
var_gr2 <- var(puntaje2)
n_gr1 <- length(puntaje1)
n_gr2 <- length(puntaje2)
resultado <- ic_razon_varianzas(
varianza1 = var_gr1,
varianza2 = var_gr2,
n1 = n_gr1,
n2 = n_gr2,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Varianza (Muestra 1) | 4.9333 |
| n (Muestra 1) | 10 |
| Grados de libertad (Muestra 1) | 9 |
| Varianza (Muestra 2) | 4.9333 |
| n (Muestra 2) | 10 |
| Grados de libertad (Muestra 2) | 9 |
| Razón de varianzas | 1 |
| Grado de confianza | 0.95 |
| Valor crítico inferior | 0.2484 |
| Valor crítico superior | 4.026 |
| Extremo inferior | 0.2484 |
| Extremo superior | 4.026 |
| Intervalo | (0.2484, 4.026) |
En esta sección se utiliza el conjunto de datos survey
del paquete lsm, recopilado mediante una encuesta aplicada
a una muestra de estudiantes universitarios. La descripción de sus
variables puede consultarse en este enlace (clic
aquí).
Las estadísticas resumidas se calcularán directamente a partir de las variables de la base de datos.
Para acceder a la base de datos, hacemos:
#Base de datos
datosCompleto <- lsm::survey
# Para los ejemplos de esta sección utilizaremos únicamente las primeras 100 observaciones
df1 <- datosCompleto[1:100,]
# Para otros ejemplos de esta sección utilizaremos únicamente las primeras 29 observaciones
df2 <- datosCompleto[1:29,]
# Dimensión de las dos bases de datos (observaciones, variables)
dim(datosCompleto)
dim(df1)
## Dimensión de la base de datos original: 800 observaciones y 66 variables.
## Dimensión del data frame (df1) utilizado en los ejemplos: 100 observaciones y 66 variables.
## Dimensión del segundo data frame (df2) utilizado en los ejemplos: 29 observaciones y 66 variables.
En los siguientes ejemplos utilizaremos las variables
Age, Gender y School.
Age representa la edad del estudiante.
Gender tiene las categorías Female y
male.
School tiene, entre otros, los niveles
Private y Public.
Antes de continuar, se verifican los niveles observados.
unique(df1$Gender)
unique(df1$School)
## Niveles de Gender: Female Male
## Niveles de School: Private Public
Se calcula el intervalo de confianza para la edad media. Para ilustrar el procedimiento con \(Z\), se supondrá conocida una desviación estándar poblacional igual a \(6\) años.
# Elimina los valores perdidos (NA)
edad <- df1$Age[!is.na(df1$Age)]
# Calcula media y tamaño
media_edad <- mean(edad)
n_edad <- length(edad)
# Calcula el intervalo
resultado <- ic_media_z(
media = media_edad,
sigma = 6,
n = n_edad,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media | 18.9374 |
| σ | 6 |
| Error estándar | 0.6 |
| n | 100 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 1.176 |
| Extremo inferior | 17.7614 |
| Extremo superior | 20.1134 |
| Intervalo | 18.9374 ± 1.176 |
Como normalmente la desviación estándar poblacional es desconocida,
se utiliza la desviación estándar muestral de la variable
Age.
# Elimina los valores perdidos (NA)
edad <- df2$Age[!is.na(df2$Age)]
# Calcula media y tamaño
media_edad <- mean(edad)
s_edad <- sd(edad)
n_edad <- length(edad)
# Calcula el intervalo
resultado <- ic_media_t(
media = media_edad,
s = s_edad,
n = n_edad,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media | 19.2641 |
| s | 2.0637 |
| Error estándar | 0.3832 |
| n | 29 |
| Grados de libertad | 28 |
| Grado de confianza | 0.95 |
| Valor crítico | 2.0484 |
| Margen de error | 0.785 |
| Extremo inferior | 18.4792 |
| Extremo superior | 20.0491 |
| Intervalo | 19.2641 ± 0.785 |
En este ejemplo se estima la proporción poblacional de estudiantes de
género Female. El número de éxitos corresponde al número de
observaciones clasificadas como Female.
# Elimina los valores perdidos (NA)
genero <- df1$Gender[!is.na(df1$Gender)]
# Calcula número de estudiantes de género Female (éxitos) y tamaño total de la muestra.
total_fem <- sum(genero == "Female")
n_fem <- length(genero)
# Calcula el intervalo
resultado <- ic_proporcion(
exitos = total_fem,
n = n_fem,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Éxitos | 49 |
| n | 100 |
| Proporción | 0.49 |
| Error estándar | 0.05 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.098 |
| Extremo inferior | 0.392 |
| Extremo superior | 0.588 |
| Intervalo | 0.49 ± 0.098 |
La varianza muestral de la variable Age se utiliza para
estimar la varianza poblacional de las edades.
# Elimina los valores perdidos (NA)
edad <- df1$Age[!is.na(df1$Age)]
# Calcula varianza y tamaño
varianza_edad <- var(edad)
n_edad <- length(edad)
# Calcula el intervalo
resultado <- ic_varianza(
varianza = varianza_edad,
n = n_edad,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Varianza muestral | 4.0816 |
| n | 100 |
| Grados de libertad | 99 |
| Grado de confianza | 0.95 |
| Cuantil inferior | 73.3611 |
| Cuantil superior | 128.422 |
| Extremo inferior | 3.1465 |
| Extremo superior | 5.508 |
| Intervalo | (3.1465, 5.508) |
df1Primero se eliminan las observaciones con valores faltantes en
Age o School. Luego se conservan únicamente
los estudiantes procedentes de colegios Private y
Public.
# Conservar solo observaciones válidas de Age y School, correspondientes a colegios privados o públicos.
datos_edad_df1 <- df1[
!is.na(df1$Age) &
!is.na(df1$School) &
df1$School %in% c("Private", "Public"),
]
# Se separan las edades según el tipo de colegio.
edad_private_df1 <- datos_edad_df1$Age[datos_edad_df1$School == "Private"]
edad_public_df1 <- datos_edad_df1$Age[datos_edad_df1$School == "Public"]
# Se calculan las estadísticas resumidas de cada grupo.
media_private_df1 <- mean(edad_private_df1)
media_public_df1 <- mean(edad_public_df1)
s_private_df1 <- sd(edad_private_df1)
s_public_df1 <- sd(edad_public_df1)
n_private_df1 <- length(edad_private_df1)
n_public_df1 <- length(edad_public_df1)
A partir de estos resultados, se obtiene el siguiente resumen para cada grupo:
tabla_muestras <- data.frame(
Estadística = c(
"Tamaño muestral (n)",
"Media",
"Desviación estándar"
),
Private = c(n_private_df1, round(media_private_df1, 2), round(s_private_df1, 2)),
Public = c(n_public_df1, round(media_public_df1, 2), round(s_public_df1, 2)),
check.names = FALSE
)
tabla_muestras
| Estadística | Private | Public |
|---|---|---|
| Tamaño muestral (n) | 50.00 | 50.00 |
| Media | 19.08 | 18.79 |
| Desviación estándar | 2.19 | 1.84 |
Las estadísticas presentadas en la tabla corresponden a los argumentos que se utilizarán posteriormente en las funciones para comparar las medias de los dos grupos:
media1 y media2: medias
muestrales;
s1 y s2: desviaciones estándar
muestrales;
n1 y n2: tamaños muestrales.
En los procedimientos siguientes, el grupo Private se
considerará como el Grupo 1 y el grupo
Public como el Grupo 2.
df2Primero se eliminan las observaciones con valores faltantes en
Age o School. Luego se conservan únicamente
los estudiantes procedentes de colegios Private y
Public.
# Conservar solo observaciones válidas de Age y School, correspondientes a colegios privados o públicos.
datos_edad_df2 <- df2[
!is.na(df2$Age) &
!is.na(df2$School) &
df2$School %in% c("Private", "Public"),
]
# Se separan las edades según el tipo de colegio.
edad_private_df2 <- datos_edad_df2$Age[datos_edad_df2$School == "Private"]
edad_public_df2 <- datos_edad_df2$Age[datos_edad_df2$School == "Public"]
# Se calculan las estadísticas resumidas de cada grupo.
media_private_df2 <- mean(edad_private_df2)
media_public_df2 <- mean(edad_public_df2)
s_private_df2 <- sd(edad_private_df2)
s_public_df2 <- sd(edad_public_df2)
n_private_df2 <- length(edad_private_df2)
n_public_df2 <- length(edad_public_df2)
A partir de estos resultados, se obtiene el siguiente resumen para cada grupo:
tabla_muestras <- data.frame(
Estadística = c(
"Tamaño muestral (n)",
"Media",
"Desviación estándar"
),
Private = c(n_private_df2, round(media_private_df2, 2), round(s_private_df2, 2)),
Public = c(n_public_df2, round(media_public_df2, 2), round(s_public_df2, 2)),
check.names = FALSE
)
tabla_muestras
| Estadística | Private | Public |
|---|---|---|
| Tamaño muestral (n) | 15.00 | 14.00 |
| Media | 19.20 | 19.33 |
| Desviación estándar | 2.37 | 1.77 |
Las estadísticas presentadas en la tabla corresponden a los argumentos que se utilizarán posteriormente en las funciones para comparar las medias de los dos grupos:
media1 y media2: medias
muestrales;
s1 y s2: desviaciones estándar
muestrales;
n1 y n2: tamaños muestrales.
En los procedimientos siguientes, el grupo Private se
considerará como el Grupo 1 y el grupo
Public como el Grupo 2.
Se estima la diferencia entre la edad media de los estudiantes procedentes de colegios privados y públicos.
Es decir, la diferencia se calcula en el orden:
\[\text{Grupo 1 (Private)} \quad −\quad \text{Grupo 2 (Public)}\]
resultado <- ic_dif_medias_z(
media1 = media_private_df1,
media2 = media_public_df1,
sigma1 = 6,
sigma2 = 6,
n1 = n_private_df1,
n2 = n_public_df1,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 19.0842 |
| σ (Muestra 1) | 6 |
| n (Muestra 1) | 50 |
| Media (Muestra 2) | 18.7906 |
| σ (Muestra 2) | 6 |
| n (Muestra 2) | 50 |
| Diferencia estimada | 0.2936 |
| Error estándar | 1.2 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 2.352 |
| Extremo inferior | -2.0584 |
| Extremo superior | 2.6456 |
| Intervalo | 0.2936 ± 2.352 |
Este procedimiento compara las edades medias de los dos grupos suponiendo que las varianzas poblacionales son desconocidas, pero iguales.
La diferencia se calcula en el orden:
\[\text{Grupo 1 (Private)} \quad −\quad \text{Grupo 2 (Public)}\]
resultado <- ic_dif_medias_t_si(
media1 = media_private_df2,
media2 = media_public_df2,
s1 = s_private_df2,
s2 = s_public_df2,
n1 = n_private_df2,
n2 = n_public_df2,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 19.1993 |
| s (Muestra 1) | 2.3681 |
| n (Muestra 1) | 15 |
| Media (Muestra 2) | 19.3336 |
| s (Muestra 2) | 1.7672 |
| n (Muestra 2) | 14 |
| Diferencia estimada | -0.1342 |
| Varianza combinada | 4.4116 |
| Desviación combinada | 2.1004 |
| Grados de libertad | 27 |
| Error estándar | 0.7805 |
| Grado de confianza | 0.95 |
| Valor crítico | 2.0518 |
| Margen de error | 1.6015 |
| Extremo inferior | -1.7357 |
| Extremo superior | 1.4673 |
| Intervalo | -0.1342 ± 1.6015 |
Cuando no se supone igualdad de varianzas, se utiliza el procedimiento de Welch para comparar las edades medias de los dos grupos.
La diferencia se calcula en el orden:
\[\text{Grupo 1 (Private)} \quad −\quad \text{Grupo 2 (Public)}\]
resultado <- ic_dif_medias_t_no(
media1 = media_private_df2,
media2 = media_public_df2,
s1 = s_private_df2,
s2 = s_public_df2,
n1 = n_private_df2,
n2 = n_public_df2,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 19.1993 |
| s (Muestra 1) | 2.3681 |
| n (Muestra 1) | 15 |
| Media (Muestra 2) | 19.3336 |
| s (Muestra 2) | 1.7672 |
| n (Muestra 2) | 14 |
| Diferencia estimada | -0.1342 |
| Grados de libertad | 25.7995 |
| Error estándar | 0.7726 |
| Grado de confianza | 0.95 |
| Valor crítico | 2.0563 |
| Margen de error | 1.5888 |
| Extremo inferior | -1.723 |
| Extremo superior | 1.4545 |
| Intervalo | -0.1342 ± 1.5888 |
Para comparar la proporción de mujeres entre los estudiantes procedentes de colegios privados y públicos:
Primero se eliminan las observaciones con valores faltantes en
las variables Gender y School.
Posteriormente se conservan únicamente los estudiantes
provenientes de colegios Private y
Public.
# Conservar solo observaciones válidas de Gender y School (para colegios privados o públicos).
datos_genero_df1 <- df1[
!is.na(df1$Gender) &
!is.na(df1$School) &
df1$School %in% c("Private", "Public"),
]
# Se separa la variable Gender según el tipo de colegio.
genero_private_df1 <- datos_genero_df1$Gender[datos_genero_df1$School == "Private"]
genero_public_df1 <- datos_genero_df1$Gender[datos_genero_df1$School == "Public"]
# Se cuenta el número de estudiantes de género Female (éxitos) en cada grupo.
exitos_private_df1 <- sum(genero_private_df1 == "Female")
exitos_public_df1 <- sum(genero_public_df1 == "Female")
# Se calcula el tamaño muestral de cada grupo.
n_private_genero_df1 <- length(genero_private_df1)
n_public_genero_df1 <- length(genero_public_df1)
A partir de estos resultados, se obtiene el siguiente resumen para cada grupo:
tabla_genero <- data.frame(
Estadística = c(
"Tamaño muestral (n)",
"Número de mujeres (éxitos)",
"Proporción de mujeres"
),
Private = c(
n_private_genero_df1,
exitos_private_df1,
round(exitos_private_df1 / n_private_genero_df1, 3)
),
Public = c(
n_public_genero_df1,
exitos_public_df1,
round(exitos_public_df1 / n_public_genero_df1, 3)
),
check.names = FALSE
)
tabla_genero
| Estadística | Private | Public |
|---|---|---|
| Tamaño muestral (n) | 50.00 | 50.00 |
| Número de mujeres (éxitos) | 26.00 | 23.00 |
| Proporción de mujeres | 0.52 | 0.46 |
Observe que las cantidades éxitos y n corresponden
exactamente a los argumentos que posteriormente se utilizarán en la
función ic_dif_proporciones().
Se estima la diferencia entre la proporción de mujeres procedentes de colegios privados y la proporción de mujeres procedentes de colegios públicos.
La diferencia se calcula en el orden:
\[\text{Grupo 1 (Private)} \quad −\quad \text{Grupo 2 (Public)}\]
resultado <- ic_dif_proporciones(
exitos1 = exitos_private_df1,
n1 = n_private_genero_df1,
exitos2 = exitos_public_df1,
n2 = n_public_genero_df1,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Éxitos (Muestra 1) | 26 |
| n (Muestra 1) | 50 |
| Proporción (Muestra 1) | 0.52 |
| Éxitos (Muestra 2) | 23 |
| n (Muestra 2) | 50 |
| Proporción (Muestra 2) | 0.46 |
| Diferencia estimada | 0.06 |
| Error estándar | 0.0998 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.1956 |
| Extremo inferior | -0.1356 |
| Extremo superior | 0.2556 |
| Intervalo | 0.06 ± 0.1956 |
Este intervalo compara la variabilidad de las edades entre los estudiantes procedentes de colegios privados y públicos.
La razón se calcula en el orden:
\[\frac{\text{Grupo 1}}{\text{Grupo 2}}\]
varianza_private_df1<- var(edad_private_df1)
varianza_public_df1 <- var(edad_public_df1)
resultado <- ic_razon_varianzas(
varianza1 = varianza_private_df1,
varianza2 = varianza_public_df1,
n1 = n_private_df1,
n2 = n_public_df1,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Varianza (Muestra 1) | 4.8177 |
| n (Muestra 1) | 50 |
| Grados de libertad (Muestra 1) | 49 |
| Varianza (Muestra 2) | 3.3848 |
| n (Muestra 2) | 50 |
| Grados de libertad (Muestra 2) | 49 |
| Razón de varianzas | 1.4233 |
| Grado de confianza | 0.95 |
| Valor crítico inferior | 0.5675 |
| Valor crítico superior | 1.7622 |
| Extremo inferior | 0.8077 |
| Extremo superior | 2.5082 |
| Intervalo | (0.8077, 2.5082) |
Intervalos de confianza para uno y dos parámetros.
Aplicar los procedimientos estudiados para construir e interpretar intervalos de confianza para uno y dos parámetros poblacionales utilizando un conjunto de datos real. Además, fortalecer las habilidades para seleccionar muestras, obtener las estadísticas muestrales necesarias a partir de una base de datos y documentar adecuadamente todo el proceso mediante R Markdown.
Utilice el conjunto de datos survey del
paquete lsm, empleado durante las
clases.
Los lineamientos generales para la elaboración, entrega y evaluación de esta actividad se encuentran disponibles en:
https://rpubs.com/hllinas/R_Lineamiento_EstInf
No es necesario repetir dichos lineamientos en este documento.
Conociendo la base de datos
Responda las siguientes preguntas:
¿Cuántas observaciones tiene su base de datos?
¿Cuántas variables contiene?
Muestre los nombres de todas las variables.
Seleccione:
Dos variables cuantitativas que utilizará para construir intervalos para la media poblacional.
Dos variables dicotómicas que utilizará para construir intervalos para una proporción poblacional.
Una variable categórica con exactamente dos niveles que utilizará para definir los dos grupos que serán comparados en los intervalos de confianza para dos parámetros.
Justifique brevemente la selección realizada.
Importante:
Selección de una muestra
Construya un nuevo data frame denominado
Muestra1, compuesto por más de 100
observaciones seleccionadas de la base de datos original.
Construya un segundo data frame denominado
Muestra2, compuesto por menos de 29
observaciones seleccionadas de la base de datos original.
Asegúrese de que tanto Muestra1
como Muestra2 contengan observaciones
correspondientes a los dos niveles de la variable categórica
seleccionada para comparar las dos poblaciones.
Todas las estimaciones realizadas en la actividad deberán
calcularse utilizando únicamente Muestra1
o Muestra2, según corresponda.
Supuestos
Suponga, en todos los casos, que las variables cuantitativas poblacionales seleccionadas siguen una distribución normal.
Intervalos de confianza para un parámetro
Utilizando las muestras construidas en el punto 2, realice las siguientes estimaciones:
Utilizando Muestra1 (muestra
grande), construya un intervalo de confianza para la diferencia de
medias poblacionales, empleando la aproximación basada en la
distribución normal.
Utilizando Muestra2 (muestra
pequeña), construya un intervalo de confianza para la diferencia de
medias poblacionales, suponiendo desconocidas pero iguales las
varianzas poblacionales. Emplee la distribución \(t\) de Student.
Utilizando nuevamente Muestra2,
construya un intervalo de confianza para la diferencia de medias
poblacionales, suponiendo desconocidas y diferentes las
varianzas poblacionales. Emplee la distribución \(t\) de Student.
Utilizando nuevamente Muestra2,
construya otro intervalo de confianza para la media poblacional
mediante la distribución \(t\) de
Student, utilizando una variable cuantitativa diferente de la empleada
en el inciso anterior.
Utilizando Muestra1, construya un
intervalo de confianza para una proporción poblacional, a partir de una
las variables dicotómicas seleccionadas.
Utilizando Muestra1, construya un
intervalo de confianza para una proporción poblacional, a partir de la
segunda variable dicotómica seleccionada.
Para cada intervalo:
Presente claramente los resultados obtenidos.
Indentifique el parámetro poblacional que se está estimando.
Presente e interprete los principales elementos del procedimiento: estimación puntual, error estándar, valor crítico, margen de error y límites inferior y superior del intervalo.
Interprete el intervalo de confianza en el contexto de la variable y del problema analizado.
Organice el desarrollo de acuerdo con la plantilla utilizada en clases: datos, supuestos, conclusión, fómula, procedimiento, resultados e interpretación.
Preparación de los dos grupos
Utilizando la variable categórica seleccionada en el punto 1:
Construya dos subconjuntos de datos, uno para cada nivel de la variable categórica.
Seleccione una variable cuantitativa que permita comparar las medias y las varianzas de los dos grupos.
Seleccione una variable dicotómica que permita comparar las proporciones de los dos grupos.
Obtenga, para cada grupo, todas las estadísticas resumidas necesarias para construir los intervalos de confianza solicitados en la siguiente sección..
Intervalos de confianza para dos parámetros
Utilizando los dos grupos definidos anteriormente, construya:
Un intervalo de confianza para la diferencia de medias suponiendo conocidas las desviaciones estándar poblacionales.
Un intervalo de confianza para la diferencia de medias suponiendo desconocidas pero iguales las varianzas poblacionales.
Un intervalo de confianza para la diferencia de medias suponiendo desconocidas y diferentes las varianzas poblacionales.
Un intervalo de confianza para la diferencia de proporciones poblacionales.
Un intervalo de confianza para la razón de varianzas poblacionales.
Para cada intervalo:
Presente claramente los resultados obtenidos.
Indentifique el parámetro poblacional que se está estimando.
Presente e interprete los principales elementos del procedimiento que correspondan en cada caso: estimación puntual, error estándar, valor crítico, margen de error y límites inferior y superior del intervalo.
Interprete el intervalo de confianza en el contexto de las variables y de los grupos analizados.
Organice el desarrollo de acuerdo con la plantilla utilizada en clases: datos, supuestos, conclusión, fómula, procedimiento, resultados e interpretación.
Comparación entre procedimientos
Responda las siguientes preguntas:
¿Qué diferencias conceptuales y prácticas observa entre los intervalos construidos utilizando las distribuciones (Z) y (t) de Student?
Compare los tres intervalos obtenidos para la diferencia de medias poblacionales. ¿Qué similitudes y diferencias observa entre ellos? Explique teniendo en cuenta los supuestos utilizados en cada procedimiento.
¿Qué efecto tiene el supuesto de varianzas iguales o diferentes sobre el intervalo de confianza para la diferencia de medias?
¿Qué información aporta el intervalo de confianza para la diferencia de proporciones poblacionales?
¿Qué información aporta el intervalo de confianza para la razón de varianzas poblacionales? Explique cómo puede utilizarse para comparar la variabilidad de los dos grupos.
Conclusión
Escriba una conclusión de dos o tres párrafos en la que analice los principales resultados obtenidos.
Entre otros aspectos, responda:
¿Qué conclusiones pueden obtenerse sobre la población a partir de los intervalos construidos?
¿Qué diferencias observó entre los procedimientos utilizados para estimar uno y dos parámetros poblacionales?
¿Qué efecto tuvieron el tamaño de la muestra y los supuestos sobre las estimaciones realizadas?
¿Qué limitaciones presentan los intervalos de confianza obtenidos?
Todas las tablas deberán estar numeradas y tituladas.
Todas las afirmaciones deberán sustentarse con los resultados obtenidos.
Muestre el código utilizado para obtener las estadísticas resumidas antes de construir cada intervalo de confianza.
Justifique los supuestos utilizados en cada procedimiento.
El código debe estar comentado y ejecutarse sin errores.
Recuerde consultar los lineamientos generales del curso para conocer los requisitos de reproducibilidad, entrega y evaluación.
RStudio, R Markdown y R (por lo menos, el capítulo 1): Click derecho aquí.
Lineamientos (actividades de análisis de datos): Click derecho aquí.
Tablas estadísticas: Click derecho aquí.
Tabla de supuestos: Click derecho aquí.
LLinás, H., Rojas, C. (2005). Estadística descriptiva y distribuciones de probabilidad. Barranquilla: Editorial Universidad del Norte.
Consultar mis notas de clase: Estadística inferencial
Consultar el documento RPubs :: Enlace y materiales de ayuda.
Agresti, A., Franklin, C., & Klingenberg, B. (2018). Statistics: The Art and Science of Learning from Data, 4/E.
Puede consultarse mis siguientes documentos:
If you found any ERRORS or have SUGGESTIONS, please report them to my email. Thanks.