[R] Comparing two regression lines

Christoph Scherber Christoph.Scherber at agr.uni-goettingen.de
Wed Jun 4 13:37:03 CEST 2008


Dear R users,

Suppose I have two different response variables y1, y2 that I regress separately on the same 
explanatory variable, x; sample sizes are n1=n2.

Is it legitimate to compare the regression slopes (equal variances assumed) by using

lm(y~x*FACTOR),

where FACTOR gets "y1" if y1 is the response, and "y2" if y2 is the response?

The problem I see here is that the residual degrees of freedom obviously go up (n1-1+n2-1) although 
there were only n1=n2 "true" replications.

On the other hand, Zar (1984) and some other statistics textbooks base their calculations on a 
modified version of the t test (mainly using the residual SS from the two regressions), but when I 
calculated these tests by hand I found that the t-values are almost identical to the one I get using 
the lm(...) approach.

Part of the R script is appended below.

How would you proceed?

Many thanks for your help!

Best wishes,
Christoph

##

lm1=lm(y1~x) # y1 and y2 are different response variables, scaled to [0;1] using a ranging transform
lm2=lm(y2~x) # n is 12 for each regression

model3=lm(y~x*FACTOR)
summary(model3)

sxx1=sum((y1-mean(y1))^2)
sxx2=sum((y2-mean(y2))^2)

s.pooled=(4805.2+6946.6)/20

SED=sqrt(s.pooled*(1/sxx1+1/sxx2))

t=(528.54-446.004)/SED #residual SS from lm1 and lm2 divided by SED
qt(0.025,20) #compare with t distribution at 20 d.f.


##
#(using R 2.6.2 on Windows XP)



More information about the R-help mailing list