Carguemos los datos de “infoPeru”. Como los datos están en un archivo de EXCEL, debemos llamar a las funciones de openxlsx (esta biblioteca de funciones debe estar previamente instalada):
library(openxlsx)
dataPeru=read.xlsx("dataPeru.xlsx",2)
El objeto dataPeru tiene los datos de la segunda hoja (la primera tenia el diccionario de datos).
Esta data es observacional, pues no ha sido producida en un experimento (ni cuasi-experimento).
Confirmemos que variables tenemos:
names(dataPeru)
## [1] "IDDPTO" "IDPROV" "NOMBDEP"
## [4] "NOMBPROV" "vida" "educacion"
## [7] "permanenciaescolar" "ingresofamilia" "identidad"
## [10] "salud" "asistenciaedu" "saneamiento"
## [13] "electrificacion" "costa" "capital"
## [16] "tamano" "fecundidad" "desnutricion"
## [19] "densidadpob" "mortalidad" "analfa"
## [22] "analfa1" "analfa2" "analfa3"
## [25] "analfa4" "pob" "pob_ur"
## [28] "pob_rural" "pob_h" "pob_m"
Se dice que tenemos diferencias entre grupos cuando queremos saber si el valor promedio de cada grupo difiere de los demás.
# explorando
table(dataPeru$costa)
##
## NO SI
## 166 26
De lo anterior, vemos que tenemos 26 provincias se encuentran en la costa.
summary(dataPeru$saneamiento)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.2351 41.1141 54.5285 56.3032 72.3195 99.5000
En este caso la mediana (median) nos indica que a nivel de todas las provincias del Perú, el 50% de las provincias tienen viviendas con agua y desague en un 54.52% .
# saneamiento por grupo:
aggregate(saneamiento ~ costa, data=dataPeru,median)
## costa saneamiento
## 1 NO 51.65420
## 2 SI 84.63195
Las “diferencias” que vemos entre saneamiento entre las provincias ubicadas en la costa y las demas nos parece indicar que la existencia de saneamiento es mucho mayor en la costa.
Una prueba estadistica para saber si tales diferencias son significativas nos la ofrece la prueba de wilcoxon:
# si obtienes "TRUE", los valores medios serán diferentes:
wilcox.test(saneamiento ~ costa,
data=dataPeru)$p.value<=0.05
## [1] TRUE
Esta prueba nos hace pensar que en efecto los valores medios serían diferentes.
library(ggpubr)
## Loading required package: ggplot2
## Loading required package: magrittr
ggerrorplot(dataPeru, x = "costa",
y = "saneamiento",
desc_stat = "median_iqr"
)
La prueba de Wilcox sugiere que las medianas son diferentes y que también la gráfica sugiere lo mismo. Veamos más detalles:
library(ggpubr)
ggerrorplot(dataPeru, x = "costa",
y = "saneamiento",
desc_stat = "median_iqr",
add='dotplot'
)
## `stat_bindot()` using `bins = 30`. Pick better value with `binwidth`.
Jugando a lo sano, deberíamos seguir al gráfico.
Podemos hacer este análisis si tenemos una variable categorica con más de dos valores, por ejemplo:
table(dataPeru$tamano)
##
## 1 2 3 4 5
## 68 63 44 16 1
Ese es el tamaño de la provincia segun poblacion. Ahi está Lima, pero mejor analizamos sin ella:
dataPeru2=dataPeru[dataPeru$tamano<5,]
Entonces:
aggregate(saneamiento ~ tamano, data=dataPeru2,median)
## tamano saneamiento
## 1 1 49.34105
## 2 2 52.44790
## 3 3 62.59475
## 4 4 85.72050
Las medianas son diferentes, queremos saber si esa diferencia es significativa:
# si obtienes "TRUE", al menos un val medio serán diferente a los demás:
kruskal.test(vida ~ tamano,
data=dataPeru2)$p.value<=0.05
## [1] TRUE
ggerrorplot(dataPeru2, x = "tamano",
y = "saneamiento",
desc_stat = "median_iqr",
add='dotplot'
)
## `stat_bindot()` using `bins = 30`. Pick better value with `binwidth`.
Del gráfico podríamos concluir que el cuarto grupo y tercer grupo podrían diferir de los dos primeros; y que los dos primeros son prácticamente idénticos.