library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:plm':
## 
##     between, lag, lead
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Compute transitions si on en besoin
names(alldat)
##  [1] "v2.idmen" "cluster"  "enf"      "length"   "educ"     "activ"   
##  [7] "probl"    "satisf"   "sep"      "sex"      "id"       "wave"
library(dplyr)
library(tidyr)
## 
## Attaching package: 'tidyr'
## The following object is masked from 'package:texreg':
## 
##     extract
## The following objects are masked from 'package:Matrix':
## 
##     expand, pack, unpack
alldat2 <- alldat %>%
  arrange(v2.idmen, wave) %>%
  group_by(v2.idmen) %>%
  mutate(
    transition = if_else(cluster != lag(cluster), 1, 0, missing = 0)
  ) %>%
  summarise(
    n_transitions = sum(transition),
    .groups = "drop"
  )

alldat <- alldat %>%
  left_join(alldat2, by = "v2.idmen")

Multilevel models Probl

m0 <- lmer(probl~1+(1|v2.idmen/id), data=alldat)
print(icc(m0, by_group = TRUE))
## # ICC by Group
## 
## Group       |   ICC
## -------------------
## id:v2.idmen | 0.041
## v2.idmen    | 0.277
m1 <- lmer(probl~relevel(cluster, ref="compagnonnage")+sex+factor(wave)+length+(1|v2.idmen/id), data=alldat)
#m1b <- lmer(probl~cluster+sex+factor(wave)+factor(wave)*length+(1|v2.idmen/id), data=alldat)
#m1c <- lmer(probl~cluster+cluster*sex+factor(wave)+length+(1|v2.idmen/id), data=alldat)
m2 <- lmer(probl~relevel(cluster,ref="compagnonnage")+sex+factor(wave)+length+educ+enf+activ+n_transitions+(1|v2.idmen/id), data=alldat)
#fm1 <- plm(probl~cluster+sex+factor(wave), index="id", model="within", data=alldat)
#fm2 <- plm(probl~cluster+sex+factor(wave)+length+educ+enf+activ+n_transitions, index="id", model="within", data=alldat)

#htmlreg(list("Multilevel 0"=m0, "Multilevel 1"=m1, "Multilevel 1b"=m1b,"Multilevel 1c"=m1c, "Multilevel 2"=m2, "Fixed-Effect 1"=fm1, "Fixed-Effect 2"=fm2))
htmlreg(list("Multilevel 0"=m0, "Multilevel 1"=m1, "Multilevel 2"=m2))
Statistical models
  Multilevel 0 Multilevel 1 Multilevel 2
(Intercept) 1.60*** 1.08*** 0.66*
  (0.07) (0.19) (0.29)
relevel(cluster, ref = “compagnonnage”)parallele   0.80*** 0.78***
    (0.14) (0.15)
relevel(cluster, ref = “compagnonnage”)association   0.80*** 0.76***
    (0.16) (0.16)
relevel(cluster, ref = “compagnonnage”)cocon   0.38** 0.34**
    (0.12) (0.13)
relevel(cluster, ref = “compagnonnage”)bastion   0.18 0.13
    (0.13) (0.13)
sexh   -0.33*** -0.42***
    (0.08) (0.10)
factor(wave)2   1.32*** 1.31***
    (0.09) (0.09)
factor(wave)3   1.23*** 1.24***
    (0.09) (0.10)
length   -0.03*** -0.02**
    (0.01) (0.01)
educprof_school     0.02
      (0.11)
educuniversity     0.11
      (0.14)
enfenfants_oui     0.49*
      (0.20)
activ25-75%     0.07
      (0.12)
activ>=80%     0.21
      (0.12)
n_transitions     -0.08
      (0.10)
AIC 8713.47 8449.40 8364.58
BIC 8735.99 8516.96 8465.67
Log Likelihood -4352.74 -4212.70 -4164.29
Num. obs. 2058 2058 2030
Num. groups: id:v2.idmen 686 686 686
Num. groups: v2.idmen 343 343 343
Var: id:v2.idmen (Intercept) 0.19 0.31 0.33
Var: v2.idmen (Intercept) 1.28 1.06 1.06
Var: Residual 3.15 2.65 2.65
***p < 0.001; **p < 0.01; *p < 0.05

Multilevel models satisf

