Este análisis busca determinar si existen diferencias estadísticamente significativas en los niveles de IMC entre los municipios de Tuxpan, Tamazula, Zapotlán y Zapotiltic y si estos correlacionan o no entre sí. Para ello, se realizaron diferentes pruebas estadísticas, los cuales responderán algunas preguntas que fueron generadas durante el proceso.
En la Tabla 2 que se muestra a continuación, se presentan los datos utilizados para dichos análisis.
Tabla 2: IMC por Municipio
## Tuxpan Tamazula Zapotlan Zapotiltic
## 1 27 25 25 24
## 2 25 18 26 23
## 3 23 25 27 30
## 4 23 19 30 28
## 5 30 24 21 27
## 6 24 26 29 25
## 7 20 25 31 24
## 8 25 25 27 20
## 9 26 24 22 24
## 10 27 26 26 21
## 11 32 24 19 29
## 12 24 22 21 23
## 13 22 26 23 26
## 14 28 21 26 21
## 15 25 25 26 21
## 16 22 23 25 17
## 17 23 25 27 23
## 18 26 26 28 20
## 19 26 20 21 25
## 20 30 23 26 21
## 21 25 20 23 24
## 22 21 26 28 21
## 23 25 23 20 30
## 24 25 30 25 24
## 25 25 31 28 23
## 26 23 24 26 20
## 27 29 27 19 25
## 28 26 27 23 29
## 29 26 26 29 27
## 30 24 23 26 27
El primer paso consistió en asignar los datos de IMC a cada uno de los municipios con su respectivo nombre.
# Ingresar datos
imc2 <- data.frame(
Tuxpan = c(27,25,23,23,30,24,20,25,26,27,32,24,22,28,25,22,23,26,26,30,25,21,25,25,25,23,29,26,26,24),
Tamazula = c(25,18,25,19,24,26,25,25,24,26,24,22,26,21,25,23,25,26,20,23,20,26,23,30,31,24,27,27,26,23),
Zapotlan = c(25,26,27,30,21,29,31,27,22,26,19,21,23,26,26,25,27,28,21,26,23,28,20,25,28,26,19,23,29,26),
Zapotiltic = c(24,23,30,28,27,25,24,20,24,21,29,23,26,21,21,17,23,20,25,21,24,21,30,24,23,20,25,29,27,27)
)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## # A tibble: 6 × 2
## Municipio IMC
## <chr> <dbl>
## 1 Tuxpan 27
## 2 Tamazula 25
## 3 Zapotlan 25
## 4 Zapotiltic 24
## 5 Tuxpan 25
## 6 Tamazula 18
Para determinar si existen diferencias en los niveles de IMC de las personas en los 4 municipios, lo primero que se tiene que hacer es determinar la normalidad de los datos, con la intención de saber qué tipo de prueba estadística se utilizará posteriormente, para ello, se usan las pruebas gráficas, que consta de la gráficas Q-Q y las pruebas formales, que en este caso, se utilizó la prueba de Shapiro-Wilk.
###Gráficas Q-Q
library(ggplot2)
ggplot(imc_largo2, aes(sample = IMC)) +
stat_qq() + stat_qq_line() +
facet_wrap(~Municipio, scales = "free") +
ggtitle("Q-Q Plots por Municipio") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5)) +
scale_color_manual(values = c("Tuxpan" = "lightblue", "Tamazula" = "pink", "Zapotlan" = "lightblue", "Zapotiltic" = "pink"))
## Warning: No shared levels found between `names(values)` of the manual scale and the
## data's colour values.
###Pruebas formales (Shapiro-Wilk)
by(imc_largo2$IMC, imc_largo2$Municipio, shapiro.test)
## imc_largo2$Municipio: Tamazula
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.95488, p-value = 0.228
##
## ------------------------------------------------------------
## imc_largo2$Municipio: Tuxpan
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.96395, p-value = 0.3892
##
## ------------------------------------------------------------
## imc_largo2$Municipio: Zapotiltic
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.9644, p-value = 0.3992
##
## ------------------------------------------------------------
## imc_largo2$Municipio: Zapotlan
##
## Shapiro-Wilk normality test
##
## data: dd[x, ]
## W = 0.95285, p-value = 0.2014
Se observa entonces que tanto las pruebas gráficas como las pruebas formales indican que los datos de los 4 municipios presentan una distribución normal.
A continación, se realizó la prueba de homocedasticidad y la prueba de Levene, con la finalidad de determinar si las varianzas de los datos son similares y entonces poder seleccionar la prueba estadística que más se adecua para verificar si hay o no diferencias entre los datos.
ggplot(imc_largo2, aes(x = Municipio, y = IMC, fill = Municipio)) +
geom_boxplot() +
theme_minimal() +
scale_fill_manual(values = c("lightblue", "pink", "lightblue", "pink")) +
ggtitle("Boxplot de IMC por Municipio") +
theme(plot.title = element_text(hjust = 0.5)) +
theme(legend.position = "none")
library(car)
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
leveneTest(IMC ~ Municipio, data = imc_largo2)
## Warning in leveneTest.default(y = y, group = group, ...): group coerced to
## factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 3 0.681 0.5654
## 116
Los resultados de las pruebas nos indican que las varianzas de los datos son similares, por lo tanto, debido a que se cumple los criterios de: -Los datos de los 4 municipios presentan una distribución normal -Son homocedasticos y la varianza es similar entre ellos (prueba de Levene) Se puede deducir que los datos son aptos para utilizar la prueba ANOVA —
Se realiza la prueba correspondiente
kruskal.test(IMC ~ Municipio, data = imc_largo2)
##
## Kruskal-Wallis rank sum test
##
## data: IMC by Municipio
## Kruskal-Wallis chi-squared = 3.3972, df = 3, p-value = 0.3343
anova_model <- aov(IMC ~ Municipio, data = imc_largo2)
summary(anova_model)
## Df Sum Sq Mean Sq F value Pr(>F)
## Municipio 3 30.1 10.031 1.081 0.36
## Residuals 116 1076.2 9.278
Se concluye por lo tanto que no existen diferencias entre los IMC de los municipios.
Las pruebas Post-Hoc se utilizan para identificar cuáles fueron los grupos en donde se presentó la diferencia, puesto que en este ejemplo tras realizar la prueba ANOVA se observó que NO hay diferencia entre los grupos, no sería necesario realizar pruebas post-hoc, pero con la finalidad de corroborar los resultados, se realizó la prueba y se comprobó que en efecto ninguno de los grupos mostró diferencias.
library(FSA)
## Registered S3 methods overwritten by 'FSA':
## method from
## confint.boot car
## hist.boot car
## ## FSA v0.10.0. See citation('FSA') if used in publication.
## ## Run fishR() for related website and fishR('IFAR') for related book.
##
## Attaching package: 'FSA'
## The following object is masked from 'package:car':
##
## bootCase
dunnTest(IMC ~ Municipio, data = imc_largo2, method = "bonferroni")
## Warning: Municipio was coerced to a factor.
## Dunn (1964) Kruskal-Wallis multiple comparison
## p-values adjusted with the Bonferroni method.
## Comparison Z P.unadj P.adj
## 1 Tamazula - Tuxpan -1.0158598 0.3096962 1.0000000
## 2 Tamazula - Zapotiltic 0.3267931 0.7438244 1.0000000
## 3 Tuxpan - Zapotiltic 1.3426529 0.1793844 1.0000000
## 4 Tamazula - Zapotlan -1.2082009 0.2269700 1.0000000
## 5 Tuxpan - Zapotlan -0.1923411 0.8474750 1.0000000
## 6 Zapotiltic - Zapotlan -1.5349940 0.1247853 0.7487118
A continuación, se realizaron los análisis correspondientes para verificar si existen correlaciones entre los datos de IMC de los 4 municipios. Se generó una matriz de correlación, y se presentaron los resultados en un diagrama de calor, donde el color azul representa correlaciones positivas, y el color rojo correlaciones negativas.
cor_matrix2 <- cor(imc2)
cor_matrix2
## Tuxpan Tamazula Zapotlan Zapotiltic
## Tuxpan 1.00000000 -0.01810688 -0.5322067 0.1633216
## Tamazula -0.01810688 1.00000000 0.1334118 -0.0202623
## Zapotlan -0.53220670 0.13341175 1.0000000 -0.2962594
## Zapotiltic 0.16332161 -0.02026230 -0.2962594 1.0000000
library(corrplot)
## corrplot 0.95 loaded
# Crear paleta de colores con gradiente
col_gradient <- colorRampPalette(c("Purple", "white", "blue"))(200)
# Gráfico tipo pirámide con color de fondo y números
corrplot(cor_matrix2,
method = "color", # Cuadros coloreados
type = "lower", # Solo triángulo inferior
col = col_gradient, # Gradiente de color
addCoef.col = "black", # Mostrar valores numéricos en negro
number.cex = 0.7, # Tamaño de los números
tl.cex = 0.8) # Tamaño de las etiquetas
Los reusltados muestran que solamente los datos del Municipio de Zapoltán con los datos del Municipio de Tuxpan presentaron una correlación intermedia negativa de -0.53. Mientras que los demás municipios tienen correlaciones muy bajas. Por lo tanto se concluye que el municipio de Zapotlán con Tuxpan son los que mejor se correlacionan.
Ejemplo: ¿Puede predecirse el IMC en Zapotiltic a partir de Tuxpan?
modelo2 <- lm(Zapotiltic ~ Tuxpan, data = imc2)
summary(modelo2)
##
## Call:
## lm(formula = Zapotiltic ~ Tuxpan, data = imc2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.4221 -2.8208 -0.1198 2.4292 6.3785
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 19.0366 5.7743 3.297 0.00266 **
## Tuxpan 0.1993 0.2276 0.876 0.38849
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.324 on 28 degrees of freedom
## Multiple R-squared: 0.02667, Adjusted R-squared: -0.008088
## F-statistic: 0.7673 on 1 and 28 DF, p-value: 0.3885
#Obtención de la ecuación que representa el modelo de regresión líneal.
coeficientes <- coef(modelo2)
intercepto <- round(coeficientes[1], 2)
pendiente <- round(coeficientes[2], 2)
cat("Ecuación del modelo: Zapotiltic =", intercepto, "+", pendiente, "* Tuxpan")
## Ecuación del modelo: Zapotiltic = 19.04 + 0.2 * Tuxpan
#Gráfica representativa de la regresión
plot(imc2$Tuxpan, imc2$Zapotiltic,
main = "Regresión lineal: Zapotiltic vs Tuxpan",
xlab = "Tuxpan",
ylab = "Zapotiltic",
pch = 19, col = "steelblue")
# Añadir la línea de regresión
abline(modelo2, col = "purple", lwd = 2)
# Añadir la ecuación como texto en la gráfica
text(x = min(imc2$Tuxpan),
y = max(imc2$Zapotiltic),
labels = paste0("Z = ", intercepto, " + ", pendiente, " * T"),
pos = 4, col = "pink")
Ecuación obtenida = 19.04 + 0.2 * Tuxpan Donde Tuxpan representan los valores de IMC de Tuxpan que alimenta la ecuación
par(mfrow = c(2,2))
plot(modelo2, col = "lightblue")
Se exploraron los niveles de IMC entre cuatro municipios. Se aplicaron pruebas estadísticas para determinar diferencias significativas y correlaciones entre ellos.El modelo de regresión sirve para explorar relaciones predictivas entre pares de municipios.
Hallazgos:
-La distribución de los datos de todos los municpios fue normal, tanto el test de homocedasticidad como el test de Levene fueron pasados, por lo tanto se concluyó que se puede utilizar la prueba de ANOVA para evaluar diferencias.
-Bajo la prueba de ANOVA no se mostraron diferencias entre los municipios.
-Los municipios de Zapotlán y Tuxpán fueron los que mejor se correlacionaron.
-Se obtuvo la ecuación de regresión lineal que describe el comportamiento entre los datos de Zapotiltic y Tuxpan para la predicción de datos.