En este apartado se analizará la relación entre la variable elegida por el alumno y una serie de indicadores de desarrollo humano. El objetivo final es conocer en qué medida la distribución espacial de esa variable depende de otros condicionantes, como su localización o el nivel de desarrollo.
Para dar comienzo a la actividad, se debe establecer la carpeta de trabajo, y a continuación, cargar el fichero con la variable elegida.
setwd("D:/G14_EE_CC_SS_2023/03_Trabajo_Aplicado/")
load("./datos_wdi.RData")
ingresos
)
Y SU UBICACION GEOGRÁFICA (variable region
)En primer lugar se analizará si los valores de la variable analizada (variable cuantitativa) dependen de el nivel de ingresos del país y de su ubicación geográfica (ambas son variable cualitativas con varios niveles). Para determinar si existe o no una diferencia estadísticamente significativa entre las medias de tres o más grupos independientes se puede recurrir al análisis de varianza. En este caso, se utilizará el análisis de varianza unidireccional (one-way ANOVA), también conocido como ANOVA de un factor; el adjetivo unidireccional proviene del hecho de que estamos analizando cómo una variable predictora impacta una variable de respuesta.
Las hipótesis con las que trabajaremos son las siguientes:
Hipótesis nula H0: los promedios de todas las variables son iguales.
Hipótesis alternativa H1: al menos el promedio de una variable es diferente al de las restantes
Por lo tanto:
Si el valor de p es inferior a 0.05 se rechaza la hipótesis nula/acepta la hipótesis alternativa: la media de una variable es diferente de las restantes (no es igual).
Si el valor de p es mayor a 0.05, se acepta la hipótesis nula: las medias de todas las variables son iguales.
En el caso de la variable ingresos
, disponemos de 4
niveles pero uno de los paises, Venezuela, presenta una etiqueta que no
es necesaria para nuestro trabajo, y por lo tanto, será eliminada.
<- subset(datos,
datos !(ingresos=="NO")) # Subconjunto de datos en los que region no es igual a "Aggregates".
A continuación, se pueden calcular tanto los valores medios como la desviación típica de la tasa de feminidad según los 4 niveles de ingresos de los paises.
<- aggregate(tasa_fem ~ ingresos, data = datos, mean)
promedio_ing <- aggregate(tasa_fem ~ ingresos, data = datos, sd) desviacion_ing
Con estos valores se puede crear una tabla, que podría ser exportada mediante un fichero excel.
<- cbind(promedio_ing, desviacion_ing)
tabla_ing <- tabla_ing[ ,c(1,2,4)]
tabla_ing names(tabla_ing)[names(tabla_ing) == c("tasa_fem", "tasa_fem.1")] <- c("Promedio tasa feminidad", "Desviación típica de la tasa de feminidad")
También se podría elaborar un gráfico box plot
para
percibir las diferencias.
boxplot(tasa_fem ~ ingresos,
data = datos,
outline=FALSE) # Dataframe de origen
A continuación se analizará si existen diferencias estadísticamente significativas entre la tasa de feminidad según el nivel de ingresos de los países:
<- aov(tasa_fem ~ ingresos,
aov_ingresos data = datos)
summary(aov_ingresos)
De acuerdo con lo antes señalado, no es posible afirmar que existan diferencias según el nivel de ingresos. Por lo tanto, en este caso se acepta la hipótesis nula.
A continuación procederemos de la misma manera con la variable
cualitativa region
.
Elaboración de una tabla con valores medios y desviación típica.
<- aggregate(tasa_fem ~ region, data = datos, mean)
promedio_reg <- aggregate(tasa_fem ~ region, data = datos, sd)
desviacion_reg
<- cbind(promedio_reg, desviacion_reg)
tabla_reg <- tabla_reg[ ,c(1,2,4)]
tabla_reg names(tabla_reg)[names(tabla_reg) == c("tasa_fem", "tasa_fem.1")] <- c("Promedio tasa feminidad", "Desviación típica de la tasa de feminidad")
Gráfico box plot
para percibir las diferencias.
boxplot(tasa_fem ~ region,
data = datos,
outline=FALSE)
A continuación se analizará si existen diferencias estadísticamente significativas entre la tasa de feminidad según el nivel de ingresos de los países:
<- aov(tasa_fem ~ region,
aov_region data = datos)
summary(aov_region)
Dado que los resultados son estadísticamente significativos, podemos determinar en qué regiones se sustentan estas diferencias significativas.
TukeyHSD(aov_region)
En todos los casos, es la región denominada MENA
, que
corresponde a los países de Oriente Medio y Norte de África.
Los índices son los siguientes:
GINI (Índice de Gini): mide la desigualdad en los ingresos de los habitantes de un país. El coeficiente de Gini es un número entre 0 y 1, donde 0 se corresponde con la perfecta igualdad (todos tienen los mismos ingresos) y 1 se corresponde con la perfecta desigualdad (una persona tiene todos los ingresos y los demás ninguno).
CDI (Cultural Diversity Index): compara la diversidad cultural, entendida como diversidad ética, lingüistica y de tradiciones.
EPI (Environmental Performace Index): cuantifica el progreso de las políticas ambientales de una nación, haciendo hincapié en dos políticas: salud ambiental y vitalidad de los ecosistemas. Un índice elevado identifica aquellos que han tomado medidas para minimizar la contaminación, priorizar la sostenibilidad y abrir un camino hacia un mundo más verde y saludable.
EI (Educational Index): este índice evalúa dos factores principales: los años de escolaridad esperados frente a los reales, y los logros educativos en todos los niveles. Un país obtiene una mejor puntuación en este índice a medida que se acerca a una puntuación de 1.
HDI (Índice de Desarrollo Humano): está compuesto por la esperanza de vida, la educación (tasa de alfabetización, tasa bruta de matriculación en diferentes niveles y asistencia neta) y la riqueza de un país, con valores máximos próximos a 1.
HFI (Índice de Libertad Humana): se basa en diversos aspectos, incluidos el estado de derecho, la seguridad, la libertad económica y las libertades individuales como la libertad de expresión, religión y asociación. Las puntuaciones más altas indican un mayor nivel de libertad.
GPI (Índice de Paz Global): se basa en una variedad de indicadores relacionados con la seguridad, la protección, los conflictos en curso y la militarización. Cuanto menor sea la puntuación, mayor será la clasificación del país en términos de seguridad. Cuanto mayor sea la puntuación, más peligroso se considera.
PIB (Producto interior bruto, per cápita). Es un indicador que expresa el valor de la producción de bienes y servicios de un país, y puede considerarse un indicador de su riqueza.
DEP_GPD(Ratio entre deuda y PIB): esta relación, un indicador de la salud y la sostenibilidad de una economía, mide la deuda de un país en comparación con su Producto Interno Bruto (PIB). Un porcentaje bajo indica que un país produce una cantidad suficiente de bienes y servicios anualmente para pagar sus deudas, lo que apunta a una mejor estabilidad económica.
MI (Índice de miseria): es un un indicador económico creado por el economista Arthur Okun, que combina las tasas de desempleo con la inflación para indicar la estabilidad económica y, por tanto, la conveniencia de vivir en un país determinado.
POBR (Tasa de pobreza): es la relación entre el número de personas (en un grupo de edad determinado) cuyos ingresos caen por debajo del umbral de pobreza, siendo este a la mitad del ingreso familiar medio de la población total.
SDG (Índice de cumplimiento de los ODS): índice que mide el grado de cumplimiento de los países respecto a los ODS.
A continuación, se cargarán los datos con los índices de desarrollo humano
<- "http://personales.unican.es/rasillad/docencia/G14/Trabajo_individual/indices_desarrollo_2023.csv"
url <- read.csv2(url)
indices View(indices)
La primera columna del dataframe indices
(que contiene
el nombre de los países) puede ser suprimida:
<- indices[ , -1] indices
Por último, juntaremos ambos dataframes en uno único. De este fichero
extraeremos un subconjunto con las variables numéricas y le asignaremos
el nombre de nuevos_datos
.
<- merge(x = datos, y = indices, all.x = TRUE)
nuevos_datos
<- nuevos_datos[ , -3]
nuevos_datos
$provisional <- apply(is.na(nuevos_datos), MARGIN = 1, FUN = sum)
nuevos_datos<- nuevos_datos[nuevos_datos$provisional < 12, ]
nuevos_datos <- nuevos_datos[ , -18] nuevos_datos
Comenzaremos analizando la relación entre las variables creando una matriz de correlación entre todos los índices. En primer lugar, se creará un nuevo objeto que contiene únicamente las variables cuantitativas.
<- nuevos_datos[ ,c(3, 6:17)] datos_para_correlacion
IMPORTANTE: cuando alguna de las variables registra
datos ausentes (NA), R no es capaz de calcular el coeficiente de
correlación, a menos que se incluya el argumento
use = "complete.obs"
.
<- round(cor(datos_para_correlacion, use = "complete.obs"),2)
matriz.corr matriz.corr
Se puede obtener la matriz de significación con la función
library("Hmisc")
<- rcorr(as.matrix(datos_para_correlacion))
matriz.corr2 round((matriz.corr2$P),2)
Los valores de correlación encontrados son muy bajos y no significativos, probablemente por la existencia de valores atípicos y/o extremos en la variable bajo análisis. A continuación, repetiremos el procedimiento, pero eliminando los datos atípicos. Primero debemos, sin embargo, identificarlos, como se hizo en el apartado anterior.
<- quantile(nuevos_datos$Tasa_fem, probs = 0.25)
Q1 <- quantile(nuevos_datos$Tasa_fem, probs = 0.75)
Q3 <- IQR(nuevos_datos$Tasa_fem)
IQR
<- Q3 + IQR * 1.5
atipico_superior <- Q1 - 1.5 * IQR
atipico_inferior
<- Q3 + IQR * 3
extremo_superior <- Q1 - 3 * IQR
extremo_inferior
$atipicos[nuevos_datos$Tasa_fem <= atipico_inferior | nuevos_datos$Tasa_fem >= atipico_superior] <- 1
nuevos_datos$atipicos[nuevos_datos$Tasa_fem <= extremo_inferior | nuevos_datos$Tasa_fem >= extremo_superior] <- 2
nuevos_datos$atipicos[nuevos_datos$Tasa_fem > atipico_inferior & nuevos_datos$Tasa_fem < atipico_superior] <- 0 nuevos_datos
Una vez identificados, podemos eliminarlos del fichero original y repetir el procedimiento.
<- nuevos_datos[which(nuevos_datos$atipicos == 0), ]
nuevos_datos2 <- subset(nuevos_datos2, select = -atipicos) nuevos_datos2
Nueva matriz de correlación
<- round(cor(nuevos_datos2,use = "complete.obs"),2)
matriz.corr.nuevos_datos2 matriz.corr.nuevos_datos2
Podemos elaborar un gráfico con las matrices de dispersión
library(PerformanceAnalytics)
chart.Correlation(nuevos_datos2,
method="spearman",
histogram=TRUE,
pch=16)
En el caso que nos ocupa, se observa un incremento sustancial del índice de correlación de Pearson entre la Tasa de Feminidad y el Índice de Desarrollo según Géneros. El valor es positivo, lo que indica que un aumento de la primera variable se corresponde con un aumento de la segunda. Esta relación será el objeto de los restantes análisis. Obsérvese además que existen cierto número de casos cuya inclusión sería cuestionable, dado que poseen un valor muy bajo en el índice IDG.
<- lm(IDG ~ Tasa_fem,
modelo.regresion data = nuevos_datos2)
print(modelo.regresion)
Es habitual acompañar el modelo de regresión con un diagrama de puntos y dibujar sobre él la recta de regresión.
plot(IDG ~ Tasa_fem,
data = nuevos_datos2, pch = 16)
abline(modelo.regresion, col="red", lwd=2) # Añade una recta de regresión
<- cor(nuevos_datos2$IDG,nuevos_datos2$Tasa_fem, use = "complete.obs") # Calculamos la correlación entre las variables
etiqueta.corr text(paste("Correlación:", round(etiqueta.corr, 2)),
x = 52,
y = 0.7)
<- round(coef(lm(nuevos_datos2$IDG ~ nuevos_datos2$Tasa_fem)), 2) # Calculamos el modelo de regresion
coef text(paste("Y = ", coef[1], "+", coef[2], "x"),
x = 52,
y = 0.6)