Explore y explique en qué consiste el dataset utilizando herramientas de exploración de datos.
a. Releve las características de los atributos.
Verificamos los nombres de los atributos y sus características con str:
MPI_subnational = read.csv('https://raw.githubusercontent.com/dmuba/dmuba.github.io/master/Practicos/LAB01/MPI_subnational.csv', header = TRUE, sep = ',')
# Nombres de variables
names(MPI_subnational)
## [1] "ISO.country.code" "Country"
## [3] "Sub.national.region" "World.region"
## [5] "MPI.National" "MPI.Regional"
## [7] "Headcount.Ratio.Regional" "Intensity.of.deprivation.Regional"
# Caracteristicas de las variables
str(MPI_subnational)
## 'data.frame': 984 obs. of 8 variables:
## $ ISO.country.code : chr "AFG" "AFG" "AFG" "AFG" ...
## $ Country : chr "Afghanistan" "Afghanistan" "Afghanistan" "Afghanistan" ...
## $ Sub.national.region : chr "Badakhshan" "Badghis" "Baghlan" "Balkh" ...
## $ World.region : chr "South Asia" "South Asia" "South Asia" "South Asia" ...
## $ MPI.National : num 0.295 0.295 0.295 0.295 0.295 0.295 0.295 0.295 0.295 0.295 ...
## $ MPI.Regional : num 0.387 0.466 0.3 0.301 0.325 0.313 0.319 0.25 0.245 0.384 ...
## $ Headcount.Ratio.Regional : num 67.5 79.3 59.7 55.7 61 65.1 61.4 49.4 47.4 74.6 ...
## $ Intensity.of.deprivation.Regional: num 57.3 58.8 50.3 54.1 53.3 48.1 52 50.6 51.6 51.5 ...
b. Represente gráficamente la cantidad de ciudades agrupados por Región.
pie(table(MPI_subnational$World.region), main="Ciudades agrupadas por región")
Calcule las medidas de posición para los atributos numéricos y agrupe los cálculos de acuerdo a la Región.
# Calculo la Media
apply(MPI_subnational[,5:8], 2, mean, na.rm=TRUE)
## MPI.National MPI.Regional
## 0.2041067 0.2113303
## Headcount.Ratio.Regional Intensity.of.deprivation.Regional
## 40.1844512 47.1809766
# Calculo la Mediana
apply(MPI_subnational[,5:8], 2, median, na.rm=TRUE)
## MPI.National MPI.Regional
## 0.174 0.155
## Headcount.Ratio.Regional Intensity.of.deprivation.Regional
## 33.950 45.600
# Calculo de moda
library(modeest)
## Warning: package 'modeest' was built under R version 4.0.4
apply(MPI_subnational[,5:8], 2, mfv, na.rm=TRUE)
## argument 'na.rm' is soft-deprecated, please start using 'na_rm' instead
## argument 'na.rm' is soft-deprecated, please start using 'na_rm' instead
## argument 'na.rm' is soft-deprecated, please start using 'na_rm' instead
## argument 'na.rm' is soft-deprecated, please start using 'na_rm' instead
## $MPI.National
## [1] 0.066 0.303
##
## $MPI.Regional
## [1] 0.006
##
## $Headcount.Ratio.Regional
## [1] 6.5
##
## $Intensity.of.deprivation.Regional
## [1] 41.9 42.7
Se define un ejemplo de una medida de posición (media) agrupada por región:
# Agrupando por Región
aggregate(MPI.National ~ World.region, data=MPI_subnational, FUN=mean)
## World.region MPI.National
## 1 Arab States 0.11078261
## 2 East Asia and the Pacific 0.12432812
## 3 Europe and Central Asia 0.02890909
## 4 Latin America and Caribbean 0.05427064
## 5 South Asia 0.20904938
## 6 Sub-Saharan Africa 0.33203016
a. Ordene los resultados del MPI resultante y concluya al respecto. Help(order).
# Por país
MPI_x_WR=aggregate(MPI.National ~ World.region, data=MPI_subnational, FUN=mean)
# Ranking
MPI_x_WR[order(-MPI_x_WR$MPI.National),]
## World.region MPI.National
## 6 Sub-Saharan Africa 0.33203016
## 5 South Asia 0.20904938
## 2 East Asia and the Pacific 0.12432812
## 1 Arab States 0.11078261
## 4 Latin America and Caribbean 0.05427064
## 3 Europe and Central Asia 0.02890909
En función del MPI (Multidimensional Poverty Measures) ordenado de forma descendente se puede concluir respecto a la pobreza promedio por región. En función de ello, se observa que la región mundial con mayores índices de pobreza en función de la métrica MPI es Sub-Saharan Africa con 0.33, seguida por South Asia, con 0.20. Para el resto de las regiones mundiales el indicador varía entre 0.12 y 0.02 que es el menor valor (observado para Europe and Central Asia).
b. Grafique las variables y observe su comportamiento (graph: barplot, pie & hist).
Ejemplo de variable continua:
hist(MPI_subnational$MPI.National, main = "Histograma del MPI.National", xlab = "MPI.National", ylab = "Frecuencia")
El histograma de la variable MPI.National permite ver que una gran proporción de los valores se encuentran entre 0 y 0.1. Luego, es posible observar que existe una nueva concentración de observaciones en torno 0.25-0.4, por encima de esos valores la cantidad de observaciones disminuye.
Ejemplo de variable discreta:
pie(table(MPI_subnational$World.region), main="Países agrupados por región")
# Genera un Data Frame con Región y MPI National promedio
df.agg = aggregate(MPI.National ~ World.region, data=MPI_subnational, FUN=mean)
# Ordenamos por MPI
data = df.agg[order(df.agg$MPI.National, decreasing = F),]
# Configuramos parámetros del lienzo donde se va a plotear
# principalmente el margen izquierdo (el valor 12) para que entren los nombres
# de las regiones
par(mfrow=c(1, 1), mar=c(5, 12, 4, 2) )
barplot(height = data$MPI.National,
names.arg = data$World.region,
main="MPI Nacional promedio / Region",
las=2,
cex.names = 0.80,
xlim=c(0,0.35),
xlab = "MPI Nacional",
horiz = T)
En los gráficos precedentes puede observarse que las regiones que cuentan con mayor cantidad de países observados son Sub-Saharan Africa y Latin America and Caribbean. A continuación le siguen East Asia and the Pacific, Arab States, South Asia mientras que la región con menos paises observados es Europe and Central Asia.
Calcular el desvío estándar, la varianza y el rango para cada una de las variables.
Cálculo del desvío estandar para cada atributo numérico:
apply(MPI_subnational[,5:8], 2, sd, na.rm=TRUE)
## MPI.National MPI.Regional
## 0.1602476 0.1836210
## Headcount.Ratio.Regional Intensity.of.deprivation.Regional
## 29.9814031 8.0472253
Cálculo de la varianza para cada atributo numérico:
apply(MPI_subnational[,5:8], 2, var, na.rm=TRUE)
## MPI.National MPI.Regional
## 0.02567929 0.03371667
## Headcount.Ratio.Regional Intensity.of.deprivation.Regional
## 898.88452910 64.75783530
Cálculo del rango para cada atributo numérico:
apply(MPI_subnational[,5:8], 2, range, na.rm=TRUE)
## MPI.National MPI.Regional Headcount.Ratio.Regional
## [1,] 0.006 0.000 0
## [2,] 0.605 0.744 99
## Intensity.of.deprivation.Regional
## [1,] 33.3
## [2,] 75.9
Cálculo del Coeficiente de Variación para cada atributo numérico (mediante la función cv del paquete statip):
apply(MPI_subnational[,5:8], 2, statip::cv, na_rm=TRUE)
## MPI.National MPI.Regional
## 0.7851167 0.8688816
## Headcount.Ratio.Regional Intensity.of.deprivation.Regional
## 0.7460946 0.1705608
También puede ser calculado usando una función propia:
apply(MPI_subnational[,5:8], 2, FUN = function(x) sd(x,na.rm=TRUE)/mean(x, na.rm=TRUE))
## MPI.National MPI.Regional
## 0.7851167 0.8688816
## Headcount.Ratio.Regional Intensity.of.deprivation.Regional
## 0.7460946 0.1705608
a. Realice diagramas de cajas y scatterplot’s. Documente las conclusiones.
boxplot(MPI_subnational[,5:6], main="Boxplot de MPI National y Regional")
En este boxplot puede observarse que las distribuciones de ambas variables no presentan valores extremos, pero presentan un sesgo hacia la derecha, particularmente MPI.Regional, lo cual significa que existen más cantidad de observaciones sobre la mediana que por debajo de ella.
En este boxplot puede observarse que la distribución de Headcount.Ratio.Regional presenta se distribuyen de manera homogénea en torno a la mediana registrando un leve sesgo hacia la derecha, sus valores varían entre 0-100 y no se observan valores atípicos (o por fuera de +/-1.5*IQR). En cambio, la variable Intensity.of.deprivation.Regional posee una distribución compacta concentrada en torno a la mediana con sus datos concentrados entre 35-65 aproximadamente. Además, registra presencia de valores atípicos en el extremo superior de la distribución.
b. ¿Qué variable es la que presenta mayor dispersión? Tenga en cuenta que cada variable puede estar expresada en diferentes unidades y magnitudes.
Dada la diferencia de magnitudes se utilizó el Coeficiente de Variación, este muestra que la mayor variación porcentual se adjudica a MPI.Regional (con ~86.8%), es seguida por MPI.Nacional (~78.5%), en tercer lugar Headcount.Ratio.Regional (~74.6%) y por último Intensity.of.deprivation.Regional (~17%). Esto es coherente con lo observado en los gráficos de cajas donde los bigotes más amplios son los de la variable MPI.Regional y la distribución más compacta es Intensity.of.deprivation.Regional.
Calcular el coeficiente de correlación de todas las variables y explique el resultado.
matriz.correlaciones = cor(MPI_subnational[,5:8], use = "complete.obs")
colnames(matriz.correlaciones)=c("MPI.Nat","MPI.Reg","Headcount.Reg","Intensity.Reg")
rownames(matriz.correlaciones)=c("MPI.Nat","MPI.Reg","Headcount.Reg","Intensity.Reg")
print(matriz.correlaciones)
## MPI.Nat MPI.Reg Headcount.Reg Intensity.Reg
## MPI.Nat 1.0000000 0.8589756 0.8554401 0.8136333
## MPI.Reg 0.8589756 1.0000000 0.9839708 0.9446785
## Headcount.Reg 0.8554401 0.9839708 1.0000000 0.9029842
## Intensity.Reg 0.8136333 0.9446785 0.9029842 1.0000000
Como puede observarse en el cálculo del coeficiente de correlación de Pearson, todas las variables tienen una correlación positiva alta entre sí, observando coeficientes de correlación entre 0.81 y 0.98.
¿Qué tipo de gráficos describen mejor esta relación entre las variables?
Los gráficos que mejor describen la relación entre variables son los diagramas de dispersión. Como se observa en los gráficos del punto anterior en la matriz de scatter plots, ya se observa una relación lineal entre todas las variables observadas del dataset. Esa dependencia se ve reflejada en los valores de correlación de Person obtenidos.