knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE, fig.width = 10, fig.height = 6)
# Cargar librerías
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
library(nortest)
library(car)
## Warning: package 'car' was built under R version 4.4.3
## Cargando paquete requerido: carData
## Warning: package 'carData' was built under R version 4.4.3
library(gplots)
## Warning: package 'gplots' was built under R version 4.4.3
##
## Adjuntando el paquete: 'gplots'
## The following object is masked from 'package:stats':
##
## lowess
Ejercicio 1. Realice un texto explicando la estadística paramétrica y no paramétrica indique, qué es, para qué sirve, cuáles son características principales y realice un cuadro de diferencias entre una y otra.
¿Qué es la Estadística Paramétrica? La estadística paramétrica es un conjunto de procedimientos de inferencia estadística que asumen que los datos provienen de una distribución de probabilidad específica (generalmente la distribución normal) y que pueden caracterizarse mediante parámetros poblacionales conocidos como la media (μ) y la varianza (σ²).
Supuestos a cumplir
-Variables cuantitativas continuas
-Formar la curva de Gauss
-Independencia entre observaciones
-Homogeneidad de varianzas
¿Para qué sirve?
- Realizar inferencias sobre parámetros poblacionales cuando se cumplen los supuestos
Comparar medias entre grupos
Establecer relaciones entre variables cuantitativas
Hacer predicciones basadas en modelos matemáticos
Características principales: Asume distribución normal de los datos Requiere datos en escala intervalar o de razón Trabaja con medias y varianzas Mayor poder estadístico cuando se cumplen los supuestos Más sensible a valores atípicos
Tipos de pruebas: - t de Student para muestras relacionadas o independientes - Análisis de varianza - ANOVA de una y 2 vías - Coeficiente de correlación de Pearson
¿Qué es la Estadística No Paramétrica? La estadística no paramétrica comprende pruebas estadísticas que NO asumen una distribución específica de los datos, por lo que también se conocen como pruebas de distribución libre o libres de distribución.
¿Para qué sirve? Analizar datos cuando NO se cumplen supuestos paramétricos Trabajar con datos ordinales o nominales Analizar muestras pequeñas Datos con valores atípicos extremos
Características principales: No requiere normalidad en los datos Trabaja con rangos, medianas o frecuencias Más robusta ante valores atípicos Menor poder estadístico que las paramétricas Útil para datos cuantitativos (discontinuos) y cualitativos (ordinales o nominales)
Variables cuantitativas: Cuando los datos cuantitativos no presentan una distribución normal, existen varios métodos estadísticos para comparar medianas. El test de Wilcoxon es adecuado para analizar mediciones en el mismo grupo antes y después de una intervención, es decir, para muestras relacionadas. Si lo que se busca es contrastar dos grupos que son independientes, se recomienda la prueba U de Mann-Whitney. Para la comparación de tres o más grupos independientes se emplea la prueba de Kruskal-Wallis, que es una alternativa no paramétrica al ANOVA de una vía. Finalmente, si el objetivo es comparar tres o más mediciones en un solo grupo (muestras relacionadas), la prueba estadística apropiada es la de Friedman, que corresponde al equivalente no paramétrico del ANOVA de dos vías.
Variables cualitativas: Cuando los datos son de tipo nominal u ordinal y el objetivo es comparar dos grupos, se pueden emplear diferentes pruebas según la relación entre las muestras. La prueba de McNemar es apropiada para muestras relacionadas, mientras que la prueba de Chi-cuadrada se utiliza cuando los grupos son independientes. Por otra parte, si se busca comparar tres o más grupos, se recomienda aplicar la prueba Q de Cochran para muestras relacionadas, y nuevamente la Chi-cuadrada cuando las muestras son independientes.
Pruebas para saber si los datos son paramétricos o no paramétricos: Shapiro-Wilk: Recomendado para muestras pequeñas (n<50) Kolmogorov-Smirnov: Prueba complementaria Gráficos: Histogramas y Q-Q plots para análisis visual Si p-valor > 0.05 → datos normales (usar pruebas paramétricas) Si p-valor < 0.05 → datos NO normales (usar pruebas no paramétricas)
Tabla comparativa
| Característica | Paramétrica | No paramétrica |
|---|---|---|
| Distribución | Asume normalidad | No asume distribución |
| Tipo de datos | Continuos (intervalo/razón) | Ordinales, nominales o continuos no normales |
| Medidas | Media, varianza | Mediana, rangos |
| Supuestos | Histogramas Gráficos Q-Q Pruebas de hipótesis |
Pocos o ninguno |
| Poder estadístico | Mayor (si se cumplen los supuestos) | Menor (más robusta ante violaciones) |
| Tamaño de muestra | Preferible n ≥ 30 | Útil con muestras pequeñas |
| Sensibilidad a atípicos | Alta (sensible) | Baja (robusta) |
| Pruebas típicas | t de Student; ANOVA; Pearson | Mann–Whitney U; Wilcoxon; Kruskal–Wallis; Friedman; Spearman/Kendall |
Ejercicio 2. Realice las pruebas de normalidad a las variables que se detallan a continuación y exprese su decisión de cada una de ellas. Estas pruebas se realizarán utilizando el software R con análisis de tipo gráfico y formal.
a <- c(28,26,31,21,21,32,24,26,28,30,26,23,20,28,33,28,33,23,27,31,28,29,34,32,33)
b <- c(22,29,24,24,23,23,25,23,33,28,31,23,28,28,26,30,30,28,22,19,29,18,31,28,27)
c <- c(23,26,29,28,25,19,22,27,33,22,22,22,15,19,24,25,20,25,34,21,23,18,26,26,23)
d <- c(28,28,25,25,25,30,27,28,29,28,25,28,27,28,30,25,28,28,28,30,27,25,25,28,30)
e <- c(28,27,28,25,27,28,25,27,29,27,25,25,29,29,29,28,28,25,27,28,28,25,29,25,27)
f <- c(25,28,27,29,27,25,25,25,25,27,27,28,28,25,27,27,25,25,27,28,25,28,29,25,27)
#Prueba para a#
# Estadísticos descriptivos
cat("Media:", mean(a), "\n")
## Media: 27.8
cat("Mediana:", median(a), "\n")
## Mediana: 28
cat("Desviación Estándar:", sd(a), "\n")
## Desviación Estándar: 4.112988
cat("n =", length(a), "\n\n")
## n = 25
# Prueba de Shapiro-Wilk
sw_a <- shapiro.test(a)
cat("Prueba de Shapiro-Wilk:\n")
## Prueba de Shapiro-Wilk:
cat("W =", sw_a$statistic, "\n")
## W = 0.9476575
cat("p-valor =", sw_a$p.value, "\n\n")
## p-valor = 0.2218966
# Prueba de Kolmogorov-Smirnov
ks_a <- lillie.test(a)
cat("Prueba de Kolmogorov-Smirnov (Lilliefors):\n")
## Prueba de Kolmogorov-Smirnov (Lilliefors):
cat("D =", ks_a$statistic, "\n")
## D = 0.1193915
cat("p-valor =", ks_a$p.value, "\n\n")
## p-valor = 0.4738268
# Decisión
if(sw_a$p.value > 0.05 & ks_a$p.value > 0.05) {
cat("DECISIÓN: Los datos SIGUEN una distribución NORMAL (p > 0.05)\n")
cat("Se pueden aplicar pruebas PARAMÉTRICAS.\n")
} else {
cat("DECISIÓN: Los datos NO siguen distribución normal (p < 0.05)\n")
cat("Se deben aplicar pruebas NO PARAMÉTRICAS.\n")
}
## DECISIÓN: Los datos SIGUEN una distribución NORMAL (p > 0.05)
## Se pueden aplicar pruebas PARAMÉTRICAS.
par(mfrow=c(1,2))
hist(a, main="Histograma - Variable A", xlab="Valores", col="lightblue", breaks=8)
qqnorm(a, main="Q-Q Plot - Variable A"); qqline(a, col="red", lwd=2)
#Prueba para b#
cat("Media:", mean(b), "\n")
## Media: 26.08
cat("Mediana:", median(b), "\n")
## Mediana: 27
cat("Desviación Estándar:", sd(b), "\n")
## Desviación Estándar: 3.872123
cat("n =", length(b), "\n\n")
## n = 25
sw_b <- shapiro.test(b)
cat("Shapiro-Wilk: W =", sw_b$statistic, ", p-valor =", sw_b$p.value, "\n")
## Shapiro-Wilk: W = 0.9616203 , p-valor = 0.4476826
ks_b <- lillie.test(b)
cat("Kolmogorov-Smirnov: D =", ks_b$statistic, ", p-valor =", ks_b$p.value, "\n\n")
## Kolmogorov-Smirnov: D = 0.1700006 , p-valor = 0.06046472
if(sw_b$p.value > 0.05 & ks_b$p.value > 0.05) {
cat("DECISIÓN: Distribución NORMAL → usar pruebas PARAMÉTRICAS\n")
} else {
cat("DECISIÓN: NO normal → usar pruebas NO PARAMÉTRICAS\n")
}
## DECISIÓN: Distribución NORMAL → usar pruebas PARAMÉTRICAS
par(mfrow=c(1,2))
hist(b, main="Histograma - Variable B", xlab="Valores", col="lightgreen", breaks=8)
qqnorm(b, main="Q-Q Plot - Variable B"); qqline(b, col="red", lwd=2)
#Prueba para c#
cat("Media:", mean(c), "\n")
## Media: 23.88
cat("Mediana:", median(c), "\n")
## Mediana: 23
cat("Desviación Estándar:", sd(c), "\n")
## Desviación Estándar: 4.361957
cat("n =", length(c), "\n\n")
## n = 25
sw_c <- shapiro.test(c)
cat("Shapiro-Wilk: W =", sw_c$statistic, ", p-valor =", sw_c$p.value, "\n")
## Shapiro-Wilk: W = 0.9704529 , p-valor = 0.6565786
ks_c <- lillie.test(c)
cat("Kolmogorov-Smirnov: D =", ks_c$statistic, ", p-valor =", ks_c$p.value, "\n\n")
## Kolmogorov-Smirnov: D = 0.1134763 , p-valor = 0.5569022
if(sw_c$p.value > 0.05 & ks_c$p.value > 0.05) {
cat("DECISIÓN: Distribución NORMAL → usar pruebas PARAMÉTRICAS\n")
} else {
cat("DECISIÓN: NO normal → usar pruebas NO PARAMÉTRICAS\n")
}
## DECISIÓN: Distribución NORMAL → usar pruebas PARAMÉTRICAS
par(mfrow=c(1,2))
hist(c, main="Histograma - Variable C", xlab="Valores", col="lightyellow", breaks=8)
qqnorm(c, main="Q-Q Plot - Variable C"); qqline(c, col="red", lwd=2)
#Prueba para d#
cat("Media:", mean(d), "\n")
## Media: 27.4
cat("Mediana:", median(d), "\n")
## Mediana: 28
cat("Desviación Estándar:", sd(d), "\n")
## Desviación Estándar: 1.755942
cat("n =", length(d), "\n\n")
## n = 25
sw_d <- shapiro.test(d)
cat("Shapiro-Wilk: W =", sw_d$statistic, ", p-valor =", sw_d$p.value, "\n")
## Shapiro-Wilk: W = 0.8514513 , p-valor = 0.001876778
ks_d <- lillie.test(d)
cat("Kolmogorov-Smirnov: D =", ks_d$statistic, ", p-valor =", ks_d$p.value, "\n\n")
## Kolmogorov-Smirnov: D = 0.2337105 , p-valor = 0.001102371
if(sw_d$p.value > 0.05 & ks_d$p.value > 0.05) {
cat("DECISIÓN: Distribución NORMAL → usar pruebas PARAMÉTRICAS\n")
} else {
cat("DECISIÓN: NO normal → usar pruebas NO PARAMÉTRICAS\n")
}
## DECISIÓN: NO normal → usar pruebas NO PARAMÉTRICAS
par(mfrow=c(1,2))
hist(d, main="Histograma - Variable D", xlab="Valores", col="lightpink", breaks=8)
qqnorm(d, main="Q-Q Plot - Variable D"); qqline(d, col="red", lwd=2)
#Prueba para e#
cat("Media:", mean(e), "\n")
## Media: 27.12
cat("Mediana:", median(e), "\n")
## Mediana: 27
cat("Desviación Estándar:", sd(e), "\n")
## Desviación Estándar: 1.508863
cat("n =", length(e), "\n\n")
## n = 25
sw_e <- shapiro.test(e)
cat("Shapiro-Wilk: W =", sw_e$statistic, ", p-valor =", sw_e$p.value, "\n")
## Shapiro-Wilk: W = 0.8403 , p-valor = 0.001159024
ks_e <- lillie.test(e)
cat("Kolmogorov-Smirnov: D =", ks_e$statistic, ", p-valor =", ks_e$p.value, "\n\n")
## Kolmogorov-Smirnov: D = 0.2001276 , p-valor = 0.01108366
if(sw_e$p.value > 0.05 & ks_e$p.value > 0.05) {
cat("DECISIÓN: Distribución NORMAL → usar pruebas PARAMÉTRICAS\n")
} else {
cat("DECISIÓN: NO normal → usar pruebas NO PARAMÉTRICAS\n")
}
## DECISIÓN: NO normal → usar pruebas NO PARAMÉTRICAS
par(mfrow=c(1,2))
hist(e, main="Histograma - Variable E", xlab="Valores", col="lavender", breaks=8)
qqnorm(e, main="Q-Q Plot - Variable E"); qqline(e, col="red", lwd=2)
#Prueba para f#
cat("Media:", mean(f), "\n")
## Media: 26.56
cat("Mediana:", median(f), "\n")
## Mediana: 27
cat("Desviación Estándar:", sd(f), "\n")
## Desviación Estándar: 1.416569
cat("n =", length(f), "\n\n")
## n = 25
sw_f <- shapiro.test(f)
cat("Shapiro-Wilk: W =", sw_f$statistic, ", p-valor =", sw_f$p.value, "\n")
## Shapiro-Wilk: W = 0.8272124 , p-valor = 0.0006702845
ks_f <- lillie.test(f)
cat("Kolmogorov-Smirnov: D =", ks_f$statistic, ", p-valor =", ks_f$p.value, "\n\n")
## Kolmogorov-Smirnov: D = 0.2646067 , p-valor = 8.945747e-05
if(sw_f$p.value > 0.05 & ks_f$p.value > 0.05) {
cat("DECISIÓN: Distribución NORMAL → usar pruebas PARAMÉTRICAS\n")
} else {
cat("DECISIÓN: NO normal → usar pruebas NO PARAMÉTRICAS\n")
}
## DECISIÓN: NO normal → usar pruebas NO PARAMÉTRICAS
par(mfrow=c(1,2))
hist(f, main="Histograma - Variable F", xlab="Valores", col="peachpuff", breaks=8)
qqnorm(f, main="Q-Q Plot - Variable F"); qqline(f, col="red", lwd=2)
Ejercicio 3. Realice el análisis de varianza de los siguientes datos y exprese sus resultados según corresponda. No olvide hacer el gráfico.
A <- c(21, 26, 31, 23, 21, 30, 26, 24, 22, 19)
B <- c(32, 30, 18, 27, 25, 28, 27, 27, 28, 22)
C <- c(26, 20, 24, 27, 21, 28, 24, 27, 32, 32)
D <- c(18, 30, 24, 27, 24, 21, 22, 22, 28, 29)
# Crear data frame
datos_anova <- data.frame(
Valores = c(A, B, C, D),
Grupo = factor(rep(c("A", "B", "C", "D"), each=10))
)
# Estadísticos descriptivos
aggregate(Valores ~ Grupo, datos_anova, function(x) {
c(Media = mean(x), Mediana = median(x), DE = sd(x), n = length(x))
})
## Grupo Valores.Media Valores.Mediana Valores.DE Valores.n
## 1 A 24.300000 23.500000 3.945462 10.000000
## 2 B 26.400000 27.000000 3.977716 10.000000
## 3 C 26.100000 26.500000 4.040077 10.000000
## 4 D 24.500000 24.000000 3.894440 10.000000
cat("Grupo A: Shapiro-Wilk p-valor =", shapiro.test(A)$p.value, "\n")
## Grupo A: Shapiro-Wilk p-valor = 0.504116
cat("Grupo B: Shapiro-Wilk p-valor =", shapiro.test(B)$p.value, "\n")
## Grupo B: Shapiro-Wilk p-valor = 0.3356725
cat("Grupo C: Shapiro-Wilk p-valor =", shapiro.test(C)$p.value, "\n")
## Grupo C: Shapiro-Wilk p-valor = 0.585694
cat("Grupo D: Shapiro-Wilk p-valor =", shapiro.test(D)$p.value, "\n\n")
## Grupo D: Shapiro-Wilk p-valor = 0.7256583
cat("CONCLUSIÓN: Todos los p-valores > 0.05, los datos son normales en cada grupo.\n")
## CONCLUSIÓN: Todos los p-valores > 0.05, los datos son normales en cada grupo.
levene_test <- leveneTest(Valores ~ Grupo, data = datos_anova)
print(levene_test)
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 3 0.1004 0.9593
## 36
if(levene_test$`Pr(>F)`[1] > 0.05) {
cat("\nCONCLUSIÓN: Las varianzas son homogéneas (p > 0.05). Supuesto cumplido.\n")
} else {
cat("\nCONCLUSIÓN: Las varianzas NO son homogéneas (p < 0.05).\n")
}
##
## CONCLUSIÓN: Las varianzas son homogéneas (p > 0.05). Supuesto cumplido.
modelo_anova <- aov(Valores ~ Grupo, data = datos_anova)
resumen <- summary(modelo_anova)
print(resumen)
## Df Sum Sq Mean Sq F value Pr(>F)
## Grupo 3 34.9 11.62 0.74 0.535
## Residuals 36 565.9 15.72
p_valor <- resumen[[1]]$`Pr(>F)`[1]
f_valor <- resumen[[1]]$`F value`[1]
cat("\n========================================\n")
##
## ========================================
cat("INTERPRETACIÓN:\n")
## INTERPRETACIÓN:
cat("========================================\n\n")
## ========================================
cat("Hipótesis:\n")
## Hipótesis:
cat(" H0: μA = μB = μC = μD\n")
## H0: μA = μB = μC = μD
cat(" H1: Al menos una media es diferente\n\n")
## H1: Al menos una media es diferente
cat(sprintf("Estadístico F = %.4f\n", f_valor))
## Estadístico F = 0.7395
cat(sprintf("p-valor = %.4f\n", p_valor))
## p-valor = 0.5354
cat(sprintf("α = 0.05\n\n"))
## α = 0.05
if(p_valor < 0.05) {
cat("DECISIÓN: Se RECHAZA H0\n\n")
cat("CONCLUSIÓN: Existe evidencia estadística significativa de que\n")
cat("al menos una de las medias es diferente entre los grupos (p < 0.05).\n")
} else {
cat("DECISIÓN: NO se rechaza H0\n\n")
cat("CONCLUSIÓN: No hay evidencia suficiente para afirmar que las\n")
cat("medias son diferentes (p > 0.05). Los grupos son iguales.\n")
}
## DECISIÓN: NO se rechaza H0
##
## CONCLUSIÓN: No hay evidencia suficiente para afirmar que las
## medias son diferentes (p > 0.05). Los grupos son iguales.
par(mfrow=c(1,2))
# Boxplot
boxplot(Valores ~ Grupo, data = datos_anova,
main = "Comparación de Grupos - ANOVA",
xlab = "Grupo", ylab = "Valores",
col = c("lightblue", "lightgreen", "lightyellow", "lightpink"),
border = "darkblue")
# Gráfico de medias
medias <- tapply(datos_anova$Valores, datos_anova$Grupo, mean)
errores <- tapply(datos_anova$Valores, datos_anova$Grupo,
function(x) qt(0.975, df=length(x)-1) * sd(x)/sqrt(length(x)))
barplot2(medias,
plot.ci = TRUE,
ci.l = medias - errores,
ci.u = medias + errores,
main = "Medias con IC 95%",
xlab = "Grupo", ylab = "Media",
col = c("lightblue", "lightgreen", "lightyellow", "lightpink"),
ylim = c(0, max(medias + errores) * 1.2))
par(mfrow=c(1,1))
Ejercicio 4. El consejo de la ciudad de Tamazula considera aumentar el número de policías en un esfuerzo para reducir los delitos. Antes de tomar una decisión final, el ayuntamiento pide al jefe de policía realizar una encuesta en otras ciudades de tamaño similar para determinar la relación entre el número de policías y el número de delitos reportados. El jefe de policía reunió la siguiente información muestral
ciudad <- c("Cd. Guzmán", "Zapotiltic", "Tamazula", "Huescalapa",
"Contla", "Mazamitla", "Gómez Farías", "Sayula")
policias <- c(4, 1, 3, 6, 6, 8, 3, 2)
delitos <- c(7, 5, 4, 6, 5, 4, 7, 4)
datos <- data.frame(Ciudad = ciudad, Policias = policias, Delitos = delitos)
print(datos)
## Ciudad Policias Delitos
## 1 Cd. Guzmán 4 7
## 2 Zapotiltic 1 5
## 3 Tamazula 3 4
## 4 Huescalapa 6 6
## 5 Contla 6 5
## 6 Mazamitla 8 4
## 7 Gómez Farías 3 7
## 8 Sayula 2 4
correlacion <- cor(policias, delitos)
cor_test <- cor.test(policias, delitos)
cat("========================================\n")
## ========================================
cat("COEFICIENTE DE CORRELACIÓN\n")
## COEFICIENTE DE CORRELACIÓN
cat("========================================\n\n")
## ========================================
cat(sprintf("r = %.4f\n\n", correlacion))
## r = -0.0591
cat("Prueba de significancia:\n")
## Prueba de significancia:
cat(sprintf(" t = %.4f\n", cor_test$statistic))
## t = -0.1451
cat(sprintf(" p-valor = %.4f\n", cor_test$p.value))
## p-valor = 0.8894
cat(sprintf(" IC 95%%: [%.4f, %.4f]\n\n", cor_test$conf.int[1], cor_test$conf.int[2]))
## IC 95%: [-0.7332, 0.6736]
# Interpretación
if(abs(correlacion) < 0.3) {
fuerza <- "DÉBIL"
} else if(abs(correlacion) < 0.7) {
fuerza <- "MODERADA"
} else {
fuerza <- "FUERTE"
}
if(correlacion > 0) {
direccion <- "POSITIVA"
} else {
direccion <- "NEGATIVA"
}
cat("INTERPRETACIÓN:\n")
## INTERPRETACIÓN:
cat(sprintf(" • Correlación %s y %s\n", fuerza, direccion))
## • Correlación DÉBIL y NEGATIVA
cat(sprintf(" • R² = %.4f (%.2f%% de variabilidad explicada)\n",
correlacion^2, correlacion^2 * 100))
## • R² = 0.0035 (0.35% de variabilidad explicada)
if(correlacion < 0) {
cat(" • A mayor número de policías, menor número de delitos\n")
cat(" • Relación inversa: más policías → menos crimen\n")
} else {
cat(" • A mayor número de policías, mayor número de delitos\n")
cat(" • Posible confusión: ciudades grandes tienen más policías Y más delitos\n")
}
## • A mayor número de policías, menor número de delitos
## • Relación inversa: más policías → menos crimen
if(cor_test$p.value < 0.05) {
cat(sprintf(" • La correlación ES significativa (p = %.4f < 0.05)\n", cor_test$p.value))
} else {
cat(sprintf(" • La correlación NO es significativa (p = %.4f > 0.05)\n", cor_test$p.value))
}
## • La correlación NO es significativa (p = 0.8894 > 0.05)
#Regresión
modelo <- lm(delitos ~ policias)
cat("\nResumen del Modelo:\n")
##
## Resumen del Modelo:
print(summary(modelo))
##
## Call:
## lm(formula = delitos ~ policias)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.3183 -1.1656 -0.2701 1.0362 1.7460
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.38264 1.03670 5.192 0.00203 **
## policias -0.03215 0.22166 -0.145 0.88941
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.382 on 6 degrees of freedom
## Multiple R-squared: 0.003495, Adjusted R-squared: -0.1626
## F-statistic: 0.02104 on 1 and 6 DF, p-value: 0.8894
cat("\n========================================\n")
##
## ========================================
cat("ECUACIÓN DE REGRESIÓN:\n")
## ECUACIÓN DE REGRESIÓN:
cat("========================================\n")
## ========================================
cat(sprintf("Delitos = %.4f + %.4f × Policías\n", coef(modelo)[1], coef(modelo)[2]))
## Delitos = 5.3826 + -0.0322 × Policías
plot(policias, delitos,
main = "Relación entre Número de Policías y Delitos",
xlab = "Número de Policías",
ylab = "Número de Delitos",
pch = 19,
col = "darkblue",
cex = 2,
xlim = c(0, max(policias) + 1),
ylim = c(0, max(delitos) + 1))
# Línea de regresión
abline(modelo, col = "red", lwd = 2)
# Líneas de referencia (medias)
abline(h = mean(delitos), lty = 2, col = "gray50")
abline(v = mean(policias), lty = 2, col = "gray50")
# Etiquetas de ciudades
text(policias, delitos, labels = ciudad, pos = 3, cex = 0.8, col = "darkred")
# Leyenda
legend("topright",
legend = c(sprintf("r = %.4f", correlacion),
sprintf("R² = %.4f", summary(modelo)$r.squared),
sprintf("p-valor = %.4f", cor_test$p.value)),
bty = "n", cex = 1.1)
grid(col = "lightgray", lty = "dotted")
Referencias
Bautista-Díaz, M. L., Victoria-Rodríguez, E., Vargas-Estrella, L. B.,
& Hernández-Chamosa, C. C. (2020). Pruebas estadísticas paramétricas
y no paramétricas: su clasificación, objetivos y características.
Educación y Salud Boletín Científico Instituto de Ciencias de la
Salud Universidad Autónoma del Estado de Hidalgo, 9(17),
78-81. https://doi.org/10.29057/icsa.v9i17.6293
Flores-Ruiz, E., Miranda-Novales, M. G., & Villasís-Keever, M. Á. (2017). El protocolo de investigación VI: cómo elegir la prueba estadística adecuada. Estadística inferencial. Revista Alergia México, 64(3), 364-370. https://doi.org/10.29262/ram.v64i3.304
Daniel, W. W. (2002). Bioestadística: Base para el análisis de las ciencias de la salud (4.ª ed.). Limusa Wiley. https://www.estadisticaparalainvestigacion.com/wp-content/uploads/2019/03/Bioestad%C3%ADstica-de-Daniel-Wayne.pdf