require(pacman)
## Loading required package: pacman
pacman::p_load(tidyverse, lme4, ltm)

Q1

#data
dta<- read.table("http://titan.ccunix.ccu.edu.tw/~psycfs/lmm/Data/starter.txt", h=T)
head(dta, 10)
     sid item resp
  1    1    1    1
  2    1    2    1
  3    1    3    1
  4    1    4    1
  5    1    5    1
  6    1    6    1
  7    1    7    1
  8    1    8    1
  9    1    9    0
  10   2    1    1
dta$sid<-factor(dta$sid)
dta$item<- factor(dta$item)
str(dta)
  'data.frame': 1350 obs. of  3 variables:
   $ sid : Factor w/ 150 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 2 ...
   $ item: Factor w/ 9 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 1 ...
   $ resp: int  1 1 1 1 1 1 1 1 0 1 ...
#plot
ggplot(dta, aes(item, resp))+
  stat_summary(fun.data = mean_se)+
  theme_bw()+
  labs(x = "Item", y = "Accuracy")

#model
summary(m0 <- glmer(resp ~ -1 + item + (1 | sid), data = dta, family = binomial))
  Generalized linear mixed model fit by maximum likelihood (Laplace
    Approximation) [glmerMod]
   Family: binomial  ( logit )
  Formula: resp ~ -1 + item + (1 | sid)
     Data: dta
  
       AIC      BIC   logLik deviance df.resid 
    1430.0   1482.1   -705.0   1410.0     1340 
  
  Scaled residuals: 
      Min      1Q  Median      3Q     Max 
  -6.0216 -0.5795  0.3395  0.5451  3.6577 
  
  Random effects:
   Groups Name        Variance Std.Dev.
   sid    (Intercept) 1.165    1.079   
  Number of obs: 1350, groups:  sid, 150
  
  Fixed effects:
        Estimate Std. Error z value Pr(>|z|)    
  item1   2.9031     0.3405   8.526  < 2e-16 ***
  item2   1.7032     0.2383   7.147 8.85e-13 ***
  item3   1.3373     0.2214   6.039 1.55e-09 ***
  item4   1.2102     0.2167   5.584 2.36e-08 ***
  item5   1.0017     0.2102   4.765 1.89e-06 ***
  item6   0.9241     0.2082   4.439 9.03e-06 ***
  item7   1.8649     0.2475   7.534 4.91e-14 ***
  item8   0.2030     0.1973   1.029    0.303    
  item9  -0.8778     0.2077  -4.225 2.39e-05 ***
  ---
  Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
  
  Correlation of Fixed Effects:
        item1 item2 item3 item4 item5 item6 item7 item8
  item2 0.108                                          
  item3 0.113 0.158                                    
  item4 0.115 0.160 0.171                              
  item5 0.116 0.164 0.175 0.178                        
  item6 0.117 0.165 0.176 0.179 0.184                  
  item7 0.105 0.144 0.153 0.155 0.158 0.159            
  item8 0.116 0.167 0.180 0.183 0.189 0.191 0.160      
  item9 0.101 0.148 0.161 0.166 0.172 0.174 0.142 0.189
  convergence code: 0
  unable to evaluate scaled gradient
  Model failed to converge: degenerate  Hessian with 2 negative eigenvalues

Q2

#data
dta<-read.table("http://titan.ccunix.ccu.edu.tw/~psycfs/lmm/Data/adolescentSmoking.txt" ,h=T)
head(dta)
    newid sex parsmk wave smkreg
  1     1   1      0    1      0
  2     1   1      0    2      0
  3     1   1      0    4      0
  4     1   1      0    5      0
  5     1   1      0    6      0
  6     2   0      0    1      0
dta$sex<-factor(dta$sex,levels = c(0,1), labels = c("boys", "girls"))
dta$parsmk<-factor(dta$parsmk)
dta$wave<-factor(dta$wave)
str(dta)
  'data.frame': 8730 obs. of  5 variables:
   $ newid : int  1 1 1 1 1 2 2 2 2 2 ...
   $ sex   : Factor w/ 2 levels "boys","girls": 2 2 2 2 2 1 1 1 1 1 ...
   $ parsmk: Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
   $ wave  : Factor w/ 6 levels "1","2","3","4",..: 1 2 4 5 6 1 2 3 4 5 ...
   $ smkreg: int  0 0 0 0 0 0 0 0 0 0 ...
dtam<- aggregate(smkreg ~ wave + sex, FUN = mean, data = dta)

#plot
ggplot(dtam, aes(wave, smkreg, group = sex, linetype = sex))+
  geom_point()+
  geom_line()+
  theme_bw()+
  ylim(0,.2)+
  labs(x = "Wave of study", y = "Propotion of smokers")

#model
summary(m0 <- glmer(smkreg~sex+parsmk+wave+(1|newid), family = "binomial", data = dta))
  Generalized linear mixed model fit by maximum likelihood (Laplace
    Approximation) [glmerMod]
   Family: binomial  ( logit )
  Formula: smkreg ~ sex + parsmk + wave + (1 | newid)
     Data: dta
  
       AIC      BIC   logLik deviance df.resid 
    3803.4   3867.1  -1892.7   3785.4     8721 
  
  Scaled residuals: 
      Min      1Q  Median      3Q     Max 
  -3.4829 -0.0328 -0.0209 -0.0144  4.2244 
  
  Random effects:
   Groups Name        Variance Std.Dev.
   newid  (Intercept) 40.98    6.402   
  Number of obs: 8730, groups:  newid, 1760
  
  Fixed effects:
              Estimate Std. Error z value Pr(>|z|)    
  (Intercept)  -8.0360     0.3551 -22.630  < 2e-16 ***
  sexgirls      0.2196     0.2694   0.815 0.414944    
  parsmk1       1.1726     0.2762   4.246 2.18e-05 ***
  wave2        -0.8710     0.2454  -3.549 0.000386 ***
  wave3        -0.3562     0.2394  -1.488 0.136775    
  wave4         0.1828     0.2352   0.777 0.437049    
  wave5         0.6205     0.2339   2.653 0.007983 ** 
  wave6         1.1000     0.2330   4.720 2.36e-06 ***
  ---
  Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
  
  Correlation of Fixed Effects:
           (Intr) sxgrls prsmk1 wave2  wave3  wave4  wave5 
  sexgirls -0.415                                          
  parsmk1  -0.261  0.033                                   
  wave2    -0.381 -0.009  0.012                            
  wave3    -0.422 -0.007  0.009  0.642                     
  wave4    -0.465 -0.007  0.008  0.649  0.667              
  wave5    -0.504 -0.007  0.007  0.647  0.670  0.693       
  wave6    -0.548 -0.012  0.005  0.639  0.666  0.693  0.711
  convergence code: 0
  Model failed to converge with max|grad| = 4.75774 (tol = 0.001, component 1)