Skip to content

Regression slope confidence interval

6 messages · Christian Hennig, Chuck Cleland, Achim Zeileis +1 more

#
Hi list,

is there any direct way to obtain confidence intervals for the regression
slope from lm, predict.lm or the like?
(If not, is there any reason? This is also missing in some other statistics
softwares, and I thought this would be quite a standard application.)
I know that it's easy to implement but it's for
explanation to people who faint if they have to do their own
programming...

Christian

*** --- ***
Christian Hennig
University College London, Department of Statistical Science
Gower St., London WC1E 6BT, phone +44 207 679 1698
chrish at stats.ucl.ac.uk, www.homepages.ucl.ac.uk/~ucakche
#
?confint

For example:

 > ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
 >      trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
 >      group <- gl(2,10,20, labels=c("Ctl","Trt"))
 >      weight <- c(ctl, trt)
 > lm(weight ~ group)

Call:
lm(formula = weight ~ group)

Coefficients:
(Intercept)     groupTrt
       5.032       -0.371

 > confint(lm(weight ~ group))
                 2.5 %    97.5 %
(Intercept)  4.569340 5.4946602
groupTrt    -1.025300 0.2833003
Christian Hennig wrote:

  
    
#
On Thu, 29 Sep 2005, Christian Hennig wrote:

            
There is a confint method: e.g.,

R> fm <- lm(dist ~ speed, data = cars)
R> confint(fm, parm = "speed")
         2.5 %   97.5 %
speed 3.096964 4.767853

hth,
Z
#
Thank you to all of you.

As far as I see this is not mentioned on the lm help page (though I
presumably don't have the recent version), which I would
suggest...

Best,
Christian
On Thu, 29 Sep 2005, Chuck Cleland wrote:

            
*** --- ***
Christian Hennig
University College London, Department of Statistical Science
Gower St., London WC1E 6BT, phone +44 207 679 1698
chrish at stats.ucl.ac.uk, www.homepages.ucl.ac.uk/~ucakche
#
Why not use vcov() and the normal approximation ?

 > ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
 > trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
 > group <- gl(2,10,20, labels=c("Ctl","Trt"))
 > weight <- c(ctl, trt)
 > lm.D9 <- lm(weight ~ group)
 >
 > cbind(estimate = coef(lm.D9),
+       lower = coef(lm.D9) - 1.96 * diag(vcov(lm.D9)),
+       upper = coef(lm.D9) + 1.96 * diag(vcov(lm.D9)))
             estimate      lower      upper
(Intercept)    5.032  4.9369482  5.1270518
groupTrt      -0.371 -0.5611037 -0.1808963

To address your needs, it might also be possible to write a method for 
the generic of intervals() in package nlme.

Best,

Renaud

Christian Hennig a ??crit :

  
    
#
Sorry, I forgot confint and I made a mistake in my suggestion which 
should be:

cbind(estimate = coef(lm.D9),
       lower = coef(lm.D9) - 1.96 * sqrt(diag(vcov(lm.D9))),
       upper = coef(lm.D9) + 1.96 * sqrt(diag(vcov(lm.D9))))

Best,

Renaud

Christian Hennig a ??crit :