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 revisar la base teórica del E-I index revisar el siguiente link

Las bases de datos y la documentación pueden ser descargadas desde el siguiente link

1 Cargar librerias y bbdd

pacman::p_load(ggplot2, 
               ggthemes, 
               tidyverse, 
               sjlabelled,
               sjPlot, 
               car, 
               vcd, 
               texreg, 
               ordinal,
               nnet, 
               MASS, 
               mlogit, 
               matrixStats, 
               expss,
               sjlabelled, 
               sjmisc, 
               tidyverse, 
               weights,
               survey)

2 Cargamos data

load("C:/Users/rober/Downloads/ELSOC_W02_v3.00_R.RData")
load("C:/Users/rober/Downloads/ELSOC_W04_v2.01_R.RData")

3 Subset 2017

# Armar BBDD 2019 
ego2017 <- elsoc_2017 %>%
  dplyr::select(idencuesta,
                sexo=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) 

4 Revisar BBDD

ego2017 <- data.frame(ego2017)
#head(ego2017)
dim(ego2017)
## [1] 2473   36
# Definir NA's
ego2017[ego2017=="-999"] <- NA
ego2017[ego2017=="-888"] <- NA

5 Recod variables 2017

5.1 Sexo

sexolab<-c("hombre","mujer")
ego2017$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)
with(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

5.2 Edad

edadlab <- c("18-24", "25-34", "35-44", "45-54", "55-64", ">65")
ego2017$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)
with(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

5.3 Religión

rellab = c("Catolico","Evangelico","Otra Religion","no religioso")
ego2017$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)
with(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

5.4 Educación

edulab = c("Basica", "Media", "Sup. Tecnica", "Sup. Univ")
ego2017$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)
with(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

5.5 Posición Política

pollab <- c("Izq", "Centro", "Der", "Ind/Ninguno", "NA")
ego2017$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)
with(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

5.6 Tamaño de la red

ego2017$tamred = as.numeric(!is.na(ego2017$sexoalter01)) + 
  as.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
table(ego2017$tamred)
## 
##   0   1   2   3   4   5 
##   1 371 492 506 322 781
#Delete 1 persona with degree=0
ego2017$tamred[ego2017$tamred==0] <- NA
summary(ego2017$tamred)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.000   2.000   3.000   3.263   5.000   5.000       1

6 Plot tamred

6.1 posición política de alteres segun tamaño de la red de ego.

ego2017$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")

Tpospol1=with(ego2017,table(tamred,alterPospol1t))
Tpospol2=with(ego2017,table(tamred,alterPospol2t))
Tpospol3=with(ego2017,table(tamred,alterPospol3t))
Tpospol4=with(ego2017,table(tamred,alterPospol4t))
Tpospol5=with(ego2017,table(tamred,alterPospol5t))

Hpospol=Tpospol1+Tpospol2+Tpospol3+Tpospol4+Tpospol5
Hpospol=round(Hpospol, 0)
dimnames(Hpospol)=list(tamred= c("1", "2", "3", "4","5"),
                       alter = c("Izq", "Centro", "Der", "Ind/Ns", "NA"))

hom_tam<-as.data.frame(round(prop.table(Hpospol,1),2))
ggplot(data=hom_tam, aes(x=tamred, y=Freq, fill=alter),  
       weight = ponderador01) + 
  geom_bar(position = 'dodge', stat='identity') +
  labs(title="Posición política Alter", x="Tamaño de la red", y="")+
  scale_fill_grey()+
  scale_y_continuous(limits = c(0, 1))

6.2 Homofilia por posición política

library(car)
#rec
ego2017$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")

Tpospol1=with(ego2017,table(izqderRx,alterPospol1x))
Tpospol2=with(ego2017,table(izqderRx,alterPospol2x))
Tpospol3=with(ego2017,table(izqderRx,alterPospol3x))
Tpospol4=with(ego2017,table(izqderRx,alterPospol4x))
Tpospol5=with(ego2017,table(izqderRx,alterPospol5x))

Hpospol=Tpospol1+Tpospol2+Tpospol3+Tpospol4+Tpospol5
Hpospol=round(Hpospol, 0)
dimnames(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
qq3<-as.data.frame(round(prop.table(Hpospol,1),2))

ggplot(data=qq3, aes(x=ego, y=Freq, fill=alter),  weight = ponderador01) + 
  geom_bar(position = 'dodge', stat='identity') +
  labs(title="Díadas Políticas", x="Posición Política de Ego", y="")+
  scale_fill_grey()+
  scale_y_continuous(limits = c(0, 1))

7 Cálculo E-I homofilia por posición política (ELSOC 2017)

7.1 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.

7.1.1 EI posición política

ego2017$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")

#Ahora se agrega la información sobre los tipos de vínculos
ego2017$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) 

#Finalmente, calculamos el indicador EI
ego2017$EI_index_pospol<-(ego2017$pospol_external-ego2017$pospol_internal)/
                         (ego2017$pospol_external+ego2017$pospol_internal)

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

7.1.2 EI religión

ego2017$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")

#Ahora se agrega la información sobre los tipos de vínculos
ego2017$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) 

