# [R] se's and CI's for fitted lines in multivariate regression analysis

David Winsemius dwinsemius at comcast.net
Sat Oct 20 22:11:02 CEST 2012

```On Oct 16, 2012, at 11:58 AM, Sigrid wrote:

> Okay, I've now tried to the predict function and get the SE, although it seem
> to calculate SE for each observation from the line (I assume), while I want
> the CI-interval and SE for each line fitted line for the treatment. I do not
> really understand what  parameter mean these SEs are calculated from when
> there would be several means along the line...?. This is what I get with
> predict:
>
>> predict(model, se.fit = TRUE, interval = "confidence")
>
> Another way I can think of to show how well the lines fit the data is to
> look at the intercepts and slopes instead. I can specify the line for each
> level and would then get the estimate of slope and intercept, although I do
> not know how I show the standard errors of the slope and intercept.
> lm(decrease[treatment=="A"]~colpos[treatment=="A"])
>
> Call:
> lm(formula = decrease[treatment == "A"] ~ colpos[treatment ==  "A"])
>
> Coefficients:
>             (Intercept)  colpos[treatment == "A"]
>                  2.5357                    0.4643
>
> Please let me know if you know how to find st. errors for (or st. error for
> slope and intercept) of lines for each factor of a treatment.

The SE's for treatment "slope" will vary depending on the colpos values. Using `predict`, pick the mid-point of the colpos and rowpos variables (which is where the SE of the estimates will be minimized). This should be covered in any basic regression text.

model<-lm(decrease ~ rowpos  + colpos + treatment + treatment:colpos + 0, data=OrchardSprays)

# I do not think the use of the non-intercept version matters here and it's not in general a good practice, but it allows all the parameters to be labeled as you apparently expect.

predict(model, newdata=data.frame(colpos=4.5, treatment=unique(OrchardSprays\$treatment), rowpos=mean(OrchardSprays\$rowpos) ), se.fit = TRUE, interval = "confidence")
\$fit
fit        lwr       upr
1 35.000  20.331646  49.66835
2 63.125  48.456646  77.79335
3  7.625  -7.043354  22.29335
4 90.250  75.581646 104.91835
5 68.500  53.831646  83.16835
6 69.000  54.331646  83.66835
7 25.250  10.581646  39.91835
8  4.625 -10.043354  19.29335

\$se.fit
1        2        3        4        5        6        7        8
7.291375 7.291375 7.291375 7.291375 7.291375 7.291375 7.291375 7.291375

\$df
 47

\$residual.scale
 20.62312

> unique(OrchardSprays\$treatment)
 D E B H G F C A
Levels: A B C D E F G H
> with(OrchardSprays, tapply(decrease, treatment, mean) )
A      B      C      D      E      F      G      H
4.625  7.625 25.250 35.000 63.125 69.000 68.500 90.250

--

David Winsemius, MD
Alameda, CA, USA

```