Realizar el análisis solicitado del problema 1 o el problema 2, teniendo en cuenta que este se entregará como un link de R Markdown con todo el procedimiento descrito de R, así como el porqué de las pruebas realizadas, es decir, una pequeña parte teórica que justifique por qué se usó esa prueba.
Finalmente suba el link al apartado correspondiente en la plataforma de classroom.
Es importante mencionar que las pruebas mínimas que se necesitan son:
Justifique a que conclusión llega.
Pista. Elija el problema que usted prefiera, uno contiene datos paramétricos y el otro datos no paramétricos
Se realizó una investigación para conocer el Índice de Masa Corporal (IMC) de cuatro poblaciones distintas ubicadas en el Sur de Jalisco, una vez creado el estudio y el diseño, el tamaño de muestra arrojo la cantidad de 30 personas. Los resultados se presentan en al Tabla 1.
Tabla 1. Municipios del Sur de Jalisco.
Sayula <- c(25, 25, 29, 27, 25, 29, 29, 29, 25, 29, 29, 29, 25, 25, 29, 29, 31, 31, 29, 27, 25, 25, 27, 29, 31, 29, 31, 29, 25, 29)
Gomez_Farias <- c(29, 25, 25, 29, 25, 29, 29, 29, 27, 29, 31, 25, 25, 25, 29, 25, 29, 31, 29, 25, 27, 25, 25, 25, 25, 29, 29, 27, 27, 29)
Zacoalco <- c(29, 29, 29, 29, 29, 27, 27, 25, 29, 25, 31, 29, 25, 29, 27, 29, 25, 25, 29, 27, 27, 27, 25, 31, 25, 29, 25, 29, 27, 25)
Techaluta <- c(27, 31, 27, 25, 27, 25, 29, 27, 27, 25, 29, 29, 25, 25, 25, 25, 25, 29, 29, 25, 29, 27, 25, 25, 31, 29, 25, 25, 31, 25)
df <- data.frame(Sayula, Gomez_Farias, Zacoalco, Techaluta)
df <- data.frame(Sayula = Sayula, Gomez_Farias = Gomez_Farias, Zacoalco = Zacoalco, Techaluta = Techaluta)
print(df)
## Sayula Gomez_Farias Zacoalco Techaluta
## 1 25 29 29 27
## 2 25 25 29 31
## 3 29 25 29 27
## 4 27 29 29 25
## 5 25 25 29 27
## 6 29 29 27 25
## 7 29 29 27 29
## 8 29 29 25 27
## 9 25 27 29 27
## 10 29 29 25 25
## 11 29 31 31 29
## 12 29 25 29 29
## 13 25 25 25 25
## 14 25 25 29 25
## 15 29 29 27 25
## 16 29 25 29 25
## 17 31 29 25 25
## 18 31 31 25 29
## 19 29 29 29 29
## 20 27 25 27 25
## 21 25 27 27 29
## 22 25 25 27 27
## 23 27 25 25 25
## 24 29 25 31 25
## 25 31 25 25 31
## 26 29 29 29 29
## 27 31 29 25 25
## 28 29 27 29 25
## 29 25 27 27 31
## 30 29 29 25 25
Se usó la prueba de Shapiro-Wilk para verificar si los datos de cada Municipalidad siguen una distribución normal.
Los p-valores de todas las localidades son menores a 0.05, indicando que no cumplen con la normalidad.
# Cargar librerías necesarias
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
library(car) # Para pruebas de homocedasticidad
## Warning: package 'car' was built under R version 4.2.3
## Loading required package: carData
library(dplyr) # Manipulación de datos
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:car':
##
## recode
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(reshape2) # Transformación de datos para ANOVA
## Warning: package 'reshape2' was built under R version 4.2.3
library(multcomp) # Post-Hoc tests
## Loading required package: mvtnorm
## Warning: package 'mvtnorm' was built under R version 4.2.3
## Loading required package: survival
## Loading required package: TH.data
## Warning: package 'TH.data' was built under R version 4.2.3
## Loading required package: MASS
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
##
## Attaching package: 'TH.data'
## The following object is masked from 'package:MASS':
##
## geyser
library(corrplot) # Gráficos de correlación
## corrplot 0.95 loaded
# Datos de la tabla
Sayula <- c(25, 25, 29, 27, 25, 29, 29, 29, 25, 29, 29, 29, 25, 25, 29, 29, 31, 31, 29, 27, 25, 25, 27, 29, 31, 29, 31, 29, 25, 29)
Gomez_Farias <- c(29, 25, 25, 29, 25, 29, 29, 29, 27, 29, 31, 25, 25, 25, 29, 25, 29, 31, 29, 25, 27, 25, 25, 25, 25, 29, 29, 27, 27, 29)
Zacoalco <- c(29, 29, 29, 29, 29, 27, 27, 25, 29, 25, 31, 29, 25, 29, 27, 29, 25, 25, 29, 27, 27, 27, 25, 31, 25, 29, 25, 29, 27, 25)
Techaluta <- c(27, 31, 27, 25, 27, 25, 29, 27, 27, 25, 29, 29, 25, 25, 25, 25, 25, 29, 29, 25, 29, 27, 25, 25, 31, 29, 25, 25, 31, 25)
# Crear un dataframe
df <- data.frame(Sayula, Gomez_Farias, Zacoalco, Techaluta)
# Transformar los datos a formato largo para ANOVA
df_long <- melt(df, variable.name = "Localidad", value.name = "IMC")
## No id variables; using all as measure variables
# =====================================
# 1. PRUEBAS DE NORMALIDAD
# =====================================
# Prueba Shapiro-Wilk para cada localidad
shapiro_results <- sapply(df, shapiro.test)
shapiro_results
## Sayula Gomez_Farias
## statistic 0.8135786 0.7996083
## p.value 0.000117089 6.449176e-05
## method "Shapiro-Wilk normality test" "Shapiro-Wilk normality test"
## data.name "X[[i]]" "X[[i]]"
## Zacoalco Techaluta
## statistic 0.8434863 0.8020716
## p.value 0.0004543029 7.153018e-05
## method "Shapiro-Wilk normality test" "Shapiro-Wilk normality test"
## data.name "X[[i]]" "X[[i]]"
Como vemos en los resultados no se cumple con la normalidad en los datos, ahora prodecederemos a verlo graficado
# Graficar histogramas para cada localidad
ggplot(df_long, aes(x = IMC)) +
geom_histogram(binwidth = 1, fill = "green", color = "purple") +
facet_wrap(~Localidad) +
labs(title = "Distribución del IMC por Localidad", x = "IMC", y = "Frecuencia")
Para ello utilizaremos la prueba de Levene para verificar la igualdad de varianzas entre las localidades.
# =====================================
# 2. PRUEBA DE HOMOCEDASTICIDAD
# =====================================
# Prueba de Levene para igualdad de varianzas
leveneTest(IMC ~ Localidad, data = df_long)
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 3 0.1938 0.9005
## 116
Se encontro que el p-valor = 0.900. lo que nos indica que las varianzas son homogéneas. (no obstante que son no normales)
Ahora bie, dado que no se cumple la normalidad, la prueba ANOVA clásica no es completamente adecuada, pero como la homocedasticidad se cumple, se realiza como referencia:
# =====================================
# 3. ANÁLISIS ANOVA (o Kruskal-Wallis)
# =====================================
# ANOVA (Asumiendo homocedasticidad y no-normalidad como guía inicial)
anova_result <- aov(IMC ~ Localidad, data = df_long)
summary(anova_result)
## Df Sum Sq Mean Sq F value Pr(>F)
## Localidad 3 13.7 4.567 1.058 0.37
## Residuals 116 500.7 4.316
# Si el ANOVA resulta significativo, realizar prueba Post-Hoc (Tukey HSD)
TukeyHSD(anova_result)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = IMC ~ Localidad, data = df_long)
##
## $Localidad
## diff lwr upr p adj
## Gomez_Farias-Sayula -0.6000000 -1.998250 0.7982503 0.6788785
## Zacoalco-Sayula -0.4000000 -1.798250 0.9982503 0.8783260
## Techaluta-Sayula -0.9333333 -2.331584 0.4649170 0.3079191
## Zacoalco-Gomez_Farias 0.2000000 -1.198250 1.5982503 0.9822332
## Techaluta-Gomez_Farias -0.3333333 -1.731584 1.0649170 0.9250380
## Techaluta-Zacoalco -0.5333333 -1.931584 0.8649170 0.7529797
# Si no se cumple la normalidad, se realiza Kruskal-Wallis
kruskal_result <- kruskal.test(IMC ~ Localidad, data = df_long)
kruskal_result
##
## Kruskal-Wallis rank sum test
##
## data: IMC by Localidad
## Kruskal-Wallis chi-squared = 3.2423, df = 3, p-value = 0.3557
p-valor = 0.37. No hay diferencias significativas entre las localidades en sus valores promedio de IMC.
Se calculó la matriz de correlación de Pearson entre las localidades:
# =====================================
# 4. CORRELACIÓN ENTRE LOCALIDADES
# =====================================
# Calcular matriz de correlación
cor_matrix <- cor(df)
cor_matrix
## Sayula Gomez_Farias Zacoalco Techaluta
## Sayula 1.00000000 0.44029194 -0.2658450 -0.07738834
## Gomez_Farias 0.44029194 1.00000000 -0.1681141 0.03518802
## Zacoalco -0.26584496 -0.16811410 1.0000000 0.14093991
## Techaluta -0.07738834 0.03518802 0.1409399 1.00000000
# Graficar matriz de correlación
corrplot(cor_matrix, method = "circle", type = "upper", title = "Matriz de Correlación")
La correlación más alta resulto entre Sayula y Gómez Farías (r = 0.44), pero sigue siendo moderada.
# Seleccionar las localidades más correlacionadas: Sayula y Gómez_Farías
x <- df$Sayula # Variable independiente (Sayula)
y <- df$Gomez_Farias # Variable dependiente (Gómez Farías)
# Ajustar el modelo de regresión lineal
model <- lm(y ~ x)
# Mostrar un resumen del modelo
summary(model)
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.6064 -1.0410 0.6763 1.2488 3.2488
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 15.3516 4.6049 3.334 0.00242 **
## x 0.4276 0.1648 2.595 0.01489 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.904 on 28 degrees of freedom
## Multiple R-squared: 0.1939, Adjusted R-squared: 0.1651
## F-statistic: 6.733 on 1 and 28 DF, p-value: 0.01489
# Graficar la relación y la línea de regresión
library(ggplot2)
ggplot(data.frame(x, y), aes(x = x, y = y)) +
geom_point() + # Puntos de datos
geom_smooth(method = "lm", se = FALSE, color = "blue") + # Línea de regresión
labs(title = "Regresión Lineal: Sayula vs Gómez Farías",
x = "Sayula (IMC)",
y = "Gómez Farías (IMC)")
## `geom_smooth()` using formula = 'y ~ x'
# Calcular residuos
residuals <- residuals(model)
# Graficar los residuos
ggplot(data.frame(residuals), aes(x = residuals)) +
geom_histogram(binwidth = 1, fill = "orange", color = "black") +
labs(title = "Distribución de Residuos (Sayula vs Gómez Farías)",
x = "Residuos",
y = "Frecuencia")
# Revisar los residuos vs valores ajustados
fitted_values <- fitted(model)
ggplot(data.frame(fitted_values, residuals), aes(x = fitted_values, y = residuals)) +
geom_point() +
geom_hline(yintercept = 0, linetype = "dashed", color = "red") +
labs(title = "Residuos vs Valores Ajustados",
x = "Valores Ajustados",
y = "Residuos")
Relación entre Sayula y Gómez Farías: La correlación más alta (r=0.44) se da entre estas localidades, indicando una relación moderada positiva entre sus valores de IMC.
Si el p-valor asociado a la pendiente (b1) es menor a 0.05, entonces la relación entre las dos localidades es estadísticamente significativa. De lo contrario, aunque exista una relación, esta no es lo suficientemente fuerte para ser estadísticamente relevante.
Aunque Sayula y Gómez Farías muestran la mayor correlación, esta relación es moderada y podría no ser suficiente para usar el IMC de una localidad como predictor confiable del IMC de la otra. Factores externos no incluidos en el modelo pueden estar influyendo en los resultados.
Se deberia incorporar o analizar otras variables y expandir el tamaño de muestra para mejorar la sensibilidad de los análisis.
Note that the echo = FALSE parameter was added to the
code chunk to prevent printing of the R code that generated the
plot.