#Finalmente, calculamos el indicador EI
ego2017$EI_index_relig<-(ego2017$relig_external-ego2017$relig_internal)/
                        (ego2017$relig_external+ego2017$relig_internal)

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

7.1.3 EI educación

ego2017$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")

#Ahora se agrega la información sobre los tipos de vínculos
ego2017$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) 

#Finalmente, calculamos el indicador EI
ego2017$EI_index_educ<-(ego2017$educ_external-ego2017$educ_internal)/
                        (ego2017$educ_external+ego2017$educ_internal)

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

7.2 EI Sexo

ego2017$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")

#Ahora se agrega la información sobre los tipos de vínculos
ego2017$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) 

#Finalmente, calculamos el indicador EI
ego2017$EI_index_sexo<-(ego2017$sexo_external-ego2017$sexo_internal)/
                       (ego2017$sexo_external+ego2017$sexo_internal)

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

7.2.1 EI edad

ego2017$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")

#Ahora se agrega la información sobre los tipos de vínculos
ego2017$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) 

#Finalmente, calculamos el indicador EI
ego2017$EI_index_age<-(ego2017$age_external-ego2017$age_internal)/
                      (ego2017$age_external+ego2017$age_internal)

summary(ego2017$EI_index_age)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
## -1.0000 -1.0000 -0.3333 -0.3214  0.0000  1.0000       1
## Ploteamos
pp<-ggplot(data=ego2017) + 
           geom_histogram(mapping = aes(x = EI_Index_pospol), 
                          binwidth = 0.22, 
                          weight="ponderador01") + 
           labs(title = "Distribución de homofilia política en las redes personales",
           subtitle   = "E-I homophily (Krackhardt & Stern, 1988)",
           caption    = "Fuente de datos: ELSOC COES 2017",
           x = "", y = "")
## Warning: Ignoring unknown parameters: weight

8 Subset 2019

# Armar BBDD 2019 
ego2019 <- elsoc_2019 %>%
  dplyr::select(idencuesta,
                sexo=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) 

9 Revisar BBDD

ego2019 <- data.frame(ego2019)
#head(ego2019)
dim(ego2019)
## [1] 3417   36
# Definir NA's
ego2019[ego2019=="-999"] <- NA
ego2019[ego2019=="-888"] <- NA

10 Recod variables 2019

10.1 Sexo

