Despues de abrir todas las libreria necesarias, seteamos el wd a una carpeta en el escritrio con nuestro nombre
setwd("C:/Users/Adriana/Desktop/ADRIANA - R SESSIONS -")
getwd()
## [1] "C:/Users/Adriana/Desktop/ADRIANA - R SESSIONS -"
ANTES QUE NADA, iniciamos todas las librerias a utilizar:
library(rio)
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
library(taylor)
library(ggplot2)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.0
## ✔ readr 2.1.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(kableExtra)
##
## Attaching package: 'kableExtra'
##
## The following object is masked from 'package:dplyr':
##
## group_rows
library(scales)
##
## Attaching package: 'scales'
##
## The following object is masked from 'package:purrr':
##
## discard
##
## The following object is masked from 'package:readr':
##
## col_factor
library(labelled)
library(haven)
AHORA, abrimos la base de datos con la que trabajaremos:
PRIMER DATABASE:
data1=import("2006-2020 CES age and approval survey replication data.dta")
library(labelled)
var_label(data1)
## $ocaseid
## [1] "Case Identifier"
##
## $caseid
## [1] "Respondent identification number"
##
## $year
## [1] "Year of CCES"
##
## $weight
## [1] "Survey weight"
##
## $fipsy
## [1] "congressional district by year"
##
## $stfipsy
## [1] "state FIPS code by year"
##
## $mcapp
## [1] "Rescaled approval of house incumbent"
##
## $mcage
## [1] "Age of member of Congress"
##
## $mcdem
## [1] "Representative is Democrat:1 Republican:0"
##
## $ownmc
## [1] "Shares the same PID as MC:1 Independent or opposing party:0"
##
## $dwnom
## [1] "DW-Nominate, House ideology score"
##
## $leff
## [1] "Legislative effectiveness score"
##
## $mctenure
## [1] "Tenure in office for member of Congress, in years"
##
## $brep
## [1] "Black representative:1 Not black:0"
##
## $lrep
## [1] "Latino representative:1 Not Latino:0"
##
## $arep
## [1] "Asian-American representative:1 Not Asian-American:0"
##
## $frep
## [1] "Female representative:1 Male:0"
##
## $pid
## [1] "R's partisanship: 0-Strong Democrat 6-Strong Republican"
##
## $ideo5
## [1] "R's ideological identification (5 pt scale): 0-very liberal 4-very conservative"
##
## $ideo7
## [1] "R's ideology (7 pt scale): 0-very liberal 6-very conservative"
##
## $age
## [1] "Respondent's age"
##
## $ager
## [1] "Respondent age, rescaled (divided by 100)"
##
## $educ
## [1] "R's education: 0-no HS 1-postgrad"
##
## $female
## [1] "R's gender: 1-female 0-male"
##
## $black
## [1] "R identifies as black:1 does not:0"
##
## $latino
## [1] "R identifies as Latino:1 does not:0"
##
## $asian
## [1] "R identifies as Asian:1 does not:0"
SEGUNDA DATABASE:
data2 = read_dta("2020 CES age experiment replication data.dta")
var_label(data2)
## $caseid
## [1] "Case ID"
##
## $teamweight
## [1] "Team Weight"
##
## $team_vvweight
## [1] "Team Validated Voter Weight"
##
## $CUJ337_treat
## [1] "CUJ337_treat"
##
## $CUJ337
## [1] "Candidate experiment: Candidate favorability"
##
## $CUJ338
## [1] "Candidate experiment: Quality of representation"
##
## $CUJ339_1
## [1] "Candidate experiment: Traits of state legislator - Trustworthy"
##
## $CUJ339_2
## [1] "Candidate experiment: Traits of state legislator - Knowledgeable about the issue"
##
## $CUJ339_3
## [1] "Candidate experiment: Traits of state legislator - Well-qualified to serve in th"
##
## $CUJ339_4
## [1] "Candidate experiment: Traits of state legislator - Conservative"
##
## $CUJ339_5
## [1] "Candidate experiment: Traits of state legislator - Liberal"
##
## $CUJ339_6
## [1] "Candidate experiment: Traits of state legislator - Inexperienced"
##
## $CUJ339_7
## [1] "Candidate experiment: Traits of state legislator - Stands up for what he believe"
##
## $CUJ339_8
## [1] "Candidate experiment: Traits of state legislator - Out of touch with ordinary pe"
##
## $CUJ339_9
## [1] "Candidate experiment: Traits of state legislator - Cares about people like you"
##
## $agetreat
## [1] "Age of state legislator experiment: 1-50 years, 2-23 years, 3-77 years"
##
## $youngsl
## [1] "Younger state legislator (23 years old)"
##
## $oldsl
## [1] "Older state legislator (23 years old)"
##
## $consl
## [1] "Control group - state legislator (50 years old)"
##
## $aelvote
## [1] "Age experiment: Likelihood of voting for state legislator. 100-very likely 0-ver"
##
## $aeqrep
## [1] "Age experiment: Quality of representation to constituents from state legislator."
##
## $aetrust
## [1] "Age experiment: Selects 'trustworthy' as describing state legislator"
##
## $aeknow
## [1] "Age experiment: Selects 'Knowledgeable about the issues' as describing state leg"
##
## $aequal
## [1] "Age experiment: Selects 'Well-qualified to serve in the state legislature' as de"
##
## $aecon
## [1] "Age experiment: Selects 'Conservative' as describing state legislator"
##
## $aelib
## [1] "Age experiment: Selects 'Liberal' as describing state legislator"
##
## $aeinex
## [1] "Age experiment: Selects 'Inexperienced' as describing state legislator"
##
## $aestand
## [1] "Age experiment: Selects 'Stands up for what he believes in' as describing state"
##
## $aeoot
## [1] "Age experiment: Selects 'Out of touch with ordinary people' as describing state"
##
## $aecare
## [1] "Age experiment: Selects 'Cares about people like you' as describing state legisl"
##
## $age
## [1] "Respondent's age"
##
## $female
## [1] "R's gender: 1-female 0-male"
##
## $nonwhite
## [1] "R's race: 1-nonwhite 0-white"
##
## $latino
## [1] "R identifies as Latino:1 does not:0"
##
## $black
## [1] "R identifies as black:1 does not:0"
##
## $asian
## [1] "R identifies as Asian-American:1 does not:0"
##
## $educ
## [1] "R's education: 0-no HS 1-postgrad (as of 2018)"
##
## $hincome
## [1] "Household income, self-reported"
##
## $generat
## [1] "R's generational cohort: 1-gen Z, 2-millenn., 3-gen X, 4-boomers, 5-silent"
##
## $vvote
## [1] "Validated general election vote:1 Did not vote:0"
##
## $ideo5
## [1] "R's ideological identification (5 pt scale): 0-very liberal 4-very conservative"
##
## $ideo7
## [1] "R's ideology (7 pt scale): 0-very liberal 6-very conservative"
#INICIAMOS CON DATA2: “2020 CES age experiment replication data.dta”
#Variable CUJ337: Posibilidad de votar a dicho candidato para legislador estatal
library(dplyr)
data2$CUJ337=as.numeric(data2$CUJ337)
Un poco de analisis exploratorio:
summary(data2$CUJ337, na.rm=T)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.00 49.00 51.00 53.89 67.00 100.00 1
Como es una variable numérica, elaboramos una tabla detallada con todos los datos pertinentes para luego graficar:
data2%>%
summarize(Mediana = median(CUJ337, na.rm=T),
Media = mean(CUJ337, na.rm=T),
IQR= IQR(CUJ337, na.rm=T),
Minimo=min(CUJ337, na.rm = T),
Maximo=max(CUJ337, na.rm=T),
Desviación_estandar= sd(CUJ337, na.rm=T),
Q1= quantile(CUJ337, probs = 0.25, na.rm= T),
Q3= quantile(CUJ337, probs = 0.75, na.rm= T))
## # A tibble: 1 × 8
## Mediana Media IQR Minimo Maximo Desviación_estandar Q1 Q3
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 51 53.9 18 0 100 21.3 49 67
BOXPLOT:
data2%>%
ggplot(aes(x="", y = CUJ337, na.rm=T))+
stat_boxplot(geom = "errorbar", width = 0.2)+
geom_boxplot(fill = "#BAD2D7", outlier.colour = "#5D696B", alpha = 0.9)+
labs(title=" Posibilidad de voto al candidato para legislador estatal", x="Encuestados", y= "Posibilidad de voto (0-100)")+
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable CUJ337")+
scale_fill_brewer(palette="Dark2")
## Warning: Removed 1 rows containing non-finite values (`stat_boxplot()`).
## Removed 1 rows containing non-finite values (`stat_boxplot()`).
Interpretacion:
Variable CUJ338: Calidad de representacion distrital
data2$CUJ338=as.numeric(data2$CUJ338)
Un poco de analisis exploratorio:
summary(data2$CUJ338, na.rm=T)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.00 48.00 51.00 54.29 67.00 100.00 4
Como es una variable numérica, elaboramos una tabla detallada con todos los datos pertinentes para luego graficar:
data2%>%
summarise(
Mediana = median(data2$CUJ338, na.rm=T),
Media = mean(data2$CUJ338, na.rm=T),
Minimo= min(data2$CUJ338, na.rm=T),
Maximo=max(data2$CUJ337, na.rm=T),
IQR= IQR(data2$CUJ338, na.rm=T),
Desviación= sd(data2$CUJ338, na.rm=T),
Q1= quantile(data2$CUJ338, probs = 0.25, na.rm= T),
Q3= quantile(data2$CUJ338, probs = 0.75, na.rm= T)
)
## # A tibble: 1 × 8
## Mediana Media Minimo Maximo IQR Desviación Q1 Q3
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 51 54.3 0 100 19 20.4 48 67
BOXPLOT:
data2%>%
ggplot(aes(x="", y = CUJ338, na.rm=T))+
stat_boxplot(geom = "errorbar", width = 0.2)+
geom_boxplot(fill = "#BE9FBF", outlier.colour = "#4C3F4C", alpha = 0.9)+
labs(title=" Calidad de representacion a nivel distrital", x="Encuestados", y= "Calidad de representacion (1-100)")+
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable CUJ338")+
scale_fill_brewer(palette="Dark2")
## Warning: Removed 4 rows containing non-finite values (`stat_boxplot()`).
## Removed 4 rows containing non-finite values (`stat_boxplot()`).
#Variables CUJ339 (1-9); Caracteristicas del candidato
INDEX1: “Percieved competence - Capacidad percibida”
data2$CUJ339_3=as.factor(data2$CUJ339_3)
data2$CUJ339_3=factor(data2$CUJ339_3, levels = c(1:2), labels = c("Seleccionado", "No seleccionado"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
TablaCUJ339_3=data2 %>%
group_by(Bien_calificado=CUJ339_3)%>%
summarize(Frecuencia=n(), Porcentaje=(Frecuencia/10))
TablaCUJ339_3
## # A tibble: 2 × 3
## Bien_calificado Frecuencia Porcentaje
## <fct> <int> <dbl>
## 1 Seleccionado 151 15.1
## 2 No seleccionado 849 84.9
TablaCUJ339_3%>%
ggplot(aes(x = Bien_calificado, y = Frecuencia, fill=Bien_calificado)) +
geom_bar(width = 0.9, stat="identity", position = position_dodge())+
ylim(c(0,1000))+
labs(title=" Caracteristicas de candidato: \n Indice de capacidad - Bien calificado para servir como legislador estatal",x="Respuestas de los encuestados", y = "Frecuencia") + #17
labs(fill = "")+
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("Seleccionado", "No seleccionado")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable Indice de capacidad - Bien calificado para servir como legislador estatal (CUJ339_3)")
Interpretación: Como podemos ver, tanto en la tabla como el gráfico
data2$CUJ339_2=as.factor(data2$CUJ339_2)
data2$CUJ339_2=factor(data2$CUJ339_2, levels = c(1:2), labels = c("Seleccionado", "No Seleccionado"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
TablaCUJ339_2=data2 %>%
group_by(Conocedor_de_problematicas=CUJ339_2)%>%
summarize(Frecuencia=n(), Porcentaje=(Frecuencia/10))
TablaCUJ339_2
## # A tibble: 2 × 3
## Conocedor_de_problematicas Frecuencia Porcentaje
## <fct> <int> <dbl>
## 1 Seleccionado 198 19.8
## 2 No Seleccionado 802 80.2
Grafico de barras:
TablaCUJ339_2%>%
ggplot(aes(x = Conocedor_de_problematicas, y = Frecuencia, fill=Conocedor_de_problematicas)) +
geom_bar(width = 0.9, stat="identity", position = position_dodge())+
ylim(c(0,1000))+
labs(title=" Caracteristicas de candidato: \n Indice de capacidad - Conocedor de problematicas",x="Respuestas de los encuestados", y = "Frecuencia") + #17
labs(fill = "")+
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("Seleccionado", "No seleccionado")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable Indice de capacidad - Conocedor de problematicas (CUJ339_2)")
Interpretación:
data2$CUJ339_6=as.factor(data2$CUJ339_6)
data2$CUJ339_6=factor(data2$CUJ339_6, levels = c(1:2), labels = c("Seleccionado", "No seleccionado"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
TablaCUJ339_6=data2 %>%
group_by(Sin_experiencia=CUJ339_6)%>%
summarize(Frecuencia=n(), Porcentaje=(Frecuencia/10))
TablaCUJ339_6
## # A tibble: 2 × 3
## Sin_experiencia Frecuencia Porcentaje
## <fct> <int> <dbl>
## 1 Seleccionado 311 31.1
## 2 No seleccionado 689 68.9
Grafico de barras:
TablaCUJ339_6 %>%
ggplot(aes(x = Sin_experiencia, y=Frecuencia,fill=Sin_experiencia))+
geom_bar(width = 0.4, stat="identity", position = position_dodge())+
ylim(c(0,1000))+
labs(title=" Caracteristicas del candidato: \n Indice de capacidad - Sin experiencia",x="Respuestas de los encuestados",x="Respuestas de los encuestados", y = "Frecuencia \n (Porcentajes)") +
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("Seleccionado", "No seleccionado")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable dicotómica Sin experiencia (CUJ339_6)")
Interpretación:
INDICE2: percieved responsiveness (receptividad percibida)
data2$CUJ339_9=as.factor(data2$CUJ339_9)
data2$CUJ339_9=factor(data2$CUJ339_9, levels = c(1:2), labels = c("Seleccionsdo", "No Seleccionado"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
TablaCUJ339_9=data2 %>%
group_by(Le_importa_la_gente_como_tu=CUJ339_2)%>%
summarize(Frecuencia=n(), Porcentaje=(Frecuencia/10))
TablaCUJ339_9
## # A tibble: 2 × 3
## Le_importa_la_gente_como_tu Frecuencia Porcentaje
## <fct> <int> <dbl>
## 1 Seleccionado 198 19.8
## 2 No Seleccionado 802 80.2
Grafico de barras:
TablaCUJ339_9 %>%
ggplot(aes(x = Le_importa_la_gente_como_tu, y=Frecuencia,fill=Le_importa_la_gente_como_tu))+
geom_bar(width = 0.4, stat="identity", position = position_dodge())+
ylim(c(0,1000))+
labs(title=" Caracteristicas del candidato: \n Indice de receptividad - Le importa la gente como tu",x="Respuestas de los encuestados",x="Respuestas de los encuestados", y = "Frecuencia \n (Porcentajes)") +
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("Seleccionado", "No seleccionado")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable dicotómica Le importa le gente como tu (CUJ339_9)")
Interpretación:
data2$CUJ339_8=as.factor(data2$CUJ339_8)
data2$CUJ339_8=factor(data2$CUJ339_8, levels = c(1:2), labels = c("Seleccionado", "No Seleccionado"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
TablaCUJ339_8=data2 %>%
group_by(Alejado_de_la_gente_corriente=CUJ339_8)%>%
summarize(Frecuencia=n(), Porcentaje=(Frecuencia/10))
TablaCUJ339_8
## # A tibble: 2 × 3
## Alejado_de_la_gente_corriente Frecuencia Porcentaje
## <fct> <int> <dbl>
## 1 Seleccionado 84 8.4
## 2 No Seleccionado 916 91.6
Gráfico de barras:
TablaCUJ339_8 %>%
ggplot(aes(x = Alejado_de_la_gente_corriente, y=Frecuencia,fill=Alejado_de_la_gente_corriente))+
geom_bar(width = 0.4, stat="identity", position = position_dodge())+
ylim(c(0,1000))+
labs(title=" Caracteristicas del candidato: \n Indice de receptividad - Alejado de la gente corriente",x="Respuestas de los encuestados", y = "Frecuencia \n (Porcentajes)") +
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("Seleccionado", "No seleccionado")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable dicotómica Alejado de la gente corriente (CUJ339_8)")
Interpretación:
Si es confiable y/o lucha por lo que cree:
data2$CUJ339_1=as.factor(data2$CUJ339_1)
data2$CUJ339_1=factor(data2$CUJ339_1, levels = c(1:2), labels = c("Seleccionado", "No seleccionado"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
TablaCUJ339_1=data2 %>%
group_by(Confiable=CUJ339_1)%>%
summarize(Frecuencia=n(), Porcentaje=(Frecuencia/10))
TablaCUJ339_1
## # A tibble: 2 × 3
## Confiable Frecuencia Porcentaje
## <fct> <int> <dbl>
## 1 Seleccionado 115 11.5
## 2 No seleccionado 885 88.5
Grafico de barras:
TablaCUJ339_1 %>%
ggplot(aes(x = Confiable, y=Frecuencia,fill=Confiable))+
geom_bar(width = 0.4, stat="identity", position = position_dodge())+
ylim(c(0,1000))+
labs(title=" Caracteristicas del candidato: confiable",x="Respuestas de los encuestados", y = "Frecuencia \n (Porcentajes)") +
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("Seleccionado", "No seleccionado")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable dicotómica Confiable (CUJ339_1)")
Interpretación:
-Lucha por lo que cree
data2$CUJ339_7=as.factor(data2$CUJ339_7)
data2$CUJ339_7=factor(data2$CUJ339_7, levels = c(1:2), labels = c("Seleccionado", "No Seleccionado"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
TablaCUJ339_7=data2 %>%
group_by(Lucha_por_lo_que_cree=CUJ339_7)%>%
summarize(Frecuencia=n(), Porcentaje=(Frecuencia/10))
TablaCUJ339_7
## # A tibble: 2 × 3
## Lucha_por_lo_que_cree Frecuencia Porcentaje
## <fct> <int> <dbl>
## 1 Seleccionado 386 38.6
## 2 No Seleccionado 614 61.4
Grafico de barras:
TablaCUJ339_7 %>%
ggplot(aes(x = Lucha_por_lo_que_cree, y=Frecuencia,fill=Lucha_por_lo_que_cree))+
geom_bar(width = 0.4, stat="identity", position = position_dodge())+
ylim(c(0,1000))+
labs(title=" Caracteristicas del candidato: Lucha por lo que cree",x="Respuestas de los encuestados", y = "Frecuencia \n (Porcentajes)") +
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("Seleccionado", "No seleccionado")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable dicotómica Lucha por lo que cree (CUJ339_7)")
Interpretación:
PERCEPCIONES IDEOLOGICA:
data2$CUJ339_5=as.factor(data2$CUJ339_5)
data2$CUJ339_5=factor(data2$CUJ339_5, levels = c(1:2), labels = c("Seleccionado", "No seleccionado"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
TablaCUJ339_5=data2 %>%
group_by(Liberal=CUJ339_5)%>%
summarize(Frecuencia=n(), Porcentaje=(Frecuencia/10))
TablaCUJ339_5
## # A tibble: 2 × 3
## Liberal Frecuencia Porcentaje
## <fct> <int> <dbl>
## 1 Seleccionado 75 7.5
## 2 No seleccionado 925 92.5
Grafico de barras:
TablaCUJ339_5 %>%
ggplot(aes(x = Liberal, y=Frecuencia,fill=Liberal))+
geom_bar(width = 0.4, stat="identity", position = position_dodge())+
ylim(c(0,1000))+
labs(title=" Caracteristicas del candidato: Liberal",x="Respuestas de los encuestados", y = "Frecuencia \n (Porcentajes)") +
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("Seleccionado", "No seleccionado")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable dicotómica Liberal (CUJ339_5)")
Interpretación: - Conservador
data2$CUJ339_4=as.factor(data2$CUJ339_4)
data2$CUJ339_4=factor(data2$CUJ339_4, levels = c(1:2), labels = c("Seleccionado", "No Seleccionado"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
TablaCUJ339_4=data2 %>%
group_by(Conservador=CUJ339_4)%>%
summarize(Frecuencia=n(), Porcentaje=(Frecuencia/10))
TablaCUJ339_4
## # A tibble: 2 × 3
## Conservador Frecuencia Porcentaje
## <fct> <int> <dbl>
## 1 Seleccionado 131 13.1
## 2 No Seleccionado 869 86.9
Grafico de barras:
TablaCUJ339_4 %>%
ggplot(aes(x = Conservador, y=Frecuencia,fill=Conservador))+
geom_bar(width = 0.4, stat="identity", position = position_dodge())+
ylim(c(0,1000))+
labs(title=" Caracteristicas del candidato: Conservador",x="Respuestas de los encuestados", y = "Frecuencia \n (Porcentajes)") +
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("Seleccionado", "No seleccionado")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable dicotómica Conservador (CUJ339_4)")
Interpretación:
#AHORA DATA1: “2006-2020 CES age and approval survey replication data.dta”
EDAD: #VARIABLE mcage: Edad del miembro del congreso
library(dplyr)
data1$mcage=as.numeric(data1$mcage)
Un poco de analisis exploratorio:
summary(data1$mcage, na.rm=T)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 29.00 51.00 59.00 58.34 66.00 91.00 659
Como es una variable numérica, elaboramos una tabla detallada con todos los datos pertinentes para luego graficar:
data1%>%
summarize(Mediana = median(mcage, na.rm=T),
Media = mean(mcage, na.rm=T),
IQR= IQR(mcage, na.rm=T),
Minimo=min(mcapp, na.rm = T),
Maximo=max(mcage, na.rm=T),
Desviación_estandar= sd(mcage, na.rm=T),
Q1= quantile(mcage, probs = 0.25, na.rm= T),
Q3= quantile(mcage, probs = 0.75, na.rm= T))
## Mediana Media IQR Minimo Maximo Desviación_estandar Q1 Q3
## 1 59 58.33702 15 0 91 10.67327 51 66
BOXPLOT:
data1%>%
ggplot(aes(x="", y = mcage, na.rm=T))+
stat_boxplot(geom = "errorbar", width = 0.2)+
geom_boxplot(fill = "#FFD966", outlier.colour = "#FFC61A", alpha = 0.9)+
labs(title=" ¿Cuál es la edad del miembro del congreso?", x="Encuestados", y= "Edad")+
scale_fill_brewer(palette="Dark2")
## Warning: Removed 659 rows containing non-finite values (`stat_boxplot()`).
## Removed 659 rows containing non-finite values (`stat_boxplot()`).
INTERPRETACION:
INCLINACION POLÍTICA: #VARIABLE mcdem: Democrata o republicano
data1$mcdem=as.factor(data1$mcdem)
data1$mcdem=factor(data1$mcdem, levels = c(0:1), labels = c("Republicano", "Democrata"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
Tablamcdem=data1 %>%
group_by(R_o_D=mcdem)%>%
summarize(Frecuencia=n(), Porcentaje=(Frecuencia/420958)*100)%>%
dplyr::mutate_if(is.numeric, round, 3)
Tablamcdem
## # A tibble: 3 × 3
## R_o_D Frecuencia Porcentaje
## <fct> <dbl> <dbl>
## 1 Republicano 224779 53.4
## 2 Democrata 195911 46.5
## 3 <NA> 268 0.064
Grafico de barras:
Tablamcdem %>%
ggplot(aes(x = R_o_D, y=Frecuencia,fill=R_o_D))+
geom_bar(width = 0.4, stat="identity", position = position_dodge())+
ylim(c(0,230000))+
labs(title=" ¿El representante es republicano o democrata?", x="Respuestas de los encuestados", y= "Frecuencia \n (Porcentajes)") +
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("Republicano", "Democrata")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable Inclinación política (mcdem)")
RACE/ETHNICITY: #VARIABLE brep: ascendencia afroamericana o no
data1$brep=as.factor(data1$brep)
data1$brep=factor(data1$brep, levels = c(0:1), labels = c("No black", "Black"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
Tablabrep=data1 %>%
group_by(Black_or_not=brep)%>%
summarize(Frecuencia=n(),Porcentaje=(Frecuencia/420958)*100)%>%
dplyr::mutate_if(is.numeric, round, 3)
Tablabrep
## # A tibble: 3 × 3
## Black_or_not Frecuencia Porcentaje
## <fct> <dbl> <dbl>
## 1 No black 381162 90.5
## 2 Black 39794 9.45
## 3 <NA> 2 0
Grafico de barras:
Tablabrep %>%
ggplot(aes(x = Black_or_not, y=Frecuencia,fill=Black_or_not))+
geom_bar(width = 0.4, stat="identity", position = position_dodge())+
ylim(c(0,410000))+
labs(title=" ¿El representante es de ascendencia afroamericana o no?",x="Respuestas de los encuestados", y= "Frecuencia \n (Porcentajes)") +
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("No afroamericano", "Afroamericano")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable Ascendencia afroamericana (brep)")
#VARIABLE lrep: ascendencia latina o no
data1$lrep=as.factor(data1$lrep)
data1$lrep=factor(data1$lrep, levels = c(0:1), labels = c("No latino", "Latino"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
Tablalrep=data1 %>%
group_by(Latino_or_not=lrep)%>%
summarize(Frecuencia=n(),Porcentaje=(Frecuencia/420958)*100)%>%
dplyr::mutate_if(is.numeric, round, 3)
Tablalrep
## # A tibble: 3 × 3
## Latino_or_not Frecuencia Porcentaje
## <fct> <dbl> <dbl>
## 1 No latino 399806 95.0
## 2 Latino 21150 5.02
## 3 <NA> 2 0
Grafico de barras:
Tablalrep %>%
ggplot(aes(x = Latino_or_not, y=Frecuencia,fill=Latino_or_not))+
geom_bar(width = 0.4, stat="identity", position = position_dodge())+
ylim(c(0,410000))+
labs(title=" ¿El representante es de ascendencia latina o no?",x="Respuestas de los encuestados", y= "Frecuencia \n (Porcentajes)") +
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("No latino", "Latino")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable Ascendencia latina (lrep)")
#VARIABLE arep: ascendencia asiatica o no
data1$arep=as.factor(data1$arep)
data1$arep=factor(data1$arep, levels = c(0:1), labels = c("No asian", "Asian"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
Tablaarep=data1 %>%
group_by(Asian_or_not=arep)%>%
summarize(Frecuencia=n(),Porcentaje=(Frecuencia/420958)*100)%>%
dplyr::mutate_if(is.numeric, round, 3)
Tablaarep
## # A tibble: 3 × 3
## Asian_or_not Frecuencia Porcentaje
## <fct> <dbl> <dbl>
## 1 No asian 412513 98.0
## 2 Asian 8443 2.01
## 3 <NA> 2 0
Grafico de barras:
Tablaarep %>%
ggplot(aes(x = Asian_or_not, y=Frecuencia,fill=Asian_or_not))+
geom_bar(width = 0.4, stat="identity", position = position_dodge())+
ylim(c(0,420000))+
labs(title=" ¿El representante es de ascendencia asiática?",x="Respuestas de los encuestados", y= "Frecuencia \n (Porcentajes)") +
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Respuestas", labels = c("No asian", "Asian")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable Ascendencia asiatica-americana (arep)")
SEX: #VARIABLE frep: mujer u hombre
data1$frep=as.factor(data1$frep)
data1$frep=factor(data1$frep, levels = c(0:1), labels = c("Hombre", "Mujer"))
Como se trata de una variable nominal dicotomica, elaboramos una tabla de frecuencias
library(dplyr)
Tablafrep=data1 %>%
group_by(Hombre_o_Mujer=frep)%>%
summarize(Frecuencia=n(),Porcentaje=(Frecuencia/420958)*100)%>%
dplyr::mutate_if(is.numeric, round, 3)
Tablafrep
## # A tibble: 3 × 3
## Hombre_o_Mujer Frecuencia Porcentaje
## <fct> <dbl> <dbl>
## 1 Hombre 343984 81.7
## 2 Mujer 76972 18.3
## 3 <NA> 2 0
Grafico de barras:
Tablafrep %>%
ggplot(aes(x = Hombre_o_Mujer, y=Frecuencia,fill=Hombre_o_Mujer))+
geom_bar(width = 0.4, stat="identity", position = position_dodge())+
ylim(c(0,350000))+
labs(title=" ¿El/La representante es hombre o mujer?",x="Respuestas de los encuestados", y= "Frecuencia \n (Porcentajes)") +
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2.75
) +
scale_fill_discrete(name = "Sexo", labels = c("Hombre", "Mujer")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable Sexo (frep)")
IDEOLOGY SPECTRUM: #VARIABLE ideo7: ideología política, liberal a conservador
data1$ideo7=as.factor(data1$ideo7)
data1$ideo7=factor(data1$ideo7, levels = c(0:6), labels = c("Very liberal", "Moderately liberal", "Slightly liberal", "In the middle", "Slightly conservative", "Moderately conservative", "Very conservative"), ordered = T)
Como se trata de una variable nominal, elaboramos una tabla de frecuencias
library(dplyr)
Tablaideo7=data1 %>%
group_by(Ideological_posture=ideo7)%>%
summarize(Frecuencia=n(),Porcentaje=(Frecuencia/420958)*100)%>%
dplyr::mutate_if(is.numeric, round, 3)
Tablaideo7
## # A tibble: 8 × 3
## Ideological_posture Frecuencia Porcentaje
## <ord> <dbl> <dbl>
## 1 Very liberal 33713 8.01
## 2 Moderately liberal 45573 10.8
## 3 Slightly liberal 35231 8.37
## 4 In the middle 81835 19.4
## 5 Slightly conservative 37133 8.82
## 6 Moderately conservative 58079 13.8
## 7 Very conservative 40534 9.63
## 8 <NA> 88860 21.1
Grafico de barras:
Tablaideo7 %>%
ggplot(aes(x = Ideological_posture, y=Frecuencia,fill=Ideological_posture) ) +
geom_bar(width = 0.9, stat="identity", position = position_dodge())+
ylim(c(0,100000))+
labs(title=" ¿Cuál es la posición ideológica del representante? \n (liberal o conservadora)",x="Respuestas de los encuestados", y = "Frecuencia") + #17
labs(fill = "")+
geom_text(aes(label=paste0(Frecuencia," ", "", "(", Porcentaje, "%",")")), #18
vjust=-0.9,
color="black",
hjust=0.5,
position = position_dodge(0.9),
angle=0,
size=2
) +
scale_fill_discrete(name = "Postura ideologica", labels = c("Very liberal", "Moderately liberal", "Slightly liberal", "In the middle", "Slightly conservative", "Moderately conservative", "Very conservative")) + #19
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable Postura Ideologica de 7 niveles (ideo7)")
SOBRE LA GENTE ENCUESTADA:
#VARIABLE age: edad de los encuestados (respondants)
data1$age=as.numeric(data1$age)
Un poco de analisis exploratorio:
summary(data1$age, na.rm=T)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 18.00 35.00 51.00 49.52 62.00 100.00 2
Como es una variable numérica, elaboramos una tabla detallada con todos los datos pertinentes para luego graficar:
data1%>%
summarise(
Mediana = median(age, na.rm=T),
Media = mean(age, na.rm=T),
Minimo= min(age, na.rm=T),
Maximo=max(age, na.rm=T),
IQR= IQR(age, na.rm=T),
Desviación= sd(age, na.rm=T),
Q1= quantile(age, probs = 0.25, na.rm= T),
Q3= quantile(age, probs = 0.75, na.rm= T)
)
## Mediana Media Minimo Maximo IQR Desviación Q1 Q3
## 1 51 49.52401 18 100 27 16.66217 35 62
Boxplot:
data1%>%
ggplot(aes(x="", y = age, na.rm=T))+
stat_boxplot(geom = "errorbar", width = 0.2)+
geom_boxplot(fill = "#FCC95A", outlier.colour = "red", alpha = 0.9)+
labs(title=" Percepcion de qué tan bien el candidato \n podría representar a sus votantes en distritos", x= "Encuestados", y= "Edad")+
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + #20
#theme_bw(base_size = 14) +
facet_wrap(~"Variable Edad de los respondants (age)")+
scale_fill_brewer(palette="Dark2")
## Warning: Removed 2 rows containing non-finite values (`stat_boxplot()`).
## Removed 2 rows containing non-finite values (`stat_boxplot()`).
```