VARIABLE INDEPENDIENTE

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)

VARIABLE INDEPENDIENTE

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)

VARIABLE INDEPENDIENTE

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)