Learn R Programming

bbmle (version 1.0.20)

predict-methods: Predicted values from an mle2 fit

Description

Given an mle2 fit and an optional list of new data, return predictions (more generally, summary statistics of the predicted distribution)

Usage

# S4 method for mle2
predict(object, newdata=NULL,
                         location="mean", newparams=NULL, …)
    # S4 method for mle2
simulate(object, nsim,
                         seed, newdata=NULL, newparams=NULL, …)
    # S4 method for mle2
residuals(object,type=c("pearson","response"),
                   location="mean",…)

Arguments

object

an mle2 object

newdata

optional list of new data

newparams

optional vector of new parameters

location

name of the summary statistic to return

nsim

number of simulations

seed

random number seed

type

residuals type

additional arguments (for generic compatibility)

Methods

x = "mle2"

an mle2 fit

Examples

Run this code
# NOT RUN {
set.seed(1002)
lymax <- c(0,2)
lhalf <- 0
x <- runif(200)
g <- factor(rep(c("a","b"),each=100))
y <- rnbinom(200,mu=exp(lymax[g])/(1+x/exp(lhalf)),size=2)
dat <- data.frame(y,g,x)

fit3 <- mle2(y~dnbinom(mu=exp(lymax)/(1+x/exp(lhalf)),size=exp(logk)),
    parameters=list(lymax~g),
    start=list(lymax=0,lhalf=0,logk=0),
data=dat)

plot(y~x,col=g)
## true curves
curve(exp(0)/(1+x/exp(0)),add=TRUE)
curve(exp(2)/(1+x/exp(0)),col=2,add=TRUE)
## model predictions
xvec = seq(0,1,length=100)
lines(xvec,predict(fit3,newdata=list(g=factor(rep("a",100),levels=c("a","b")),
                                x = xvec)),col=1,lty=2)
lines(xvec,predict(fit3,newdata=list(g=factor(rep("b",100),levels=c("a","b")),
                                x = xvec)),col=2,lty=2)


## comparing automatic and manual predictions
p1 = predict(fit3)
p2A =
with(as.list(coef(fit3)),exp(`lymax.(Intercept)`)/(1+x[1:100]/exp(lhalf)))
p2B =
with(as.list(coef(fit3)),exp(`lymax.(Intercept)`+lymax.gb)/(1+x[101:200]/exp(lhalf)))
all(p1==c(p2A,p2B))
##
simulate(fit3)
# }

Run the code above in your browser using DataLab