Abro la data idhPeruSucio.xlsx
folder="data"
fileName="idhPeruSucio.xlsx"
fileToRead=file.path(folder,fileName)
library(openxlsx)
idhPeru2011=read.xlsx(fileToRead,sheet = 2,startRow = 3,skipEmptyRows = T,skipEmptyCols = T)
Limpio la data
names(idhPeru2011)
## [1] "Ubigeo.2010"
## [2] "DEPARTAMENTO"
## [3] "X3"
## [4] "Población"
## [5] "X5"
## [6] "Índice.de.Desarrollo.Humano"
## [7] "X7"
## [8] "Esperanza.de.vida.al.nacer"
## [9] "X9"
## [10] "Población.con.Educ..secundaria.completa"
## [11] "X11"
## [12] "Años.de.educación.(Poblac..25.y.más)"
## [13] "X13"
## [14] "Ingreso.familiar.per.cápita"
## [15] "X15"
No me sirven las columnas 5, 7, 9, 11, 13, 15. Las elimino:
idhPeru2011=idhPeru2011[,-c(seq(5,15,2))]
head(idhPeru2011,10)
## Ubigeo.2010 DEPARTAMENTO X3 Población
## 1 <NA> <NA> Provincia <NA>
## 2 <NA> <NA> Distrito habitantes
## 3 000000 PERÚ a/ <NA> 29797694
## 4 010000 AMAZONAS <NA> 415466
## 5 010100 <NA> Chachapoyas 54593
## 6 010101 1 Chachapoyas 27356
## 7 010102 2 Asuncion 299
## 8 010103 3 Balsas 1575
## 9 010104 4 Cheto 614
## 10 010105 5 Chiliquin 818
## Índice.de.Desarrollo.Humano Esperanza.de.vida.al.nacer
## 1 <NA> <NA>
## 2 IDH años
## 3 0.49062753133803527 73.988808324083294
## 4 0.36896834005484624 73.907425803499493
## 5 0.42011363353481007 73.84634829093244
## 6 0.529899551279151 73.260919434330404
## 7 0.16425289206540494 73.420319021536045
## 8 0.25822125854315414 72.104074626617859
## 9 0.32069629851358578 77.529765589236035
## 10 0.20788539805432515 76.07404483370739
## Población.con.Educ..secundaria.completa
## 1 <NA>
## 2 %
## 3 66.276242603783089
## 4 50.63017450619418
## 5 44.610828903139826
## 6 62.719298245614027
## 7 0.70865224442015928
## 8 14.467610356075934
## 9 44.560066430346239
## 10 8.0030467121040392
## Años.de.educación.(Poblac..25.y.más) Ingreso.familiar.per.cápita
## 1 <NA> <NA>
## 2 años N.S. mes
## 3 8.7942999999999998 659.05109246810969
## 4 6.4861000000000004 406.61596243617157
## 5 7.773447107820453 553.26026548843981
## 6 9.9674319279253609 794.19624767619837
## 7 6.0860556122448983 327.67005595861554
## 8 5.2594621468926555 322.95667949577552
## 9 4.9548379939209735 330.13946067043514
## 10 4.3790553971486759 250.78737787688144
Primero veo la cola:
tail(idhPeru2011,10)
## Ubigeo.2010
## 2055 250302
## 2056 250303
## 2057 250400
## 2058 250401
## 2059 a/ Incluye las cifras estimadas del distrito de Carmen Alto en la provincia de Huamanga, departamento de Ayacucho, donde. Autoridades locales no permitieron la ejecución del Censo de Población y Vivienda 2007.
## 2060 1/ Cifras estimadas. Autoridades locales no permitieron la ejecución del Censo de Población y Vivienda 2007.
## 2061 2/ Incluye a la población ubicada en área temporal por límites de fronteras de los distritos de Pangoa y Mazamari.
## 2062 3/ Provincias de Lima y Callao.
## 2063 Fuente: INEI. Censo de Población y Vivienda 2007. ENAHO 2007.
## 2064 Elaboración: PNUD-Perú.
## DEPARTAMENTO X3 Población Índice.de.Desarrollo.Humano
## 2055 2 Irazola 22100 0.33858718953972994
## 2056 3 Curimana 7316 0.31504415477294173
## 2057 <NA> Purús 4174 0.29557075331958632
## 2058 1 Purus 4174 0.29557075331958632
## 2059 <NA> <NA> <NA> <NA>
## 2060 <NA> <NA> <NA> <NA>
## 2061 <NA> <NA> <NA> <NA>
## 2062 <NA> <NA> <NA> <NA>
## 2063 <NA> <NA> <NA> <NA>
## 2064 <NA> <NA> <NA> <NA>
## Esperanza.de.vida.al.nacer Población.con.Educ..secundaria.completa
## 2055 80.034685972357039 31.039033297329429
## 2056 79.821071852559385 28.941430538389447
## 2057 69.315075488828612 17.433316771461119
## 2058 69.315075488828612 17.433316771461119
## 2059 <NA> <NA>
## 2060 <NA> <NA>
## 2061 <NA> <NA>
## 2062 <NA> <NA>
## 2063 <NA> <NA>
## 2064 <NA> <NA>
## Años.de.educación.(Poblac..25.y.más) Ingreso.familiar.per.cápita
## 2055 6.5836826840270666 357.59092491362168
## 2056 6.7281386028205956 301.18136546933988
## 2057 7.1980202797202804 369.7633933689242
## 2058 7.1980202797202804 369.7633933689242
## 2059 <NA> <NA>
## 2060 <NA> <NA>
## 2061 <NA> <NA>
## 2062 <NA> <NA>
## 2063 <NA> <NA>
## 2064 <NA> <NA>
Veo que desde la fila 2059 hasta la 2064 no me sirven. Las elimino:
idhPeru2011=idhPeru2011[-c(2059:2064),]
tail(idhPeru2011,10)
## Ubigeo.2010 DEPARTAMENTO X3 Población
## 2049 250201 1 Raymondi 31815
## 2050 250202 2 Sepahua 7790
## 2051 250203 3 Tahuania 7798
## 2052 250204 4 Yurua 2080
## 2053 250300 <NA> Padre Abad 55866
## 2054 250301 1 Padre Abad 26450
## 2055 250302 2 Irazola 22100
## 2056 250303 3 Curimana 7316
## 2057 250400 <NA> Purús 4174
## 2058 250401 1 Purus 4174
## Índice.de.Desarrollo.Humano Esperanza.de.vida.al.nacer
## 2049 0.27527367394521718 62.97038565324543
## 2050 0.30414280921844089 62.719626075287557
## 2051 0.20694106350028488 66.33663214694424
## 2052 0.18801099118931258 63.833467411715191
## 2053 0.37937172234231209 78.351364684196838
## 2054 0.42160822113432284 77.498869442241173
## 2055 0.33858718953972994 80.034685972357039
## 2056 0.31504415477294173 79.821071852559385
## 2057 0.29557075331958632 69.315075488828612
## 2058 0.29557075331958632 69.315075488828612
## Población.con.Educ..secundaria.completa
## 2049 20.894950859894408
## 2050 26.773095285900432
## 2051 11.40516950071687
## 2052 13.182170132157122
## 2053 38.742362438524466
## 2054 44.322344322344321
## 2055 31.039033297329429
## 2056 28.941430538389447
## 2057 17.433316771461119
## 2058 17.433316771461119
## Años.de.educación.(Poblac..25.y.más) Ingreso.familiar.per.cápita
## 2049 6.3232612679628062 349.93060085267564
## 2050 6.9830102978112674 387.88833176044221
## 2051 5.4978470408163265 218.98903543145508
## 2052 4.4132037520391521 197.50839473965382
## 2053 7.1190996005991014 432.32836581365569
## 2054 7.6037246146872173 531.04930715239925
## 2055 6.5836826840270666 357.59092491362168
## 2056 6.7281386028205956 301.18136546933988
## 2057 7.1980202797202804 369.7633933689242
## 2058 7.1980202797202804 369.7633933689242
Ahora vuelvo a ver las primeras filas, para ver qué puedo eliminar:
head(idhPeru2011,7)
## Ubigeo.2010 DEPARTAMENTO X3 Población
## 1 <NA> <NA> Provincia <NA>
## 2 <NA> <NA> Distrito habitantes
## 3 000000 PERÚ a/ <NA> 29797694
## 4 010000 AMAZONAS <NA> 415466
## 5 010100 <NA> Chachapoyas 54593
## 6 010101 1 Chachapoyas 27356
## 7 010102 2 Asuncion 299
## Índice.de.Desarrollo.Humano Esperanza.de.vida.al.nacer
## 1 <NA> <NA>
## 2 IDH años
## 3 0.49062753133803527 73.988808324083294
## 4 0.36896834005484624 73.907425803499493
## 5 0.42011363353481007 73.84634829093244
## 6 0.529899551279151 73.260919434330404
## 7 0.16425289206540494 73.420319021536045
## Población.con.Educ..secundaria.completa
## 1 <NA>
## 2 %
## 3 66.276242603783089
## 4 50.63017450619418
## 5 44.610828903139826
## 6 62.719298245614027
## 7 0.70865224442015928
## Años.de.educación.(Poblac..25.y.más) Ingreso.familiar.per.cápita
## 1 <NA> <NA>
## 2 años N.S. mes
## 3 8.7942999999999998 659.05109246810969
## 4 6.4861000000000004 406.61596243617157
## 5 7.773447107820453 553.26026548843981
## 6 9.9674319279253609 794.19624767619837
## 7 6.0860556122448983 327.67005595861554
Puedo eliminar las 3 primeras filas:
idhPeru2011=idhPeru2011[-c(1:3),]
head(idhPeru2011,10)
## Ubigeo.2010 DEPARTAMENTO X3 Población
## 4 010000 AMAZONAS <NA> 415466
## 5 010100 <NA> Chachapoyas 54593
## 6 010101 1 Chachapoyas 27356
## 7 010102 2 Asuncion 299
## 8 010103 3 Balsas 1575
## 9 010104 4 Cheto 614
## 10 010105 5 Chiliquin 818
## 11 010106 6 Chuquibamba 2169
## 12 010107 7 Granada 425
## 13 010108 8 Huancas 1063
## Índice.de.Desarrollo.Humano Esperanza.de.vida.al.nacer
## 4 0.36896834005484624 73.907425803499493
## 5 0.42011363353481007 73.84634829093244
## 6 0.529899551279151 73.260919434330404
## 7 0.16425289206540494 73.420319021536045
## 8 0.25822125854315414 72.104074626617859
## 9 0.32069629851358578 77.529765589236035
## 10 0.20788539805432515 76.07404483370739
## 11 0.22967741105657452 71.01416809294841
## 12 0.3193413898976552 71.451028386422664
## 13 0.29016006459717669 74.854283689206738
## Población.con.Educ..secundaria.completa
## 4 50.63017450619418
## 5 44.610828903139826
## 6 62.719298245614027
## 7 0.70865224442015928
## 8 14.467610356075934
## 9 44.560066430346239
## 10 8.0030467121040392
## 11 10.329915263482068
## 12 40.099621352168377
## 13 25.692343606211754
## Años.de.educación.(Poblac..25.y.más) Ingreso.familiar.per.cápita
## 4 6.4861000000000004 406.61596243617157
## 5 7.773447107820453 553.26026548843981
## 6 9.9674319279253609 794.19624767619837
## 7 6.0860556122448983 327.67005595861554
## 8 5.2594621468926555 322.95667949577552
## 9 4.9548379939209735 330.13946067043514
## 10 4.3790553971486759 250.78737787688144
## 11 6.1334918791312552 254.33515749209994
## 12 5.2516654166666665 367.12239793785773
## 13 5.7250897314375999 306.95442378275027
regiones=idhPeru2011[is.na(idhPeru2011$X3),]
head(regiones,10)
## Ubigeo.2010 DEPARTAMENTO X3 Población Índice.de.Desarrollo.Humano
## 4 010000 AMAZONAS <NA> 415466 0.36896834005484624
## 96 020000 ANCASH <NA> 1122792 0.42959257406010565
## 283 030000 APURÍMAC <NA> 449365 0.31842005652673688
## 371 040000 AREQUIPA <NA> 1231553 0.55285064046258203
## 489 050000 AYACUCHO <NA> 658400 0.33375939508499963
## 612 060000 CAJAMARCA <NA> 1507486 0.36333847456618212
## 760 080000 CUSCO <NA> 1283540 0.41421298645216836
## 882 090000 HUANCAVELICA <NA> 479641 0.29623369563585827
## 984 100000 HUÁNUCO <NA> 834054 0.34837421894933834
## 1072 110000 ICA <NA> 755508 0.52442942447067897
## Esperanza.de.vida.al.nacer Población.con.Educ..secundaria.completa
## 4 73.907425803499493 50.63017450619418
## 96 73.925380678277818 55.308382183476127
## 283 73.198031315525952 53.795811518324612
## 371 75.513738285296242 85.211296303842872
## 489 70.854303562630946 43.591237225688303
## 612 73.667074781816197 52.220490845344756
## 760 70.791544837757428 66.513131671021725
## 882 66.457123074625244 43.728522336769757
## 984 72.476775781094119 43.299169693824595
## 1072 78.859924092389278 77.481117161426312
## Años.de.educación.(Poblac..25.y.más) Ingreso.familiar.per.cápita
## 4 6.4861000000000004 406.61596243617157
## 96 7.6707000000000001 536.19647485214102
## 283 5.5644 297.33858877935432
## 371 9.6656999999999993 755.12686385316226
## 489 6.3372999999999999 356.31751380718043
## 612 6.3766000000000007 390.31972375624298
## 760 7.8243000000000009 467.10688849851977
## 882 5.7095000000000002 302.28435902262481
## 984 6.5889000000000006 379.67634917561963
## 1072 9.8956999999999997 630.91267349233624
Elimino columnas innecesarias:
regiones=regiones[,-c(3:9)]
head(regiones,10)
## Ubigeo.2010 DEPARTAMENTO
## 4 010000 AMAZONAS
## 96 020000 ANCASH
## 283 030000 APURÍMAC
## 371 040000 AREQUIPA
## 489 050000 AYACUCHO
## 612 060000 CAJAMARCA
## 760 080000 CUSCO
## 882 090000 HUANCAVELICA
## 984 100000 HUÁNUCO
## 1072 110000 ICA
Reseteo el índice y pongo nombres adecuados a las columnas:
row.names(regiones)=NULL
colnames(regiones)=c("UbigeoReg","nombreReg")
head(regiones,10)
## UbigeoReg nombreReg
## 1 010000 AMAZONAS
## 2 020000 ANCASH
## 3 030000 APURÍMAC
## 4 040000 AREQUIPA
## 5 050000 AYACUCHO
## 6 060000 CAJAMARCA
## 7 080000 CUSCO
## 8 090000 HUANCAVELICA
## 9 100000 HUÁNUCO
## 10 110000 ICA
¿Hay 26 regiones? ¡No! Las filas 15 y 16 no me sirven. Las elimino:
regiones=regiones[-c(15:16),]
head(regiones,17)
## UbigeoReg nombreReg
## 1 010000 AMAZONAS
## 2 020000 ANCASH
## 3 030000 APURÍMAC
## 4 040000 AREQUIPA
## 5 050000 AYACUCHO
## 6 060000 CAJAMARCA
## 7 080000 CUSCO
## 8 090000 HUANCAVELICA
## 9 100000 HUÁNUCO
## 10 110000 ICA
## 11 120000 JUNÍN
## 12 130000 LA LIBERTAD
## 13 140000 LAMBAYEQUE
## 14 150000 LIMA
## 17 160000 LORETO
## 18 170000 MADRE DE DIOS
## 19 180000 MOQUEGUA
Reseteo el índice:
row.names(regiones)=NULL
head(regiones,10)
## UbigeoReg nombreReg
## 1 010000 AMAZONAS
## 2 020000 ANCASH
## 3 030000 APURÍMAC
## 4 040000 AREQUIPA
## 5 050000 AYACUCHO
## 6 060000 CAJAMARCA
## 7 080000 CUSCO
## 8 090000 HUANCAVELICA
## 9 100000 HUÁNUCO
## 10 110000 ICA
provincias=idhPeru2011[is.na(idhPeru2011$DEPARTAMENTO),]
head(provincias,10)
## Ubigeo.2010 DEPARTAMENTO X3 Población
## 5 010100 <NA> Chachapoyas 54593
## 27 010200 <NA> Bagua 77537
## 34 010300 <NA> Bongará 31769
## 47 010400 <NA> Condorcanqui 50742
## 51 010500 <NA> Luya 52248
## 75 010600 <NA> Rodríguez de Mendoza 29895
## 88 010700 <NA> Utcubamba 118682
## 97 020100 <NA> Huaraz 159125
## 110 020200 <NA> Aija 8035
## 116 020300 <NA> Antonio Raymondi 17037
## Índice.de.Desarrollo.Humano Esperanza.de.vida.al.nacer
## 5 0.42011363353481007 73.84634829093244
## 27 0.37343768713646164 75.997188952780888
## 34 0.3398606137238962 73.377739752880586
## 47 0.18637212001373762 70.876309315094176
## 51 0.29966383180357997 73.680096605176288
## 75 0.32530559190841485 74.321242463194878
## 88 0.35565746705017715 74.548586724769805
## 97 0.47036346793724154 73.038094392838872
## 110 0.28260885353573695 63.907637533084682
## 116 0.23117981916261915 70.325114987149846
## Población.con.Educ..secundaria.completa
## 5 44.610828903139826
## 27 39.679425816384068
## 34 28.9085382507023
## 47 7.9761812715874587
## 51 33.566047926778161
## 75 26.226471873881358
## 88 33.219380716608491
## 97 67.602667602667594
## 110 34.708551658025222
## 116 26.42125049108115
## Años.de.educación.(Poblac..25.y.más) Ingreso.familiar.per.cápita
## 5 7.773447107820453 553.26026548843981
## 27 6.9325837858497765 433.81347975257353
## 34 6.4425909579534633 425.36961604071962
## 47 5.5571315826064973 178.66169951681553
## 51 5.4700235066437877 312.57437606377721
## 75 6.0595644423453221 403.04455076254555
## 88 6.14634391331247 456.13279066424855
## 97 9.1446711290937017 576.82524025596388
## 110 7.112578840054371 273.10243389621434
## 116 5.7856697156398109 183.04571883747874
Eliminamos columnas innecesarias. Como en este caso necesito trabajar con información a nivel del PROVINCIAS,la única columna innecesaria sería la segunda:
provincias=provincias[,-c(2)]
head(provincias,10)
## Ubigeo.2010 X3 Población Índice.de.Desarrollo.Humano
## 5 010100 Chachapoyas 54593 0.42011363353481007
## 27 010200 Bagua 77537 0.37343768713646164
## 34 010300 Bongará 31769 0.3398606137238962
## 47 010400 Condorcanqui 50742 0.18637212001373762
## 51 010500 Luya 52248 0.29966383180357997
## 75 010600 Rodríguez de Mendoza 29895 0.32530559190841485
## 88 010700 Utcubamba 118682 0.35565746705017715
## 97 020100 Huaraz 159125 0.47036346793724154
## 110 020200 Aija 8035 0.28260885353573695
## 116 020300 Antonio Raymondi 17037 0.23117981916261915
## Esperanza.de.vida.al.nacer Población.con.Educ..secundaria.completa
## 5 73.84634829093244 44.610828903139826
## 27 75.997188952780888 39.679425816384068
## 34 73.377739752880586 28.9085382507023
## 47 70.876309315094176 7.9761812715874587
## 51 73.680096605176288 33.566047926778161
## 75 74.321242463194878 26.226471873881358
## 88 74.548586724769805 33.219380716608491
## 97 73.038094392838872 67.602667602667594
## 110 63.907637533084682 34.708551658025222
## 116 70.325114987149846 26.42125049108115
## Años.de.educación.(Poblac..25.y.más) Ingreso.familiar.per.cápita
## 5 7.773447107820453 553.26026548843981
## 27 6.9325837858497765 433.81347975257353
## 34 6.4425909579534633 425.36961604071962
## 47 5.5571315826064973 178.66169951681553
## 51 5.4700235066437877 312.57437606377721
## 75 6.0595644423453221 403.04455076254555
## 88 6.14634391331247 456.13279066424855
## 97 9.1446711290937017 576.82524025596388
## 110 7.112578840054371 273.10243389621434
## 116 5.7856697156398109 183.04571883747874
Reseteo mi índice:
row.names(provincias)=NULL
head(provincias,10)
## Ubigeo.2010 X3 Población Índice.de.Desarrollo.Humano
## 1 010100 Chachapoyas 54593 0.42011363353481007
## 2 010200 Bagua 77537 0.37343768713646164
## 3 010300 Bongará 31769 0.3398606137238962
## 4 010400 Condorcanqui 50742 0.18637212001373762
## 5 010500 Luya 52248 0.29966383180357997
## 6 010600 Rodríguez de Mendoza 29895 0.32530559190841485
## 7 010700 Utcubamba 118682 0.35565746705017715
## 8 020100 Huaraz 159125 0.47036346793724154
## 9 020200 Aija 8035 0.28260885353573695
## 10 020300 Antonio Raymondi 17037 0.23117981916261915
## Esperanza.de.vida.al.nacer Población.con.Educ..secundaria.completa
## 1 73.84634829093244 44.610828903139826
## 2 75.997188952780888 39.679425816384068
## 3 73.377739752880586 28.9085382507023
## 4 70.876309315094176 7.9761812715874587
## 5 73.680096605176288 33.566047926778161
## 6 74.321242463194878 26.226471873881358
## 7 74.548586724769805 33.219380716608491
## 8 73.038094392838872 67.602667602667594
## 9 63.907637533084682 34.708551658025222
## 10 70.325114987149846 26.42125049108115
## Años.de.educación.(Poblac..25.y.más) Ingreso.familiar.per.cápita
## 1 7.773447107820453 553.26026548843981
## 2 6.9325837858497765 433.81347975257353
## 3 6.4425909579534633 425.36961604071962
## 4 5.5571315826064973 178.66169951681553
## 5 5.4700235066437877 312.57437606377721
## 6 6.0595644423453221 403.04455076254555
## 7 6.14634391331247 456.13279066424855
## 8 9.1446711290937017 576.82524025596388
## 9 7.112578840054371 273.10243389621434
## 10 5.7856697156398109 183.04571883747874
Notamos que la fila 129 es innecesaria. La eliminamos:
provincias=provincias[-c(129),]
head(provincias)
## Ubigeo.2010 X3 Población Índice.de.Desarrollo.Humano
## 1 010100 Chachapoyas 54593 0.42011363353481007
## 2 010200 Bagua 77537 0.37343768713646164
## 3 010300 Bongará 31769 0.3398606137238962
## 4 010400 Condorcanqui 50742 0.18637212001373762
## 5 010500 Luya 52248 0.29966383180357997
## 6 010600 Rodríguez de Mendoza 29895 0.32530559190841485
## Esperanza.de.vida.al.nacer Población.con.Educ..secundaria.completa
## 1 73.84634829093244 44.610828903139826
## 2 75.997188952780888 39.679425816384068
## 3 73.377739752880586 28.9085382507023
## 4 70.876309315094176 7.9761812715874587
## 5 73.680096605176288 33.566047926778161
## 6 74.321242463194878 26.226471873881358
## Años.de.educación.(Poblac..25.y.más) Ingreso.familiar.per.cápita
## 1 7.773447107820453 553.26026548843981
## 2 6.9325837858497765 433.81347975257353
## 3 6.4425909579534633 425.36961604071962
## 4 5.5571315826064973 178.66169951681553
## 5 5.4700235066437877 312.57437606377721
## 6 6.0595644423453221 403.04455076254555
Vuelvo a resetear el índice y cambio el nombre de mis variables:
row.names(provincias)=NULL
colnames(provincias)=c("UbigeoProv","nombreProv","habitantes","IDH","esperanza","secundaria","educa","percapitaf")
head(provincias)
## UbigeoProv nombreProv habitantes IDH
## 1 010100 Chachapoyas 54593 0.42011363353481007
## 2 010200 Bagua 77537 0.37343768713646164
## 3 010300 Bongará 31769 0.3398606137238962
## 4 010400 Condorcanqui 50742 0.18637212001373762
## 5 010500 Luya 52248 0.29966383180357997
## 6 010600 Rodríguez de Mendoza 29895 0.32530559190841485
## esperanza secundaria educa
## 1 73.84634829093244 44.610828903139826 7.773447107820453
## 2 75.997188952780888 39.679425816384068 6.9325837858497765
## 3 73.377739752880586 28.9085382507023 6.4425909579534633
## 4 70.876309315094176 7.9761812715874587 5.5571315826064973
## 5 73.680096605176288 33.566047926778161 5.4700235066437877
## 6 74.321242463194878 26.226471873881358 6.0595644423453221
## percapitaf
## 1 553.26026548843981
## 2 433.81347975257353
## 3 425.36961604071962
## 4 178.66169951681553
## 5 312.57437606377721
## 6 403.04455076254555
provincias$UbigeoReg=provincias$UbigeoProv
str(provincias$UbigeoReg)
## chr [1:195] "010100" "010200" "010300" "010400" "010500" "010600" ...
substr(provincias$UbigeoReg,3,6)='0000'
head(provincias,10)
## UbigeoProv nombreProv habitantes IDH
## 1 010100 Chachapoyas 54593 0.42011363353481007
## 2 010200 Bagua 77537 0.37343768713646164
## 3 010300 Bongará 31769 0.3398606137238962
## 4 010400 Condorcanqui 50742 0.18637212001373762
## 5 010500 Luya 52248 0.29966383180357997
## 6 010600 Rodríguez de Mendoza 29895 0.32530559190841485
## 7 010700 Utcubamba 118682 0.35565746705017715
## 8 020100 Huaraz 159125 0.47036346793724154
## 9 020200 Aija 8035 0.28260885353573695
## 10 020300 Antonio Raymondi 17037 0.23117981916261915
## esperanza secundaria educa
## 1 73.84634829093244 44.610828903139826 7.773447107820453
## 2 75.997188952780888 39.679425816384068 6.9325837858497765
## 3 73.377739752880586 28.9085382507023 6.4425909579534633
## 4 70.876309315094176 7.9761812715874587 5.5571315826064973
## 5 73.680096605176288 33.566047926778161 5.4700235066437877
## 6 74.321242463194878 26.226471873881358 6.0595644423453221
## 7 74.548586724769805 33.219380716608491 6.14634391331247
## 8 73.038094392838872 67.602667602667594 9.1446711290937017
## 9 63.907637533084682 34.708551658025222 7.112578840054371
## 10 70.325114987149846 26.42125049108115 5.7856697156398109
## percapitaf UbigeoReg
## 1 553.26026548843981 010000
## 2 433.81347975257353 010000
## 3 425.36961604071962 010000
## 4 178.66169951681553 010000
## 5 312.57437606377721 010000
## 6 403.04455076254555 010000
## 7 456.13279066424855 010000
## 8 576.82524025596388 020000
## 9 273.10243389621434 020000
## 10 183.04571883747874 020000
Ordeno mis columnas:
provincias=provincias[,c(9,1:8)]
head(provincias,10)
## UbigeoReg UbigeoProv nombreProv habitantes
## 1 010000 010100 Chachapoyas 54593
## 2 010000 010200 Bagua 77537
## 3 010000 010300 Bongará 31769
## 4 010000 010400 Condorcanqui 50742
## 5 010000 010500 Luya 52248
## 6 010000 010600 Rodríguez de Mendoza 29895
## 7 010000 010700 Utcubamba 118682
## 8 020000 020100 Huaraz 159125
## 9 020000 020200 Aija 8035
## 10 020000 020300 Antonio Raymondi 17037
## IDH esperanza secundaria
## 1 0.42011363353481007 73.84634829093244 44.610828903139826
## 2 0.37343768713646164 75.997188952780888 39.679425816384068
## 3 0.3398606137238962 73.377739752880586 28.9085382507023
## 4 0.18637212001373762 70.876309315094176 7.9761812715874587
## 5 0.29966383180357997 73.680096605176288 33.566047926778161
## 6 0.32530559190841485 74.321242463194878 26.226471873881358
## 7 0.35565746705017715 74.548586724769805 33.219380716608491
## 8 0.47036346793724154 73.038094392838872 67.602667602667594
## 9 0.28260885353573695 63.907637533084682 34.708551658025222
## 10 0.23117981916261915 70.325114987149846 26.42125049108115
## educa percapitaf
## 1 7.773447107820453 553.26026548843981
## 2 6.9325837858497765 433.81347975257353
## 3 6.4425909579534633 425.36961604071962
## 4 5.5571315826064973 178.66169951681553
## 5 5.4700235066437877 312.57437606377721
## 6 6.0595644423453221 403.04455076254555
## 7 6.14634391331247 456.13279066424855
## 8 9.1446711290937017 576.82524025596388
## 9 7.112578840054371 273.10243389621434
## 10 5.7856697156398109 183.04571883747874
idhPeru2011_provincial=merge(regiones,provincias,
by.x = "UbigeoReg",
by.y = "UbigeoReg")
head(idhPeru2011_provincial,10)
## UbigeoReg nombreReg UbigeoProv nombreProv habitantes
## 1 010000 AMAZONAS 010200 Bagua 77537
## 2 010000 AMAZONAS 010300 Bongará 31769
## 3 010000 AMAZONAS 010400 Condorcanqui 50742
## 4 010000 AMAZONAS 010500 Luya 52248
## 5 010000 AMAZONAS 010600 Rodríguez de Mendoza 29895
## 6 010000 AMAZONAS 010700 Utcubamba 118682
## 7 010000 AMAZONAS 010100 Chachapoyas 54593
## 8 020000 ANCASH 020100 Huaraz 159125
## 9 020000 ANCASH 020200 Aija 8035
## 10 020000 ANCASH 020400 Asunción 9085
## IDH esperanza secundaria
## 1 0.37343768713646164 75.997188952780888 39.679425816384068
## 2 0.3398606137238962 73.377739752880586 28.9085382507023
## 3 0.18637212001373762 70.876309315094176 7.9761812715874587
## 4 0.29966383180357997 73.680096605176288 33.566047926778161
## 5 0.32530559190841485 74.321242463194878 26.226471873881358
## 6 0.35565746705017715 74.548586724769805 33.219380716608491
## 7 0.42011363353481007 73.84634829093244 44.610828903139826
## 8 0.47036346793724154 73.038094392838872 67.602667602667594
## 9 0.28260885353573695 63.907637533084682 34.708551658025222
## 10 0.2724575615070095 70.096318029350954 33.674407974869055
## educa percapitaf
## 1 6.9325837858497765 433.81347975257353
## 2 6.4425909579534633 425.36961604071962
## 3 5.5571315826064973 178.66169951681553
## 4 5.4700235066437877 312.57437606377721
## 5 6.0595644423453221 403.04455076254555
## 6 6.14634391331247 456.13279066424855
## 7 7.773447107820453 553.26026548843981
## 8 9.1446711290937017 576.82524025596388
## 9 7.112578840054371 273.10243389621434
## 10 5.2430156275805126 267.13914266221013
Ordeno las columnas y pongo en mayúsculas el nombre de las provincias
idhPeru2011_provincial=idhPeru2011_provincial[,c(1,3,2,4,5:10)]
head(idhPeru2011_provincial,10)
## UbigeoReg UbigeoProv nombreReg nombreProv habitantes
## 1 010000 010200 AMAZONAS Bagua 77537
## 2 010000 010300 AMAZONAS Bongará 31769
## 3 010000 010400 AMAZONAS Condorcanqui 50742
## 4 010000 010500 AMAZONAS Luya 52248
## 5 010000 010600 AMAZONAS Rodríguez de Mendoza 29895
## 6 010000 010700 AMAZONAS Utcubamba 118682
## 7 010000 010100 AMAZONAS Chachapoyas 54593
## 8 020000 020100 ANCASH Huaraz 159125
## 9 020000 020200 ANCASH Aija 8035
## 10 020000 020400 ANCASH Asunción 9085
## IDH esperanza secundaria
## 1 0.37343768713646164 75.997188952780888 39.679425816384068
## 2 0.3398606137238962 73.377739752880586 28.9085382507023
## 3 0.18637212001373762 70.876309315094176 7.9761812715874587
## 4 0.29966383180357997 73.680096605176288 33.566047926778161
## 5 0.32530559190841485 74.321242463194878 26.226471873881358
## 6 0.35565746705017715 74.548586724769805 33.219380716608491
## 7 0.42011363353481007 73.84634829093244 44.610828903139826
## 8 0.47036346793724154 73.038094392838872 67.602667602667594
## 9 0.28260885353573695 63.907637533084682 34.708551658025222
## 10 0.2724575615070095 70.096318029350954 33.674407974869055
## educa percapitaf
## 1 6.9325837858497765 433.81347975257353
## 2 6.4425909579534633 425.36961604071962
## 3 5.5571315826064973 178.66169951681553
## 4 5.4700235066437877 312.57437606377721
## 5 6.0595644423453221 403.04455076254555
## 6 6.14634391331247 456.13279066424855
## 7 7.773447107820453 553.26026548843981
## 8 9.1446711290937017 576.82524025596388
## 9 7.112578840054371 273.10243389621434
## 10 5.2430156275805126 267.13914266221013
idhPeru2011_provincial$nombreProv=toupper(idhPeru2011_provincial$nombreProv)
head(idhPeru2011_provincial)
## UbigeoReg UbigeoProv nombreReg nombreProv habitantes
## 1 010000 010200 AMAZONAS BAGUA 77537
## 2 010000 010300 AMAZONAS BONGARÁ 31769
## 3 010000 010400 AMAZONAS CONDORCANQUI 50742
## 4 010000 010500 AMAZONAS LUYA 52248
## 5 010000 010600 AMAZONAS RODRÍGUEZ DE MENDOZA 29895
## 6 010000 010700 AMAZONAS UTCUBAMBA 118682
## IDH esperanza secundaria
## 1 0.37343768713646164 75.997188952780888 39.679425816384068
## 2 0.3398606137238962 73.377739752880586 28.9085382507023
## 3 0.18637212001373762 70.876309315094176 7.9761812715874587
## 4 0.29966383180357997 73.680096605176288 33.566047926778161
## 5 0.32530559190841485 74.321242463194878 26.226471873881358
## 6 0.35565746705017715 74.548586724769805 33.219380716608491
## educa percapitaf
## 1 6.9325837858497765 433.81347975257353
## 2 6.4425909579534633 425.36961604071962
## 3 5.5571315826064973 178.66169951681553
## 4 5.4700235066437877 312.57437606377721
## 5 6.0595644423453221 403.04455076254555
## 6 6.14634391331247 456.13279066424855
Hacemos clusters a partir de las variables componentes del IDH.
data=idhPeru2011_provincial[,c(7:10)]
row.names(data)=idhPeru2011_provincial$nombreProv #uso como nombre de las filas el nombre de las provincias
head(data)
## esperanza secundaria
## BAGUA 75.997188952780888 39.679425816384068
## BONGARÁ 73.377739752880586 28.9085382507023
## CONDORCANQUI 70.876309315094176 7.9761812715874587
## LUYA 73.680096605176288 33.566047926778161
## RODRÍGUEZ DE MENDOZA 74.321242463194878 26.226471873881358
## UTCUBAMBA 74.548586724769805 33.219380716608491
## educa percapitaf
## BAGUA 6.9325837858497765 433.81347975257353
## BONGARÁ 6.4425909579534633 425.36961604071962
## CONDORCANQUI 5.5571315826064973 178.66169951681553
## LUYA 5.4700235066437877 312.57437606377721
## RODRÍGUEZ DE MENDOZA 6.0595644423453221 403.04455076254555
## UTCUBAMBA 6.14634391331247 456.13279066424855
Saco estructura para ver si mis variables están como numéricas:
str(data)
## 'data.frame': 194 obs. of 4 variables:
## $ esperanza : chr "75.997188952780888" "73.377739752880586" "70.876309315094176" "73.680096605176288" ...
## $ secundaria: chr "39.679425816384068" "28.9085382507023" "7.9761812715874587" "33.566047926778161" ...
## $ educa : chr "6.9325837858497765" "6.4425909579534633" "5.5571315826064973" "5.4700235066437877" ...
## $ percapitaf: chr "433.81347975257353" "425.36961604071962" "178.66169951681553" "312.57437606377721" ...
Mis cuatro variables están como caracter. Las cambio a numéricas:
data$esperanza=as.numeric(data$esperanza)
data$secundaria=as.numeric(data$secundaria)
data$educa=as.numeric(data$educa)
data$percapitaf=as.numeric(data$percapitaf)
str(data)
## 'data.frame': 194 obs. of 4 variables:
## $ esperanza : num 76 73.4 70.9 73.7 74.3 ...
## $ secundaria: num 39.68 28.91 7.98 33.57 26.23 ...
## $ educa : num 6.93 6.44 5.56 5.47 6.06 ...
## $ percapitaf: num 434 425 179 313 403 ...
data.scaled = scale(data)
head(data.scaled)
## esperanza secundaria educa percapitaf
## BAGUA 0.8243359 -0.4263872 -0.06577274 0.13319525
## BONGARÁ 0.1963300 -1.0232688 -0.33931849 0.09056390
## CONDORCANQUI -0.4033812 -2.1832604 -0.83363930 -1.15501428
## LUYA 0.2688192 -0.7651674 -0.88226867 -0.47891637
## RODRÍGUEZ DE MENDOZA 0.4225323 -1.1718987 -0.55314871 -0.02215082
## UTCUBAMBA 0.4770374 -0.7843783 -0.50470279 0.24588092
library(NbClust)
nb = NbClust(data.scaled, method = "complete")
## *** : The Hubert index is a graphical method of determining the number of clusters.
## In the plot of Hubert index, we seek a significant knee that corresponds to a
## significant increase of the value of the measure i.e the significant peak in Hubert
## index second differences plot.
##
## *** : The D index is a graphical method of determining the number of clusters.
## In the plot of D index, we seek a significant knee (the significant peak in Dindex
## second differences plot) that corresponds to a significant increase of the value of
## the measure.
##
## *******************************************************************
## * Among all indices:
## * 10 proposed 2 as the best number of clusters
## * 7 proposed 3 as the best number of clusters
## * 3 proposed 4 as the best number of clusters
## * 1 proposed 10 as the best number of clusters
## * 1 proposed 12 as the best number of clusters
## * 1 proposed 13 as the best number of clusters
## * 1 proposed 15 as the best number of clusters
##
## ***** Conclusion *****
##
## * According to the majority rule, the best number of clusters is 2
##
##
## *******************************************************************
Podemos responder la pregunta a:
¿Cuántos grupos se han formado? Se van a formar 2 (DOS) grupos.
library(factoextra)
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 3.4.4
## Welcome! Related Books: `Practical Guide To Cluster Analysis in R` at https://goo.gl/13EFCZ
algoritmo="hclust"
cuantosClusters=2
solucionJerarquica1=eclust(data.scaled,
FUNcluster = algoritmo,
k = cuantosClusters,
method = "complete",
graph=F)
fviz_dend(solucionJerarquica1, rect = T, show_labels = T)
jerarquico=as.data.frame(solucionJerarquica1$cluster)
colnames(jerarquico)=c("jerarquico")
Añado la columna que contiene el grupo al que pertenece cada provincia a la data idhPeru2011_provincial. Para ello hago un merge:
idhPeru2011_provincial=merge(idhPeru2011_provincial,jerarquico,
by.x = "nombreProv",
by.y = 0)
head(idhPeru2011_provincial)
## nombreProv UbigeoReg UbigeoProv nombreReg habitantes
## 1 ABANCAY 030000 030100 APURÍMAC 105467
## 2 ACOBAMBA 090000 090200 HUANCAVELICA 71482
## 3 ACOMAYO 080000 080200 CUSCO 28515
## 4 AIJA 020000 020200 ANCASH 8035
## 5 ALTO AMAZONAS 160000 160200 LORETO 116035
## 6 AMBO 100000 100200 HUÁNUCO 58158
## IDH esperanza secundaria
## 1 0.42891892514189878 74.044518871903563 66.568627450980387
## 2 0.24523583740134028 71.498709896982803 36.569304903524184
## 3 0.23681524238380927 61.847484834271491 43.516134591742009
## 4 0.28260885353573695 63.907637533084682 34.708551658025222
## 5 0.30689077730473791 71.327870440291377 30.764524572906609
## 6 0.29167654803661758 73.952159658787579 35.747743238010635
## educa percapitaf jerarquico
## 1 8.1705794922031192 470.43488911408252 2
## 2 5.0814079655360302 196.37445309742031 1
## 3 4.9998651438117374 205.23249312109007 1
## 4 7.112578840054371 273.10243389621434 1
## 5 6.8611987598249664 313.65684772837517 2
## 6 5.0695556927785885 296.32222025112804 1
Para ello uso aggregate. Pero primero me aseguro que mis variables de interés son numéricas:
str(idhPeru2011_provincial)
## 'data.frame': 194 obs. of 11 variables:
## $ nombreProv: chr "ABANCAY" "ACOBAMBA" "ACOMAYO" "AIJA" ...
## $ UbigeoReg : chr "030000" "090000" "080000" "020000" ...
## $ UbigeoProv: chr "030100" "090200" "080200" "020200" ...
## $ nombreReg : chr "APURÍMAC" "HUANCAVELICA" "CUSCO" "ANCASH" ...
## $ habitantes: chr "105467" "71482" "28515" "8035" ...
## $ IDH : chr "0.42891892514189878" "0.24523583740134028" "0.23681524238380927" "0.28260885353573695" ...
## $ esperanza : chr "74.044518871903563" "71.498709896982803" "61.847484834271491" "63.907637533084682" ...
## $ secundaria: chr "66.568627450980387" "36.569304903524184" "43.516134591742009" "34.708551658025222" ...
## $ educa : chr "8.1705794922031192" "5.0814079655360302" "4.9998651438117374" "7.112578840054371" ...
## $ percapitaf: chr "470.43488911408252" "196.37445309742031" "205.23249312109007" "273.10243389621434" ...
## $ jerarquico: int 2 1 1 1 2 1 1 1 1 1 ...
Doy formato numérico:
idhPeru2011_provincial$esperanza=as.numeric(idhPeru2011_provincial$esperanza)
idhPeru2011_provincial$secundaria=as.numeric(idhPeru2011_provincial$secundaria)
idhPeru2011_provincial$educa=as.numeric(idhPeru2011_provincial$educa)
idhPeru2011_provincial$percapitaf=as.numeric(idhPeru2011_provincial$percapitaf)
str(idhPeru2011_provincial)
## 'data.frame': 194 obs. of 11 variables:
## $ nombreProv: chr "ABANCAY" "ACOBAMBA" "ACOMAYO" "AIJA" ...
## $ UbigeoReg : chr "030000" "090000" "080000" "020000" ...
## $ UbigeoProv: chr "030100" "090200" "080200" "020200" ...
## $ nombreReg : chr "APURÍMAC" "HUANCAVELICA" "CUSCO" "ANCASH" ...
## $ habitantes: chr "105467" "71482" "28515" "8035" ...
## $ IDH : chr "0.42891892514189878" "0.24523583740134028" "0.23681524238380927" "0.28260885353573695" ...
## $ esperanza : num 74 71.5 61.8 63.9 71.3 ...
## $ secundaria: num 66.6 36.6 43.5 34.7 30.8 ...
## $ educa : num 8.17 5.08 5 7.11 6.86 ...
## $ percapitaf: num 470 196 205 273 314 ...
## $ jerarquico: int 2 1 1 1 2 1 1 1 1 1 ...
Saco las medias por grupo:
aggregate(cbind(esperanza, secundaria, educa, percapitaf) ~ jerarquico, data=idhPeru2011_provincial,FUN=mean)
## jerarquico esperanza secundaria educa percapitaf
## 1 1 71.35437 33.16268 5.561857 273.1416
## 2 2 73.62298 59.92906 8.365521 526.0767
Para eso tengo que sacar t test de cada variable.
Veamos la variable esperanza:
t.test(idhPeru2011_provincial$esperanza~idhPeru2011_provincial$jerarquico,var.equal=T)
##
## Two Sample t-test
##
## data: idhPeru2011_provincial$esperanza by idhPeru2011_provincial$jerarquico
## t = -3.9186, df = 192, p-value = 0.0001238
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -3.410491 -1.126717
## sample estimates:
## mean in group 1 mean in group 2
## 71.35437 73.62298
¡Hay diferencias significativas en ESPERANZA DE VIDA! El grupo 2 tiene mayor esperanza de vida que el grupo 1.
Veamos la variable secundaria:
t.test(idhPeru2011_provincial$secundaria~idhPeru2011_provincial$jerarquico,var.equal=T)
##
## Two Sample t-test
##
## data: idhPeru2011_provincial$secundaria by idhPeru2011_provincial$jerarquico
## t = -15.343, df = 192, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -30.20735 -23.32542
## sample estimates:
## mean in group 1 mean in group 2
## 33.16268 59.92906
¡Hay diferencias significativas en POBLACIÓN CON SECUNDARIA COMPLETA! El grupo 2 tiene un mayor porcentaje de población con secundaria completa que el grupo 1.
Veamos la variable educa:
t.test(idhPeru2011_provincial$educa~idhPeru2011_provincial$jerarquico,var.equal=T)
##
## Two Sample t-test
##
## data: idhPeru2011_provincial$educa by idhPeru2011_provincial$jerarquico
## t = -17.449, df = 192, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -3.120583 -2.486746
## sample estimates:
## mean in group 1 mean in group 2
## 5.561857 8.365521
¡Hay diferencias significativas en AÑOS DE EDUCACIÓN! El grupo 2 tiene más años de educación que el grupo 1.
Finalmente, veamos la variable percapitaf:
t.test(idhPeru2011_provincial$percapitaf~idhPeru2011_provincial$jerarquico,var.equal=T)
##
## Two Sample t-test
##
## data: idhPeru2011_provincial$percapitaf by idhPeru2011_provincial$jerarquico
## t = -11.509, df = 192, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -296.2831 -209.5870
## sample estimates:
## mean in group 1 mean in group 2
## 273.1416 526.0767
¡Hay diferencias significativas en INGRESO FAMILIAR PER CÁPITA1 El grupo 2 tiene mayor ingreso familiar per cápita que el grupo 1.
Creo dos data frame distintas con las provincias de cada grupo.
Grupo 1:
grupo1=idhPeru2011_provincial[idhPeru2011_provincial$jerarquico=='1',]
head(grupo1)
## nombreProv UbigeoReg UbigeoProv nombreReg habitantes
## 2 ACOBAMBA 090000 090200 HUANCAVELICA 71482
## 3 ACOMAYO 080000 080200 CUSCO 28515
## 4 AIJA 020000 020200 ANCASH 8035
## 6 AMBO 100000 100200 HUÁNUCO 58158
## 7 ANDAHUAYLAS 030000 030200 APURÍMAC 162135
## 8 ANGARAES 090000 090300 HUANCAVELICA 59990
## IDH esperanza secundaria educa percapitaf jerarquico
## 2 0.24523583740134028 71.49871 36.56930 5.081408 196.3745 1
## 3 0.23681524238380927 61.84748 43.51613 4.999865 205.2325 1
## 4 0.28260885353573695 63.90764 34.70855 7.112579 273.1024 1
## 6 0.29167654803661758 73.95216 35.74774 5.069556 296.3222 1
## 7 0.31968387380156454 77.22772 47.20669 5.679913 292.6088 1
## 8 0.25753331250031852 68.74694 41.15813 4.982539 225.1298 1
Grupo 2:
grupo2=idhPeru2011_provincial[idhPeru2011_provincial$jerarquico=='2',]
head(grupo2)
## nombreProv UbigeoReg UbigeoProv nombreReg habitantes
## 1 ABANCAY 030000 030100 APURÍMAC 105467
## 5 ALTO AMAZONAS 160000 160200 LORETO 116035
## 12 AREQUIPA 040000 040100 AREQUIPA 925667
## 13 ASCOPE 130000 130200 LA LIBERTAD 121019
## 20 BARRANCA 150000 150200 LIMA 142229
## 23 BOLOGNESI 020000 020500 ANCASH 32304
## IDH esperanza secundaria educa percapitaf
## 1 0.42891892514189878 74.04452 66.56863 8.170579 470.4349
## 5 0.30689077730473791 71.32787 30.76452 6.861199 313.6568
## 12 0.58398330439380264 75.58928 84.96452 11.382314 803.9554
## 13 0.47214547761850828 75.41891 68.74410 9.072429 555.3421
## 20 0.50114937918547575 79.49366 66.69178 8.853555 628.5096
## 23 0.36572139096659384 69.95024 50.43712 7.581382 390.1735
## jerarquico
## 1 2
## 5 2
## 12 2
## 13 2
## 20 2
## 23 2
Reviso estructura:
str(grupo1$habitantes)
## chr [1:91] "71482" "28515" "8035" "58158" "162135" "59990" "57555" ...
str(grupo2$habitantes)
## chr [1:103] "105467" "116035" "925667" "121019" "142229" "32304" ...
Formateo:
grupo1$habitantes=as.numeric(grupo1$habitantes)
grupo2$habitantes=as.numeric(grupo2$habitantes)
Hallo el total de habitantes de cada grupo con sum.
Total de habitantes del grupo 1:
sum(grupo1$habitantes)
## [1] 5617539
Total de habitantes del grupo 2:
sum(grupo2$habitantes)
## [1] 23224770
Concluimos que el grupo 2 es el que tiene la mayor cantidad de habitantes [cerca de 23,2 millones frente al grupo 1 con cerca de 5,6 millones]
Para eso debo ver las siluetas:
fviz_silhouette(solucionJerarquica1)
## cluster size ave.sil.width
## 1 1 91 0.43
## 2 2 103 0.24
Pidamos la información de la silueta, específicamente de las provincias que han sido mal agrupadas:
siluetas <- solucionJerarquica1$silinfo$widths
siluetas[siluetas$sil_width<0,]
## cluster neighbor sil_width
## SAN ANTONIO DE PUTINA 1 2 -0.028515511
## OCROS 1 2 -0.077831983
## FERREÑAFE 2 1 -0.002975315
## LUCANAS 2 1 -0.016497451
## YUNGUYO 2 1 -0.092744955
## MELGAR 2 1 -0.103043821
## ESPINAR 2 1 -0.152167698
## SANDIA 2 1 -0.170770356
## HUANCANÉ 2 1 -0.172307600
## CAJATAMBO 2 1 -0.194030039
## OXAPAMPA 2 1 -0.202971436
## UCAYALI 2 1 -0.203295462
## CONTUMAZÁ 2 1 -0.225312281
## MORROPÓN 2 1 -0.226600483
## LAURICOCHA 2 1 -0.250708605
## HUAYTARÁ 2 1 -0.254387160
## SUCRE 2 1 -0.311103825
## SATIPO 2/ 2 1 -0.327220429
## REQUENA 2 1 -0.349068628
## PURÚS 2 1 -0.365706667
## ALTO AMAZONAS 2 1 -0.414252086
## LORETO 2 1 -0.427442946
## MARISCAL RAMÓN CASTILLA 2 1 -0.445627954
Se observa que hay 23 (VEINTITRÉS) provincias que tienen dificultades para ser clasificadas.
Saquemos la matriz de correlación usando solamente los componentes del idh:
matrizCor=cor(idhPeru2011_provincial[,c(7:10)],use="complete.obs")
round(matrizCor,2)
## esperanza secundaria educa percapitaf
## esperanza 1.00 0.29 0.42 0.45
## secundaria 0.29 1.00 0.85 0.69
## educa 0.42 0.85 1.00 0.88
## percapitaf 0.45 0.69 0.88 1.00
El indicaror que se correlaciona mucho con los otros indicadores es educa. Excluimos esa variable y hacemos nuevos clusters.
data2=idhPeru2011_provincial[,c(7,8,10)]
row.names(data2)=idhPeru2011_provincial$nombreProv #uso como nombre de las filas el nombre de las provincias
head(data2)
## esperanza secundaria percapitaf
## ABANCAY 74.04452 66.56863 470.4349
## ACOBAMBA 71.49871 36.56930 196.3745
## ACOMAYO 61.84748 43.51613 205.2325
## AIJA 63.90764 34.70855 273.1024
## ALTO AMAZONAS 71.32787 30.76452 313.6568
## AMBO 73.95216 35.74774 296.3222
data2.scaled = scale(data2)
head(data2.scaled)
## esperanza secundaria percapitaf
## ABANCAY 0.3561885 1.0637100 0.3180893
## ACOBAMBA -0.2541624 -0.5987383 -1.0655862
## ACOMAYO -2.5680177 -0.2137714 -1.0208637
## AIJA -2.0741016 -0.7018542 -0.6782022
## ALTO AMAZONAS -0.2951207 -0.9204171 -0.4734512
## AMBO 0.3340456 -0.6442661 -0.5609702
library(NbClust)
nb2 = NbClust(data2.scaled, method = "complete")
## *** : The Hubert index is a graphical method of determining the number of clusters.
## In the plot of Hubert index, we seek a significant knee that corresponds to a
## significant increase of the value of the measure i.e the significant peak in Hubert
## index second differences plot.
##
## *** : The D index is a graphical method of determining the number of clusters.
## In the plot of D index, we seek a significant knee (the significant peak in Dindex
## second differences plot) that corresponds to a significant increase of the value of
## the measure.
##
## *******************************************************************
## * Among all indices:
## * 9 proposed 2 as the best number of clusters
## * 3 proposed 3 as the best number of clusters
## * 5 proposed 4 as the best number of clusters
## * 1 proposed 6 as the best number of clusters
## * 3 proposed 10 as the best number of clusters
## * 2 proposed 15 as the best number of clusters
##
## ***** Conclusion *****
##
## * According to the majority rule, the best number of clusters is 2
##
##
## *******************************************************************
Podemos responder la pregunta a:
¿Cuántos grupos se han formado? Se van a formar 2 (DOS) grupos.
library(factoextra)
algoritmo="hclust"
cuantosClusters=2
solucionJerarquica2=eclust(data2.scaled,
FUNcluster = algoritmo,
k = cuantosClusters,
method = "complete",
graph=F)
fviz_dend(solucionJerarquica2, rect = T, show_labels = T)
jerarquicoSinEduca=as.data.frame(solucionJerarquica2$cluster)
colnames(jerarquicoSinEduca)=c("jerarquicoSinEduca")
Añado la columna que contiene el grupo al que pertenece cada provincia a la data idhPeru2011_provincial. Para ello hago un merge:
idhPeru2011_provincial=merge(idhPeru2011_provincial,jerarquicoSinEduca,
by.x = "nombreProv",
by.y = 0)
head(idhPeru2011_provincial)
## nombreProv UbigeoReg UbigeoProv nombreReg habitantes
## 1 ABANCAY 030000 030100 APURÍMAC 105467
## 2 ACOBAMBA 090000 090200 HUANCAVELICA 71482
## 3 ACOMAYO 080000 080200 CUSCO 28515
## 4 AIJA 020000 020200 ANCASH 8035
## 5 ALTO AMAZONAS 160000 160200 LORETO 116035
## 6 AMBO 100000 100200 HUÁNUCO 58158
## IDH esperanza secundaria educa percapitaf jerarquico
## 1 0.42891892514189878 74.04452 66.56863 8.170579 470.4349 2
## 2 0.24523583740134028 71.49871 36.56930 5.081408 196.3745 1
## 3 0.23681524238380927 61.84748 43.51613 4.999865 205.2325 1
## 4 0.28260885353573695 63.90764 34.70855 7.112579 273.1024 1
## 5 0.30689077730473791 71.32787 30.76452 6.861199 313.6568 2
## 6 0.29167654803661758 73.95216 35.74774 5.069556 296.3222 1
## jerarquicoSinEduca
## 1 1
## 2 1
## 3 1
## 4 1
## 5 1
## 6 1
Saco las medias por grupo:
aggregate(cbind(esperanza, secundaria, percapitaf) ~ jerarquicoSinEduca, data=idhPeru2011_provincial,FUN=mean)
## jerarquicoSinEduca esperanza secundaria percapitaf
## 1 1 71.37555 41.85989 333.3181
## 2 2 76.97452 67.94960 684.0027
Para eso tengo que sacar t test de cada variable.
Veamos la variable esperanza:
t.test(idhPeru2011_provincial$esperanza~idhPeru2011_provincial$jerarquicoSinEduca,var.equal=T)
##
## Two Sample t-test
##
## data: idhPeru2011_provincial$esperanza by idhPeru2011_provincial$jerarquicoSinEduca
## t = -9.1119, df = 192, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -6.810955 -4.386996
## sample estimates:
## mean in group 1 mean in group 2
## 71.37555 76.97452
¡Hay diferencias significativas en ESPERANZA DE VIDA! El grupo 2 tiene mayor esperanza de vida que el grupo 1.
Veamos la variable secundaria:
t.test(idhPeru2011_provincial$secundaria~idhPeru2011_provincial$jerarquicoSinEduca,var.equal=T)
##
## Two Sample t-test
##
## data: idhPeru2011_provincial$secundaria by idhPeru2011_provincial$jerarquicoSinEduca
## t = -10.173, df = 192, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -31.14837 -21.03105
## sample estimates:
## mean in group 1 mean in group 2
## 41.85989 67.94960
¡Hay diferencias significativas en POBLACIÓN CON SECUNDARIA COMPLETA! El grupo 2 tiene un mayor porcentaje de población con secundaria completa que el grupo 1.
Finalmente, veamos la variable percapitaf:
t.test(idhPeru2011_provincial$percapitaf~idhPeru2011_provincial$jerarquicoSinEduca,var.equal=T)
##
## Two Sample t-test
##
## data: idhPeru2011_provincial$percapitaf by idhPeru2011_provincial$jerarquicoSinEduca
## t = -14.573, df = 192, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -398.1473 -303.2219
## sample estimates:
## mean in group 1 mean in group 2
## 333.3181 684.0027
¡Hay diferencias significativas en INGRESO FAMILIAR PER CÁPITA1 El grupo 2 tiene mayor ingreso familiar per cápita que el grupo 1.
Creo dos data frame distintas con las provincias de cada grupo.
Grupo 1:
nuevogrupo1=idhPeru2011_provincial[idhPeru2011_provincial$jerarquicoSinEduca=='1',]
head(nuevogrupo1)
## nombreProv UbigeoReg UbigeoProv nombreReg habitantes
## 1 ABANCAY 030000 030100 APURÍMAC 105467
## 2 ACOBAMBA 090000 090200 HUANCAVELICA 71482
## 3 ACOMAYO 080000 080200 CUSCO 28515
## 4 AIJA 020000 020200 ANCASH 8035
## 5 ALTO AMAZONAS 160000 160200 LORETO 116035
## 6 AMBO 100000 100200 HUÁNUCO 58158
## IDH esperanza secundaria educa percapitaf jerarquico
## 1 0.42891892514189878 74.04452 66.56863 8.170579 470.4349 2
## 2 0.24523583740134028 71.49871 36.56930 5.081408 196.3745 1
## 3 0.23681524238380927 61.84748 43.51613 4.999865 205.2325 1
## 4 0.28260885353573695 63.90764 34.70855 7.112579 273.1024 1
## 5 0.30689077730473791 71.32787 30.76452 6.861199 313.6568 2
## 6 0.29167654803661758 73.95216 35.74774 5.069556 296.3222 1
## jerarquicoSinEduca
## 1 1
## 2 1
## 3 1
## 4 1
## 5 1
## 6 1
Grupo 2:
nuevogrupo2=idhPeru2011_provincial[idhPeru2011_provincial$jerarquicoSinEduca=='2',]
head(nuevogrupo2)
## nombreProv UbigeoReg UbigeoProv nombreReg habitantes
## 12 AREQUIPA 040000 040100 AREQUIPA 925667
## 13 ASCOPE 130000 130200 LA LIBERTAD 121019
## 20 BARRANCA 150000 150200 LIMA 142229
## 29 CAMANÁ 040000 040200 AREQUIPA 56605
## 35 CAÑETE 150000 150500 LIMA 219564
## 37 CARAVELÍ 040000 040300 AREQUIPA 38797
## IDH esperanza secundaria educa percapitaf
## 12 0.58398330439380264 75.58928 84.96452 11.382314 803.9554
## 13 0.47214547761850828 75.41891 68.74410 9.072429 555.3421
## 20 0.50114937918547575 79.49366 66.69178 8.853555 628.5096
## 29 0.53020906240390198 78.89086 75.20115 9.685251 668.0217
## 35 0.4931048948281832 78.86537 46.91434 9.594776 683.7330
## 37 0.50307422437445604 79.49127 55.79383 9.235363 674.3482
## jerarquico jerarquicoSinEduca
## 12 2 2
## 13 2 2
## 20 2 2
## 29 2 2
## 35 2 2
## 37 2 2
Formateo habitantes a numérica en ambos data frames:
nuevogrupo1$habitantes=as.numeric(nuevogrupo1$habitantes)
nuevogrupo2$habitantes=as.numeric(nuevogrupo2$habitantes)
Hallo el total de habitantes de cada grupo con sum.
Total de habitantes en el grupo 1:
sum(nuevogrupo1$habitantes)
## [1] 13466595
Total de habitantes en el grupo 2:
sum(nuevogrupo2$habitantes)
## [1] 15375714
Concluimos que el grupo 2 es el que tiene la mayor cantidad de habitantes [cerca de 15,4 millones frente al grupo 1 con cerca de 13,5 millones]
Para eso debo ver las siluetas:
fviz_silhouette(solucionJerarquica2)
## cluster size ave.sil.width
## 1 1 153 0.35
## 2 2 41 0.53
Pidamos la información de la silueta, específicamente de las provincias que han sido mal agrupadas:
siluetas2 <- solucionJerarquica2$silinfo$widths
siluetas2[siluetas2$sil_width<0,]
## cluster neighbor sil_width
## TOCACHE 1 2 -0.002252425
## TARMA 1 2 -0.013366670
## HUÁNUCO 1 2 -0.021094887
## JAÉN 1 2 -0.022339370
## CAJAMARCA 1 2 -0.082755823
## CHUPACA 1 2 -0.118102494
## SAN ROMÁN 1 2 -0.150898018
## HUAROCHIRÍ 1 2 -0.202462789
## ABANCAY 1 2 -0.250600991
## CORONEL PORTILLO 1 2 -0.337640315
## HUARAZ 1 2 -0.360021902
## CASTILLA 1 2 -0.362876260
## PASCO 1 2 -0.363450636
## HUANCAYO 1 2 -0.419900861
## TALARA 1 2 -0.438572630
## PIURA 1 2 -0.475042821
## SAN MARTÍN 1 2 -0.479536110
Se observa que hay 17 (DIECISIETE) provincias que tienen dificultades para ser clasificadas.
Las principales diferencias están:
Para el caso de la primera agrupación [considerando TODOS los componentes del IDH]:
table(idhPeru2011_provincial$jerarquico)
##
## 1 2
## 91 103
Para el caso de la segunda agrupación [SIN CONSIDERAR educa]:
table(idhPeru2011_provincial$jerarquicoSinEduca)
##
## 1 2
## 153 41
Habitantes por cluster en la primera agrupación:
sum(grupo1$habitantes)
## [1] 5617539
sum(grupo2$habitantes)
## [1] 23224770
Habitantes por cluster en la segunda agrupación:
sum(nuevogrupo1$habitantes)
## [1] 13466595
sum(nuevogrupo2$habitantes)
## [1] 15375714