-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathP4.qmd
More file actions
267 lines (166 loc) · 5.18 KB
/
P4.qmd
File metadata and controls
267 lines (166 loc) · 5.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
---
title: "Taller 4"
---
## Paquetes
```{r}
if (!require("pacman")) install.packages("pacman") # instala pacman si se requiere
pacman::p_load(tidyverse, readxl,haven, sjlabelled, janitor, srvyr, esquisse, RColorBrewer) #carga los paquetes necesarios para esta práctica
```
##Datos
Por si no tuviéramos cargada la base de datos, la volveremos a cargar
```{r}
lapop2021 <- read_dta("datos/lapop2021.dta")
```
También vamos usar la base de Índice de Competitividad Internacional ICI, desarrollado por el Instituto Mexicano de Competitividad. (véase <http://imco.org.mx/indices/mexico-suenos-sin-oportunidad/>)
```{r}
ICE_2022 <- read_excel("datos/ICE_2022.xlsx", sheet = "para_importar") %>% clean_names() # limpia los nombres
```
## Gráficos con ggplot
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/>
"gg" proviene de "Grammar of Graphics", funciona un poco como sintácticamente, de ahí su nombre.
Algunos recursos para aprender ggplot
* <https://ggplot2-book.org/> hecha por el mero mero.
* <http://sape.inf.usi.ch/quick-reference/ggplot2>
* <https://raw.githubusercontent.com/rstudio/cheatsheets/master/data-visualization-2.1.pdf>
Vamos a revisar una presentación que es muy interesante
* <https://evamaerey.github.io/ggplot2_grammar_guide/ggplot2_grammar_guide.html>
* <https://huygens.science.uva.nl/ggPlotteR/> Hace gráficos de ggplot con la base de datos de Gapminder
### Un lienzo para dibujar
Para hacer un gráfico, ggplot2 tiene el comando "ggplot()". Hacer gráficos con esta función tiene una lógica aditiva. Lo ideal es que iniciemos estableciendo el mapeo estético de nuestro gráfico, con el comando aes()
```{r}
g1<-lapop2021 %>%
ggplot(aes(as_label(idio2)))
g1 # imprime el lienzo
```
## Gráficos univariados
### Para cualitativas
```{r}
g1 + geom_bar()
```
```{r}
g1 + geom_bar(aes(
fill = as_label(q1tb)
)) # colorea la geometría
# Esto es equivalente
lapop2021 %>%
ggplot(aes(as_label(idio2),
fill = as_label(q1tb)
)
) + geom_bar()
```
## Para variables cuantitativas
Podemos hacer histogramas y gráficos de densidad, de manera fácil. La idea es agregar en nuestro "lienzo" una geometría, un valor para dibujar en él. Esto se agrega con un "+" y con la figura que se añadirá a nuestro gráfico.
```{r}
g2<-lapop2021 %>%
ggplot(aes(q2))
g2 # imprime el lienzo
```
### Histograma
```{r}
g2 + geom_histogram()
```
No es igual al histograma de base por el número de "cajas". Esto lo podemos modificar:
```{r}
g2 + geom_histogram(bins=10)
```
### Densidad
```{r}
g2 + geom_density()
```
## Gráficos bivariados
### Cuali-cuali
```{r}
g1 + geom_bar(aes(fill = as_label(q1tb)),
position="dodge") #pone las categorías lado a lado y no apiladas
```
Otra manera interesante de observar estas variables, es que estándo apiladas, cada categoría de escolaridad se entendiera como una unidad:
```{r}
g_bivariado <- g1 + geom_bar(aes(fill = as_label(q1tb)),
position="fill") # cada categoría "llena" a una unidad
g_bivariado
```
Escalas de color: RcolorBrewer es el más famoso.
```{r}
g_bivariado + scale_fill_brewer(palette = "Dark2")
```
Cambiamos el tema:
```{r}
g_bivariado + scale_fill_brewer(palette = "Dark2") + theme_minimal()
```
## Cuanti - cuanti
Los gráficos más usuales son los _scatter plot_
```{r}
ICE_2022 %>%
ggplot(aes(homicidios,
secuestros)) +
geom_point()
```
Hay otra geometría que puede ser útil: la geometría "jitter"
```{r}
ICE_2022 %>%
ggplot(aes(homicidios,
secuestros)) +
geom_jitter()
```
En lugar de puntos podemos incluir texto:
```{r}
# geometría "text"
ICE_2022 %>%
ggplot(aes(homicidios, secuestros)) +
geom_text(aes(label=edo))
# geometría "label"
ICE_2022 %>%
ggplot(aes(homicidios,secuestros)) +
geom_label(aes(label=edo))
```
# Indicadores
Vamos a hacer un pequeño índice sobre la confianza en las instituciones
```{r}
lapop2021 %>%
names()
lapop2021 %>%
select(starts_with("b")) %>%
names()
```
```{r}
lapop2021<-lapop2021 %>%
mutate(index= rowMeans(across(starts_with("b")), na.rm = T)) %>%
mutate(index=index/7)
summary(lapop2021$index)
```
Análisis gráfico
```{r}
lapop2021 %>%
ggplot(aes(index))+ geom_histogram()
lapop2021 %>%
ggplot(aes(x=index, y=as_label(idio2)))+ geom_boxplot()+ theme_minimal()
```
Más trucos para usar las etiquetas
```{r}
lapop2021 %>%
ggplot(aes(x=index, y=as_label(idio2)))+ geom_boxplot()+ theme_minimal()+
labs(y=paste(get_label(lapop2021$idio2)))
```
# Cuanti y cuali
Para ello vamos a tomar como base la variable cuanti e introduciremos capas donde definimos la variable cualitativa.
Volvamos a lapop2021
```{r}
lapop2021 %>%
ggplot(aes(q2)) # años de escolaridad
```
```{r}
lapop2021 %>%
ggplot(aes(x=q2, fill=as_label(q1tb)))
```
```{r}
lapop2021 %>%
ggplot(aes(x=q2, fill=as_label(q1tb))) + geom_density()
```
```{r}
# Modificamos la opacidad
lapop2021 %>%
ggplot(aes(x=q2,
fill=as_label(q1tb),
alpha=I(0.5))) + geom_density() + theme_minimal()
```