DATA IDE a nivel de PROVINCIAS (variable numerica) La data original del Indice de Densidad Estatal (IDE) para el Peru esta elaborado por PNUD
link="https://github.com/PoliticayGobiernoPUCP/EstadisticaPoliticaGobiernoII/raw/master/sesiones/data/idePeru.xlsx"
library(openxlsx)
datos=read.xlsx(link,
sheet = 1, #hoja que cargaremos, corresponde al a?o 2012.
startRow = 4, #desde esta fila empezaremos a leer, aseguremonos de no perder t?tulos
skipEmptyRows = T, skipEmptyCols = T)
datos= datos[-c(223:226),] #La data acaba en la fila 222. Eliminemos filas innecesarias
datos=datos[-c(1:3),] #La tercera fila, con informaci?n de Per?, es innecesaria. Hay que eliminarla
columnas=c(seq(5,17,2))
datos = datos[,-columnas] #Hemos dejado listas las filas. Sin embargo, tenemos columnas que no son necesarias. Podemos crear una secuencia para eliminarlas todas; es decir, que empieza en el 5 y termine en el 17 y que los saltos sean de 2.
regiones=datos[!is.na(datos$X2),] #creamos un subconjunto llamado regiones
row.names(regiones)=NULL #resetear el indice de regiones
regiones=regiones[c(1,2)] #El subconjunto debe contener solo la informaci?n del Ubigeo y del nombre de la regi?n. Seleccionemos las columnas que nos interesan que son las dichas anteriormente.
colnames(regiones) = c("ubigeoRegion", "region") #hay que ponerle nombres adecuados a las columas del subconjunto
provincias=datos[is.na(datos$X2),] #creamos un subconjunto llamado provincias. Seleccionemos ?nicamente las filas que tienen datos perdios en la columna "X2"
row.names(provincias)=NULL #resetear el indice de provincias
provincias=provincias[,-c(2)] #Eliminemos la segunda columna X2 pues no es necesaria
#hay que ingresar los nombres en el orden que se requiere
names(provincias) <- c("ubigeoProvincia", "PROVINCIA", "habitantes", "IDE", "identidad", "medicos", "asistenciasecu", "saneamiento", "electrificacion")
provincias$ubigeoRegion=provincias$ubigeoProvincia
substr(provincias$ubigeoRegion,3,6)='0000' #Como queremos que la informaci?n de la regi?n aparezca junto a la informaci?n de la provincia, debemos juntar nuestras subtablas. Retener los primeros digitos del ubigeo de regi?n. A?adirle ceros a la cola de lo que acabamos de retener.
row.names(provincias)=NULL #Hay que resetear el ?ndice
provinciasIDE = merge(provincias, regiones, by="ubigeoRegion") #Ahora podemos a?adir la informaci?n de las provincias y de las regiones en nuestra data final, es decir, juntemos distritos con informaci?n de provincias
provinciasIDE= provinciasIDE[,c(1,2,11,3:10)] # ordenando las variables de la data
# convertir las variables a numerica
provinciasIDE$habitantes= as.numeric(provinciasIDE$habitantes)
provinciasIDE$IDE= as.numeric(provinciasIDE$IDE)
provinciasIDE$'identidad' = as.numeric(provinciasIDE$'identidad')
provinciasIDE$"medicos"= as.numeric(provinciasIDE$"medicos")
provinciasIDE$ "asistenciasecu"=as.numeric(provinciasIDE$"asistenciasecu")
provinciasIDE$"saneamiento" = as.numeric(provinciasIDE$"saneamiento")
provinciasIDE$"electrificacion"= as.numeric(provinciasIDE$"electrificacion")
provinciasIDE$ubigeoRegion= NULL
provinciasIDE$region= NULL
provinciasIDE$ubigeoProvincia= NULL
str(provinciasIDE)
## 'data.frame': 194 obs. of 8 variables:
## $ PROVINCIA : chr "Bagua" "Bongará" "Condorcanqui" "Luya" ...
## $ habitantes : num 77438 32317 51802 52185 30236 ...
## $ IDE : num 0.662 0.632 0.46 0.605 0.631 ...
## $ identidad : num 94.6 97.5 86.2 96.2 97.3 ...
## $ medicos : num 14.61 9.01 8.56 12.42 14.88 ...
## $ asistenciasecu : num 79.8 76.4 52.2 74.7 79.4 ...
## $ saneamiento : num 64.5 54.8 37.7 43.3 46.5 ...
## $ electrificacion: num 67.9 72.2 39.5 67.4 67.5 ...
head(provinciasIDE,10)
DATA IDH a nivel de PROVINCIAS La data original del Indice de Desarrollo Humano (IDH) para el Peru esta elaborado por PNUD (variable numerica)
link1="https://docs.google.com/spreadsheets/d/e/2PACX-1vTp-Zw7bYP8fpWdTMdYdHwGXmYxMJCpSR1qK0vFvuB9fQOQPm07OHYyh_NpUv4Y5qeVA5D2XeHuKxATe4NGR30/pub?output=xlsx"
IDH=read.xlsx(link1,
sheet = 1,
skipEmptyRows = T, skipEmptyCols = T) #evita filas vacias / evita columnas vacias
names(IDH)= c("ubigeoProvincia", "PROVINCIA", "habitantes", "IDH", "esperanza", "secucompleta", "educatiempo", "percapitaf")
IDH$ubigeoProvincia= NULL
IDH$habitantes= NULL
str(IDH)
## 'data.frame': 195 obs. of 6 variables:
## $ PROVINCIA : chr "Chachapoyas" "Bagua" "Bongara" "Condorcanqui" ...
## $ IDH : num 0.334 0.292 0.279 0.169 0.251 ...
## $ esperanza : num 72.5 73.7 72.2 70.1 71.2 ...
## $ secucompleta: num 45.69 39.88 29.59 8.02 34.6 ...
## $ educatiempo : num 7.4 6.56 6.14 5.25 5.17 ...
## $ percapitaf : num 307 241 261 148 211 ...
head(IDH)
DATA Indice de salud niños <5 años a nivel de PROVINCIAS (“saludninos”)
La data original del Indice está construida por: 1) Porcentaje de desnutrición infantil 2007 (variable numerica) 2) EDA Enfermedad de Diarrea Aguda infantil fue elaborada a partir de la información de la SALA SITUACIONAL del Centro Nacional de Epidemiología, Prevención y Control de Enfermedades del año 2018 (variable numerica) 3) Numero de niños muertos 2007 (variable numerica)
library(openxlsx)
link2= "https://docs.google.com/spreadsheets/d/e/2PACX-1vT1w842ldEsmlvPAbyPhQD6lhDHMurICPCehefpyabv8lCK-PmLjnU67IZqqZOAviHffW6EmIooL37W/pub?output=xlsx"
saludninos= read.xlsx(link2,
sheet= 5,
skipEmptyRows = T,
skipEmptyCols = T)
names(saludninos)= c("ubigeoProvincia", "PROVINCIA", "desnutricion", "eda", "mortalidad", "isalud")
saludninos$region= NULL
saludninos$ubigeoProvincia= NULL
str(saludninos)
## 'data.frame': 195 obs. of 5 variables:
## $ PROVINCIA : chr "Chachapoyas" "Bagua" "Bongará" "Condorcanqui" ...
## $ desnutricion: num 1986 3888 1072 4665 2589 ...
## $ eda : num 981 2916 446 3218 1418 ...
## $ mortalidad : num 23 28 13 30 30 8 46 61 9 15 ...
## $ isalud : num 997 2277 510 2638 1346 ...
provinciasIDE_s= as.data.frame(scale(provinciasIDE[,-c(1,2,3)])) #creamos subset de puntuaciones estandarizadas
head(provinciasIDE_s)
library(psych)
pearson= cor(provinciasIDE_s)
pearson
## identidad medicos asistenciasecu saneamiento
## identidad 1.0000000 0.3102257 0.6144971 0.4191148
## medicos 0.3102257 1.0000000 0.3723757 0.6220212
## asistenciasecu 0.6144971 0.3723757 1.0000000 0.4192283
## saneamiento 0.4191148 0.6220212 0.4192283 1.0000000
## electrificacion 0.4556276 0.5172890 0.6777301 0.6455107
## electrificacion
## identidad 0.4556276
## medicos 0.5172890
## asistenciasecu 0.6777301
## saneamiento 0.6455107
## electrificacion 1.0000000
cor.plot(pearson,
numbers=T,
upper= FALSE,
main="correlacion",
show.legend = "FALSE")
KMO(provinciasIDE_s)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = provinciasIDE_s)
## Overall MSA = 0.73
## MSA for each item =
## identidad medicos asistenciasecu saneamiento
## 0.75 0.81 0.68 0.73
## electrificacion
## 0.73
fa.parallel(pearson, fm="pa", fa="fa", main = "Scree Plot",n.obs = nrow(provinciasIDE_s)) # la estructura de mi data me dice cuantas indices hay o deberia formar. Por la pendiente por el salto mas grande
## Parallel analysis suggests that the number of factors = 3 and the number of components = NA
provinciasIDE_sF <-fa(provinciasIDE_s,
nfactors=3,
rotate="varimax") # lo que se cambia es la data y el numero de factores
loadings(provinciasIDE_sF)
##
## Loadings:
## MR2 MR3 MR1
## identidad 0.239 0.709 0.206
## medicos 0.603 0.164 0.240
## asistenciasecu 0.191 0.613 0.652
## saneamiento 0.905 0.242 0.150
## electrificacion 0.535 0.283 0.617
##
## MR2 MR3 MR1
## SS loadings 1.563 1.044 0.928
## Proportion Var 0.313 0.209 0.186
## Cumulative Var 0.313 0.522 0.707
sort(provinciasIDE_sF$commonalities)
## NULL
sort(provinciasIDE_sF$uniquenesses)
## saneamiento asistenciasecu electrificacion identidad
## 0.09915384 0.16288181 0.25316065 0.39791311
## medicos
## 0.55144873
sort(provinciasIDE_sF$complexity)
## saneamiento identidad medicos asistenciasecu
## 1.201040 1.407427 1.473902 2.169115
## electrificacion
## 2.392640
fa.diagram(provinciasIDE_sF)
IDH_s= as.data.frame(scale(IDH[,-c(1,2)])) #creamos subset de puntuaciones estandarizadas
head(IDH_s)
library(psych)
pearson= cor(IDH_s)
pearson
## esperanza secucompleta educatiempo percapitaf
## esperanza 1.0000000 0.4240276 0.5687514 0.6544793
## secucompleta 0.4240276 1.0000000 0.8375893 0.6983615
## educatiempo 0.5687514 0.8375893 1.0000000 0.8874896
## percapitaf 0.6544793 0.6983615 0.8874896 1.0000000
cor.plot(pearson,
numbers=T,
upper= FALSE,
main="correlacion",
show.legend = "FALSE")
KMO(IDH_s)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = IDH_s)
## Overall MSA = 0.72
## MSA for each item =
## esperanza secucompleta educatiempo percapitaf
## 0.86 0.75 0.66 0.72
fa.parallel(pearson, fm="pa", fa="fa", main = "Scree Plot",n.obs = nrow(IDH_s)) # la estructura de mi data me dice cuantas indices hay o deberia formar. Por la pendiente por el salto mas grande
## Parallel analysis suggests that the number of factors = 2 and the number of components = NA
IDH_sF <-fa(IDH_s,
nfactors=2,
rotate="varimax") # lo que se cambia es la data y el numero de factores
loadings(IDH_sF)
##
## Loadings:
## MR1 MR2
## esperanza 0.270 0.635
## secucompleta 0.794 0.330
## educatiempo 0.829 0.543
## percapitaf 0.548 0.798
##
## MR1 MR2
## SS loadings 1.691 1.443
## Proportion Var 0.423 0.361
## Cumulative Var 0.423 0.784
sort(IDH_sF$commonalities)
## NULL
sort(IDH_sF$uniquenesses)
## educatiempo percapitaf secucompleta esperanza
## 0.01798523 0.06318870 0.26012036 0.52416777
sort(IDH_sF$complexity)
## secucompleta esperanza educatiempo percapitaf
## 1.334746 1.351185 1.725242 1.771334
fa.diagram(IDH_sF)
saludninos_s= as.data.frame(scale(saludninos[,-c(1,5)]))
head(saludninos_s)
library(psych)
pearson= cor(saludninos_s)
pearson
## desnutricion eda mortalidad
## desnutricion 1.0000000 0.8614033 0.9241579
## eda 0.8614033 1.0000000 0.9611712
## mortalidad 0.9241579 0.9611712 1.0000000
cor.plot(pearson,
numbers=T,
upper= FALSE,
main="correlacion",
show.legend = "FALSE")
KMO(saludninos_s)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = saludninos_s)
## Overall MSA = 0.67
## MSA for each item =
## desnutricion eda mortalidad
## 0.75 0.68 0.60
fa.parallel(pearson, fm="pa", fa="fa", main = "Scree Plot",n.obs = nrow(saludninos_s)) # la estructura de mi data me dice cuantas indices hay o deberia formar. Por la pendiente por el salto mas grande
## Parallel analysis suggests that the number of factors = 2 and the number of components = NA
saludninos_sF <-fa(saludninos_s,
nfactors=1,
rotate="varimax") # lo que se cambia es la data y el numero de factores
## Warning in fac(r = r, nfactors = nfactors, n.obs = n.obs, rotate =
## rotate, : A loading greater than abs(1) was detected. Examine the loadings
## carefully.
## Warning in fa.stats(r = r, f = f, phi = phi, n.obs = n.obs, np.obs
## = np.obs, : The estimated weights for the factor scores are probably
## incorrect. Try a different factor extraction method.
## Warning in fac(r = r, nfactors = nfactors, n.obs = n.obs, rotate =
## rotate, : An ultra-Heywood case was detected. Examine the results carefully
loadings(saludninos_sF)
##
## Loadings:
## MR1
## desnutricion 0.913
## eda 0.950
## mortalidad 1.004
##
## MR1
## SS loadings 2.743
## Proportion Var 0.914
sort(saludninos_sF$commonalities)
## NULL
sort(saludninos_sF$uniquenesses)
## mortalidad eda desnutricion
## -0.008816963 0.098133165 0.167231895
sort(saludninos_sF$complexity)
## desnutricion eda mortalidad
## 1 1 1
fa.diagram(saludninos_sF)