19/08/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 y se utiliza la desviación estándar muestral s. |
|
Intervalo Z para estimar una proporción poblacional. |
|
Intervalo basado en la distribución χ² para estimar una varianza poblacional. |
|
Intervalo Z para la diferencia de dos medias cuando las desviaciones estándar poblacionales σ₁ y σ₂ son conocidas. |
|
Intervalo t para la diferencia de dos medias cuando las varianzas poblacionales son desconocidas, pero se suponen iguales. |
|
Intervalo t de Welch para la diferencia de dos medias cuando las varianzas poblacionales son desconocidas y diferentes. |
|
Intervalo Z para estimar la diferencia entre dos proporciones poblacionales independientes. |
|
Intervalo basado en la distribución F para estimar la razón entre 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 = 4,
sigma = 2,
n = 100,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media | 4 |
| σ | 2 |
| Error estándar | 0.2 |
| n | 100 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.392 |
| Extremo inferior | 3.608 |
| Extremo superior | 4.392 |
| Intervalo | 4 ± 0.392 |
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 = 4,
s = 2,
n = 100,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media | 4 |
| s | 2 |
| Error estándar | 0.2 |
| n | 100 |
| Grados de libertad | 99 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.9842 |
| Margen de error | 0.3968 |
| Extremo inferior | 3.6032 |
| Extremo superior | 4.3968 |
| Intervalo | 4 ± 0.3968 |
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 = 35,
n = 100,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Éxitos | 35 |
| n | 100 |
| Proporción | 0.35 |
| Error estándar | 0.0477 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.0935 |
| Extremo inferior | 0.2565 |
| Extremo superior | 0.4435 |
| Intervalo | 0.35 ± 0.0935 |
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 = 25,
n = 30,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Varianza muestral | 25 |
| n | 30 |
| Grados de libertad | 29 |
| Grado de confianza | 0.95 |
| Cuantil inferior | 16.0471 |
| Cuantil superior | 45.7223 |
| Extremo inferior | 15.8566 |
| Extremo superior | 45.1796 |
| Intervalo | (15.8566, 45.1796) |
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 = 45,
media2 = 40,
sigma1 = 8,
sigma2 = 10,
n1 = 50,
n2 = 60,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 45 |
| σ (Muestra 1) | 8 |
| n (Muestra 1) | 50 |
| Media (Muestra 2) | 40 |
| σ (Muestra 2) | 10 |
| n (Muestra 2) | 60 |
| Diferencia estimada | 5 |
| Error estándar | 1.7166 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 3.3644 |
| Extremo inferior | 1.6356 |
| Extremo superior | 8.3644 |
| Intervalo | 5 ± 3.3644 |
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 = 45,
media2 = 40,
s1 = 8,
s2 = 7,
n1 = 30,
n2 = 35,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 45 |
| s (Muestra 1) | 8 |
| n (Muestra 1) | 30 |
| Media (Muestra 2) | 40 |
| s (Muestra 2) | 7 |
| n (Muestra 2) | 35 |
| Diferencia estimada | 5 |
| Varianza combinada | 55.9048 |
| Desviación combinada | 7.4769 |
| Grados de libertad | 63 |
| Error estándar | 1.8603 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.9983 |
| Margen de error | 3.7175 |
| Extremo inferior | 1.2825 |
| Extremo superior | 8.7175 |
| Intervalo | 5 ± 3.7175 |
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 = 45,
media2 = 40,
s1 = 8,
s2 = 12,
n1 = 30,
n2 = 35,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 45 |
| s (Muestra 1) | 8 |
| n (Muestra 1) | 30 |
| Media (Muestra 2) | 40 |
| s (Muestra 2) | 12 |
| n (Muestra 2) | 35 |
| Diferencia estimada | 5 |
| Grados de libertad | 59.6104 |
| Error estándar | 2.4995 |
| Grado de confianza | 0.95 |
| Valor crítico | 2.0006 |
| Margen de error | 5.0005 |
| Extremo inferior | -5e-04 |
| Extremo superior | 10.0005 |
| Intervalo | 5 ± 5.0005 |
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 = 5,
n1 = 100,
exitos2 = 7,
n2 = 150,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Éxitos (Muestra 1) | 5 |
| n (Muestra 1) | 100 |
| Proporción (Muestra 1) | 0.05 |
| Éxitos (Muestra 2) | 7 |
| n (Muestra 2) | 150 |
| Proporción (Muestra 2) | 0.0467 |
| Diferencia estimada | 0.0033 |
| Error estándar | 0.0278 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.0544 |
| Extremo inferior | -0.0511 |
| Extremo superior | 0.0578 |
| Intervalo | 0.0033 ± 0.0544 |
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 = 16,
varianza2 = 9,
n1 = 20,
n2 = 25,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Varianza (Muestra 1) | 16 |
| n (Muestra 1) | 20 |
| Grados de libertad (Muestra 1) | 19 |
| Varianza (Muestra 2) | 9 |
| n (Muestra 2) | 25 |
| Grados de libertad (Muestra 2) | 24 |
| Razón de varianzas | 1.7778 |
| Grado de confianza | 0.95 |
| Valor crítico inferior | 0.4078 |
| Valor crítico superior | 2.3452 |
| Extremo inferior | 0.7581 |
| Extremo superior | 4.3597 |
| Intervalo | (0.7581, 4.3597) |
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 e 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.
# Calcula varianza y tamaño
varianza_puntaje <- var(datos$puntaje)
n_puntaje <- length(datos$puntaje)
# Calcula el intervalo
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 |
Este procedimiento utiliza una varianza combinada y supone que las dos poblaciones tienen la misma varianza.
La diferencia se calcula en el orden:
\[ \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}}. \]
# Calcula las varianzas para cada uno de los dos grupos
var_gr1 <- var(puntaje1)
var_gr2 <- var(puntaje2)
# Se calcula el tamaño muestral de cada grupo.
n_gr1 <- length(puntaje1)
n_gr2 <- length(puntaje2)
# Calcula el intervalo
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
df <- datosCompleto[1:100,]
# Dimensión de las dos bases de datos (observaciones, variables)
dim(datosCompleto)
dim(df)
## Dimensión de la base de datos original: 800 observaciones y 66 variables.
## Dimensión del data frame utilizado en los ejemplos: 100 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(df$Gender)
unique(df$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 <- df$Age[!is.na(df$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 <- df$Age[!is.na(df$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 | 18.9374 |
| s | 2.0203 |
| Error estándar | 0.202 |
| n | 100 |
| Grados de libertad | 99 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.9842 |
| Margen de error | 0.4009 |
| Extremo inferior | 18.5365 |
| Extremo superior | 19.3383 |
| Intervalo | 18.9374 ± 0.4009 |
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 <- df$Gender[!is.na(df$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 <- df$Age[!is.na(df$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) |
Primero 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 <- df[
!is.na(df$Age) &
!is.na(df$School) &
df$School %in% c("Private", "Public"),
]
# Se separan las edades según el tipo de colegio.
edad_private <- datos_edad$Age[datos_edad$School == "Private"]
edad_public <- datos_edad$Age[datos_edad$School == "Public"]
# Se calculan las estadísticas resumidas de cada grupo.
media_private <- mean(edad_private)
media_public <- mean(edad_public)
s_private <- sd(edad_private)
s_public <- sd(edad_public)
n_private <- length(edad_private)
n_public <- length(edad_public)
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,
round(media_private, 2),
round(s_private, 2)
),
Public = c(
n_public,
round(media_public, 2),
round(s_public, 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 la Muestra 1 y el grupo
Public como la Muestra 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{Private}-\text{Public}. \]
Para ilustrar el procedimiento con \(Z\), se supondrán conocidas desviaciones estándar poblacionales iguales a \(6\) años.
resultado <- ic_dif_medias_z(
media1 = media_private,
media2 = media_public,
sigma1 = 6,
sigma2 = 6,
n1 = n_private,
n2 = n_public,
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{Private}-\text{Public}. \]
resultado <- ic_dif_medias_t_si(
media1 = media_private,
media2 = media_public,
s1 = s_private,
s2 = s_public,
n1 = n_private,
n2 = n_public,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 19.0842 |
| s (Muestra 1) | 2.1949 |
| n (Muestra 1) | 50 |
| Media (Muestra 2) | 18.7906 |
| s (Muestra 2) | 1.8398 |
| n (Muestra 2) | 50 |
| Diferencia estimada | 0.2936 |
| Varianza combinada | 4.1012 |
| Desviación combinada | 2.0251 |
| Grados de libertad | 98 |
| Error estándar | 0.405 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.9845 |
| Margen de error | 0.8038 |
| Extremo inferior | -0.5102 |
| Extremo superior | 1.0974 |
| Intervalo | 0.2936 ± 0.8038 |
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{Private}-\text{Public}. \]
resultado <- ic_dif_medias_t_no(
media1 = media_private,
media2 = media_public,
s1 = s_private,
s2 = s_public,
n1 = n_private,
n2 = n_public,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media (Muestra 1) | 19.0842 |
| s (Muestra 1) | 2.1949 |
| n (Muestra 1) | 50 |
| Media (Muestra 2) | 18.7906 |
| s (Muestra 2) | 1.8398 |
| n (Muestra 2) | 50 |
| Diferencia estimada | 0.2936 |
| Grados de libertad | 95.0978 |
| Error estándar | 0.405 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.9852 |
| Margen de error | 0.8041 |
| Extremo inferior | -0.5105 |
| Extremo superior | 1.0977 |
| Intervalo | 0.2936 ± 0.8041 |
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, correspondientes a colegios privados o públicos.
datos_genero <- df[
!is.na(df$Gender) &
!is.na(df$School) &
df$School %in% c("Private", "Public"),
]
# Se separa la variable Gender según el tipo de colegio.
genero_private <- datos_genero$Gender[datos_genero$School == "Private"]
genero_public <- datos_genero$Gender[datos_genero$School == "Public"]
# Se cuenta el número de estudiantes de género Female (éxitos) en cada grupo.
exitos_private <- sum(genero_private == "Female")
exitos_public <- sum(genero_public == "Female")
# Se calcula el tamaño muestral de cada grupo.
n_private_genero <- length(genero_private)
n_public_genero <- length(genero_public)
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,
exitos_private,
round(exitos_private / n_private_genero, 3)
),
Public = c(
n_public_genero,
exitos_public,
round(exitos_public / n_public_genero, 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{Private}-\text{Public}. \]
resultado <- ic_dif_proporciones(
exitos1 = exitos_private,
n1 = n_private_genero,
exitos2 = exitos_public,
n2 = n_public_genero,
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{Private}} {\text{Public}}. \]
# Calcula varianzas
varianza_private <- var(edad_private)
varianza_public <- var(edad_public)
# Calcula el intervalo
resultado <- ic_razon_varianzas(
varianza1 = varianza_private,
varianza2 = varianza_public,
n1 = n_private,
n2 = n_public,
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 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, el mismo 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 la base de datos?
¿Cuántas variables contiene?
Muestre los nombres de todas las variables.
Seleccione:
una variable cuantitativa que utilizará para construir intervalos para la media y la varianza;
una variable dicotómica que utilizará para construir intervalos para una proporción;
una variable categórica con exactamente dos niveles que utilizará para comparar dos poblaciones.
Justifique brevemente la selección realizada.
Importante:
Selección de una muestra
Construya un nuevo data frame denominado
Muestra con más de 100 observaciones
seleccionadas de la base de datos.
Todas las estimaciones realizadas en la actividad deberán calcularse utilizando únicamente esta muestra.
Intervalos de confianza para un parámetro
Utilizando la muestra seleccionada:
Construya un intervalo de confianza para la media suponiendo conocida la desviación estándar poblacional.
Construya un intervalo de confianza para la media suponiendo desconocida la desviación estándar poblacional.
Construya un intervalo de confianza para una proporción.
Construya un intervalo de confianza para una varianza.
Para cada intervalo:
indique el grado de confianza utilizado;
presente los resultados obtenidos;
interprete el intervalo en el contexto del problema.
Preparación de los dos grupos
Utilizando la variable categórica seleccionada:
construya dos subconjuntos correspondientes a cada uno de sus niveles;
obtenga 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 varianzas desconocidas e iguales.
Un intervalo de confianza para la diferencia de medias suponiendo varianzas desconocidas y diferentes.
Un intervalo de confianza para la diferencia de proporciones.
Un intervalo de confianza para la razón de varianzas.
Para cada intervalo:
presente los resultados obtenidos;
interprete el intervalo;
explique brevemente qué parámetro poblacional está siendo estimado.
Comparación entre procedimientos
Responda las siguientes preguntas:
¿Qué diferencias observa entre los intervalos construidos con las distribuciones \(Z\) y \(t\)?
¿Los intervalos obtenidos mediante los dos procedimientos para la diferencia de medias fueron similares? Explique.
¿Qué información aporta el intervalo para la razón de varianzas?
Conclusión
Escriba una conclusión de dos o tres párrafos donde 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 encontró entre trabajar con estadísticas resumidas y calcularlas directamente desde una base de datos?
¿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 cualquier supuesto realizado (por ejemplo, la desviación estándar poblacional utilizada en los procedimientos con el estadístico \(Z\)).
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.