Spencer Graves
2023-Aug-31 06:27 UTC
[R] simulating future observations from heteroscedastic fits
Hello, All:
I want to simulate future observations from fits to heteroscedastic
data. A simple example is as follows:
(DF3_2 <- data.frame(y=c(1:3, 10*(1:3)),
gp=factor(rep(1:2, e=3))))
# I want to fit 4 models
# and simulate future observations from all 4:
fit11 <- lm(y~1, DF3_2)
fit21 <- lm(y~gp, DF3_2)
library(nlme)
(fit12 <- lme(y~1, data=DF3_2, random=~1|gp))
(fit22 <- lme(y~gp, data=DF3_2, random=~1|gp))
library(lme4)
(fit12r <- lmer(y~1+(1|gp), data=DF3_2, REML=FALSE))
(fit22r <- lmer(y~gp+(1|gp), data=DF3_2, REML=FALSE))
# I can simulate what I want for fit11 and fit21
# as follows:
simPred <- function(object, nSims=2){
pred <- predict(object, DF3_2[6,], se.fit=TRUE,
interval='prediction')
with(pred, fit[1, 'fit'] +
se.fit*rt(nSims, df))
}
simPred(fit11)
simPred(fit21)
# How can I do the same with either fit12 and fit22
# or fit12r and fit22r?
Thanks,
Spencer Graves
Spencer Graves
2023-Aug-31 12:53 UTC
[R] simulating future observations from heteroscedastic fits
On 8/31/23 1:27 AM, Spencer Graves wrote:> Hello, All: > > > ????? I want to simulate future observations from fits to > heteroscedastic data. A simple example is as follows: > > > (DF3_2 <- data.frame(y=c(1:3, 10*(1:3)), > ???????????????????? gp=factor(rep(1:2, e=3)))) > > > # I want to fit 4 models > # and simulate future observations from all 4: > > > fit11 <- lm(y~1, DF3_2) > fit21 <- lm(y~gp, DF3_2) > > library(nlme) > (fit12 <- lme(y~1, data=DF3_2, random=~1|gp)) > (fit22 <- lme(y~gp, data=DF3_2, random=~1|gp)) > library(lme4) > (fit12r <- lmer(y~1+(1|gp), data=DF3_2, REML=FALSE)) > (fit22r <- lmer(y~gp+(1|gp), data=DF3_2, REML=FALSE)) > > # I can simulate what I want for fit11 and fit21 > # as follows: > > simPred <- function(object, nSims=2){ > ? pred <- predict(object, DF3_2[6,], se.fit=TRUE, > ????????????????? interval='prediction') > ? with(pred, fit[1, 'fit'] + > ???????? se.fit*rt(nSims, df)) > } > simPred(fit11) > simPred(fit21) > > > # How can I do the same with either fit12 and fit22 > # or fit12r and fit22r? >I think I found it: simPred4 <- function(object, nSims=2){ # class(object) = lmeeMod sim <- simulate(object, nsim=nSims, newdata=DF3_2[6,]) sim } simPred4(fit12r) simPred4(fit22r)> > ????? Thanks, > ????? Spencer Graves > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.