m0 <- lmer(satisf~1+(1|v2.idmen/id), data=alldat)
print(icc(m0, by_group = TRUE))
## # ICC by Group
## 
## Group       |   ICC
## -------------------
## id:v2.idmen | 0.088
## v2.idmen    | 0.310
m0g <- glmer(satisf~1+(1|v2.idmen/id), data=alldat, family=binomial, control = glmerControl(optimizer = "bobyqa"))
print(icc(m0g, by_group = TRUE))
## # ICC by Group
## 
## Group       |   ICC
## -------------------
## id:v2.idmen | 0.061
## v2.idmen    | 0.438
#m1 <- lmer(satisf~cluster+sex+factor(wave)+length+(1|v2.idmen/id), data=alldat)
#m1b <- lmer(satisf~cluster+sex+factor(wave)+factor(wave)*length+(1|v2.idmen/id), data=alldat)
#m1c <- lmer(satisf~cluster+cluster*sex+factor(wave)+length+(1|v2.idmen/id), data=alldat)
#m2 <- lmer(satisf~cluster+sex+factor(wave)+length+educ+enf+activ+n_transitions+(1|v2.idmen/id), data=alldat)

m1g <- glmer(satisf~relevel(cluster, ref="compagnonnage")+sex+factor(wave)+length+(1|v2.idmen/id), data=alldat, family=binomial, control = glmerControl(optimizer = "bobyqa", 
                                                                  optCtrl = list(maxfun=100000)))
m2g <- glmer(satisf~relevel(cluster,ref="compagnonnage")+sex+factor(wave)+length+educ+enf+activ+n_transitions+(1|v2.idmen/id), data=alldat, family=binomial, control = glmerControl(optimizer = "bobyqa", 
                                                                  optCtrl = list(maxfun=100000)))
#fm1 <- plm(satisf~cluster+sex+factor(wave), index="id", model="within", data=alldat)
#fm2 <- plm(satisf~cluster+sex+factor(wave)+length+educ+enf+activ+n_transitions, index="id", model="within", data=alldat)

#htmlreg(list("Multilevel 0"=m0, "Multilevel 1"=m1, "Multilevel 1b"=m1b,"Multilevel 1c"=m1c, "Multilevel 2"=m2, "Fixed-Effect 1"=fm1, "Fixed-Effect 2"=fm2, "Logistic 0"=m0g, "Logistic 1"=m1g, "Logistic 2"=m2g))
htmlreg(list("Multilevel 0"=m0, "Logistic 0"=m0g, "Logistic 1"=m1g, "Logistic 2"=m2g))
Statistical models
  Multilevel 0 Logistic 0 Logistic 1 Logistic 2
(Intercept) 0.52*** 0.10 -0.34 -0.89*
  (0.02) (0.11) (0.29) (0.44)
relevel(cluster, ref = “compagnonnage”)parallele     0.68** 0.69**
      (0.22) (0.22)
relevel(cluster, ref = “compagnonnage”)association     0.88*** 0.83***
      (0.24) (0.24)
relevel(cluster, ref = “compagnonnage”)cocon     0.60** 0.52**
      (0.19) (0.19)
relevel(cluster, ref = “compagnonnage”)bastion     0.44* 0.40*
      (0.20) (0.20)
sexh     -0.29* -0.34*
      (0.12) (0.15)
factor(wave)2     0.30* 0.28*
      (0.14) (0.14)
factor(wave)3     0.39** 0.39**
      (0.14) (0.15)
length     -0.00 -0.00
      (0.01) (0.01)
educprof_school       -0.20
        (0.16)
educuniversity       -0.08
        (0.21)
enfenfants_oui       0.54
        (0.31)
activ25-75%       0.16
        (0.18)
activ>=80%       0.25
        (0.18)
n_transitions       0.02
        (0.15)
AIC 2598.46 2504.63 2491.54 2467.29
BIC 2620.97 2521.52 2553.45 2562.76
Log Likelihood -1295.23 -1249.32 -1234.77 -1216.64
Num. obs. 2057 2057 2057 2030
Num. groups: id:v2.idmen 686 686 686 686
Num. groups: v2.idmen 343 343 343 343
Var: id:v2.idmen (Intercept) 0.02 0.40 0.39 0.39
Var: v2.idmen (Intercept) 0.08 2.88 2.72 2.69
Var: Residual 0.15      
***p < 0.001; **p < 0.01; *p < 0.05

Multilevel models sep

