Nothing
## test simulate_lme and simulate_gls
require(nlme)
require(nlraa)
require(ggplot2)
run.simulate.gls.test <- Sys.info()[["user"]] == "fernandomiguez"
if(run.simulate.gls.test){
data(Orthodont)
fm1 <- gls(distance ~ age, data = Orthodont,
correlation = corCAR1(form = ~ age | Subject)) ## Sub by default
## Visualize correlation
fm1.vc <- var_cov(fm1)
fm1.vc2 <- fm1.vc[1:28, 1:28]
image(log(fm1.vc2[,ncol(fm1.vc2):1]),
main = "Covariance (residual or marginal)",
xaxt = "n", yaxt = "n")
## auto-correlation
plot(ACF(fm1))
sim1 <- simulate_lme(fm1, nsim = 2e2, value = "data.frame")
sim1$Sub_ii <- paste0(sim1$Subject,"_",sim1$ii)
ggplot(data = sim1, aes(age, distance )) +
geom_line(aes(y = sim.y, group = Sub_ii), color = "grey",
alpha = 0.3) +
geom_point() + ggtitle("Orthodont")
## Trying the ChickWeight dataset
data(ChickWeight)
fm2 <- lme(weight ~ Time + I(Time^2) + I(Time^3),
data = ChickWeight, weights = varPower(),
random = ~ Time)
## Level = 0 is at the population-level
sim2 <- simulate_lme(fm2, nsim = 200, level = 0, value = "data.frame")
sim2$Chick_ii <- paste0(sim2$Chick,"_",sim2$ii)
ggplot(data = sim2, aes(Time, weight)) +
geom_line(aes(y = sim.y, group = Chick_ii), color = "grey",
alpha = 0.3) +
geom_point()
## Test with the Orange dataset
data("Orange")
fm3 <- lme(circumference ~ age, data = Orange,
random = ~ 1 | Tree)
## Small data set, no issues
plot(fm3)
sim3 <- simulate_lme(fm3, nsim = 200, value = "data.frame")
sim3$Tree_ii <- paste0(sim3$Tree,"_",sim3$ii)
ggplot(data = sim3, aes(age, circumference)) +
geom_line(aes(y = sim.y, group = Tree_ii), color = "grey",
alpha = 0.3) +
geom_point()
## Testing scoping issues
## Script from bug report
simulation_summary_fixed <- function(duration_per_period = 6L) {
treatment <- as.factor(c(0,1))
time <- 1:20
cluster <- as.factor(c("a", "b", "c"))
SWdesign <- expand.grid(treatment = treatment, time = time, cluster = cluster)
SWdesign$id <- with(SWdesign, paste0(cluster, "_", treatment))
SWdesign$outcome <- with(SWdesign, as.numeric(treatment) +
(1 + as.numeric(treatment)) * time +
scale(as.numeric(cluster)) * 0.5 +
rnorm(nrow(SWdesign)))
cor_init <- corAR1(form= ~ time|id )
cor_init <- Initialize(cor_init, data = SWdesign )
SWdesign$outcome <- rnorm( nrow(SWdesign) )
local.gls <- gls( outcome ~ treatment*time, correlation=cor_init, data=SWdesign, method="ML")
local.lme <- lme( outcome ~ treatment*time, random = ~ 1 | cluster,
data=SWdesign, method="ML")
ans1 <- simulate_lme(local.lme, psim=2, data = SWdesign)
ans2 <- simulate_gls(local.gls, psim=2, data = SWdesign)
}
## If this runs without errors it means the above works
simulation_summary_fixed()
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.