library(car)
library(merTools)
## Warning: package 'merTools' was built under R version 3.2.5
## Loading required package: arm
## Warning: package 'arm' was built under R version 3.2.5
## Loading required package: MASS
## Loading required package: Matrix
## Loading required package: lme4
## 
## arm (Version 1.9-3, built: 2016-11-21)
## Working directory is C:/Users/s-das/Syncplicity Folders/MY_Projects/My_Papers/TRB 2018/17-01 Teen Drivers
## 
## Attaching package: 'arm'
## The following object is masked from 'package:car':
## 
##     logit
## Loading required package: dplyr
## Warning: package 'dplyr' was built under R version 3.2.5
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:MASS':
## 
##     select
## The following object is masked from 'package:car':
## 
##     recode
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(lme4)

setwd("C:/Users/s-das/Syncplicity Folders/MY_Projects/My_Papers/TRB 2018/17-01 Teen Drivers/Data")


dat1 <- read.csv("Tn_Final_Dataset.csv")
str(dat1)
## 'data.frame':    109267 obs. of  24 variables:
##  $ X          : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ School     : int  1 1 1 2 2 2 2 2 2 2 ...
##  $ Year       : int  2008 2008 2009 2009 2009 2009 2009 2009 2009 2009 ...
##  $ Q03_       : Factor w/ 3 levels "","Female","Male": 3 3 2 2 2 2 1 3 3 2 ...
##  $ Q05_       : int  NA 12 12 12 12 12 12 11 12 10 ...
##  $ Q07_       : Factor w/ 5 levels "Blank","learner",..: 1 2 2 2 3 3 4 3 4 2 ...
##  $ Q07a_      : int  1 3 3 3 2 2 4 2 4 3 ...
##  $ Q09_       : Factor w/ 3 levels "Blank","No","Yes": 1 1 2 1 2 2 3 2 2 2 ...
##  $ Q10_       : Factor w/ 3 levels "Blank","No","Yes": 1 2 2 2 2 2 2 3 2 3 ...
##  $ Q11_       : Factor w/ 3 levels "Blank","No","Yes": 1 2 2 2 2 2 3 2 3 2 ...
##  $ Q12a_      : Factor w/ 4 levels "A lot","Blank",..: 2 3 1 3 3 3 1 3 4 1 ...
##  $ Q12b_      : Factor w/ 4 levels "A lot","Blank",..: 2 3 1 4 3 3 1 3 4 1 ...
##  $ Q12c_      : Factor w/ 4 levels "A lot","Blank",..: 2 3 4 3 3 3 3 3 3 3 ...
##  $ Q12d_      : Factor w/ 4 levels "A lot","Blank",..: 2 3 1 3 3 3 4 3 3 3 ...
##  $ Q12e_      : Factor w/ 4 levels "A lot","Blank",..: 2 4 1 4 3 3 4 4 3 3 ...
##  $ Q12f_      : Factor w/ 4 levels "A lot","Blank",..: 2 4 1 4 3 3 4 4 3 3 ...
##  $ Q12g_      : Factor w/ 4 levels "A lot","Blank",..: 2 1 1 3 3 3 1 4 4 4 ...
##  $ Q12h_      : Factor w/ 4 levels "A lot","Blank",..: 2 3 4 3 4 3 1 3 3 3 ...
##  $ Q12i_      : Factor w/ 4 levels "A lot","Blank",..: 2 3 4 3 3 3 4 3 3 3 ...
##  $ Q12j_      : Factor w/ 4 levels "A lot","Blank",..: 2 3 4 3 3 3 3 3 3 3 ...
##  $ Q12k_      : Factor w/ 4 levels "A lot","Blank",..: 2 4 1 3 3 3 1 4 3 4 ...
##  $ Q12l_      : Factor w/ 4 levels "A lot","Blank",..: 2 4 1 4 1 3 1 1 3 4 ...
##  $ Q12m_      : Factor w/ 4 levels "A lot","Blank",..: 2 4 1 3 3 3 1 3 3 1 ...
##  $ schoolState: Factor w/ 11 levels "CA","CO","CT",..: 11 11 11 11 11 11 11 11 11 11 ...
head(dat1,2)
##   X School Year Q03_ Q05_    Q07_ Q07a_  Q09_  Q10_  Q11_ Q12a_ Q12b_
## 1 1      1 2008 Male   NA   Blank     1 Blank Blank Blank Blank Blank
## 2 2      1 2008 Male   12 learner     3 Blank    No    No Never Never
##   Q12c_ Q12d_ Q12e_ Q12f_ Q12g_ Q12h_ Q12i_ Q12j_ Q12k_ Q12l_ Q12m_
## 1 Blank Blank Blank Blank Blank Blank Blank Blank Blank Blank Blank
## 2 Never Never  Some  Some A lot Never Never Never  Some  Some  Some
##   schoolState
## 1          TX
## 2          TX
dim(dat1)
## [1] 109267     24
dat1$Q05_ <- as.factor(dat1$Q05_)



model1 <- lmer(Q07a_ ~ Q03_ + Q05_ + Q09_ + Q10_ + Q11_ + Q12a_+ Q12b_+ Q12c_+ Q12d_+
Q12e_+ Q12f_+ Q12g_+ Q12f_+ Q12g_+Q12h_+Q12i_+ Q12j_+ Q12k_+ Q12l_+(1|School) + (1|Year)+
(1|schoolState), data=dat1)
model1
## Linear mixed model fit by REML ['lmerMod']
## Formula: 
## Q07a_ ~ Q03_ + Q05_ + Q09_ + Q10_ + Q11_ + Q12a_ + Q12b_ + Q12c_ +  
##     Q12d_ + Q12e_ + Q12f_ + Q12g_ + Q12f_ + Q12g_ + Q12h_ + Q12i_ +  
##     Q12j_ + Q12k_ + Q12l_ + (1 | School) + (1 | Year) + (1 |  
##     schoolState)
##    Data: dat1
## REML criterion at convergence: 265416.2
## Random effects:
##  Groups      Name        Std.Dev.
##  School      (Intercept) 0.2714  
##  Year        (Intercept) 0.1632  
##  schoolState (Intercept) 0.1175  
##  Residual                0.8205  
## Number of obs: 108201, groups:  School, 281; Year, 11; schoolState, 11
## Fixed Effects:
## (Intercept)   Q03_Female     Q03_Male       Q05_10       Q05_11  
##    2.318370     0.131448     0.164231     0.250889     0.527421  
##      Q05_12       Q09_No      Q09_Yes       Q10_No      Q10_Yes  
##    0.742437     0.039233     0.815000     0.121851     0.083850  
##      Q11_No      Q11_Yes   Q12a_Blank   Q12a_Never    Q12a_Some  
##    0.069398     0.219649    -0.604259    -0.505271    -0.155797  
##  Q12b_Blank   Q12b_Never    Q12b_Some   Q12c_Blank   Q12c_Never  
##   -0.219988    -0.199648    -0.074172     0.074474     0.007754  
##   Q12c_Some   Q12d_Blank   Q12d_Never    Q12d_Some   Q12e_Blank  
##    0.167594    -0.002932     0.139468     0.031851     0.041352  
##  Q12e_Never    Q12e_Some   Q12f_Blank   Q12f_Never    Q12f_Some  
##    0.124003     0.078373     0.025031     0.142397     0.080009  
##  Q12g_Blank   Q12g_Never    Q12g_Some   Q12h_Blank   Q12h_Never  
##   -0.316447    -0.406454    -0.147701     0.085336     0.189231  
##   Q12h_Some   Q12i_Blank   Q12i_Never    Q12i_Some   Q12j_Blank  
##    0.090965     0.201099     0.069290     0.106950     0.074082  
##  Q12j_Never    Q12j_Some   Q12k_Blank   Q12k_Never    Q12k_Some  
##    0.207269     0.077243    -0.249488    -0.315113    -0.187781  
##  Q12l_Blank   Q12l_Never    Q12l_Some  
##   -0.071798     0.046030     0.045288
summary(model1)
## Linear mixed model fit by REML ['lmerMod']
## Formula: 
## Q07a_ ~ Q03_ + Q05_ + Q09_ + Q10_ + Q11_ + Q12a_ + Q12b_ + Q12c_ +  
##     Q12d_ + Q12e_ + Q12f_ + Q12g_ + Q12f_ + Q12g_ + Q12h_ + Q12i_ +  
##     Q12j_ + Q12k_ + Q12l_ + (1 | School) + (1 | Year) + (1 |  
##     schoolState)
##    Data: dat1
## 
## REML criterion at convergence: 265416.2
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -5.3263 -0.5795 -0.0471  0.5674  4.8437 
## 
## Random effects:
##  Groups      Name        Variance Std.Dev.
##  School      (Intercept) 0.07368  0.2714  
##  Year        (Intercept) 0.02665  0.1632  
##  schoolState (Intercept) 0.01381  0.1175  
##  Residual                0.67316  0.8205  
## Number of obs: 108201, groups:  School, 281; Year, 11; schoolState, 11
## 
## Fixed effects:
##              Estimate Std. Error t value
## (Intercept)  2.318370   0.087255   26.57
## Q03_Female   0.131448   0.040229    3.27
## Q03_Male     0.164231   0.040232    4.08
## Q05_10       0.250889   0.007506   33.42
## Q05_11       0.527421   0.007801   67.61
## Q05_12       0.742437   0.008507   87.27
## Q09_No       0.039233   0.011568    3.39
## Q09_Yes      0.815000   0.012999   62.70
## Q10_No       0.121851   0.018414    6.62
## Q10_Yes      0.083850   0.018349    4.57
## Q11_No       0.069398   0.017328    4.00
## Q11_Yes      0.219649   0.019803   11.09
## Q12a_Blank  -0.604259   0.039174  -15.43
## Q12a_Never  -0.505271   0.013087  -38.61
## Q12a_Some   -0.155797   0.011132  -14.00
## Q12b_Blank  -0.219988   0.040976   -5.37
## Q12b_Never  -0.199648   0.012481  -16.00
## Q12b_Some   -0.074172   0.011029   -6.73
## Q12c_Blank   0.074474   0.036212    2.06
## Q12c_Never   0.007754   0.019621    0.40
## Q12c_Some    0.167594   0.020601    8.14
## Q12d_Blank  -0.002932   0.036553   -0.08
## Q12d_Never   0.139468   0.012813   10.89
## Q12d_Some    0.031851   0.013073    2.44
## Q12e_Blank   0.041352   0.024599    1.68
## Q12e_Never   0.124003   0.009252   13.40
## Q12e_Some    0.078373   0.008857    8.85
## Q12f_Blank   0.025031   0.029598    0.85
## Q12f_Never   0.142397   0.010216   13.94
## Q12f_Some    0.080009   0.009901    8.08
## Q12g_Blank  -0.316447   0.030170  -10.49
## Q12g_Never  -0.406454   0.010629  -38.24
## Q12g_Some   -0.147701   0.009630  -15.34
## Q12h_Blank   0.085336   0.033263    2.57
## Q12h_Never   0.189231   0.014454   13.09
## Q12h_Some    0.090965   0.015177    5.99
## Q12i_Blank   0.201099   0.032735    6.14
## Q12i_Never   0.069290   0.018708    3.70
## Q12i_Some    0.106950   0.018846    5.67
## Q12j_Blank   0.074082   0.031149    2.38
## Q12j_Never   0.207269   0.017145   12.09
## Q12j_Some    0.077243   0.018184    4.25
## Q12k_Blank  -0.249488   0.030614   -8.15
## Q12k_Never  -0.315113   0.009892  -31.85
## Q12k_Some   -0.187781   0.009251  -20.30
## Q12l_Blank  -0.071798   0.026256   -2.73
## Q12l_Never   0.046030   0.008782    5.24
## Q12l_Some    0.045288   0.008117    5.58
## 
## Correlation matrix not shown by default, as p = 48 > 12.
## Use print(x, correlation=TRUE)  or
##   vcov(x)     if you need it
##draw(m1, type = "random")

