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
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 ...

JUNTAMOS VARIABLES

data= merge(provinciasIDE, IDH, by= "PROVINCIA")
data2= merge(data, saludninos, by= "PROVINCIA")
head(data2)
row.names(data2)= data2$PROVINCIA
data2$PROVINCIA =NULL
str(data2)
## 'data.frame':    149 obs. of  16 variables:
##  $ habitantes     : num  105694 73243 28318 7974 57957 ...
##  $ IDE            : num  0.747 0.577 0.633 0.658 0.559 ...
##  $ identidad      : num  97.9 98.8 97.2 98.2 97.9 ...
##  $ medicos        : num  16.93 2.63 10.45 8.59 11.18 ...
##  $ asistenciasecu : num  93.7 77.5 83.1 89.5 74.9 ...
##  $ saneamiento    : num  63 31.2 48.2 47.8 25.6 ...
##  $ electrificacion: num  90.5 76.7 70.6 79.1 62.7 ...
##  $ IDH            : num  0.354 0.191 0.209 0.254 0.237 ...
##  $ esperanza      : num  73.4 71.4 66.2 66.7 72.8 ...
##  $ secucompleta   : num  66.5 36.7 41.6 34.6 34.9 ...
##  $ educatiempo    : num  7.88 4.67 4.72 6.95 4.58 ...
##  $ percapitaf     : num  289 117 147 200 193 ...
##  $ desnutricion   : num  3204 4730 1617 331 3063 ...
##  $ eda            : num  2541 986 316 117 1074 ...
##  $ mortalidad     : num  33 29 35 9 28 61 45 26 20 15 ...
##  $ isalud         : num  1926 1915 656 152 1388 ...

Estandarizamos:

data2_s= as.data.frame(scale(data2[,-c(1,2,8,16)])) #creamos subset de puntuaciones estandarizadas
head(data2_s)
library(psych)
pearson= cor(data2_s)
pearson
##                  identidad   medicos asistenciasecu saneamiento
## identidad       1.00000000 0.3447268    0.596618657   0.4398010
## medicos         0.34472677 1.0000000    0.419696445   0.6735922
## asistenciasecu  0.59661866 0.4196964    1.000000000   0.4145312
## saneamiento     0.43980102 0.6735922    0.414531165   1.0000000
## electrificacion 0.49172621 0.5368197    0.671414031   0.6412860
## esperanza       0.31697007 0.5263551    0.350869825   0.5440871
## secucompleta    0.60395182 0.5957711    0.800790694   0.6088538
## educatiempo     0.38712472 0.7364577    0.683099960   0.6991449
## percapitaf      0.34756145 0.7518571    0.546718635   0.7751378
## desnutricion    0.01520069 0.2455858   -0.006303684   0.1548339
## eda             0.09069119 0.4503525    0.126293302   0.2745264
## mortalidad      0.08222114 0.3468117    0.084349800   0.2263267
##                 electrificacion  esperanza secucompleta educatiempo
## identidad             0.4917262 0.31697007    0.6039518   0.3871247
## medicos               0.5368197 0.52635506    0.5957711   0.7364577
## asistenciasecu        0.6714140 0.35086983    0.8007907   0.6831000
## saneamiento           0.6412860 0.54408708    0.6088538   0.6991449
## electrificacion       1.0000000 0.42393247    0.7825606   0.7491412
## esperanza             0.4239325 1.00000000    0.4622723   0.5602633
## secucompleta          0.7825606 0.46227234    1.0000000   0.8670539
## educatiempo           0.7491412 0.56026332    0.8670539   1.0000000
## percapitaf            0.6921941 0.65047501    0.7400428   0.8983882
## desnutricion          0.1473826 0.08773521    0.1041538   0.1548962
## eda                   0.2550437 0.21153840    0.2586788   0.3294834
## mortalidad            0.1984388 0.10913006    0.2029312   0.2428847
##                 percapitaf desnutricion        eda mortalidad
## identidad        0.3475614  0.015200691 0.09069119 0.08222114
## medicos          0.7518571  0.245585806 0.45035247 0.34681167
## asistenciasecu   0.5467186 -0.006303684 0.12629330 0.08434980
## saneamiento      0.7751378  0.154833854 0.27452643 0.22632674
## electrificacion  0.6921941  0.147382611 0.25504373 0.19843878
## esperanza        0.6504750  0.087735206 0.21153840 0.10913006
## secucompleta     0.7400428  0.104153776 0.25867879 0.20293118
## educatiempo      0.8983882  0.154896239 0.32948340 0.24288467
## percapitaf       1.0000000  0.239628784 0.41672183 0.32890966
## desnutricion     0.2396288  1.000000000 0.88277362 0.93661815
## eda              0.4167218  0.882773623 1.00000000 0.96869849
## mortalidad       0.3289097  0.936618152 0.96869849 1.00000000
cor.plot(pearson,
         numbers=T,
         upper= FALSE,
         main="correlacion",
         show.legend = "FALSE")

