La base de datos de la Encuesta Nacional de Opinión Pública del Centro de Estudios Públicos (Encuesta CEP) correspondiente a su versión del año 2019. Esta encuesta busca caracterizar las actitudes y opiniones, políticas, sociales y económicas de la población, destacando las necesidades, principales preocupaciones y preferencias de todos los habitantes del territorio nacional.
library(haven)
CEP <- read_spss("Encuesta_CEP_Dic_2019.sav")
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
CEP1 <- select(CEP, Zona=ZONA1, pond = PONDERADOR, sexo = DS_P1, region = REGION, edad = DS_P2_EXACTA,
satisfaccion_vida = SV_1, satisfaccion_ciudadana = SV_2, situa_econ = MB_P2)
#creando un nuevo archivo
save(CEP1, file = "seleccion_CEP.RData")
#Limpiamos el espacio de trabajo
rm(list = ls())
#Cargamos la data seleccionada
load("seleccion_CEP.RData")
#Explorando los nombres de las variables
names(CEP1)
## [1] "Zona" "pond" "sexo"
## [4] "region" "edad" "satisfaccion_vida"
## [7] "satisfaccion_ciudadana" "situa_econ"
#Explorando la dimension de la BD
dim(CEP1)
## [1] 1496 8
summary(CEP1)
## Zona pond sexo region
## Length:1496 Min. :0.1353 Min. :1.000 Min. : 1.000
## Class :character 1st Qu.:0.5228 1st Qu.:1.000 1st Qu.: 7.000
## Mode :character Median :0.8073 Median :2.000 Median :11.000
## Mean :1.0000 Mean :1.608 Mean : 9.799
## 3rd Qu.:1.2203 3rd Qu.:2.000 3rd Qu.:13.000
## Max. :8.6899 Max. :2.000 Max. :16.000
## edad satisfaccion_vida satisfaccion_ciudadana situa_econ
## Min. :18.00 Min. : 1.000 Min. : 1.000 Min. :1.000
## 1st Qu.:33.00 1st Qu.: 5.000 1st Qu.: 3.000 1st Qu.:2.000
## Median :49.00 Median : 7.000 Median : 5.000 Median :2.000
## Mean :48.58 Mean : 6.971 Mean : 5.973 Mean :2.387
## 3rd Qu.:62.00 3rd Qu.: 9.000 3rd Qu.: 5.000 3rd Qu.:3.000
## Max. :99.00 Max. :88.000 Max. :99.000 Max. :9.000
table(CEP1$satisfaccion_vida)
##
## 1 2 3 4 5 6 7 8 9 10 88
## 24 23 41 107 235 210 257 213 146 238 2
CEP1$satisfaccion_vida[CEP1$satisfaccion_vida==88]<- NA
table(CEP1$satisfaccion_ciudadana)
##
## 1 2 3 4 5 6 7 8 9 10 88 99
## 80 105 202 359 432 140 78 27 16 30 25 2
CEP1$satisfaccion_ciudadana[CEP1$satisfaccion_ciudadana==88]<- NA
CEP1$satisfaccion_ciudadana[CEP1$satisfaccion_ciudadana==99]<- NA
table(CEP1$situa_econ)
##
## 1 2 3 4 5 9
## 189 673 512 114 7 1
CEP1$situa_econ[CEP1$situa_econ==8]<- NA
CEP1$situa_econ[CEP1$situa_econ==9]<- NA
summary(CEP1)
## Zona pond sexo region
## Length:1496 Min. :0.1353 Min. :1.000 Min. : 1.000
## Class :character 1st Qu.:0.5228 1st Qu.:1.000 1st Qu.: 7.000
## Mode :character Median :0.8073 Median :2.000 Median :11.000
## Mean :1.0000 Mean :1.608 Mean : 9.799
## 3rd Qu.:1.2203 3rd Qu.:2.000 3rd Qu.:13.000
## Max. :8.6899 Max. :2.000 Max. :16.000
##
## edad satisfaccion_vida satisfaccion_ciudadana situa_econ
## Min. :18.00 Min. : 1.000 Min. : 1.000 Min. :1.000
## 1st Qu.:33.00 1st Qu.: 5.000 1st Qu.: 3.000 1st Qu.:2.000
## Median :49.00 Median : 7.000 Median : 4.000 Median :2.000
## Mean :48.58 Mean : 6.863 Mean : 4.451 Mean :2.383
## 3rd Qu.:62.00 3rd Qu.: 9.000 3rd Qu.: 5.000 3rd Qu.:3.000
## Max. :99.00 Max. :10.000 Max. :10.000 Max. :5.000
## NA's :2 NA's :27 NA's :1
CEP1 <- mutate(CEP1, situa_econ_factor =
car::recode(CEP1$situa_econ,
"1:2 = 1; 3 = 2; 4:5 = 3; else = NA"))
CEP1$situa_econ_factor <- factor(CEP1$situa_econ_factor,
labels = c("Positiva", "Neutra", "Negativa"))
summary(CEP1$situa_econ_factor)
## Positiva Neutra Negativa NA's
## 862 512 121 1
table(CEP1$situa_econ_factor)
##
## Positiva Neutra Negativa
## 862 512 121
tabla <- table(CEP1$situa_econ_factor)
tabla
##
## Positiva Neutra Negativa
## 862 512 121
df <- data.frame(CEP1)
head(df)
## Zona pond sexo region edad satisfaccion_vida satisfaccion_ciudadana
## 1 Rural 0.7869908 1 8 59 7 3
## 2 Rural 1.0823959 2 7 76 4 5
## 3 Urbano 1.0157521 2 13 45 8 4
## 4 Urbano 0.8740751 2 7 52 7 4
## 5 Urbano 1.0468475 2 13 46 7 3
## 6 Urbano 0.8876810 2 13 76 7 4
## situa_econ situa_econ_factor
## 1 2 Positiva
## 2 3 Neutra
## 3 3 Neutra
## 4 2 Positiva
## 5 2 Positiva
## 6 3 Neutra
library(ggplot2)
#Pie
porcentajes <- as.numeric(round(((prop.table(table(CEP1$situa_econ_factor)))*100),2))
porcentajes
## [1] 57.66 34.25 8.09
#Porcentajes
etiquetas <- c("Positiva", "Neutra", "Negativa")
etiquetas
## [1] "Positiva" "Neutra" "Negativa"
etiquetas <- paste(etiquetas, porcentajes)
etiquetas
## [1] "Positiva 57.66" "Neutra 34.25" "Negativa 8.09"
etiquetas <- paste(etiquetas, "%", sep = "")
etiquetas
## [1] "Positiva 57.66%" "Neutra 34.25%" "Negativa 8.09%"
#Etiquetas para el gráfico
pie(porcentajes, etiquetas,
main = "Porcentaje de la Situación Económica",
sub = "Evaluación de la Situación Económica",
col = c("#246FF0", "#F0AE24", "#34F030"), lty = 2)
legend("topleft", legend = c("Positiva", "Neutra", "Negativa"),
fill = c("#246FF0", "#F0AE24", "#34F030"))
###Convierte un gráfico de barras apiladas en un gráfico circular usando coord_polar().
bar <- ggplot(data = CEP1) +
geom_bar(
mapping = aes(x = situa_econ_factor, fill = situa_econ_factor),
show.legend = FALSE,
width = 1
) +
theme(aspect.ratio = 1) +
labs(x = NULL, y = NULL)
bar + coord_flip()
bar + coord_polar()
b<-ggplot(df,aes(situa_econ_factor)) + geom_bar(aes(fill=Zona), position = "dodge")
b+scale_fill_manual(values = c("#A37108","#184BA3")) +labs(x = "Situación Económica",y = "Número de personas", title = "Personas por situación económica y zona")
#Gráficos de barras y gráficos circulares
CEP2 <- mutate(df, sexo_factor = factor(df$sexo,
labels = c("Hombre", "Mujer")))
CEP2 <- mutate(CEP2, satisfaccion_vida_factor = factor(df$satisfaccion_vida,
labels = c("Totalmente insatisfecho", "2", "3", "4", "5", "6", "7", "8","9", "Totalmente satisfecho")))
b<-ggplot(CEP2,aes(satisfaccion_vida_factor)) + geom_bar(aes(fill=sexo_factor), position = "dodge") + coord_flip()
b+scale_fill_manual(values = c("#246FF0","#F054A6")) +labs(x = "Satisfacción de vida",y = "Número de personas", title = "Personas por satisfacción de vida y género")
CEP2 <- mutate(CEP2, satisfaccion_ciudadana_factor = factor(df$satisfaccion_ciudadana,
labels = c("Totalmente insatisfecho", "2", "3", "4", "5", "6", "7", "8","9", "Totalmente satisfecho")))
b<-ggplot(CEP2,aes(satisfaccion_ciudadana_factor)) + geom_bar(aes(fill=sexo_factor), position = "dodge") + coord_flip()
b+scale_fill_manual(values = c("#246FF0","#F054A6")) +labs(x = "Satisfacción ciudadana",y = "Número de personas", title = "Personas por satisfacción ciudadana y género")
#Barras
plot(CEP2$sexo_factor, main = "Gráfico de barras según Género",
xlab = "Género", ylab = "Frecuencia", col = c("#246FF0","#F054A6") )
c<- ggplot(CEP2, aes(sexo_factor)) + geom_bar(aes(fill=Zona), position = "dodge")
c+scale_fill_manual(values = c("#A37108","#184BA3"))+labs(x = "Género",y = "Número de personas", title = "Personas por sexo y zona")
hist(CEP1$edad, main = "Histograma de Edad",
xlab = "Edad (años cumplidos)",
ylab = "Frecuencia",
col = "#184BA3",
border = "black",
xlim = c(18, 97),
ylim = c(0, 150))
boxplot(CEP1$edad, main = "Gráfico de cajas de Edad",col = "#3B7EF0", outline = TRUE)
CEP2 <- mutate(CEP2, region_factor = factor(df$region,
labels = c("TARAPACÁ", "ANTOFAGASTA", "ATACAMA", "COQUIMBO", "VALPARAÍSO", "LIBERTADOR GENERAL BERNARDO O'HIGGINS", "MAULE", "BIOBÍO","LA ARAUCANÍA", "LOS LAGOS","AYSÉN DEL GENERAL CARLOS IBÁÑEZ DEL CAMPO", "MAGALLANES Y DE LA ANTÁRTICA CHILENA", "METROPOLITANA DE SANTIAGO", "LOS RÍOS","ARICA Y PARINACOTA", "ÑUBLE")))
ggplot(data = CEP2, mapping = aes(x = region_factor, y = satisfaccion_vida)) +
geom_boxplot() + coord_flip() + labs (title= "Gráfico de cajas de satisfacción de vida por región.",
x="Satisfacción de Vida",
y="Frecuencia",
caption= "Encuesta CEP"
)
## Don't know how to automatically pick scale for object of type haven_labelled/vctrs_vctr/double. Defaulting to continuous.
## Warning: Removed 2 rows containing non-finite values (stat_boxplot).
ggplot(data = CEP2, mapping = aes(x = region_factor, y = satisfaccion_ciudadana)) +
geom_boxplot() + coord_flip() + labs (title= "Gráfico de cajas de satisfacción ciudadana por región.",
x="Satisfacción Ciudadana",
y="Frecuencia",
caption= "Encuesta CEP"
)
## Don't know how to automatically pick scale for object of type haven_labelled/vctrs_vctr/double. Defaulting to continuous.
## Warning: Removed 27 rows containing non-finite values (stat_boxplot).
```r
b<-ggplot(data = CEP2,aes(satisfaccion_ciudadana_factor)) + geom_bar(aes(fill=NULL), position = "dodge") + coord_flip()
b + facet_wrap(.~ region_factor) + labs (title= "Gráfico de barras de satisfacción ciudadana por región.",
x="Satisfacción ciudadana",
y="Frecuencia",
caption= "Encuesta CEP"
)
b<-ggplot(data = CEP2,aes(satisfaccion_vida_factor)) + geom_bar(aes(fill=NULL), position = "dodge" , width = 0.8) + coord_flip()
b + facet_wrap(.~ region_factor, nrow=4) + labs (title= "Gráfico de barras satisfacción de vida por región.",
x="Satisfacción de vida",
y="Frecuencia",
caption= "Encuesta CEP"
)
# Calculamos supervivencia por clase
library(ggplot2)
library(waffle)
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v tibble 3.1.6 v purrr 0.3.4
## v tidyr 1.2.0 v stringr 1.4.0
## v readr 2.1.2 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(titanic)
group_zona_satisfaccion_vida <- CEP2 %>%
group_by(Zona, satisfaccion_vida) %>%
count() %>%
ungroup()
iron(
waffle(filter(group_zona_satisfaccion_vida, Zona=="Rural") %>% select(-Zona), rows = 10, size=1, colors = c("#1696d2", "#fdbf11", "#CC0000", "#006600", "#669999", "#00CCCC",
"#660099", "#CC0066", "#FF9999", "#FF9900", "#FF0000"),legend_pos = "none" ) +labs(title = "Satisfacción de la vida por zona",subtitle = "Zona Rural"),
waffle(filter(group_zona_satisfaccion_vida, Zona=="Urbano") %>% select(-Zona), rows = 10, size=1,
colors = c("#1696d2", "#fdbf11", "#CC0000", "#006600", "#669999", "#00CCCC", "#660099", "#CC0066", "#FF9999", "#FF9900", "#FF0000"), xlab = "1 cuadrado = 1 persona", legend_pos = "bottom")+ labs(subtitle = "Zona Urbano")
)
group_zona_satisfaccion_ciudadana <- CEP2 %>%
group_by(Zona, satisfaccion_ciudadana) %>%
count() %>%
ungroup()
iron(
waffle(filter(group_zona_satisfaccion_ciudadana, Zona=="Rural") %>% select(-Zona), rows = 10, size=1, colors = c("#1696d2", "#fdbf11", "#CC0000", "#006600", "#669999", "#00CCCC",
"#660099", "#CC0066", "#FF9999", "#FF9900", "#FF0000"),legend_pos = "none" ) +labs(title = "Satisfacción ciudadana por zona",subtitle = "Zona Rural"),
waffle(filter(group_zona_satisfaccion_ciudadana, Zona=="Urbano") %>% select(-Zona), rows = 10, size=1,
colors = c("#1696d2", "#fdbf11", "#CC0000", "#006600", "#669999", "#00CCCC", "#660099", "#CC0066", "#FF9999", "#FF9900", "#FF0000"), xlab = "1 cuadrado = 1 persona", legend_pos = "bottom")+ labs(subtitle = "Zona Urbano")
)