[R] Predict
Christoph Buser
buser at stat.math.ethz.ch
Tue Jul 19 18:35:37 CEST 2005
Dear Matthias
Can you provide an example to demonstrate what you did? Two
remarks to your email. Maybe that answers already your question.
1) Using predict() you will get the estimated value for each
observation or for new data. You can reproduce this value by
using the coefficients from your estimated model (see the
example below).
For the interval you can get a confidence interval for the
expected value under fixed conditions of the explanatory
variables or you can obtain a prediction interval for a
single new observation. The latter is of course wider, since
you try to catch a single observation and not the expected
value.
2) Using confint() you will get the estimated parameters (which
are random variables, too) and their confidence interval.
You can use the estimated values to calculate the predicted
values.
But you can NOT use the upper values from confint to
estimate the upper values from predict by just putting them into
your regression model. Thats not the way how confidence
intervals are constructed.
(I am not sure if this was your intention. Maybe if you show a
reproducible example you can correct me if you meant something
different)
## R Code
## Creation of a dataframe
set.seed(1)
x1 <- runif(40)
f1 <- rep(c("a", "b", "c","d"), each = 10)
y <- 2*x1 + rep(c(0.5, 0.1, -0.6, 1.5), each = 10) + rnorm(40, 0, 2)
dat <- data.frame(y = y, f1 = f1, x1 = x1)
## regression model
reg <- lm(y~ x1 + f1, data = dat)
summary(reg)
confint(reg)
predict(reg, type=c("response"), interval = "confidence")
## caluclation of predicted values using the estimated
## coefficients
## estimated coefficients
co <- summary(reg)$coefficients[,"Estimate"]
## Using the regression model with that coefficients
## for observation 11
co["(Intercept)"] + dat[11,"x1"]*co["x1"] + co["f1b"]
## prediction of observation 11
predict(reg, type=c("response"))[11]
Regards,
Christoph
--------------------------------------------------------------
Christoph Buser <buser at stat.math.ethz.ch>
Seminar fuer Statistik, LEO C13
ETH (Federal Inst. Technology) 8092 Zurich SWITZERLAND
phone: x-41-44-632-4673 fax: 632-1228
http://stat.ethz.ch/~buser/
--------------------------------------------------------------
Matthias Eggenberger writes:
> When I callculate a linear model, then I can compute via confint the
> confidencial intervals. the interval level can be chosen. as result, I get
> the parameter of the model according to the interval level.
>
> On the other hand, I can compute the prediction-values for my model as well
> with predict(object, type=c("response") etc.). Here I have also the
> possibility to chose a level for the confidential intervals. the output are
> the calculatet values for the fit, the lower and upper level.
>
> the problem now is, that when I calculate the values through the linear
> model function with the parameter values I get from confint() an I compare
> them with the values I get from predict() these values differ extremely. Why
> is that so? Does the command predict() calculate the values through an other
> routine? That means the command predict() doesn't use the same parameters to
> calculate the prediction-values than the ones given by confint()?
>
> Greetings Matthias
>
> --
> GMX DSL = Maximale Leistung zum minimalen Preis!
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list