sexolab<-c("hombre","mujer")
ego2019$sexo_h<-factor(Recode(ego2019$sexo,"1=1;2=2;-888=NA;-999=NA"),labels=sexolab)
ego2019$alterSexo1<-factor(Recode(ego2019$sexoalter01,"1=1;2=2;-888=NA;-999=NA"),labels=sexolab)
ego2019$alterSexo2<-factor(Recode(ego2019$sexoalter02,"1=1;2=2;-888=NA;-999=NA"),labels=sexolab)
ego2019$alterSexo3<-factor(Recode(ego2019$sexoalter03,"1=1;2=2;-888=NA;-999=NA"),labels=sexolab)
ego2019$alterSexo4<-factor(Recode(ego2019$sexoalter04,"1=1;2=2;-888=NA;-999=NA"),labels=sexolab)
ego2019$alterSexo5<-factor(Recode(ego2019$sexoalter05,"1=1;2=2;-888=NA;-999=NA"),labels=sexolab)
with(ego2019, 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.611   Mean   :1.603   Mean   :1.593  
##  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   :26      NA's   :1236    NA's   :2071    NA's   :2670   
##    alterSexo5   
##  Min.   :1.000  
##  1st Qu.:1.000  
##  Median :2.000  
##  Mean   :1.587  
##  3rd Qu.:2.000  
##  Max.   :2.000  
##  NA's   :2920

10.2 Edad

edadlab <- c("18-24", "25-34", "35-44", "45-54", "55-64", ">65")
ego2019$edadR<-factor(Recode(ego2019$edad,"lo:24=1;25:34=2;35:44=3;45:54=4;55:64=5;65:hi=6"),labels=edadlab)

ego2019$alterAge1<-factor(Recode(ego2019$edadalter01,"lo:24=1;25:34=2;35:44=3;45:54=4;55:64=5;65:hi=6"),labels=edadlab)
ego2019$alterAge2<-factor(Recode(ego2019$edadalter02,"lo:24=1;25:34=2;35:44=3;45:54=4;55:64=5;65:hi=6"),labels=edadlab)
ego2019$alterAge3<-factor(Recode(ego2019$edadalter03,"lo:24=1;25:34=2;35:44=3;45:54=4;55:64=5;65:hi=6"),labels=edadlab)
ego2019$alterAge4<-factor(Recode(ego2019$edadalter04,"lo:24=1;25:34=2;35:44=3;45:54=4;55:64=5;65:hi=6"),labels=edadlab)
ego2019$alterAge5<-factor(Recode(ego2019$edadalter05,"lo:24=1;25:34=2;35:44=3;45:54=4;55:64=5;65:hi=6"),labels=edadlab)
with(ego2019, summary(cbind(alterAge1,alterAge2,alterAge3,alterAge4,alterAge5)))
##    alterAge1       alterAge2       alterAge3       alterAge4    
##  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 :4.000   Median :4.000   Median :3.000   Median :3.000  
##  Mean   :3.652   Mean   :3.553   Mean   :3.494   Mean   :3.464  
##  3rd Qu.:5.000   3rd Qu.:5.000   3rd Qu.:5.000   3rd Qu.:5.000  
##  Max.   :6.000   Max.   :6.000   Max.   :6.000   Max.   :6.000  
##  NA's   :50      NA's   :1249    NA's   :2075    NA's   :2675   
##    alterAge5    
##  Min.   :1.000  
##  1st Qu.:2.000  
##  Median :3.000  
##  Mean   :3.502  
##  3rd Qu.:5.000  
##  Max.   :6.000  
##  NA's   :2923

10.3 Religión

rellab = c("Catolico","Evangelico","Otra Religion","no religioso")
ego2019$religid<-factor(Recode(ego2019$relig,"1=1;2=2;3:6=3;7:9=4;-999:-888=4"),labels=rellab)
ego2019$alterRelig1<-factor(Recode(ego2019$religalter01,"1=1;2=2;3:4=4;5=3;-999:-888=4"),labels=rellab)
ego2019$alterRelig2<-factor(Recode(ego2019$religalter02,"1=1;2=2;3:4=4;5=3;-999:-888=4"),labels=rellab)
ego2019$alterRelig3<-factor(Recode(ego2019$religalter03,"1=1;2=2;3:4=4;5=3;-999:-888=4"),labels=rellab)
ego2019$alterRelig4<-factor(Recode(ego2019$religalter04,"1=1;2=2;3:4=4;5=3;-999:-888=4"),labels=rellab)
ego2019$alterRelig5<-factor(Recode(ego2019$religalter05,"1=1;2=2;3:4=4;5=3;-999:-888=4"),labels=rellab)
with(ego2019, summary(cbind(alterRelig1,alterRelig2,alterRelig3,alterRelig4,alterRelig5)))
##   alterRelig1     alterRelig2     alterRelig3     alterRelig4    alterRelig5   
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.0    Min.   :1.000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.000   1st Qu.:1.0    1st Qu.:1.000  
##  Median :1.000   Median :1.000   Median :1.000   Median :1.0    Median :1.000  
##  Mean   :1.751   Mean   :1.813   Mean   :1.848   Mean   :1.8    Mean   :1.852  
##  3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.0    3rd Qu.:2.000  
##  Max.   :4.000   Max.   :4.000   Max.   :4.000   Max.   :4.0    Max.   :4.000  
##  NA's   :185     NA's   :1335    NA's   :2118    NA's   :2706   NA's   :2944

10.4 Educación

edulab = c("Basica", "Media", "Sup. Tecnica", "Sup. Univ")
ego2019$educaF<-factor(Recode(ego2019$educ,"1:3=1;4:5=2;6:7=3;8:10=4;-888=NA;-999=NA"),labels=edulab)
ego2019$alterEduca1<-factor(Recode(ego2019$educalter01,"1=1;2:3=2;4=3;5=4;-888=NA;-999=NA"),labels=edulab)
ego2019$alterEduca2<-factor(Recode(ego2019$educalter02,"1=1;2:3=2;4=3;5=4;-888=NA;-999=NA"),labels=edulab)
ego2019$alterEduca3<-factor(Recode(ego2019$educalter03,"1=1;2:3=2;4=3;5=4;-888=NA;-999=NA"),labels=edulab)
ego2019$alterEduca4<-factor(Recode(ego2019$educalter04,"1=1;2:3=2;4=3;5=4;-888=NA;-999=NA"),labels=edulab)
ego2019$alterEduca5<-factor(Recode(ego2019$educalter05,"1=1;2:3=2;4=3;5=4;-888=NA;-999=NA"),labels=edulab)
with(ego2019, 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.439   Mean   :2.542   Mean   :2.611   Mean   :2.713  
##  3rd Qu.:3.000   3rd Qu.:4.000   3rd Qu.:4.000   3rd Qu.:4.000  
##  Max.   :4.000   Max.   :4.000   Max.   :4.000   Max.   :4.000  
##  NA's   :207     NA's   :1354    NA's   :2133    NA's   :2713   
##   alterEduca5   
##  Min.   :1.000  
##  1st Qu.:2.000  
##  Median :2.000  
##  Mean   :2.687  
##  3rd Qu.:4.000  
##  Max.   :4.000  
##  NA's   :2948

10.5 Posición Política

pollab <- c("Izq", "Centro", "Der", "Ind/Ninguno", "NA")
ego2019$izqderR<-factor(Recode(ego2019$ideol,"0:3=1;4:6=2;7:10=3;11:12=4;NA=5"),labels=pollab)
ego2019$alterPospol1=factor(Recode(ego2019$ideolalter01,"1:2=3;3=2;4:5=1;6=4;NA=5"),labels=pollab)
ego2019$alterPospol2=factor(Recode(ego2019$ideolalter02,"1:2=3;3=2;4:5=1;6=4;NA=5"),labels=pollab)
ego2019$alterPospol3=factor(Recode(ego2019$ideolalter03,"1:2=3;3=2;4:5=1;6=4;NA=5"),labels=pollab)
ego2019$alterPospol4=factor(Recode(ego2019$ideolalter04,"1:2=3;3=2;4:5=1;6=4;NA=5"),labels=pollab)
ego2019$alterPospol5=factor(Recode(ego2019$ideolalter05,"1:2=3;3=2;4:5=1;6=4;NA=5"),labels=pollab)
with(ego2019,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.:5.000   1st Qu.:5.000  
##  Median :4.00   Median :4.000   Median :5.000   Median :5.000   Median :5.000  
##  Mean   :3.39   Mean   :3.904   Mean   :4.262   Mean   :4.576   Mean   :4.726  
##  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

10.6 Tamaño de la red

ego2019$tamred = as.numeric(!is.na(ego2019$sexoalter01)) + 
  as.numeric(!is.na(ego2019$sexoalter02)) +
  as.numeric(!is.na(ego2019$sexoalter03)) + 
  as.numeric(!is.na(ego2019$sexoalter04)) +
  as.numeric(!is.na(ego2019$sexoalter05))
print(prop.table(table(ego2019$tamred)), 2)
## 
##      0      1      2      3      4      5 
## 0.0076 0.3541 0.2438 0.1762 0.0732 0.1452
table(ego2019$tamred)
## 
##    0    1    2    3    4    5 
##   26 1210  833  602  250  496
#Delete 1 persona with degree=0
ego2019$tamred[ego2019$tamred==0] <- NA
summary(ego2019$tamred)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.000   1.000   2.000   2.407   3.000   5.000      26

10.7 Homofilia por posición política

library(car)
#rec
ego2019$izqderRx<-Recode(ego2019$ideol,"0:3=1;3:6=2;7:10=3;11:12=4;-999:-888=NA")
ego2019$alterPospol1x=Recode(ego2019$ideolalter01,"1:2=3;3=2;4:5=1;6=4;-999:-888=NA")
ego2019$alterPospol2x=Recode(ego2019$ideolalter02,"1:2=3;3=2;4:5=1;6=4;-999:-888=NA")
ego2019$alterPospol3x=Recode(ego2019$ideolalter03,"1:2=3;3=2;4:5=1;6=4;-999:-888=NA")
ego2019$alterPospol4x=Recode(ego2019$ideolalter04,"1:2=3;3=2;4:5=1;6=4;-999:-888=NA")
ego2019$alterPospol5x=Recode(ego2019$ideolalter05,"1:2=3;3=2;4:5=1;6=4;-999:-888=NA")

Tpospol1=with(ego2019,table(izqderRx,alterPospol1x))
Tpospol2=with(ego2019,table(izqderRx,alterPospol2x))
Tpospol3=with(ego2019,table(izqderRx,alterPospol3x))
Tpospol4=with(ego2019,table(izqderRx,alterPospol4x))
Tpospol5=with(ego2019,table(izqderRx,alterPospol5x))

Hpospol=Tpospol1+Tpospol2+Tpospol3+Tpospol4+Tpospol5
Hpospol=round(Hpospol, 0)
dimnames(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.54   0.06 0.10   0.30
##   Centro 0.21   0.13 0.16   0.50
##   Der    0.13   0.05 0.54   0.28
##   Ind/Ns 0.06   0.01 0.04   0.88
qq3<-as.data.frame(round(prop.table(Hpospol,1),2))

ggplot(data=qq3, aes(x=ego, y=Freq, fill=alter),  weight = ponderador01) + 
  geom_bar(position = 'dodge', stat='identity') +
  labs(title="Díadas Políticas", x="Posición Política de Ego", y="")+
  scale_fill_grey()+
  scale_y_continuous(limits = c(0, 1))

11 Cálculo E-I homofilia por posición política (ELSOC 2019)

11.1 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.

11.1.1 EI posición política

ego2019$pospol_alt1_clasif<-ifelse(ego2019$izqderR==ego2019$alterPospol1,"External", "Internal")
ego2019$pospol_alt2_clasif<-ifelse(ego2019$izqderR==ego2019$alterPospol2,"External", "Internal")
ego2019$pospol_alt3_clasif<-ifelse(ego2019$izqderR==ego2019$alterPospol3,"External", "Internal")
ego2019$pospol_alt4_clasif<-ifelse(ego2019$izqderR==ego2019$alterPospol4,"External", "Internal")
ego2019$pospol_alt5_clasif<-ifelse(ego2019$izqderR==ego2019$alterPospol5,"External", "Internal")

#Ahora se agrega la información sobre los tipos de vínculos
ego2019$pospol_external<-count_row_if(criterion = "External", 
                                        ego2019$pospol_alt1_clasif, 
                                        ego2019$pospol_alt2_clasif,
                                        ego2019$pospol_alt3_clasif, 
                                        ego2019$pospol_alt4_clasif, 
                                        ego2019$pospol_alt5_clasif) 

ego2019$pospol_internal<-count_row_if(criterion = "Internal", 
                                        ego2019$pospol_alt1_clasif, 
                                        ego2019$pospol_alt2_clasif,
                                        ego2019$pospol_alt3_clasif, 
                                        ego2019$pospol_alt4_clasif, 
                                        ego2019$pospol_alt5_clasif) 

#Finalmente, calculamos el indicador EI
ego2019$EI_index_pospol<-(ego2019$pospol_external-ego2019$pospol_internal)/
                         (ego2019$pospol_external+ego2019$pospol_internal)

summary(ego2019$EI_index_pospol)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -1.0000 -1.0000 -0.6000 -0.5741 -0.2000  1.0000

11.1.2 EI religión

ego2019$alterRelig1_clasif<-ifelse(ego2019$religid==ego2019$alterRelig1,"External","Internal")
ego2019$alterRelig2_clasif<-ifelse(ego2019$religid==ego2019$alterRelig2,"External","Internal")
ego2019$alterRelig3_clasif<-ifelse(ego2019$religid==ego2019$alterRelig3,"External","Internal")
ego2019$alterRelig4_clasif<-ifelse(ego2019$religid==ego2019$alterRelig4,"External","Internal")
ego2019$alterRelig5_clasif<-ifelse(ego2019$religid==ego2019$alterRelig5,"External","Internal")

#Ahora se agrega la información sobre los tipos de vínculos
ego2019$relig_external<-count_row_if(criterion = "External", 
                                     ego2019$alterRelig1_clasif, 
                                     ego2019$alterRelig2_clasif,
                                     ego2019$alterRelig3_clasif, 
                                     ego2019$alterRelig4_clasif, 
                                     ego2019$alterRelig5_clasif) 

ego2019$relig_internal<-count_row_if(criterion = "Internal", 
                                     ego2019$alterRelig1_clasif, 
                                     ego2019$alterRelig2_clasif,
                                     ego2019$alterRelig3_clasif, 
                                     ego2019$alterRelig4_clasif, 
                                     ego2019$alterRelig5_clasif) 

#Finalmente, calculamos el indicador EI
ego2019$EI_index_relig<-(ego2019$relig_external-ego2019$relig_internal)/
                        (ego2019$relig_external+ego2019$relig_internal)

summary(ego2019$EI_index_relig)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    -1.0    -1.0     1.0     0.3     1.0     1.0     120

11.1.3 EI educación

ego2019$alterEduca1_clasif<-ifelse(ego2019$educaF==ego2019$alterEduca1,"External","Internal")
ego2019$alterEduca2_clasif<-ifelse(ego2019$educaF==ego2019$alterEduca2,"External","Internal")
ego2019$alterEduca3_clasif<-ifelse(ego2019$educaF==ego2019$alterEduca3,"External","Internal")
ego2019$alterEduca4_clasif<-ifelse(ego2019$educaF==ego2019$alterEduca4,"External","Internal")
ego2019$alterEduca5_clasif<-ifelse(ego2019$educaF==ego2019$alterEduca5,"External","Internal")

#Ahora se agrega la información sobre los tipos de vínculos
ego2019$educ_external<-count_row_if(criterion = "External", 
                                    ego2019$alterEduca1_clasif, 
                                    ego2019$alterEduca2_clasif,
                                    ego2019$alterEduca3_clasif, 
                                    ego2019$alterEduca4_clasif, 
                                    ego2019$alterEduca5_clasif) 

ego2019$educ_internal<-count_row_if(criterion = "Internal", 
                                    ego2019$alterEduca1_clasif, 
                                    ego2019$alterEduca2_clasif,
                                    ego2019$alterEduca3_clasif, 
                                    ego2019$alterEduca4_clasif, 
                                    ego2019$alterEduca5_clasif) 

#Finalmente, calculamos el indicador EI
ego2019$EI_index_educ<-(ego2019$educ_external-ego2019$educ_internal)/
                        (ego2019$educ_external+ego2019$educ_internal)

summary(ego2019$EI_index_educ)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## -1.00000 -1.00000  0.00000 -0.01573  1.00000  1.00000      139

11.2 EI Sexo

ego2019$alterSexo1_clasif<-ifelse(ego2019$sexo_h==ego2019$alterSexo1,"External","Internal")
ego2019$alterSexo2_clasif<-ifelse(ego2019$sexo_h==ego2019$alterSexo2,"External","Internal")
ego2019$alterSexo3_clasif<-ifelse(ego2019$sexo_h==ego2019$alterSexo3,"External","Internal")
ego2019$alterSexo4_clasif<-ifelse(ego2019$sexo_h==ego2019$alterSexo4,"External","Internal")
ego2019$alterSexo5_clasif<-ifelse(ego2019$sexo_h==ego2019$alterSexo5,"External","Internal")

#Ahora se agrega la información sobre los tipos de vínculos
ego2019$sexo_external<-count_row_if(criterion = "External", 
                                    ego2019$alterSexo1_clasif, 
                                    ego2019$alterSexo2_clasif,
                                    ego2019$alterSexo3_clasif, 
                                    ego2019$alterSexo4_clasif, 
                                    ego2019$alterSexo5_clasif) 

ego2019$sexo_internal<-count_row_if(criterion = "Internal", 
                                    ego2019$alterSexo1_clasif, 
                                    ego2019$alterSexo2_clasif,
                                    ego2019$alterSexo3_clasif, 
                                    ego2019$alterSexo4_clasif, 
                                    ego2019$alterSexo5_clasif) 

#Finalmente, calculamos el indicador EI
ego2019$EI_index_sexo<-(ego2019$sexo_external-ego2019$sexo_internal)/
                       (ego2019$sexo_external+ego2019$sexo_internal)

summary(ego2019$EI_index_sexo)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
## -1.0000 -0.3333  0.3333  0.2557  1.0000  1.0000      26

11.2.1 EI edad

ego2019$alterAge1_clasif<-ifelse(ego2019$edadR==ego2019$alterAge1,"External","Internal")
ego2019$alterAge2_clasif<-ifelse(ego2019$edadR==ego2019$alterAge2,"External","Internal")
ego2019$alterAge3_clasif<-ifelse(ego2019$edadR==ego2019$alterAge3,"External","Internal")
ego2019$alterAge4_clasif<-ifelse(ego2019$edadR==ego2019$alterAge4,"External","Internal")
ego2019$alterAge5_clasif<-ifelse(ego2019$edadR==ego2019$alterAge5,"External","Internal")

#Ahora se agrega la información sobre los tipos de vínculos
ego2019$age_external<-count_row_if(criterion = "External", 
                                   ego2019$alterAge1_clasif, 
                                   ego2019$alterAge2_clasif,
                                   ego2019$alterAge3_clasif, 
                                   ego2019$alterAge4_clasif, 
                                   ego2019$alterAge5_clasif) 

ego2019$age_internal<-count_row_if(criterion = "Internal", 
                                   ego2019$alterAge1_clasif, 
                                   ego2019$alterAge2_clasif,
                                   ego2019$alterAge3_clasif, 
                                   ego2019$alterAge4_clasif, 
                                   ego2019$alterAge5_clasif) 

#Finalmente, calculamos el indicador EI
ego2019$EI_index_age<-(ego2019$age_external-ego2019$age_internal)/
                      (ego2019$age_external+ego2019$age_internal)

summary(ego2019$EI_index_age)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
## -1.0000 -1.0000 -0.3333 -0.2561  0.3333  1.0000      38
## Ploteamos
pp<-ggplot(data=ego2019) + 
           geom_histogram(mapping = aes(x = EI_Index_pospol), 
                          binwidth = 0.22, 
                          weight="ponderador01") + 
           labs(title = "Distribución de homofilia política en las redes personales",
           subtitle   = "E-I homophily (Krackhardt & Stern, 1988)",
           caption    = "Fuente de datos: ELSOC COES 2019",
           x = "", y = "")
## Warning: Ignoring unknown parameters: weight

12 Construir índice de activismo

ego2017<-ego2017%>%
  mutate(act=(c08_01+c08_02+c08_03+c08_04)/4)
ego2019<-ego2019%>%
  mutate(act=(c08_01+c08_02+c08_03+c08_04)/4)

13 Construir data frame en formato Long.

a<-ego2017%>%
  dplyr::select(idencuesta,
                sexo,
                edad,
                educ,
                act,
                EI_index_pospol,
                EI_index_relig,
                EI_index_educ,
                EI_index_sexo,
                EI_index_age,
                ponderador01)

b<-ego2019%>%
  dplyr::select(idencuesta,
                sexo,
                edad,
                educ,
                act,
                EI_index_pospol,
                EI_index_relig,
                EI_index_educ,
                EI_index_sexo,
                EI_index_age,
                ponderador01)

# Generar identificador de ola y setear bases
a$ola<-1
b$ola<-2

elsoc_w1w3<-rbind(a,b)
elsoc_w1w3<-arrange(elsoc_w1w3, idencuesta) 

# Guardar base en formato long
save(elsoc_w1w3, file = "elsoc_longEI.RData")
t<-wtd.t.test(x=elsoc_w1w3$EI_index_age[elsoc_w1w3$ola=="1"],
              y=elsoc_w1w3$EI_index_age[elsoc_w1w3$ola=="2"],
              weight= elsoc_w1w3$ponderador01[elsoc_w1w3$ola=="1"],
              weighty=elsoc_w1w3$ponderador01[elsoc_w1w3$ola=="2"],
              samedata=T,alternative="two.tailed")
## Warning in wtd.t.test(x = elsoc_w1w3$EI_index_age[elsoc_w1w3$ola == "1"], :
## Treating data for x and y separately because they are of different lengths
t
## $test
## [1] "Two Sample Weighted T-Test (Welch)"
## 
## $coefficients
##       t.value            df       p.value 
## -3.680118e+00  5.750903e+03  2.352598e-04 
## 
## $additional
##  Difference      Mean.x      Mean.y    Std. Err 
## -0.06914113 -0.28794669 -0.21880557  0.01878775
#?wtd.t.test

14 Análisis panel (within-between) longitudinal (ejemplo)

library(panelr)
## Loading required package: lme4
## 
## Attaching package: 'lme4'
## The following object is masked from 'package:expss':
## 
##     dummy
## The following objects are masked from 'package:ordinal':
## 
##     ranef, VarCorr
## 
## Attaching package: 'panelr'
## The following object is masked from 'package:stats':
## 
##     filter
elsoc_w1w3<-panel_data(data=elsoc_w1w3, id = idencuesta, wave = ola)
elsoc_w1w3<-complete_data(data = elsoc_w1w3, min.waves = 2)


# Modelos within-between---------------------
modelo1 <- wbm(EI_index_pospol~act|sexo+edad+educ,data=elsoc_w1w3)
summary(modelo1)
## MODEL INFO:
## Entities: 1848
## Time periods: 1-2
## Dependent variable: EI_index_pospol
## Model type: Linear mixed effects
## Specification: within-between
## 
## MODEL FIT:
## AIC = 6883.04, BIC = 6932.76
## Pseudo-R² (fixed effects) = 0.01
## Pseudo-R² (total) = 0.1
## Entity ICC = 0.1
## 
## WITHIN EFFECTS:
## -------------------------------------------------
##             Est.   S.E.   t val.      d.f.      p
## --------- ------ ------ -------- --------- ------
## act         0.07   0.03     2.28   1847.22   0.02
## -------------------------------------------------
## 
## BETWEEN EFFECTS:
## ----------------------------------------------------------
##                      Est.   S.E.   t val.      d.f.      p
## ----------------- ------- ------ -------- --------- ------
## (Intercept)         -0.66   0.07    -9.08   1929.20   0.00
## imean(act)           0.05   0.02     2.25   1891.44   0.02
## sexo                 0.06   0.02     2.64   1881.77   0.01
## edad                 0.00   0.00     0.15   1913.93   0.88
## educ                -0.00   0.01    -0.09   2208.49   0.92
## ----------------------------------------------------------
## 
## p values calculated using Satterthwaite d.f.
##  
## RANDOM EFFECTS:
## --------------------------------------
##    Group       Parameter    Std. Dev. 
## ------------ ------------- -----------
##  idencuesta   (Intercept)    0.1904   
##   Residual                   0.5804   
## --------------------------------------