Guest User

Untitled

a guest
Jul 15th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. library(nlme)
  2.  
  3. # Data prep
  4. dat <- clubSandwich::MortalityRates[, c("year", "state", "mrate", "cause")]
  5. dat <- dat[dat$cause == "Motor Vehicle" & dat$year %in% 1970:1975, ]
  6. dat <- dat[, c("year", "state", "mrate")]
  7. str(dat)
  8. 'data.frame': 306 obs. of 3 variables:
  9. $ year : int 1970 1971 1972 1973 1974 1975 1970 1971 1972 1973 ...
  10. $ state: int 1 1 1 1 1 1 2 2 2 2 ...
  11. $ mrate: num 62.2 62.4 73.6 63.4 60.3 ...
  12.  
  13. dat$year.f <- factor(dat$year) # Make time dummies
  14. dat$state.f <- factor(dat$state) # Make state dummies
  15.  
  16. (m0 <- lme(mrate ~ year.f, dat, ~ 1 | state.f))
  17. Linear mixed-effects model fit by REML
  18. Data: dat
  19. Log-restricted-likelihood: -1231.598
  20. Fixed: mrate ~ year.f
  21. (Intercept) year.f1971 year.f1972 year.f1973 year.f1974 year.f1975
  22. 66.3498221 -3.4835741 0.2247485 0.3086386 -8.1646117 -10.6781779
  23.  
  24. Random effects:
  25. Formula: ~1 | state.f
  26. (Intercept) Residual
  27. StdDev: 22.29717 10.7256
  28.  
  29. Number of Observations: 306
  30. Number of Groups: 51
  31.  
  32. as.numeric(VarCorr(m0))[1] / (
  33. as.numeric(VarCorr(m0))[1] + var(predict(m0, level = 0)) + sigma(m0) ** 2)
  34. [1] 0.7876077
  35.  
  36. mg0 <- gls(mrate ~ year.f, dat, corCompSymm(form = ~ 1 | state.f))
  37. mg1 <- gls(mrate ~ year.f, dat) # A regular regression model ignoring states
  38. anova(mg0, mg1) # Model comparison
  39.  
  40. Model df AIC BIC logLik Test L.Ratio p-value
  41. mg0 1 8 2479.197 2508.827 -1231.598
  42. mg1 2 7 2814.073 2839.999 -1400.036 1 vs 2 336.8762 <.0001
Add Comment
Please, Sign In to add comment