AE
25/2/2019
Anteriormente, aprendimos a instalar paquetes y a importar bases de datos. Las matrices por lo general sólo almacenan un tipo de datos mientras que las data frames puede almacenar varios tipos de datos.
m <-matrix(1:20, ncol=2)
m## [,1] [,2]
## [1,] 1 11
## [2,] 2 12
## [3,] 3 13
## [4,] 4 14
## [5,] 5 15
## [6,] 6 16
## [7,] 7 17
## [8,] 8 18
## [9,] 9 19
## [10,] 10 20
En general, los datos de una matriz son numéricos. R es muy potente para hacer operaciones con matrices.
Para poder llegar a ver los elementos individuales de una matriz, tenemos que usar los corchetes y revisar por ejemplo el elemento 5 de la columna 1
m[5,1] ## [1] 5
m[5,2]## [1] 15
m[, 1] # si queremos todas las filas, no ponemos nada## [1] 1 2 3 4 5 6 7 8 9 10
m[1, ] # si queremos todas las columnas no ponemos nada## [1] 1 11
m[1:2,]## [,1] [,2]
## [1,] 1 11
## [2,] 2 12
m[c(1,5, 6),]## [,1] [,2]
## [1,] 1 11
## [2,] 5 15
## [3,] 6 16
n<-m[1,]
class(m)## [1] "matrix"
class(n)## [1] "integer"
Estos resultados se pueden asignar también a nuevos objetos, lo cual es muy útil cuando estemos filtrando caso.
Vamos a cargar la base del IMCO. Esta base tiene muchas variables cuantitativas y nos va a permitir revisar mucho más el análisis descriptivo. Luego volveremos a la base de LAPOP
library(readxl)## Warning: package 'readxl' was built under R version 3.5.2
Excel_2016_IMCO <- read_excel("Excel_2016_IMCO.xlsx")## New names:
## * `` -> `..101`
## * `` -> `..102`
## * `` -> `..103`
Para revisar el contenido de un data frame podemos usar, como lo hicimos en el ejercicio de la ENVIPE, el formado basededatos$var o usar corchete, checa como estas tres formas tan el mismo resultado
Excel_2016_IMCO$Homicidios## [1] 2.835806 33.383425 24.400662 9.115404 7.544968 71.222405 8.800367
## [8] 32.885944 10.777257 13.354243 16.388085 61.673430 5.183388 14.372650
## [15] 11.992856 27.809580 31.702828 3.129508 12.485991 21.548750 9.433062
## [22] 5.850455 10.186679 11.015140 31.927418 19.175263 11.462458 16.604830
## [29] 5.942364 15.519103 2.330049 28.959639
Excel_2016_IMCO[["Homicidios"]] # ¡Ojo con las comillas! ## [1] 2.835806 33.383425 24.400662 9.115404 7.544968 71.222405 8.800367
## [8] 32.885944 10.777257 13.354243 16.388085 61.673430 5.183388 14.372650
## [15] 11.992856 27.809580 31.702828 3.129508 12.485991 21.548750 9.433062
## [22] 5.850455 10.186679 11.015140 31.927418 19.175263 11.462458 16.604830
## [29] 5.942364 15.519103 2.330049 28.959639
Excel_2016_IMCO[,5] ## # A tibble: 32 x 1
## `Robo de vehículos`
## <dbl>
## 1 4.78
## 2 14.2
## 3 4.04
## 4 0.689
## 5 1.15
## 6 4.84
## 7 3.30
## 8 2.40
## 9 2.04
## 10 1.94
## # … with 22 more rows
Vamos a pedir cosas más especificas y podemos seleccionar observaciones o files
Excel_2016_IMCO[Excel_2016_IMCO$Homicidios>20,]## # A tibble: 10 x 103
## Code_edo edo Homicidios Secuestros `Robo de vehícu… `Costos del del…
## <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 02 Baja… 33.4 0.396 14.2 3270.
## 2 03 Baja… 24.4 0 4.04 3252.
## 3 06 Coli… 71.2 0.544 4.84 2205.
## 4 08 Chih… 32.9 0.240 2.40 2029.
## 5 12 Guer… 61.7 2.01 4.04 2410.
## 6 16 Mich… 27.8 0.540 2.82 2918.
## 7 17 More… 31.7 2.11 6.41 2580.
## 8 20 Oaxa… 21.5 0.793 3.28 1762.
## 9 25 Sina… 31.9 0.465 4.07 3194.
## 10 32 Zaca… 29.0 2.33 4.78 2539.
## # … with 97 more variables: `Incidencia delictiva` <dbl>, `Delitos
## # denunciados` <dbl>, `Percepción de seguridad` <dbl>, `Competencia en
## # servicios notariales` <dbl>, `Cumplimiento de contratos` <dbl>,
## # `Volumen tratado de aguas residuales` <dbl>, `Eficiencia económica del
## # agua en la agricultura` <dbl>, `Mortalidad infantil por enfermedades
## # respiratorias` <dbl>, `Índice de Competitividad Forestal` <dbl>,
## # `Pérdida en superficie cubierta por árboles` <dbl>, `Áreas naturales
## # protegidas` <dbl>, `Volumen de residuos sólidos generados` <dbl>,
## # `Disposición adecuada de residuos sólidos` <dbl>, `Intensidad
## # energética de la economía` <dbl>, `Certificados "Industria limpia"
## # emitidos` <dbl>, `Gastos autorizados al FONDEN` <dbl>, Pobreza <dbl>,
## # `Acceso a drenaje` <dbl>, `Acceso a instituciones de salud` <dbl>,
## # `Mujeres económicamente activas` <dbl>, `Equidad salarial` <dbl>,
## # `Índice de informalidad laboral entre mujeres y hombres` <dbl>,
## # Analfabetismo <dbl>, Escolaridad <dbl>, `Escuelas de calidad` <dbl>,
## # `Rendimiento académico` <dbl>, `Esperanza de vida` <dbl>, `Mortalidad
## # infantil` <dbl>, `Mortalidad por diabetes y enfermedades
## # hipertensivas` <dbl>, Suicidios <dbl>, `Embarazos adolescentes` <dbl>,
## # `Camas de hospital` <dbl>, `Médicos y enfermeras` <dbl>, `Médicos con
## # especialidad` <dbl>, `Migración neta` <dbl>, `Incidencia de
## # corrupción` <dbl>, `Percepción de corrupción estatal` <dbl>,
## # `Percepción de corrupción en partidos políticos` <dbl>, `Consulta de
## # información de finanzas públicas` <dbl>, `Participación
## # ciudadana` <dbl>, `Competencia electoral` <dbl>, `Barreras a
## # candidatos independientes` <dbl>, `Equidad en el Congreso` <dbl>,
## # `Matrimonio igualitario` <dbl>, `Agresiones a periodistas` <dbl>,
## # `Interacción con el gobierno por medios electrónicos` <dbl>, `Índice
## # de Información Presupuestal Estatal` <dbl>, `Ingresos propios` <dbl>,
## # `Registro de una propiedad` <dbl>, `Apertura de una empresa` <dbl>,
## # `Indicador subnacional de mejora regulatoria` <dbl>, `Hogares que se
## # surten de agua por pipa` <dbl>, `Informalidad laboral` <dbl>,
## # `Contribución laboral al crecimiento` <dbl>, `Ingreso promedio de
## # trabajadores de tiempo completo` <dbl>, `Desigualdad salarial` <dbl>,
## # `Población ocupada sin ingresos` <dbl>, `Eficiencia terminal en
## # secundaria` <dbl>, `Eficiencia terminal en preparatoria` <dbl>,
## # `Absorción en educación superior` <dbl>, `Población foránea con
## # educación superior` <dbl>, `Capacitación laboral` <dbl>, `PIB per
## # cápita` <dbl>, `PIB en sectores de alto crecimiento` <dbl>,
## # `Crecimiento del PIB` <dbl>, `Deuda estatal y de organismos
## # estatales` <dbl>, `Afectación de participaciones federales` <dbl>,
## # `Plazo promedio de vencimiento de la deuda` <dbl>, `Costo promedio de
## # deuda` <dbl>, `Personas con ingresos mayores al promedio
## # estatal` <dbl>, `Participación laboral` <dbl>, `Dependencia
## # económica` <dbl>, `Diversificación económica` <dbl>, `Telefonía
## # móvil` <dbl>, `Hogares con acceso a internet` <dbl>, `Terminales punto
## # de venta` <dbl>, `Disponibilidad de cajeros automáticos` <dbl>, `Uso
## # de banca móvil` <dbl>, `Captación de ahorro` <dbl>, `Penetración del
## # seguro en la economía` <dbl>, `Heridos en accidentes de tránsito
## # terrestre` <dbl>, `Accidentes por malas condiciones de camino` <dbl>,
## # `Flujo de pasajeros aéreos` <dbl>, `Carga aérea` <dbl>, `Certificación
## # internacional para turismo médico` <dbl>, `Flujo de pasajeros aéreos
## # internacionales` <dbl>, `PIB turístico` <dbl>, `Inversión extranjera
## # directa` <dbl>, `Exportación de mercancías` <dbl>, `Complejidad
## # económica en sectores de innovación` <dbl>, `Productividad total de
## # los factores` <dbl>, Investigadores <dbl>, Patentes <dbl>, `Empresas e
## # instituciones científicas y tecnológicas` <dbl>, ..101 <lgl>,
## # ..102 <dbl>, ..103 <dbl>
Excel_2016_IMCO[(Excel_2016_IMCO$Homicidios>20 & Excel_2016_IMCO$edo!="Aguascalientes" ),]## # A tibble: 10 x 103
## Code_edo edo Homicidios Secuestros `Robo de vehícu… `Costos del del…
## <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 02 Baja… 33.4 0.396 14.2 3270.
## 2 03 Baja… 24.4 0 4.04 3252.
## 3 06 Coli… 71.2 0.544 4.84 2205.
## 4 08 Chih… 32.9 0.240 2.40 2029.
## 5 12 Guer… 61.7 2.01 4.04 2410.
## 6 16 Mich… 27.8 0.540 2.82 2918.
## 7 17 More… 31.7 2.11 6.41 2580.
## 8 20 Oaxa… 21.5 0.793 3.28 1762.
## 9 25 Sina… 31.9 0.465 4.07 3194.
## 10 32 Zaca… 29.0 2.33 4.78 2539.
## # … with 97 more variables: `Incidencia delictiva` <dbl>, `Delitos
## # denunciados` <dbl>, `Percepción de seguridad` <dbl>, `Competencia en
## # servicios notariales` <dbl>, `Cumplimiento de contratos` <dbl>,
## # `Volumen tratado de aguas residuales` <dbl>, `Eficiencia económica del
## # agua en la agricultura` <dbl>, `Mortalidad infantil por enfermedades
## # respiratorias` <dbl>, `Índice de Competitividad Forestal` <dbl>,
## # `Pérdida en superficie cubierta por árboles` <dbl>, `Áreas naturales
## # protegidas` <dbl>, `Volumen de residuos sólidos generados` <dbl>,
## # `Disposición adecuada de residuos sólidos` <dbl>, `Intensidad
## # energética de la economía` <dbl>, `Certificados "Industria limpia"
## # emitidos` <dbl>, `Gastos autorizados al FONDEN` <dbl>, Pobreza <dbl>,
## # `Acceso a drenaje` <dbl>, `Acceso a instituciones de salud` <dbl>,
## # `Mujeres económicamente activas` <dbl>, `Equidad salarial` <dbl>,
## # `Índice de informalidad laboral entre mujeres y hombres` <dbl>,
## # Analfabetismo <dbl>, Escolaridad <dbl>, `Escuelas de calidad` <dbl>,
## # `Rendimiento académico` <dbl>, `Esperanza de vida` <dbl>, `Mortalidad
## # infantil` <dbl>, `Mortalidad por diabetes y enfermedades
## # hipertensivas` <dbl>, Suicidios <dbl>, `Embarazos adolescentes` <dbl>,
## # `Camas de hospital` <dbl>, `Médicos y enfermeras` <dbl>, `Médicos con
## # especialidad` <dbl>, `Migración neta` <dbl>, `Incidencia de
## # corrupción` <dbl>, `Percepción de corrupción estatal` <dbl>,
## # `Percepción de corrupción en partidos políticos` <dbl>, `Consulta de
## # información de finanzas públicas` <dbl>, `Participación
## # ciudadana` <dbl>, `Competencia electoral` <dbl>, `Barreras a
## # candidatos independientes` <dbl>, `Equidad en el Congreso` <dbl>,
## # `Matrimonio igualitario` <dbl>, `Agresiones a periodistas` <dbl>,
## # `Interacción con el gobierno por medios electrónicos` <dbl>, `Índice
## # de Información Presupuestal Estatal` <dbl>, `Ingresos propios` <dbl>,
## # `Registro de una propiedad` <dbl>, `Apertura de una empresa` <dbl>,
## # `Indicador subnacional de mejora regulatoria` <dbl>, `Hogares que se
## # surten de agua por pipa` <dbl>, `Informalidad laboral` <dbl>,
## # `Contribución laboral al crecimiento` <dbl>, `Ingreso promedio de
## # trabajadores de tiempo completo` <dbl>, `Desigualdad salarial` <dbl>,
## # `Población ocupada sin ingresos` <dbl>, `Eficiencia terminal en
## # secundaria` <dbl>, `Eficiencia terminal en preparatoria` <dbl>,
## # `Absorción en educación superior` <dbl>, `Población foránea con
## # educación superior` <dbl>, `Capacitación laboral` <dbl>, `PIB per
## # cápita` <dbl>, `PIB en sectores de alto crecimiento` <dbl>,
## # `Crecimiento del PIB` <dbl>, `Deuda estatal y de organismos
## # estatales` <dbl>, `Afectación de participaciones federales` <dbl>,
## # `Plazo promedio de vencimiento de la deuda` <dbl>, `Costo promedio de
## # deuda` <dbl>, `Personas con ingresos mayores al promedio
## # estatal` <dbl>, `Participación laboral` <dbl>, `Dependencia
## # económica` <dbl>, `Diversificación económica` <dbl>, `Telefonía
## # móvil` <dbl>, `Hogares con acceso a internet` <dbl>, `Terminales punto
## # de venta` <dbl>, `Disponibilidad de cajeros automáticos` <dbl>, `Uso
## # de banca móvil` <dbl>, `Captación de ahorro` <dbl>, `Penetración del
## # seguro en la economía` <dbl>, `Heridos en accidentes de tránsito
## # terrestre` <dbl>, `Accidentes por malas condiciones de camino` <dbl>,
## # `Flujo de pasajeros aéreos` <dbl>, `Carga aérea` <dbl>, `Certificación
## # internacional para turismo médico` <dbl>, `Flujo de pasajeros aéreos
## # internacionales` <dbl>, `PIB turístico` <dbl>, `Inversión extranjera
## # directa` <dbl>, `Exportación de mercancías` <dbl>, `Complejidad
## # económica en sectores de innovación` <dbl>, `Productividad total de
## # los factores` <dbl>, Investigadores <dbl>, Patentes <dbl>, `Empresas e
## # instituciones científicas y tecnológicas` <dbl>, ..101 <lgl>,
## # ..102 <dbl>, ..103 <dbl>
subset1<- Excel_2016_IMCO[(Excel_2016_IMCO$Homicidios>20 & Excel_2016_IMCO$edo!="Aguascalientes" ),]También podemos seleccionar columnas
Excel_2016_IMCO[, c("Pobreza", "Suicidios")]## # A tibble: 32 x 2
## Pobreza Suicidios
## <dbl> <dbl>
## 1 28.2 9.58
## 2 22.2 4.89
## 3 22.1 7.12
## 4 43.8 9.33
## 5 24.8 5.37
## 6 33.6 8.97
## 7 77.1 4.98
## 8 30.6 11.6
## 9 27.6 4.29
## 10 36.0 6.51
## # … with 22 more rows
subset2<- Excel_2016_IMCO[, c("Pobreza", "Suicidios")]Podemos combinar los dos tipos de selección
Excel_2016_IMCO[Excel_2016_IMCO$Homicidios>20, c("Pobreza", "Suicidios")]## # A tibble: 10 x 2
## Pobreza Suicidios
## <dbl> <dbl>
## 1 22.2 4.89
## 2 22.1 7.12
## 3 33.6 8.97
## 4 30.6 11.6
## 5 64.4 2.20
## 6 55.3 3.72
## 7 49.5 4.63
## 8 70.4 2.82
## 9 30.8 5.45
## 10 49.0 4.53
subset3<- Excel_2016_IMCO[Excel_2016_IMCO$Homicidios>20, c("Pobreza", "Suicidios")]hist(Excel_2016_IMCO$Homicidios)Podemos modificarlo de a poco a poco. Modificar el título
hist(Excel_2016_IMCO$Homicidios, main="Histograma de Homicidios") #Histograma de homicidios en los estados con el título “Histograma de homicidos” Le podemos modificar el título del eje de las x y de las y
hist(Excel_2016_IMCO$Homicidios, main="Histograma de Homicidios", xlab="Homicidios", ylab="Frecuencia") ¡A ponerle colorcitos! Recuerda aquí hay una lista http://www.stat.columbia.edu/~tzheng/files/Rcolor.pdf
hist(Excel_2016_IMCO$Homicidios, main="Histograma de Homicidios", xlab="Homicidios", ylab="Frecuencia", col="deeppink1") Notamos que hay una agrupación de estados con menos de 40 homicidios por cada 100,000 habitantes.
Hagamos histogramas de otras variables
hist(Excel_2016_IMCO$`Esperanza de vida`, main="Esperanza de Vida", xlab="Años", ylab="Frecuencia", col="deepskyblue", border ="deepskyblue4" ) ¿Algo diferente? Cuando hay espacios en el nombre de nuestras variables en un dataframe, tenemos que ponerlo dentro de estos símbolos ``
k =1+ log2(n)
k= número de clases n= número de muestras a representar, en nuestro caso el tamaño de la población
¡Es un método empírico propuesto en 1926! La regla de Sturges funciona mejor para datos continuos que se distribuyen normalmente y son simétricos. Nos ayuda a convertir estos datos en clases discretas, simétricas y binomiales.
Siempre que los datos no estén sesgados, el uso de la regla de Sturges debería proporcionar un histograma atractivo y fácil de leer que represente bien los datos.
Pero: el huevo y la gallina .La regla de Sturges no es muy buena para conjuntos de datos muy sesgados, no simétricos o para un número extremadamente grande de observaciones.
Hay muchos detractores, checa aquí https://robjhyndman.com/papers/sturges.pdf
Hoy vamos a presentar a un gran paquete ¡Es de los famosos! Y tiene más de diez años. https://qz.com/1007328/all-hail-ggplot2-the-code-powering-all-those-excellent-charts-is-10-years-old/
Hay dos funciones en paquete ggplot2
qplot() – para "quick plots", gráficos rápidos. Nos vamos a concentrar en este curso en estos.
ggplot() – Para controlar de manera "granular" todo lo de nuestros gráficos.
Más info de qplot https://ggplot2.tidyverse.org/reference/qplot.html
Vamos a empezar, como siempre, instalando el comando
install.packages("ggplot2", repos = "http://cran.us.r-project.org", dependencies = TRUE)##
## The downloaded binary packages are in
## /var/folders/fr/mw1x21js54367mjdhqsjfwqm0000gn/T//RtmpbBZdNP/downloaded_packages
library(ggplot2)Podemos hacer histogramas y gráficos de densidad El comando tiene la siguiente forma:
qplot(Homicidios, data = Excel_2016_IMCO, geom = "histogram")## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
qplot(Homicidios, data = Excel_2016_IMCO, geom = "histogram", binwidth = nclass.Sturges(Excel_2016_IMCO$Homicidios))qplot(Homicidios, data = Excel_2016_IMCO, geom = "density")También podemos guardar nuestros gráficos en un objeto:
q<- qplot(Homicidios, data = Excel_2016_IMCO, geom = "density")Existe un add-in - es decir un complemento - para que podamos modificar más fácilmente los gráficos que hacemos con ggplot. Lo tenemos que instalar. Así como hemos instalado nuestros otras paqueterías.
install.packages("ggThemeAssist", repos = "http://cran.us.r-project.org", dependencies = TRUE)##
## The downloaded binary packages are in
## /var/folders/fr/mw1x21js54367mjdhqsjfwqm0000gn/T//RtmpbBZdNP/downloaded_packages
library(ggThemeAssist)Para utilizarlo, tenemos que nombrar el objeto que queremos editar (por eso aprendimos a guardarlo en un objeto anteriormente). Lo escribimos. Lo seleccionamos y buscamos el complemento en la pestaña "Addins"