m0 <- lmer(sep~1+(1|v2.idmen/id), data=alldat)
print(icc(m0, by_group = TRUE))
## # ICC by Group
## 
## Group       |   ICC
## -------------------
## id:v2.idmen | 0.163
## v2.idmen    | 0.309
m0g <- glmer(sep~1+(1|v2.idmen/id), data=alldat, family=binomial, control = glmerControl(optimizer = "bobyqa"))
print(icc(m0g, by_group = TRUE))
## # ICC by Group
## 
## Group       |   ICC
## -------------------
## id:v2.idmen | 0.169
## v2.idmen    | 0.483
#m1 <- lmer(sep~cluster+sex+factor(wave)+length+(1|v2.idmen/id), data=alldat)
#m1b <- lmer(sep~cluster+sex+factor(wave)+factor(wave)*length+(1|v2.idmen/id), data=alldat)
#m1c <- lmer(sep~cluster+cluster*sex+factor(wave)+length+(1|v2.idmen/id), data=alldat)
#m2 <- lmer(sep~cluster+sex+factor(wave)+length+educ+enf+activ+n_transitions+(1|v2.idmen/id), data=alldat)


m1g <- glmer(sep~relevel(cluster, ref="compagnonnage")+sex+factor(wave)+length+(1|v2.idmen/id), data=alldat, family=binomial, control = glmerControl(optimizer = "bobyqa", 
                                                                  optCtrl = list(maxfun=100000)))
m2g <- glmer(sep~relevel(cluster,ref="compagnonnage")+sex+factor(wave)+length+educ+enf+activ+n_transitions+(1|v2.idmen/id), data=alldat, family=binomial, control = glmerControl(optimizer = "bobyqa", 
                                                                  optCtrl = list(maxfun=100000)))
# <- plm(sep~cluster+sex+factor(wave), index="id", model="within", data=alldat)
#fm2 <- plm(sep~cluster+sex+factor(wave)+length+educ+enf+activ+n_transitions, index="id", model="within", data=alldat)

#htmlreg(list("Multilevel 0"=m0, "Multilevel 1"=m1, "Multilevel 1b"=m1b,"Multilevel 1c"=m1c, "Multilevel 2"=m2, "Fixed-Effect 1"=fm1, "Fixed-Effect 2"=fm2, "Logistic 0"=m0g, "Logistic 1"=m1g, "Logistic 2"=m2g))
htmlreg(list("Multilevel 0"=m0, "Logistic 0"=m0g, "Logistic 1"=m1g, "Logistic 2"=m2g))
Statistical models
  Multilevel 0 Logistic 0 Logistic 1 Logistic 2
(Intercept) 0.26*** -2.05*** -1.51*** -3.03***
  (0.02) (0.19) (0.40) (0.62)
relevel(cluster, ref = “compagnonnage”)parallele     0.46 0.51
      (0.28) (0.28)
relevel(cluster, ref = “compagnonnage”)association     0.54 0.45
      (0.29) (0.30)
relevel(cluster, ref = “compagnonnage”)cocon     0.45 0.40
      (0.24) (0.25)
relevel(cluster, ref = “compagnonnage”)bastion     -0.31 -0.37
      (0.27) (0.28)
sexh     -0.96*** -1.09***
      (0.18) (0.21)
factor(wave)2     0.35* 0.47*
      (0.17) (0.19)
factor(wave)3     0.42* 0.63**
      (0.17) (0.19)
length     -0.03 -0.02
      (0.02) (0.02)
educprof_school       0.09
        (0.22)
educuniversity       0.47
        (0.29)
enfenfants_oui       0.77
        (0.43)
activ25-75%       0.80***
        (0.24)
activ>=80%       0.74**
        (0.24)
n_transitions       -0.02
        (0.22)
AIC 1968.98 1978.34 1942.69 1906.93
BIC 1991.50 1995.23 2004.60 2002.39
Log Likelihood -980.49 -986.17 -960.34 -936.46
Num. obs. 2056 2056 2056 2029
Num. groups: id:v2.idmen 686 686 686 686
Num. groups: v2.idmen 343 343 343 343
Var: id:v2.idmen (Intercept) 0.03 1.60 1.17 1.25
Var: v2.idmen (Intercept) 0.06 4.58 4.56 4.72
Var: Residual 0.10      
***p < 0.001; **p < 0.01; *p < 0.05

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.