31/07/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 y descargar las librerías que vamos a utilizar.
library(lsm) # Para descargar una base de datos
library(knitr)
La hipótesis nula, denotada por \(H_0\), representa la afirmación que se somete a evaluación. La hipótesis alternativa, denotada por \(H_1\), expresa la posibilidad que se desea contrastar.
El nivel de significancia se representa mediante α. En este documento se utilizará, salvo indicación contraria, \(\alpha=0.05\).
La regla de decisión basada en el p-valor es:
si p-valor \(\leq \alpha\), se rechaza \(H_0\);
si p-valor \(>\alpha\), no se rechaza \(H_0\).
No rechazar \(H_0\) no significa demostrar que sea verdadera; únicamente indica que la muestra no proporciona evidencia suficiente para rechazarla.
Las funciones admiten tres tipos de hipótesis alternativas:
alternative = "two.sided" # bilateral
alternative = "greater" # cola derecha
alternative = "less" # cola izquierda
Funciones para pruebas de hipótesis
A continuación se presentan funciones desarrolladas para realizar las pruebas de hipótesis estudiadas en este capítulo. Cada función recibe las estadísticas muestrales necesarias y devuelve una tabla con las hipótesis, el estadístico de prueba, el p-valor, la decisión y una conclusión breve.
# ============================================================
# 1. Funciones auxiliares
# ============================================================
formato_num <- function(x, digitos = 4) {
format(
round(x, digitos),
nsmall = 0,
trim = TRUE,
scientific = FALSE
)
}
nombre_alternativa <- function(alternative) {
switch(
alternative,
"two.sided" = "Bilateral",
"greater" = "Cola derecha",
"less" = "Cola izquierda"
)
}
valor_p_normal <- function(estadistico, alternative) {
switch(
alternative,
"two.sided" = 2 * pnorm(-abs(estadistico)),
"greater" = pnorm(estadistico, lower.tail = FALSE),
"less" = pnorm(estadistico)
)
}
valor_p_t <- function(estadistico, gl, alternative) {
switch(
alternative,
"two.sided" = 2 * pt(-abs(estadistico), df = gl),
"greater" = pt(estadistico, df = gl, lower.tail = FALSE),
"less" = pt(estadistico, df = gl)
)
}
valor_p_chi <- function(estadistico, gl, alternative) {
switch(
alternative,
"two.sided" = min(
1,
2 * min(
pchisq(estadistico, df = gl),
pchisq(estadistico, df = gl, lower.tail = FALSE)
)
),
"greater" = pchisq(estadistico, df = gl, lower.tail = FALSE),
"less" = pchisq(estadistico, df = gl)
)
}
valor_p_f <- function(estadistico, gl1, gl2, alternative) {
switch(
alternative,
"two.sided" = min(
1,
2 * min(
pf(estadistico, df1 = gl1, df2 = gl2),
pf(estadistico, df1 = gl1, df2 = gl2, lower.tail = FALSE)
)
),
"greater" = pf(
estadistico,
df1 = gl1,
df2 = gl2,
lower.tail = FALSE
),
"less" = pf(
estadistico,
df1 = gl1,
df2 = gl2
)
)
}
decision_prueba <- function(valor_p, alpha) {
if (valor_p <= alpha) {
"Rechazar H0"
} else {
"No rechazar H0"
}
}
conclusion_prueba <- function(valor_p, alpha) {
if (valor_p <= alpha) {
paste0(
"Existe evidencia estadística suficiente, al nivel α = ",
formato_num(alpha),
", para apoyar H1"
)
} else {
paste0(
"No existe evidencia estadística suficiente, al nivel α = ",
formato_num(alpha),
", para apoyar H1"
)
}
}
validar_alternativa <- function(alternative) {
match.arg(alternative, c("two.sided", "greater", "less"))
}
# ============================================================
# 2. Prueba Z para una media con sigma conocida
# H0: mu = mu0
# ============================================================
ph_media_z <- function(media, sigma, n, mu0,
alpha = 0.05,
alternative = "two.sided",
digitos = 4) {
alternative <- validar_alternativa(alternative)
if (sigma <= 0 || n <= 1) {
stop("sigma debe ser positiva y n debe ser mayor que 1.")
}
error_estandar <- sigma / sqrt(n)
estadistico <- (media - mu0) / error_estandar
valor_p <- valor_p_normal(estadistico, alternative)
resultado <- data.frame(
Medida = c(
"Media muestral",
"Media bajo H0",
"σ",
"n",
"Error estándar",
"Tipo de prueba",
"Nivel de significancia",
"Estadístico Z",
"p-valor",
"Decisión",
"Conclusión"
),
Valor = c(
formato_num(media, digitos),
formato_num(mu0, digitos),
formato_num(sigma, digitos),
n,
formato_num(error_estandar, digitos),
nombre_alternativa(alternative),
formato_num(alpha, digitos),
formato_num(estadistico, digitos),
formato_num(valor_p, digitos),
decision_prueba(valor_p, alpha),
conclusion_prueba(valor_p, alpha)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 3. Prueba t para una media con sigma desconocida
# H0: mu = mu0
# ============================================================
ph_media_t <- function(media, s, n, mu0,
alpha = 0.05,
alternative = "two.sided",
digitos = 4) {
alternative <- validar_alternativa(alternative)
if (s <= 0 || n <= 1) {
stop("s debe ser positiva y n debe ser mayor que 1.")
}
gl <- n - 1
error_estandar <- s / sqrt(n)
estadistico <- (media - mu0) / error_estandar
valor_p <- valor_p_t(estadistico, gl, alternative)
resultado <- data.frame(
Medida = c(
"Media muestral",
"Media bajo H0",
"s",
"n",
"Grados de libertad",
"Error estándar",
"Tipo de prueba",
"Nivel de significancia",
"Estadístico t",
"p-valor",
"Decisión",
"Conclusión"
),
Valor = c(
formato_num(media, digitos),
formato_num(mu0, digitos),
formato_num(s, digitos),
n,
gl,
formato_num(error_estandar, digitos),
nombre_alternativa(alternative),
formato_num(alpha, digitos),
formato_num(estadistico, digitos),
formato_num(valor_p, digitos),
decision_prueba(valor_p, alpha),
conclusion_prueba(valor_p, alpha)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 4. Prueba Z para una proporción
# H0: p = p0
# ============================================================
ph_proporcion <- function(exitos, n, p0,
alpha = 0.05,
alternative = "two.sided",
digitos = 4) {
alternative <- validar_alternativa(alternative)
if (exitos < 0 || exitos > n) {
stop("El número de éxitos debe estar entre 0 y n.")
}
if (p0 <= 0 || p0 >= 1) {
stop("p0 debe estar entre 0 y 1.")
}
proporcion <- exitos / n
error_estandar <- sqrt(p0 * (1 - p0) / n)
estadistico <- (proporcion - p0) / error_estandar
valor_p <- valor_p_normal(estadistico, alternative)
resultado <- data.frame(
Medida = c(
"Éxitos",
"n",
"Proporción muestral",
"Proporción bajo H0",
"ES bajo H0",
"Tipo de prueba",
"Nivel de significancia",
"Estadístico Z",
"p-valor",
"Decisión",
"Conclusión"
),
Valor = c(
exitos,
n,
formato_num(proporcion, digitos),
formato_num(p0, digitos),
formato_num(error_estandar, digitos),
nombre_alternativa(alternative),
formato_num(alpha, digitos),
formato_num(estadistico, digitos),
formato_num(valor_p, digitos),
decision_prueba(valor_p, alpha),
conclusion_prueba(valor_p, alpha)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 5. Prueba chi-cuadrada para una varianza
# H0: sigma^2 = varianza0
# ============================================================
ph_varianza <- function(varianza, n, varianza0,
alpha = 0.05,
alternative = "two.sided",
digitos = 4) {
alternative <- validar_alternativa(alternative)
if (varianza <= 0 || varianza0 <= 0 || n <= 1) {
stop("Las varianzas deben ser positivas y n debe ser mayor que 1.")
}
gl <- n - 1
estadistico <- gl * varianza / varianza0
valor_p <- valor_p_chi(estadistico, gl, alternative)
resultado <- data.frame(
Medida = c(
"Varianza muestral",
"Varianza bajo H0",
"n",
"Grados de libertad",
"Tipo de prueba",
"Nivel de significancia",
"Estadístico chi-cuadrada",
"p-valor",
"Decisión",
"Conclusión"
),
Valor = c(
formato_num(varianza, digitos),
formato_num(varianza0, digitos),
n,
gl,
nombre_alternativa(alternative),
formato_num(alpha, digitos),
formato_num(estadistico, digitos),
formato_num(valor_p, digitos),
decision_prueba(valor_p, alpha),
conclusion_prueba(valor_p, alpha)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 6. Prueba Z para diferencia de medias
# Varianzas poblacionales conocidas
# H0: mu1 - mu2 = diferencia0
# ============================================================
ph_dif_medias_z <- function(media1, media2,
sigma1, sigma2,
n1, n2,
diferencia0 = 0,
alpha = 0.05,
alternative = "two.sided",
digitos = 4) {
alternative <- validar_alternativa(alternative)
if (sigma1 <= 0 || sigma2 <= 0 || n1 <= 1 || n2 <= 1) {
stop("Las desviaciones deben ser positivas y los tamaños mayores que 1.")
}
diferencia <- media1 - media2
error_estandar <- sqrt(
sigma1^2 / n1 +
sigma2^2 / n2
)
estadistico <- (diferencia - diferencia0) / error_estandar
valor_p <- valor_p_normal(estadistico, alternative)
resultado <- data.frame(
Medida = c(
"Media (Muestra 1)",
"σ (Muestra 1)",
"n (Muestra 1)",
"Media (Muestra 2)",
"σ (Muestra 2)",
"n (Muestra 2)",
"Diferencia observada",
"Diferencia bajo H0",
"Error estándar",
"Tipo de prueba",
"Nivel de significancia",
"Estadístico Z",
"p-valor",
"Decisión",
"Conclusión"
),
Valor = c(
formato_num(media1, digitos),
formato_num(sigma1, digitos),
n1,
formato_num(media2, digitos),
formato_num(sigma2, digitos),
n2,
formato_num(diferencia, digitos),
formato_num(diferencia0, digitos),
formato_num(error_estandar, digitos),
nombre_alternativa(alternative),
formato_num(alpha, digitos),
formato_num(estadistico, digitos),
formato_num(valor_p, digitos),
decision_prueba(valor_p, alpha),
conclusion_prueba(valor_p, alpha)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 7. Prueba t para diferencia de medias
# Varianzas desconocidas, pero iguales
# H0: mu1 - mu2 = diferencia0
# ============================================================
ph_dif_medias_t_si <- function(media1, media2,
s1, s2,
n1, n2,
diferencia0 = 0,
alpha = 0.05,
alternative = "two.sided",
digitos = 4) {
alternative <- validar_alternativa(alternative)
if (s1 <= 0 || s2 <= 0 || n1 <= 1 || n2 <= 1) {
stop("Las desviaciones deben ser positivas y los tamaños mayores que 1.")
}
diferencia <- media1 - media2
gl <- n1 + n2 - 2
varianza_combinada <- (
(n1 - 1) * s1^2 +
(n2 - 1) * s2^2
) / gl
s_combinada <- sqrt(varianza_combinada)
error_estandar <- s_combinada *
sqrt(1 / n1 + 1 / n2)
estadistico <- (diferencia - diferencia0) / error_estandar
valor_p <- valor_p_t(estadistico, gl, alternative)
resultado <- data.frame(
Medida = c(
"Media (Muestra 1)",
"s (Muestra 1)",
"n (Muestra 1)",
"Media (Muestra 2)",
"s (Muestra 2)",
"n (Muestra 2)",
"Diferencia observada",
"Diferencia bajo H0",
"Varianza combinada",
"Desviación combinada",
"Grados de libertad",
"Error estándar",
"Tipo de prueba",
"Nivel de significancia",
"Estadístico t",
"p-valor",
"Decisión",
"Conclusión"
),
Valor = c(
formato_num(media1, digitos),
formato_num(s1, digitos),
n1,
formato_num(media2, digitos),
formato_num(s2, digitos),
n2,
formato_num(diferencia, digitos),
formato_num(diferencia0, digitos),
formato_num(varianza_combinada, digitos),
formato_num(s_combinada, digitos),
gl,
formato_num(error_estandar, digitos),
nombre_alternativa(alternative),
formato_num(alpha, digitos),
formato_num(estadistico, digitos),
formato_num(valor_p, digitos),
decision_prueba(valor_p, alpha),
conclusion_prueba(valor_p, alpha)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 8. Prueba t de Welch para diferencia de medias
# Varianzas desconocidas y diferentes
# H0: mu1 - mu2 = diferencia0
# ============================================================
ph_dif_medias_t_no <- function(media1, media2,
s1, s2,
n1, n2,
diferencia0 = 0,
alpha = 0.05,
alternative = "two.sided",
digitos = 4) {
alternative <- validar_alternativa(alternative)
if (s1 <= 0 || s2 <= 0 || n1 <= 1 || n2 <= 1) {
stop("Las desviaciones deben ser positivas y los tamaños mayores que 1.")
}
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)
)
estadistico <- (diferencia - diferencia0) / error_estandar
valor_p <- valor_p_t(estadistico, gl, alternative)
resultado <- data.frame(
Medida = c(
"Media (Muestra 1)",
"s (Muestra 1)",
"n (Muestra 1)",
"Media (Muestra 2)",
"s (Muestra 2)",
"n (Muestra 2)",
"Diferencia observada",
"Diferencia bajo H0",
"Grados de libertad",
"Error estándar",
"Tipo de prueba",
"Nivel de significancia",
"Estadístico t",
"p-valor",
"Decisión",
"Conclusión"
),
Valor = c(
formato_num(media1, digitos),
formato_num(s1, digitos),
n1,
formato_num(media2, digitos),
formato_num(s2, digitos),
n2,
formato_num(diferencia, digitos),
formato_num(diferencia0, digitos),
formato_num(gl, digitos),
formato_num(error_estandar, digitos),
nombre_alternativa(alternative),
formato_num(alpha, digitos),
formato_num(estadistico, digitos),
formato_num(valor_p, digitos),
decision_prueba(valor_p, alpha),
conclusion_prueba(valor_p, alpha)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 9. Prueba Z para diferencia de proporciones
# H0: p1 - p2 = 0
# ============================================================
ph_dif_proporciones <- function(exitos1, n1,
exitos2, n2,
alpha = 0.05,
alternative = "two.sided",
digitos = 4) {
alternative <- validar_alternativa(alternative)
if (exitos1 < 0 || exitos1 > n1 ||
exitos2 < 0 || exitos2 > n2) {
stop("Los números de éxitos deben estar entre 0 y n.")
}
p1 <- exitos1 / n1
p2 <- exitos2 / n2
diferencia <- p1 - p2
proporcion_combinada <- (exitos1 + exitos2) / (n1 + n2)
error_estandar <- sqrt(
proporcion_combinada *
(1 - proporcion_combinada) *
(1 / n1 + 1 / n2)
)
estadistico <- diferencia / error_estandar
valor_p <- valor_p_normal(estadistico, alternative)
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 observada",
"Proporción combinada",
"ES bajo H0",
"Tipo de prueba",
"Nivel de significancia",
"Estadístico Z",
"p-valor",
"Decisión",
"Conclusión"
),
Valor = c(
exitos1,
n1,
formato_num(p1, digitos),
exitos2,
n2,
formato_num(p2, digitos),
formato_num(diferencia, digitos),
formato_num(proporcion_combinada, digitos),
formato_num(error_estandar, digitos),
nombre_alternativa(alternative),
formato_num(alpha, digitos),
formato_num(estadistico, digitos),
formato_num(valor_p, digitos),
decision_prueba(valor_p, alpha),
conclusion_prueba(valor_p, alpha)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 10. Prueba F para la razón de varianzas
# H0: sigma1^2 / sigma2^2 = razon0
# ============================================================
ph_razon_varianzas <- function(varianza1, varianza2,
n1, n2,
razon0 = 1,
alpha = 0.05,
alternative = "two.sided",
digitos = 4) {
alternative <- validar_alternativa(alternative)
if (varianza1 <= 0 || varianza2 <= 0 || razon0 <= 0) {
stop("Las varianzas y la razón bajo H0 deben ser positivas.")
}
gl1 <- n1 - 1
gl2 <- n2 - 1
razon_muestral <- varianza1 / varianza2
estadistico <- razon_muestral / razon0
valor_p <- valor_p_f(estadistico, gl1, gl2, alternative)
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 muestral",
"Razón bajo H0",
"Tipo de prueba",
"Nivel de significancia",
"Estadístico F",
"p-valor",
"Decisión",
"Conclusión"
),
Valor = c(
formato_num(varianza1, digitos),
n1,
gl1,
formato_num(varianza2, digitos),
n2,
gl2,
formato_num(razon_muestral, digitos),
formato_num(razon0, digitos),
nombre_alternativa(alternative),
formato_num(alpha, digitos),
formato_num(estadistico, digitos),
formato_num(valor_p, digitos),
decision_prueba(valor_p, alpha),
conclusion_prueba(valor_p, alpha)
),
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 a partir de estadísticas resumidas. En todos los casos se utiliza un nivel de significancia de \(\alpha=0.05\).
Cuando la desviación estándar poblacional (\(\sigma\)) es conocida, se puede usar la distribución normal estándar para evaluar, por ejemplo,
\[ H_0:\ \mu = 3.5 \qquad \text{frente a} \qquad H_1:\ \mu \neq 3.5. \]
resultado <- ph_media_z(
media = 4,
sigma = 2,
n = 100,
mu0 = 3.5,
alpha = 0.05,
alternative = "two.sided"
)
resultado
| Medida | Valor |
|---|---|
| Media muestral | 4 |
| Media bajo H0 | 3.5 |
| σ | 2 |
| n | 100 |
| Error estándar | 0.2 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico Z | 2.5 |
| p-valor | 0.0124 |
| Decisión | Rechazar H0 |
| Conclusión | Existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
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 <- ph_media_t(
media = 4,
s = 2,
n = 100,
mu0 = 3.5,
alpha = 0.05,
alternative = "two.sided"
)
resultado
| Medida | Valor |
|---|---|
| Media muestral | 4 |
| Media bajo H0 | 3.5 |
| s | 2 |
| n | 100 |
| Grados de libertad | 99 |
| Error estándar | 0.2 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico t | 2.5 |
| p-valor | 0.0141 |
| Decisión | Rechazar H0 |
| Conclusión | Existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Se desea determinar si la proporción poblacional de éxitos es diferente de 0.25.
resultado <- ph_proporcion(
exitos = 35,
n = 100,
p0 = 0.25,
alpha = 0.05,
alternative = "two.sided"
)
resultado
| Medida | Valor |
|---|---|
| Éxitos | 35 |
| n | 100 |
| Proporción muestral | 0.35 |
| Proporción bajo H0 | 0.25 |
| ES bajo H0 | 0.0433 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico Z | 2.3094 |
| p-valor | 0.0209 |
| Decisión | Rechazar H0 |
| Conclusión | Existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Se evalúa si la varianza poblacional es igual a 16.
resultado <- ph_varianza(
varianza = 25,
n = 30,
varianza0 = 16,
alpha = 0.05,
alternative = "two.sided"
)
resultado
| Medida | Valor |
|---|---|
| Varianza muestral | 25 |
| Varianza bajo H0 | 16 |
| n | 30 |
| Grados de libertad | 29 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico chi-cuadrada | 45.3125 |
| p-valor | 0.0549 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Se contrasta la igualdad de las medias poblacionales.
La diferencia se calcula en el orden:
\[ \text{Grupo 1}-\text{Grupo 2}. \]
resultado <- ph_dif_medias_z(
media1 = 45,
media2 = 40,
sigma1 = 8,
sigma2 = 10,
n1 = 50,
n2 = 60,
diferencia0 = 0,
alpha = 0.05,
alternative = "two.sided"
)
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 observada | 5 |
| Diferencia bajo H0 | 0 |
| Error estándar | 1.7166 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico Z | 2.9128 |
| p-valor | 0.0036 |
| Decisión | Rechazar H0 |
| Conclusión | Existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
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 <- ph_dif_medias_t_si(
media1 = 45,
media2 = 40,
s1 = 8,
s2 = 7,
n1 = 30,
n2 = 35,
diferencia0 = 0,
alpha = 0.05,
alternative = "two.sided"
)
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 observada | 5 |
| Diferencia bajo H0 | 0 |
| Varianza combinada | 55.9048 |
| Desviación combinada | 7.4769 |
| Grados de libertad | 63 |
| Error estándar | 1.8603 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico t | 2.6877 |
| p-valor | 0.0092 |
| Decisión | Rechazar H0 |
| Conclusión | Existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Si no es razonable asumir igualdad de varianzas, se utiliza la prueba de Welch.
La diferencia se calcula en el orden:
\[ \text{Grupo 1}-\text{Grupo 2}. \]
resultado <- ph_dif_medias_t_no(
media1 = 45,
media2 = 40,
s1 = 8,
s2 = 12,
n1 = 30,
n2 = 35,
diferencia0 = 0,
alpha = 0.05,
alternative = "two.sided"
)
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 observada | 5 |
| Diferencia bajo H0 | 0 |
| Grados de libertad | 59.6104 |
| Error estándar | 2.4995 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico t | 2.0004 |
| p-valor | 0.05 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Este ejemplo se evalúa si las dos proporciones poblacionales son iguales..
La diferencia se calcula en el orden:
\[ \text{Grupo 1}-\text{Grupo 2}. \]
resultado <- ph_dif_proporciones(
exitos1 = 5,
n1 = 100,
exitos2 = 7,
n2 = 150,
alpha = 0.05,
alternative = "two.sided"
)
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 observada | 0.0033 |
| Proporción combinada | 0.048 |
| ES bajo H0 | 0.0276 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico Z | 0.1208 |
| p-valor | 0.9039 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Se evalúa si las dos varianzas poblacionales son iguales.
La razón se calcula en el orden:
\[ \frac{\text{Grupo 1}} {\text{Grupo 2}}. \]
resultado <- ph_razon_varianzas(
varianza1 = 16,
varianza2 = 9,
n1 = 20,
n2 = 25,
razon0 = 1,
alpha = 0.05,
alternative = "two.sided"
)
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 muestral | 1.7778 |
| Razón bajo H0 | 1 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico F | 1.7778 |
| p-valor | 0.1828 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
En esta sección se utiliza el mismo data frame sencillo construido manualmente en las notas de intervalos de confianza.
El siguiente código crea un data frame con dos
variables cuantitativas (x e y), una variable
dicotómica (exito) 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)
)
x <- c(
72,68,75,70,73,71,69,74,70,72,
65,63,67,69,64,66,62,68,65,67
)
y <- c(
38,42,41,39,40,37,43,40,39,41,
35,37,34,36,38,35,39,37,36,34
)
exito <- c(
1,1,0,1,0,1,1,0,1,1,
0,1,0,0,1,0,1,0,1,0
)
datos <- data.frame(
grupo,
x,
y,
exito
)
datos
## grupo x y exito
## 1 Grupo 1 72 38 1
## 2 Grupo 1 68 42 1
## 3 Grupo 1 75 41 0
## 4 Grupo 1 70 39 1
## 5 Grupo 1 73 40 0
## 6 Grupo 1 71 37 1
## 7 Grupo 1 69 43 1
## 8 Grupo 1 74 40 0
## 9 Grupo 1 70 39 1
## 10 Grupo 1 72 41 1
## 11 Grupo 2 65 35 0
## 12 Grupo 2 63 37 1
## 13 Grupo 2 67 34 0
## 14 Grupo 2 69 36 0
## 15 Grupo 2 64 38 1
## 16 Grupo 2 66 35 0
## 17 Grupo 2 62 39 1
## 18 Grupo 2 68 37 0
## 19 Grupo 2 65 36 1
## 20 Grupo 2 67 34 0
La variable grupo identifica las dos muestras;
x y y son cuantitativas, mientras que
exito toma los valores \(1\) para éxito y \(0\) 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_x <- mean(datos$x)
n_x <- length(datos$x)
# Realiza la prueba
resultado <- ph_media_z(
media = media_x,
sigma = 9,
n = n_x,
mu0 = 68,
alpha = 0.05,
alternative = "two.sided"
)
resultado
| Medida | Valor |
|---|---|
| Media muestral | 68.5 |
| Media bajo H0 | 68 |
| σ | 9 |
| n | 20 |
| Error estándar | 2.0125 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico Z | 0.2485 |
| p-valor | 0.8038 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Como normalmente la desviación estándar poblacional es desconocida, se estima mediante la desviación estándar muestral de \(x\).
# Calcula media y tamaño
media_x <- mean(datos$x)
s_x <- sd(datos$x)
n_x <- length(datos$x)
# Realiza la prueba
resultado <- ph_media_t(
media = media_x,
s = s_x,
n = n_x,
mu0 = 68,
alpha = 0.05,
alternative = "two.sided"
)
resultado
| Medida | Valor |
|---|---|
| Media muestral | 68.5 |
| Media bajo H0 | 68 |
| s | 3.6778 |
| n | 20 |
| Grados de libertad | 19 |
| Error estándar | 0.8224 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico t | 0.608 |
| p-valor | 0.5504 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
En este caso, un valor igual a \(1\) en la variable exito representa un éxito. La suma 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
exitos <- sum(datos$exito)
n <- length(datos$exito)
# Realiza la prueba
resultado <- ph_proporcion(
exitos = exitos,
n = n,
p0 = 0.50,
alpha = 0.05,
alternative = "two.sided"
)
resultado
| Medida | Valor |
|---|---|
| Éxitos | 11 |
| n | 20 |
| Proporción muestral | 0.55 |
| Proporción bajo H0 | 0.5 |
| ES bajo H0 | 0.1118 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico Z | 0.4472 |
| p-valor | 0.6547 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Se evalúa si la varianza poblacional de \(x\) es igual a 20.
# Calcula varianza y tamaño
varianza_x <- var(datos$x)
n_x <- length(datos$x)
# Realiza la prueba
resultado <- ph_varianza(
varianza = varianza_x,
n = n_x,
varianza0 = 20,
alpha = 0.05,
alternative = "two.sided"
)
resultado
| Medida | Valor |
|---|---|
| Varianza muestral | 13.5263 |
| Varianza bajo H0 | 20 |
| n | 20 |
| Grados de libertad | 19 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico chi-cuadrada | 12.85 |
| p-valor | 0.3077 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Para comparar las medias de los dos grupos, primero se separan los
valores de la variable x 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 x correspondientes a cada uno de los grupos
x1 <- datos$x[datos$grupo == "Grupo 1"]
x2 <- datos$x[datos$grupo == "Grupo 2"]
# Calcula media, desviación y tamaño
media1 <- mean(x1)
media2 <- mean(x2)
s1 <- sd(x1)
s2 <- sd(x2)
n1 <- length(x1)
n2 <- length(x2)
Se evalúa si las medias poblacionales son iguales, suponiendo conocidas las desviaciones estándar poblacionales.
La diferencia se calcula en el orden:
\[ \text{Grupo 1}-\text{Grupo 2}. \]
resultado <- ph_dif_medias_z(
media1 = media1,
media2 = media2,
sigma1 = 8,
sigma2 = 10,
n1 = n1,
n2 = n2,
diferencia0 = 0,
alpha = 0.05,
alternative = "two.sided"
)
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 observada | 5.8 |
| Diferencia bajo H0 | 0 |
| Error estándar | 4.0497 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico Z | 1.4322 |
| p-valor | 0.1521 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
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 <- ph_dif_medias_t_si(
media1 = media1,
media2 = media2,
s1 = s1,
s2 = s2,
n1 = n1,
n2 = n2,
diferencia0 = 0,
alpha = 0.05,
alternative = "two.sided"
)
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 observada | 5.8 |
| Diferencia bajo H0 | 0 |
| Varianza combinada | 4.9333 |
| Desviación combinada | 2.2211 |
| Grados de libertad | 18 |
| Error estándar | 0.9933 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico t | 5.8391 |
| p-valor | 0 |
| Decisión | Rechazar H0 |
| Conclusión | Existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
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 <- ph_dif_medias_t_no(
media1 = media1,
media2 = media2,
s1 = s1,
s2 = s2,
n1 = n1,
n2 = n2,
diferencia0 = 0,
alpha = 0.05,
alternative = "two.sided"
)
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 observada | 5.8 |
| Diferencia bajo H0 | 0 |
| Grados de libertad | 18 |
| Error estándar | 0.9933 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico t | 5.8391 |
| p-valor | 0 |
| Decisión | Rechazar H0 |
| Conclusión | Existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Se evalúa si la proporción de éxitos es igual en los dos grupos.
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
exitos1 <- sum(datos$exito[datos$grupo == "Grupo 1"])
exitos2 <- sum(datos$exito[datos$grupo == "Grupo 2"])
# Se calcula el tamaño muestral para cada uno de los dos grupos
n1 <- sum(datos$grupo == "Grupo 1")
n2 <- sum(datos$grupo == "Grupo 2")
# Realiza la prueba
resultado <- ph_dif_proporciones(
exitos1 = exitos1,
n1 = n1,
exitos2 = exitos2,
n2 = n2,
alpha = 0.05,
alternative = "two.sided"
)
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 observada | 0.3 |
| Proporción combinada | 0.55 |
| ES bajo H0 | 0.2225 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico Z | 1.3484 |
| p-valor | 0.1775 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Se evalúa si las varianzas poblacionales de x son
iguales 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_g1 <- var(x1)
var_g2 <- var(x2)
# Se calcula el tamaño muestral de cada grupo.
n_g1 <- length(x1)
n_g2 <- length(x2)
# Realiza la prueba
resultado <- ph_razon_varianzas(
varianza1 = var_g1,
varianza2 = var_g2,
n1 = n_g1,
n2 = n_g2,
razon0 = 1,
alpha = 0.05,
alternative = "two.sided"
)
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 muestral | 1 |
| Razón bajo H0 | 1 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico F | 1 |
| p-valor | 1 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
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:
datosCompleto <- lsm::survey
dim(datosCompleto)
## [1] 800 66
df <- datosCompleto[1:100,]
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)
## [1] "Female" "Male"
unique(df$School)
## [1] "Private" "Public"
Para ilustrar el procedimiento con \(Z\), se evalúa si la edad media poblacional es igual a 20 años, suponiendo conocida una desviación estándar poblacional de 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)
# Realiza la prueba
resultado <- ph_media_z(
media = media_edad,
sigma = 6,
n = n_edad,
mu0 = 20,
alpha = 0.05,
alternative = "two.sided"
)
resultado
| Medida | Valor |
|---|---|
| Media muestral | 18.9374 |
| Media bajo H0 | 20 |
| σ | 6 |
| n | 100 |
| Error estándar | 0.6 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico Z | -1.771 |
| p-valor | 0.0766 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Como normalmente la desviación estándar poblacional es desconocida,
se utiliza la desviación estándar muestral de la variable
Age. En este ejemplo, se evalúa la misma hipótesis
utilizando la desviación estándar muestral.
# Elimina los valores perdidos (NA)
edad <- df$Age[!is.na(df$Age)]
# Calcula media, desviación y tamaño
media_edad <- mean(edad)
s_edad <- sd(edad)
n_edad <- length(edad)
# Realiza la prueba
resultado <- ph_media_t(
media = media_edad,
s = s_edad,
n = n_edad,
mu0 = 20,
alpha = 0.05,
alternative = "two.sided"
)
resultado
| Medida | Valor |
|---|---|
| Media muestral | 18.9374 |
| Media bajo H0 | 20 |
| s | 2.0203 |
| n | 100 |
| Grados de libertad | 99 |
| Error estándar | 0.202 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico t | -5.2596 |
| p-valor | 0 |
| Decisión | Rechazar H0 |
| Conclusión | Existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
En este ejemplo se evalúa si la proporción poblacional de estudiantes de género Female es igual a 0.50.
Para ello, 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)
# Realiza la prueba
resultado <- ph_proporcion(
exitos = total_fem,
n = n_fem,
p0 = 0.50,
alpha = 0.05,
alternative = "two.sided"
)
resultado
| Medida | Valor |
|---|---|
| Éxitos | 49 |
| n | 100 |
| Proporción muestral | 0.49 |
| Proporción bajo H0 | 0.5 |
| ES bajo H0 | 0.05 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico Z | -0.2 |
| p-valor | 0.8415 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Se evalúa si la varianza poblacional de las edades es igual a 16. 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)
# Realiza la prueba
resultado <- ph_varianza(
varianza = varianza_edad,
n = n_edad,
varianza0 = 16,
alpha = 0.05,
alternative = "two.sided"
)
resultado
| Medida | Valor |
|---|---|
| Varianza muestral | 4.0816 |
| Varianza bajo H0 | 16 |
| n | 100 |
| Grados de libertad | 99 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico chi-cuadrada | 25.2547 |
| p-valor | 0 |
| Decisión | Rechazar H0 |
| Conclusión | Existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Para comparar estudiantes procedentes de colegios privados y
públicos, se extraen las edades correspondientes a los niveles
Private y Public de la variable
School.
# Tome la variable Age, elimine las observaciones donde la edad sea NA, elimine las observaciones donde School sea NA y conserve únicamente aquellas cuyo colegio sea Private.
edad_private <- df$Age[
!is.na(df$Age) &
!is.na(df$School) &
df$School == "Private"
]
# Tome la variable Age, elimine las observaciones donde la edad sea NA, elimine las observaciones donde School sea NA y conserve únicamente aquellas cuyo colegio sea Public.
edad_public <- df$Age[
!is.na(df$Age) &
!is.na(df$School) &
df$School == "Public"
]
# Calcular media, desviación y tamaño para 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)
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 <- ph_dif_medias_z(
media1 = media_private,
media2 = media_public,
sigma1 = 6,
sigma2 = 6,
n1 = n_private,
n2 = n_public,
diferencia0 = 0,
alpha = 0.05,
alternative = "two.sided"
)
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 observada | 0.2936 |
| Diferencia bajo H0 | 0 |
| Error estándar | 1.2 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico Z | 0.2447 |
| p-valor | 0.8067 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
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 <- ph_dif_medias_t_si(
media1 = media_private,
media2 = media_public,
s1 = s_private,
s2 = s_public,
n1 = n_private,
n2 = n_public,
diferencia0 = 0,
alpha = 0.05,
alternative = "two.sided"
)
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 observada | 0.2936 |
| Diferencia bajo H0 | 0 |
| Varianza combinada | 4.1012 |
| Desviación combinada | 2.0251 |
| Grados de libertad | 98 |
| Error estándar | 0.405 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico t | 0.7249 |
| p-valor | 0.4702 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
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 <- ph_dif_medias_t_no(
media1 = media_private,
media2 = media_public,
s1 = s_private,
s2 = s_public,
n1 = n_private,
n2 = n_public,
diferencia0 = 0,
alpha = 0.05,
alternative = "two.sided"
)
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 observada | 0.2936 |
| Diferencia bajo H0 | 0 |
| Grados de libertad | 95.0978 |
| Error estándar | 0.405 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico t | 0.7249 |
| p-valor | 0.4703 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Para comparar la proporción de mujeres entre los estudiantes
procedentes de colegios privados y públicos, se conservan únicamente las
observaciones con información válida en Gender y
School.
# Conserve únicamente las observaciones que tengan información en Gender, tengan información en School y cuyo tipo de colegio sea Private o Public
datos_genero <- df[
!is.na(df$Gender) &
!is.na(df$School) &
df$School %in% c("Private", "Public"),
]
# Extraiga la variable Gender de todos los estudiantes cuyo colegio sea Private
genero_private <- datos_genero$Gender[datos_genero$School == "Private"]
# Extraiga la variable Gender de todos los estudiantes cuyo colegio sea Public
genero_public <- datos_genero$Gender[datos_genero$School == "Public"]
# Cuente cuántos estudiantes de género Female hay en cada grupo
exitos_private <- sum(genero_private == "Female")
exitos_public <- sum(genero_public == "Female")
# Tamaño muestral de cada grupo contando el número de observaciones que contiene cada vector
n_private_genero <- length(genero_private)
n_public_genero <- length(genero_public)
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 <- ph_dif_proporciones(
exitos1 = exitos_private,
n1 = n_private_genero,
exitos2 = exitos_public,
n2 = n_public_genero,
alpha = 0.05,
alternative = "two.sided"
)
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 observada | 0.06 |
| Proporción combinada | 0.49 |
| ES bajo H0 | 0.1 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico Z | 0.6001 |
| p-valor | 0.5484 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Se compara la variabilidad de las edades entre los estudiantes procedentes de colegios privados y públicos. En este caso, se evalúa si las varianzas poblacionales de las edades son iguales.
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)
resultado <- ph_razon_varianzas(
varianza1 = varianza_private,
varianza2 = varianza_public,
n1 = n_private,
n2 = n_public,
razon0 = 1,
alpha = 0.05,
alternative = "two.sided"
)
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 muestral | 1.4233 |
| Razón bajo H0 | 1 |
| Tipo de prueba | Bilateral |
| Nivel de significancia | 0.05 |
| Estadístico F | 1.4233 |
| p-valor | 0.2202 |
| Decisión | No rechazar H0 |
| Conclusión | No existe evidencia estadística suficiente, al nivel α = 0.05, para apoyar H1 |
Pruebas de hipótesis para uno y dos parámetros.
Aplicar los procedimientos estudiados para formular, ejecutar e interpretar pruebas de hipótesis para uno y dos parámetros poblacionales utilizando un conjunto de datos real.
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á con el fin de realizar pruebas para la media y la varianza;
una variable dicotómica que utilizará con el fin de realizar pruebas 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, realice:
una prueba \(Z\) para la media suponiendo conocida la desviación estándar poblacional.
una prueba \(t\) para la media suponiendo desconocida la desviación estándar poblacional.
una prueba para una proporción.
una prueba para una varianza.
Para cada prueba:
plantee \(H_0\) y \(H_1\);
indique el nivel de significancia utilizado;
justifique el valor propuesto bajo \(H_0\);
presente el estadístico y el p-valor;
tome una decisión;
redacte una conclusión contextualizada.
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 realizar la pruebas solicitadas en la siguiente sección.
Pruebas para dos parámetros
Utilizando los dos grupos definidos anteriormente, realice:
una prueba \(Z\) para la diferencia de medias suponiendo conocidas las desviaciones estándar poblacionales.
una prueba \(t\) para la diferencia de medias suponiendo varianzas desconocidas e iguales.
una prueba para la diferencia de medias suponiendo varianzas desconocidas y diferentes.
una prueba para la diferencia de proporciones.
una prueba para la razón de varianzas.
Para cada prueba:
plantee \(H_0\) y \(H_1\);
indique el nivel de significancia utilizado;
justifique el valor propuesto bajo \(H_0\);
presente el estadístico y el p-valor;
tome una decisión;
redacte una conclusión contextualizada.
Comparación entre procedimientos
Responda las siguientes preguntas:
¿Qué diferencias observa entre las pruebas \(Z\) y \(t\) para una media?
¿Los resultadoss obtenidos mediante los dos procedimientos para la diferencia de medias fueron similares? Explique.
¿Qué información aporta el resultado obtenido 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 resultados obtenidos?
¿Qué diferencias encontró entre trabajar con estadísticas resumidas y calcularlas directamente desde una base de datos?
¿Qué limitaciones presentan los análisis realizados?
Todas las hipótesis deben escribirse con notación estadística.
Todas las tablas deberán estar numeradas y tituladas.
Todas las afirmaciones deberán sustentarse con los resultados obtenidos.
Todas las decisiones deben justificarse mediante el p-valor y el nivel de significancia.
No escriba “se acepta \(H_0\)”; utilice “no se rechaza \(H_0\)”.
Muestre el código utilizado para obtener las estadísticas resumidas antes de realizar cada prueba.
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.