#3(p1 <- plotFEsim(FEsim(m1)))
##(p1 <- plotREsim(REsim(m1)))


RMSE.merMod(model1)
## [1] 0.8193262
fastdisp(model1)
## lmer(formula = Q07a_ ~ Q03_ + Q05_ + Q09_ + Q10_ + Q11_ + Q12a_ + 
##     Q12b_ + Q12c_ + Q12d_ + Q12e_ + Q12f_ + Q12g_ + Q12f_ + Q12g_ + 
##     Q12h_ + Q12i_ + Q12j_ + Q12k_ + Q12l_ + (1 | School) + (1 | 
##     Year) + (1 | schoolState), data = dat1)
##             coef.est coef.se
## (Intercept)  2.32     0.09  
## Q03_Female   0.13     0.04  
## Q03_Male     0.16     0.04  
## Q05_10       0.25     0.01  
## Q05_11       0.53     0.01  
## Q05_12       0.74     0.01  
## Q09_No       0.04     0.01  
## Q09_Yes      0.82     0.01  
## Q10_No       0.12     0.02  
## Q10_Yes      0.08     0.02  
## Q11_No       0.07     0.02  
## Q11_Yes      0.22     0.02  
## Q12a_Blank  -0.60     0.04  
## Q12a_Never  -0.51     0.01  
## Q12a_Some   -0.16     0.01  
## Q12b_Blank  -0.22     0.04  
## Q12b_Never  -0.20     0.01  
## Q12b_Some   -0.07     0.01  
## Q12c_Blank   0.07     0.04  
## Q12c_Never   0.01     0.02  
## Q12c_Some    0.17     0.02  
## Q12d_Blank   0.00     0.04  
## Q12d_Never   0.14     0.01  
## Q12d_Some    0.03     0.01  
## Q12e_Blank   0.04     0.02  
## Q12e_Never   0.12     0.01  
## Q12e_Some    0.08     0.01  
## Q12f_Blank   0.03     0.03  
## Q12f_Never   0.14     0.01  
## Q12f_Some    0.08     0.01  
## Q12g_Blank  -0.32     0.03  
## Q12g_Never  -0.41     0.01  
## Q12g_Some   -0.15     0.01  
## Q12h_Blank   0.09     0.03  
## Q12h_Never   0.19     0.01  
## Q12h_Some    0.09     0.02  
## Q12i_Blank   0.20     0.03  
## Q12i_Never   0.07     0.02  
## Q12i_Some    0.11     0.02  
## Q12j_Blank   0.07     0.03  
## Q12j_Never   0.21     0.02  
## Q12j_Some    0.08     0.02  
## Q12k_Blank  -0.25     0.03  
## Q12k_Never  -0.32     0.01  
## Q12k_Some   -0.19     0.01  
## Q12l_Blank  -0.07     0.03  
## Q12l_Never   0.05     0.01  
## Q12l_Some    0.05     0.01  
## 
## Error terms:
##  Groups      Name        Std.Dev.
##  School      (Intercept) 0.27    
##  Year        (Intercept) 0.16    
##  schoolState (Intercept) 0.12    
##  Residual                0.82    
## ---
## number of obs: 108201, groups: School, 281; Year, 11; schoolState, 11
## AIC = 265520
feexd <- FEsim(model1, 1000)
cbind(feexd[,1] , round(feexd[, 2:4], 3))
##     feexd[, 1]   mean median    sd
## 1  (Intercept)  2.324  2.322 0.088
## 2   Q03_Female  0.131  0.130 0.039
## 3     Q03_Male  0.164  0.163 0.039
## 4       Q05_10  0.251  0.251 0.007
## 5       Q05_11  0.527  0.527 0.008
## 6       Q05_12  0.742  0.742 0.009
## 7       Q09_No  0.039  0.040 0.011
## 8      Q09_Yes  0.815  0.815 0.013
## 9       Q10_No  0.122  0.122 0.019
## 10     Q10_Yes  0.084  0.084 0.019
## 11      Q11_No  0.069  0.069 0.018
## 12     Q11_Yes  0.219  0.219 0.020
## 13  Q12a_Blank -0.603 -0.602 0.041
## 14  Q12a_Never -0.504 -0.504 0.013
## 15   Q12a_Some -0.155 -0.154 0.011
## 16  Q12b_Blank -0.222 -0.221 0.043
## 17  Q12b_Never -0.200 -0.200 0.013
## 18   Q12b_Some -0.075 -0.075 0.011
## 19  Q12c_Blank  0.074  0.074 0.036
## 20  Q12c_Never  0.008  0.007 0.019
## 21   Q12c_Some  0.167  0.167 0.021
## 22  Q12d_Blank -0.002 -0.002 0.037
## 23  Q12d_Never  0.139  0.139 0.013
## 24   Q12d_Some  0.031  0.031 0.013
## 25  Q12e_Blank  0.041  0.041 0.024
## 26  Q12e_Never  0.125  0.125 0.009
## 27   Q12e_Some  0.079  0.078 0.008
## 28  Q12f_Blank  0.026  0.027 0.031
## 29  Q12f_Never  0.143  0.143 0.010
## 30   Q12f_Some  0.081  0.081 0.010
## 31  Q12g_Blank -0.317 -0.318 0.030
## 32  Q12g_Never -0.407 -0.407 0.010
## 33   Q12g_Some -0.148 -0.149 0.010
## 34  Q12h_Blank  0.085  0.086 0.032
## 35  Q12h_Never  0.190  0.189 0.014
## 36   Q12h_Some  0.092  0.092 0.015
## 37  Q12i_Blank  0.199  0.199 0.032
## 38  Q12i_Never  0.068  0.068 0.019
## 39   Q12i_Some  0.106  0.106 0.019
## 40  Q12j_Blank  0.075  0.075 0.030
## 41  Q12j_Never  0.207  0.207 0.017
## 42   Q12j_Some  0.077  0.077 0.018
## 43  Q12k_Blank -0.250 -0.249 0.031
## 44  Q12k_Never -0.315 -0.314 0.010
## 45   Q12k_Some -0.188 -0.188 0.009
## 46  Q12l_Blank -0.072 -0.071 0.027
## 47  Q12l_Never  0.046  0.045 0.009
## 48   Q12l_Some  0.045  0.045 0.008
library(ggplot2)
ggplot(feexd[feexd$term!= "(Intercept)", ]) + 
  aes(x = term, ymin = median - 1.96 * sd, 
      ymax = median + 1.96 * sd, y = median) + 
  geom_pointrange() + 
  geom_hline(yintercept = 0, size = I(1.1), color = I("red")) + 
  coord_flip() + 
  theme_bw() + labs(title = "Coefficient Plot", 
                    x = "Median Effect Estimate", y = "License Rating")

plotFEsim(feexd) + 
  theme_bw() + labs(title = "Coefficient Plot", 
                    x = "Median Effect Estimate", y = "License Rating")

reexd <- REsim(model1)
head(reexd)
##   groupFctr groupID        term        mean      median         sd
## 1    School       1 (Intercept) -0.07822608 -0.07415088 0.07244622
## 2    School       2 (Intercept) -0.06108175 -0.06350232 0.05533199
## 3    School       3 (Intercept) -0.11390221 -0.09601669 0.16442154
## 4    School       4 (Intercept) -0.21920848 -0.21423055 0.20909131
## 5    School       5 (Intercept) -0.14074314 -0.13964380 0.05556122
## 6    School       6 (Intercept) -0.12946944 -0.12636285 0.14645082
table(reexd$term)
## 
## (Intercept) 
##         303
table(reexd$groupFctr)
## 
##      School schoolState        Year 
##         281          11          11
plot1 <- plotREsim(reexd)
plot1

lattice::dotplot(ranef(model1, condVar=TRUE))
## $School

## 
## $Year

## 
## $schoolState