KMO(data2_s)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = data2_s)
## Overall MSA =  0.82
## MSA for each item = 
##       identidad         medicos  asistenciasecu     saneamiento 
##            0.77            0.91            0.90            0.86 
## electrificacion       esperanza    secucompleta     educatiempo 
##            0.92            0.83            0.85            0.82 
##      percapitaf    desnutricion             eda      mortalidad 
##            0.87            0.73            0.69            0.60
fa.parallel(pearson, fm="pa", fa="fa", main = "Scree Plot",n.obs = nrow(data2_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
data2_sF <-fa(data2_s, 
              nfactors=3, #factores o latentes, reduce en 9 dimensiones a 2 dimensiones
              rotate="varimax") # lo que se cambia es la data y el numero de factores
## 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(data2_sF)
## 
## Loadings:
##                 MR1    MR2    MR3   
## identidad        0.222         0.598
## medicos          0.728  0.243  0.266
## asistenciasecu   0.264         0.857
## saneamiento      0.741  0.107  0.316
## electrificacion  0.513  0.106  0.635
## esperanza        0.624         0.207
## secucompleta     0.501         0.808
## educatiempo      0.753  0.123  0.536
## percapitaf       0.886  0.197  0.339
## desnutricion            0.928       
## eda              0.242  0.940       
## mortalidad       0.117  0.994       
## 
##                  MR1   MR2   MR3
## SS loadings    3.529 2.878 2.771
## Proportion Var 0.294 0.240 0.231
## Cumulative Var 0.294 0.534 0.765
sort(data2_sF$communalities)
##       identidad       esperanza         medicos     saneamiento 
##       0.4067896       0.4342907       0.6592267       0.6596614 
## electrificacion  asistenciasecu    desnutricion     educatiempo 
##       0.6774509       0.8038708       0.8653193       0.8686633 
##    secucompleta      percapitaf             eda      mortalidad 
##       0.9115575       0.9382871       0.9465089       0.9950000
sort(data2_sF$uniquenesses) 
##      mortalidad             eda      percapitaf    secucompleta 
##    -0.005315107     0.053506511     0.061749880     0.088493259 
##     educatiempo    desnutricion  asistenciasecu electrificacion 
##     0.131262126     0.134646731     0.196077653     0.322681040 
##     saneamiento         medicos       esperanza       identidad 
##     0.340289553     0.340734352     0.565649327     0.593095822
sort(data2_sF$complexity)
##    desnutricion      mortalidad             eda  asistenciasecu 
##        1.010876        1.036931        1.141355        1.188127 
##       esperanza       identidad      percapitaf     saneamiento 
##        1.226553        1.271670        1.396867        1.400351 
##         medicos    secucompleta     educatiempo electrificacion 
##        1.505735        1.699369        1.869025        1.980657
fa.diagram(data2_sF)