::p_load(ggplot2,
pacman
ggthemes,
tidyverse,
sjlabelled,
sjPlot,
car,
vcd,
texreg,
ordinal,
nnet,
MASS,
mlogit,
matrixStats,
expss,
sjlabelled,
sjmisc,
tidyverse,
weights,
survey,
viridis, plotly)
En el presente documento se realiza un trabajo de datos para construir una base en formato long con la encuesta COES en su ola w2 y ola w4. Adicionalmente, se analizan datos panel con el modelo within-between (Bell & Jhones, 2014; Bell et al. 2019), ideales para el análisis de estructuras jerárquicas de datos, incluidos los datos datos de series de tiempo (de corte transversal), y de tipo panel.
El objetivo es explorar potenciales relaciones entre indicadores de homofilia y algunos indicadores de comportamiento cívico. El análisis de datos es realizado con el paquete panelr, diseñado para entorno R, el cual tiene como base el paquete lm4. Se prefiere el primero puesto que se reducen sustantivamente procedimientos y lineas de códigos y se obtienen los mismos resultados que si se realizará con el pquete lm4.
Para atributos categóricos de los alter de la red ego, además de la proporción de alter similares a ego, una medida generalmente usada ha sido el índice EI (Krackhardt & Stern, 1988, Perry et al., 2018). Esta medida se define como el número de alter diferentes de ego (lazos externos E) menos el número de alter iguales a ego (lazos internos I), dividido por el número de alter. Esta es una medida “reversa” de homofilia toa vez que una medida alta de este índice índica mayor heterofilia. Además, debido a que es una transformación lineal de la medida de proporción de lazos homofilicos, su correlación es un perfecto -.1
\[EI = \frac{E - I}{E + I}\]
A continuación, desarrollamos el trabajo de código. Todo el análisis es realizado con datos de la encuesta ELSOC COES, considerando las olas 2 y 4. Las bases de datos y la documentación pueden ser descargadas desde el siguiente link
Cargar librerias y bbdd
Cargamos data
load("/home/rober/Documents/rcantillan.github.io/dat/ELSOC/ELSOC_W02_v3.00_R.RData")
load("/home/rober/Documents/rcantillan.github.io/dat/ELSOC/ELSOC_W04_v2.01_R.RData")
Subset 2017
# Armar BBDD 2019
<- elsoc_2017 %>%
ego2017 ::select(idencuesta,
dplyrsexo=m0_sexo,
sexoalter01=r13_sexo_01,
sexoalter02=r13_sexo_02,
sexoalter03=r13_sexo_03,
sexoalter04=r13_sexo_04,
sexoalter05=r13_sexo_05,
edad=m0_edad,
edadalter01=r13_edad_01,
edadalter02=r13_edad_02,
edadalter03=r13_edad_03,
edadalter04=r13_edad_04,
edadalter05=r13_edad_05,
relig=m38,
religalter01=r13_relig_01,
religalter02=r13_relig_02,
religalter03=r13_relig_03,
religalter04=r13_relig_04,
religalter05=r13_relig_05,
educ=m01,
educalter01=r13_educ_01,
educalter02=r13_educ_02,
educalter03=r13_educ_03,
educalter04=r13_educ_04,
educalter05=r13_educ_05,
ideol=c15,
ideolalter01=r13_ideol_01,
ideolalter02=r13_ideol_02,
ideolalter03=r13_ideol_03,
ideolalter04=r13_ideol_04,
ideolalter05=r13_ideol_05,
c08_01,
c08_02,
c08_03,
c08_04, ponderador01)
Revisar BBDD
<- data.frame(ego2017)
ego2017 #head(ego2017)
dim(ego2017)
[1] 2473 36
# Definir NA's
=="-999"] <- NA
ego2017[ego2017=="-888"] <- NA ego2017[ego2017
Recod variables 2017
Sexo
<-c("hombre","mujer")
sexolab$sexo_h<-factor(Recode(ego2017$sexo,"1=1;2=2;-888=NA;-999=NA"),labels=sexolab)
ego2017$alterSexo1<-factor(Recode(ego2017$sexoalter01,"1=1;2=2;-888=NA;-999=NA"),labels=sexolab)
ego2017$alterSexo2<-factor(Recode(ego2017$sexoalter02,"1=1;2=2;-888=NA;-999=NA"),labels=sexolab)
ego2017$alterSexo3<-factor(Recode(ego2017$sexoalter03,"1=1;2=2;-888=NA;-999=NA"),labels=sexolab)
ego2017$alterSexo4<-factor(Recode(ego2017$sexoalter04,"1=1;2=2;-888=NA;-999=NA"),labels=sexolab)
ego2017$alterSexo5<-factor(Recode(ego2017$sexoalter05,"1=1;2=2;-888=NA;-999=NA"),labels=sexolab)
ego2017with(ego2017, summary(cbind(alterSexo1,alterSexo2,alterSexo3,alterSexo4,alterSexo5)))
alterSexo1 alterSexo2 alterSexo3 alterSexo4
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
Median :2.000 Median :2.000 Median :2.000 Median :2.000
Mean :1.617 Mean :1.583 Mean :1.552 Mean :1.546
3rd Qu.:2.000 3rd Qu.:2.000 3rd Qu.:2.000 3rd Qu.:2.000
Max. :2.000 Max. :2.000 Max. :2.000 Max. :2.000
NA's :1 NA's :372 NA's :864 NA's :1370
alterSexo5
Min. :1.000
1st Qu.:1.000
Median :2.000
Mean :1.557
3rd Qu.:2.000
Max. :2.000
NA's :1692
Edad
<- c("18-24", "25-34", "35-44", "45-54", "55-64", ">65")
edadlab $edadR<-factor(Recode(ego2017$edad,"lo:24=1;25:34=2;35:44=3;45:54=4;55:64=5;65:hi=6"),labels=edadlab)
ego2017
$alterAge1<-factor(Recode(ego2017$edadalter01,"lo:24=1;25:34=2;35:44=3;45:54=4;55:64=5;65:hi=6"),labels=edadlab)
ego2017$alterAge2<-factor(Recode(ego2017$edadalter02,"lo:24=1;25:34=2;35:44=3;45:54=4;55:64=5;65:hi=6"),labels=edadlab)
ego2017$alterAge3<-factor(Recode(ego2017$edadalter03,"lo:24=1;25:34=2;35:44=3;45:54=4;55:64=5;65:hi=6"),labels=edadlab)
ego2017$alterAge4<-factor(Recode(ego2017$edadalter04,"lo:24=1;25:34=2;35:44=3;45:54=4;55:64=5;65:hi=6"),labels=edadlab)
ego2017$alterAge5<-factor(Recode(ego2017$edadalter05,"lo:24=1;25:34=2;35:44=3;45:54=4;55:64=5;65:hi=6"),labels=edadlab)
ego2017with(ego2017, summary(cbind(alterAge1,alterAge2,alterAge3,alterAge4,alterAge5)))
alterAge1 alterAge2 alterAge3 alterAge4 alterAge5
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.00
1st Qu.:2.000 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:2.00
Median :4.000 Median :3.000 Median :3.000 Median :3.000 Median :3.00
Mean :3.607 Mean :3.376 Mean :3.328 Mean :3.312 Mean :3.37
3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.00
Max. :6.000 Max. :6.000 Max. :6.000 Max. :6.000 Max. :6.00
NA's :1 NA's :372 NA's :864 NA's :1370 NA's :1692
Religión
= c("Catolico","Evangelico","Otra Religion","no religioso")
rellab $religid<-factor(Recode(ego2017$relig,"1=1;2=2;3:6=3;7:9=4;-999:-888=4"),labels=rellab)
ego2017$alterRelig1<-factor(Recode(ego2017$religalter01,"1=1;2=2;3:4=4;5=3;-999:-888=4"),labels=rellab)
ego2017$alterRelig2<-factor(Recode(ego2017$religalter02,"1=1;2=2;3:4=4;5=3;-999:-888=4"),labels=rellab)
ego2017$alterRelig3<-factor(Recode(ego2017$religalter03,"1=1;2=2;3:4=4;5=3;-999:-888=4"),labels=rellab)
ego2017$alterRelig4<-factor(Recode(ego2017$religalter04,"1=1;2=2;3:4=4;5=3;-999:-888=4"),labels=rellab)
ego2017$alterRelig5<-factor(Recode(ego2017$religalter05,"1=1;2=2;3:4=4;5=3;-999:-888=4"),labels=rellab)
ego2017with(ego2017, summary(cbind(alterRelig1,alterRelig2,alterRelig3,alterRelig4,alterRelig5)))
alterRelig1 alterRelig2 alterRelig3 alterRelig4
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
Median :1.000 Median :1.000 Median :1.000 Median :1.000
Mean :1.747 Mean :1.762 Mean :1.836 Mean :1.784
3rd Qu.:2.000 3rd Qu.:2.000 3rd Qu.:2.000 3rd Qu.:2.000
Max. :4.000 Max. :4.000 Max. :4.000 Max. :4.000
NA's :1 NA's :372 NA's :864 NA's :1370
alterRelig5
Min. :1.000
1st Qu.:1.000
Median :1.000
Mean :1.809
3rd Qu.:2.000
Max. :4.000
NA's :1692
Educación
= c("Basica", "Media", "Sup. Tecnica", "Sup. Univ")
edulab $educaF<-factor(Recode(ego2017$educ,"1:3=1;4:5=2;6:7=3;8:10=4;-888=NA;-999=NA"),labels=edulab)
ego2017$alterEduca1<-factor(Recode(ego2017$educalter01,"1=1;2:3=2;4=3;5=4;-888=NA;-999=NA"),labels=edulab)
ego2017$alterEduca2<-factor(Recode(ego2017$educalter02,"1=1;2:3=2;4=3;5=4;-888=NA;-999=NA"),labels=edulab)
ego2017$alterEduca3<-factor(Recode(ego2017$educalter03,"1=1;2:3=2;4=3;5=4;-888=NA;-999=NA"),labels=edulab)
ego2017$alterEduca4<-factor(Recode(ego2017$educalter04,"1=1;2:3=2;4=3;5=4;-888=NA;-999=NA"),labels=edulab)
ego2017$alterEduca5<-factor(Recode(ego2017$educalter05,"1=1;2:3=2;4=3;5=4;-888=NA;-999=NA"),labels=edulab)
ego2017with(ego2017, summary(cbind(alterEduca1,alterEduca2,alterEduca3,alterEduca4,alterEduca5)))
alterEduca1 alterEduca2 alterEduca3 alterEduca4
Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:2.000 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:2.000
Median :2.000 Median :2.000 Median :2.000 Median :2.000
Mean :2.344 Mean :2.394 Mean :2.438 Mean :2.489
3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.:4.000
Max. :4.000 Max. :4.000 Max. :4.000 Max. :4.000
NA's :142 NA's :481 NA's :940 NA's :1412
alterEduca5
Min. :1.000
1st Qu.:2.000
Median :2.000
Mean :2.454
3rd Qu.:3.000
Max. :4.000
NA's :1724
Posición Política
<- c("Izq", "Centro", "Der", "Ind/Ninguno", "NA")
pollab $izqderR<-factor(Recode(ego2017$ideol,"0:3=1;4:6=2;7:10=3;11:12=4;NA=5"),labels=pollab)
ego2017$alterPospol1=factor(Recode(ego2017$ideolalter01,"1:2=3;3=2;4:5=1;6=4;NA=5"),labels=pollab)
ego2017$alterPospol2=factor(Recode(ego2017$ideolalter02,"1:2=3;3=2;4:5=1;6=4;NA=5"),labels=pollab)
ego2017$alterPospol3=factor(Recode(ego2017$ideolalter03,"1:2=3;3=2;4:5=1;6=4;NA=5"),labels=pollab)
ego2017$alterPospol4=factor(Recode(ego2017$ideolalter04,"1:2=3;3=2;4:5=1;6=4;NA=5"),labels=pollab)
ego2017$alterPospol5=factor(Recode(ego2017$ideolalter05,"1:2=3;3=2;4:5=1;6=4;NA=5"),labels=pollab)
ego2017with(ego2017,summary(cbind(alterPospol1,alterPospol2,alterPospol3,alterPospol4,alterPospol5)))
alterPospol1 alterPospol2 alterPospol3 alterPospol4 alterPospol5
Min. :1.00 Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
1st Qu.:3.00 1st Qu.:3.000 1st Qu.:4.000 1st Qu.:4.000 1st Qu.:4.000
Median :4.00 Median :4.000 Median :4.000 Median :5.000 Median :5.000
Mean :3.58 Mean :3.747 Mean :4.013 Mean :4.318 Mean :4.493
3rd Qu.:4.00 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.000
Max. :5.00 Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.000
Tamaño de la red
$tamred = as.numeric(!is.na(ego2017$sexoalter01)) +
ego2017as.numeric(!is.na(ego2017$sexoalter02)) +
as.numeric(!is.na(ego2017$sexoalter03)) +
as.numeric(!is.na(ego2017$sexoalter04)) +
as.numeric(!is.na(ego2017$sexoalter05))
print(prop.table(table(ego2017$tamred)), 2)
0 1 2 3 4 5
0.0004 0.1500 0.1989 0.2046 0.1302 0.3158
$tamred[ego2017$tamred==0] <- NA
ego2017table(ego2017$tamred)
1 2 3 4 5
371 492 506 322 781
Plot tamred
posición política de alteres segun tamaño de la red de ego.
$alterPospol1t<-Recode(ego2017$alterPospol1,"1:2=3;3=2;4:5=1;6:5=4")
ego2017$alterPospol2t<-Recode(ego2017$alterPospol2,"1:2=3;3=2;4:5=1;6:5=4")
ego2017$alterPospol3t<-Recode(ego2017$alterPospol3,"1:2=3;3=2;4:5=1;6:5=4")
ego2017$alterPospol4t<-Recode(ego2017$alterPospol4,"1:2=3;3=2;4:5=1;6:5=4")
ego2017$alterPospol5t<-Recode(ego2017$alterPospol5,"1:2=3;3=2;4:5=1;6:5=4")
ego2017
=with(ego2017,table(tamred,alterPospol1t), na.rm=T)
Tpospol1=with(ego2017,table(tamred,alterPospol2t), na.rm=T)
Tpospol2=with(ego2017,table(tamred,alterPospol3t), na.rm=T)
Tpospol3=with(ego2017,table(tamred,alterPospol4t), na.rm=T)
Tpospol4=with(ego2017,table(tamred,alterPospol5t), na.rm=T)
Tpospol5
=Tpospol1+Tpospol2+Tpospol3+Tpospol4+Tpospol5
Hpospol=round(Hpospol, 0)
Hpospoldimnames(Hpospol)=list(tamred= c("1", "2", "3", "4","5"),
alter = c("Izq", "Centro", "Der", "Ind/Ns", "NA"))
<-as.data.frame(round(prop.table(Hpospol,1),2)) hom_tam
# Primero creamos el ggplot
<- hom_tam %>%
p1 drop_na() %>%
ggplot(aes(x = tamred, y = Freq, fill = alter,
text = paste("Tamaño de red:", tamred,
"<br>Posición política:", alter,
"<br>Proporción:", scales::percent(Freq, accuracy = 0.1)))) +
geom_bar(position = 'dodge', stat = 'identity') +
labs(title = "Alter political position",
x = "Network size",
y = "") +
scale_fill_viridis_d(alpha = 1, begin = 0, end = 1, direction = 1, option = "F") +
scale_y_continuous(limits = c(0, 1)) +
theme_light()
# Convertimos a plotly
ggplotly(p1, tooltip = "text")
Homofilia por posición política
library(car)
#rec
$izqderRx<-Recode(ego2017$ideol,"0:3=1;3:6=2;7:10=3;11:12=4;-999:-888=NA")
ego2017$alterPospol1x=Recode(ego2017$ideolalter01,"1:2=3;3=2;4:5=1;6=4;-999:-888=NA")
ego2017$alterPospol2x=Recode(ego2017$ideolalter02,"1:2=3;3=2;4:5=1;6=4;-999:-888=NA")
ego2017$alterPospol3x=Recode(ego2017$ideolalter03,"1:2=3;3=2;4:5=1;6=4;-999:-888=NA")
ego2017$alterPospol4x=Recode(ego2017$ideolalter04,"1:2=3;3=2;4:5=1;6=4;-999:-888=NA")
ego2017$alterPospol5x=Recode(ego2017$ideolalter05,"1:2=3;3=2;4:5=1;6=4;-999:-888=NA")
ego2017
=with(ego2017,table(izqderRx,alterPospol1x))
Tpospol1=with(ego2017,table(izqderRx,alterPospol2x))
Tpospol2=with(ego2017,table(izqderRx,alterPospol3x))
Tpospol3=with(ego2017,table(izqderRx,alterPospol4x))
Tpospol4=with(ego2017,table(izqderRx,alterPospol5x))
Tpospol5
=Tpospol1+Tpospol2+Tpospol3+Tpospol4+Tpospol5
Hpospol=round(Hpospol, 0)
Hpospoldimnames(Hpospol)=list(ego=c("Izq", "Centro", "Der", "Ind/Ns"),
alter=c("Izq", "Centro", "Der", "Ind/Ns"))
round(prop.table(Hpospol,1),2)
alter
ego Izq Centro Der Ind/Ns
Izq 0.41 0.04 0.10 0.45
Centro 0.14 0.10 0.14 0.61
Der 0.12 0.07 0.39 0.42
Ind/Ns 0.05 0.02 0.06 0.87
<-as.data.frame(round(prop.table(Hpospol,1),2)) qq3
# Primero creamos el ggplot
<- qq3 %>%
p2 ggplot(aes(x = ego, y = Freq, fill = alter,
text = paste("Ego:", ego,
"<br>Alter:", alter,
"<br>Proporción:", scales::percent(Freq, accuracy = 0.1)))) +
geom_bar(position = 'dodge', stat = 'identity') +
labs(title = "Political dyads",
x = "Ego political position",
y = "") +
scale_fill_viridis_d(alpha = 1, begin = 0, end = 1, direction = 1, option = "F") +
scale_y_continuous(limits = c(0, 1)) +
theme_light()
# Convertimos a plotly
ggplotly(p2, tooltip = "text")
Cálculo E-I homofilia por posición política (ELSOC 2017)
Indice E-I de Krackhardt y Stern (1988).
Creamos los alteres como externos (con otras categorías distinta a la del ego) o como internos (misma categoría que el ego). Los valores de -1 implican perfecta homofilia y los valores de +1 corresponden a perfecta heterofilia.
EI posición política
$pospol_alt1_clasif<-ifelse(ego2017$izqderR==ego2017$alterPospol1,"External", "Internal")
ego2017$pospol_alt2_clasif<-ifelse(ego2017$izqderR==ego2017$alterPospol2,"External", "Internal")
ego2017$pospol_alt3_clasif<-ifelse(ego2017$izqderR==ego2017$alterPospol3,"External", "Internal")
ego2017$pospol_alt4_clasif<-ifelse(ego2017$izqderR==ego2017$alterPospol4,"External", "Internal")
ego2017$pospol_alt5_clasif<-ifelse(ego2017$izqderR==ego2017$alterPospol5,"External", "Internal")
ego2017
#Ahora se agrega la información sobre los tipos de vínculos
$pospol_external<-count_row_if(criterion = "External",
ego2017$pospol_alt1_clasif,
ego2017$pospol_alt2_clasif,
ego2017$pospol_alt3_clasif,
ego2017$pospol_alt4_clasif,
ego2017$pospol_alt5_clasif)
ego2017
$pospol_internal<-count_row_if(criterion = "Internal",
ego2017$pospol_alt1_clasif,
ego2017$pospol_alt2_clasif,
ego2017$pospol_alt3_clasif,
ego2017$pospol_alt4_clasif,
ego2017$pospol_alt5_clasif)
ego2017
#Finalmente, calculamos el indicador EI
$EI_index_pospol<-(ego2017$pospol_external-ego2017$pospol_internal)/
ego2017$pospol_external+ego2017$pospol_internal)
(ego2017
summary(ego2017$EI_index_pospol)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-1.000 -1.000 -0.600 -0.423 -0.200 1.000
EI religión
$alterRelig1_clasif<-ifelse(ego2017$religid==ego2017$alterRelig1,"External","Internal")
ego2017$alterRelig2_clasif<-ifelse(ego2017$religid==ego2017$alterRelig2,"External","Internal")
ego2017$alterRelig3_clasif<-ifelse(ego2017$religid==ego2017$alterRelig3,"External","Internal")
ego2017$alterRelig4_clasif<-ifelse(ego2017$religid==ego2017$alterRelig4,"External","Internal")
ego2017$alterRelig5_clasif<-ifelse(ego2017$religid==ego2017$alterRelig5,"External","Internal")
ego2017
#Ahora se agrega la información sobre los tipos de vínculos
$relig_external<-count_row_if(criterion = "External",
ego2017$alterRelig1_clasif,
ego2017$alterRelig2_clasif,
ego2017$alterRelig3_clasif,
ego2017$alterRelig4_clasif,
ego2017$alterRelig5_clasif)
ego2017
$relig_internal<-count_row_if(criterion = "Internal",
ego2017$alterRelig1_clasif,
ego2017$alterRelig2_clasif,
ego2017$alterRelig3_clasif,
ego2017$alterRelig4_clasif,
ego2017$alterRelig5_clasif)
ego2017
#Finalmente, calculamos el indicador EI
$EI_index_relig<-(ego2017$relig_external-ego2017$relig_internal)/
ego2017$relig_external+ego2017$relig_internal)
(ego2017
summary(ego2017$EI_index_relig)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
-1.0000 -0.3333 0.6000 0.2776 1.0000 1.0000 8
EI educación
$alterEduca1_clasif<-ifelse(ego2017$educaF==ego2017$alterEduca1,"External","Internal")
ego2017$alterEduca2_clasif<-ifelse(ego2017$educaF==ego2017$alterEduca2,"External","Internal")
ego2017$alterEduca3_clasif<-ifelse(ego2017$educaF==ego2017$alterEduca3,"External","Internal")
ego2017$alterEduca4_clasif<-ifelse(ego2017$educaF==ego2017$alterEduca4,"External","Internal")
ego2017$alterEduca5_clasif<-ifelse(ego2017$educaF==ego2017$alterEduca5,"External","Internal")
ego2017
#Ahora se agrega la información sobre los tipos de vínculos
$educ_external<-count_row_if(criterion = "External",
ego2017$alterEduca1_clasif,
ego2017$alterEduca2_clasif,
ego2017$alterEduca3_clasif,
ego2017$alterEduca4_clasif,
ego2017$alterEduca5_clasif)
ego2017
$educ_internal<-count_row_if(criterion = "Internal",
ego2017$alterEduca1_clasif,
ego2017$alterEduca2_clasif,
ego2017$alterEduca3_clasif,
ego2017$alterEduca4_clasif,
ego2017$alterEduca5_clasif)
ego2017
#Finalmente, calculamos el indicador EI
$EI_index_educ<-(ego2017$educ_external-ego2017$educ_internal)/
ego2017$educ_external+ego2017$educ_internal)
(ego2017
summary(ego2017$EI_index_educ)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
-1.00000 -1.00000 0.00000 -0.03621 0.60000 1.00000 59
EI Sexo
$alterSexo1_clasif<-ifelse(ego2017$sexo_h==ego2017$alterSexo1,"External","Internal")
ego2017$alterSexo2_clasif<-ifelse(ego2017$sexo_h==ego2017$alterSexo2,"External","Internal")
ego2017$alterSexo3_clasif<-ifelse(ego2017$sexo_h==ego2017$alterSexo3,"External","Internal")
ego2017$alterSexo4_clasif<-ifelse(ego2017$sexo_h==ego2017$alterSexo4,"External","Internal")
ego2017$alterSexo5_clasif<-ifelse(ego2017$sexo_h==ego2017$alterSexo5,"External","Internal")
ego2017
#Ahora se agrega la información sobre los tipos de vínculos
$sexo_external<-count_row_if(criterion = "External",
ego2017$alterSexo1_clasif,
ego2017$alterSexo2_clasif,
ego2017$alterSexo3_clasif,
ego2017$alterSexo4_clasif,
ego2017$alterSexo5_clasif)
ego2017
$sexo_internal<-count_row_if(criterion = "Internal",
ego2017$alterSexo1_clasif,
ego2017$alterSexo2_clasif,
ego2017$alterSexo3_clasif,
ego2017$alterSexo4_clasif,
ego2017$alterSexo5_clasif)
ego2017
#Finalmente, calculamos el indicador EI
$EI_index_sexo<-(ego2017$sexo_external-ego2017$sexo_internal)/
ego2017$sexo_external+ego2017$sexo_internal)
(ego2017
summary(ego2017$EI_index_sexo)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
-1.0000 -0.2000 0.3333 0.2583 1.0000 1.0000 1
EI edad
$alterAge1_clasif<-ifelse(ego2017$edadR==ego2017$alterAge1,"External","Internal")
ego2017$alterAge2_clasif<-ifelse(ego2017$edadR==ego2017$alterAge2,"External","Internal")
ego2017$alterAge3_clasif<-ifelse(ego2017$edadR==ego2017$alterAge3,"External","Internal")
ego2017$alterAge4_clasif<-ifelse(ego2017$edadR==ego2017$alterAge4,"External","Internal")
ego2017$alterAge5_clasif<-ifelse(ego2017$edadR==ego2017$alterAge5,"External","Internal")
ego2017
#Ahora se agrega la información sobre los tipos de vínculos
$age_external<-count_row_if(criterion = "External",
ego2017$alterAge1_clasif,
ego2017$alterAge2_clasif,
ego2017$alterAge3_clasif,
ego2017$alterAge4_clasif,
ego2017$alterAge5_clasif)
ego2017
$age_internal<-count_row_if(criterion = "Internal",
ego2017$alterAge1_clasif,
ego2017$alterAge2_clasif,
ego2017$alterAge3_clasif,
ego2017$alterAge4_clasif,
ego2017$alterAge5_clasif)
ego2017
#Finalmente, calculamos el indicador EI
$EI_index_age<-(abs(ego2017$age_external-ego2017$age_internal)/
ego2017$age_external+ego2017$age_internal))
(ego2017
summary(ego2017$EI_index_age)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
0.0000 0.3333 0.6000 0.6177 1.0000 1.0000 1
# Verifica que la variable existe
names(ego2017) # Debería mostrar EI_index_pospol en la lista
[1] "idencuesta" "sexo" "sexoalter01"
[4] "sexoalter02" "sexoalter03" "sexoalter04"
[7] "sexoalter05" "edad" "edadalter01"
[10] "edadalter02" "edadalter03" "edadalter04"
[13] "edadalter05" "relig" "religalter01"
[16] "religalter02" "religalter03" "religalter04"
[19] "religalter05" "educ" "educalter01"
[22] "educalter02" "educalter03" "educalter04"
[25] "educalter05" "ideol" "ideolalter01"
[28] "ideolalter02" "ideolalter03" "ideolalter04"
[31] "ideolalter05" "c08_01" "c08_02"
[34] "c08_03" "c08_04" "ponderador01"
[37] "sexo_h" "alterSexo1" "alterSexo2"
[40] "alterSexo3" "alterSexo4" "alterSexo5"
[43] "edadR" "alterAge1" "alterAge2"
[46] "alterAge3" "alterAge4" "alterAge5"
[49] "religid" "alterRelig1" "alterRelig2"
[52] "alterRelig3" "alterRelig4" "alterRelig5"
[55] "educaF" "alterEduca1" "alterEduca2"
[58] "alterEduca3" "alterEduca4" "alterEduca5"
[61] "izqderR" "alterPospol1" "alterPospol2"
[64] "alterPospol3" "alterPospol4" "alterPospol5"
[67] "tamred" "alterPospol1t" "alterPospol2t"
[70] "alterPospol3t" "alterPospol4t" "alterPospol5t"
[73] "izqderRx" "alterPospol1x" "alterPospol2x"
[76] "alterPospol3x" "alterPospol4x" "alterPospol5x"
[79] "pospol_alt1_clasif" "pospol_alt2_clasif" "pospol_alt3_clasif"
[82] "pospol_alt4_clasif" "pospol_alt5_clasif" "pospol_external"
[85] "pospol_internal" "EI_index_pospol" "alterRelig1_clasif"
[88] "alterRelig2_clasif" "alterRelig3_clasif" "alterRelig4_clasif"
[91] "alterRelig5_clasif" "relig_external" "relig_internal"
[94] "EI_index_relig" "alterEduca1_clasif" "alterEduca2_clasif"
[97] "alterEduca3_clasif" "alterEduca4_clasif" "alterEduca5_clasif"
[100] "educ_external" "educ_internal" "EI_index_educ"
[103] "alterSexo1_clasif" "alterSexo2_clasif" "alterSexo3_clasif"
[106] "alterSexo4_clasif" "alterSexo5_clasif" "sexo_external"
[109] "sexo_internal" "EI_index_sexo" "alterAge1_clasif"
[112] "alterAge2_clasif" "alterAge3_clasif" "alterAge4_clasif"
[115] "alterAge5_clasif" "age_external" "age_internal"
[118] "EI_index_age"
summary(ego2017$EI_index_pospol) # Debería mostrar el resumen estadístico
Min. 1st Qu. Median Mean 3rd Qu. Max.
-1.000 -1.000 -0.600 -0.423 -0.200 1.000
# Versión corregida del plot con viridis
<- ggplot(data = ego2017,
p3 aes(x = EI_index_pospol)) +
geom_histogram(aes(y = after_stat(count),
fill = after_stat(count), # Agregamos fill dentro de aes()
text = paste("Índice E-I:", round(x, 3),
"<br>Frecuencia:", after_stat(count))),
binwidth = 0.1) +
scale_fill_viridis_c(alpha = 1, # Usamos scale_fill_viridis_c() para datos continuos
begin = 0,
end = 1,
direction = 1,
option = "F",
guide = FALSE) + # Removemos la leyenda
labs(title = "Political homophily in personal networks",
subtitle = "E-I homophily (Krackhardt & Stern, 1988)",
caption = "source: ELSOC COES 2017",
x = "",
y = "") +
theme_light()
# Convertimos a plotly
ggplotly(p3, tooltip = "text")
Bibliografía
- Krackhardt, D., & Stern, R. N. (1988). Informal networks and organizational crises: An experimental simulation. Social Psychology Quarterly, 123–140.