Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.29 KB | None | 0 0
  1. library(lme4)
  2. library(brms)
  3. sim_dat <- function(n_subject, f_int, d_t, u_0, e_var){
  4.            # n_subject: number of subjects
  5.            # int: fixed intercept
  6.            # d_t: delta total variance (MLM "d")
  7.            # u_0: "random" intercept variance
  8.            #      (betwween-subject variance)    
  9.            # e_var: error variance  
  10.            id     <- rep(1:n_subject, each = 2)
  11.            time   <- rep(c("t_0", "t_1"), n_subject)
  12.            id_var <- rnorm(n_subject, 0, sqrt(u_0))
  13.            error_var  <- rnorm(n_subject * 2, 0, sqrt(e_var))  
  14.            b      <-  d_t * sqrt(u_0 + e_var)
  15.            y      <- f_int + b * (time == "t_1") + id_var[id] + error_var
  16.            data.frame(id, time, y)
  17.            }
  18.  
  19. dat <-  sim_dat(n_subject = 100, f_int = 5, d_t = .5, u_0 = 3, e_var  = 10)
  20. m_1 <- lmer(y ~ time + (1|id), data = dat)
  21.  
  22.  
  23. # check "d" value
  24. coefficients(m_1)$id[1,2] /
  25.        sqrt(data.frame(v,comp=c("Variance"))[[4]][1] +
  26.        data.frame(v,comp=c("Variance"))[[4]][2])
  27.  
  28.  
  29. prior <- c(set_prior("uniform(-8, 8)",lb = -8, ub = 8, nlpar = "alpha"))
  30.  
  31.  
  32. b_1 <- brm(bf(y ~ time + (1|id), sigma ~ time + (1|id), alpha ~ time + (1|id)),
  33.            family = skew_normal, data = dat, chains = 2, prior = prior,
  34.            control = list(adapt_delta = .99), inits = 0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement