[R] Comparing two regression slopes

Joerg Schaber Joerg.Schaber at uv.es
Thu Feb 19 17:40:25 CET 2004


I would suggest the method of Sokal and Rholf (1995) S. 498, using the F 
test.
Below I repeat the analysis by Spencer Graves:

Spencer:
 > df1 <- data.frame(x=1:3, y=1:3+rnorm(3))
 > df2 <- data.frame(x=1:3, y=1:3+rnorm(3))
 > fit1 <- lm(y~x, df1)
 > s1 <- summary(fit1)$coefficients
 > fit2 <- lm(y~x, df2)
 > s2 <- summary(fit2)$coefficients
 > db <- (s2[2,1]-s1[2,1])
 > sd <- sqrt(s2[2,2]^2+s1[2,2]^2)
 > df <- (fit1$df.residual+fit2$df.residual)
 >  td <- db/sd
 > 2*pt(-abs(td), df)
[1] 0.8757552

Sokal & Rholf
 > n <- length(df1$x)      
 > ssx1 <- var(df1$x)*(n-1)      # sums of squares
 > ssx2 <- var(df2$x)*(n-1)
 > ssy1 <- var(df1$y)*(n-1)
 > ssy2 <- var(df2$y)*(n-1)
 > sxy1 <- cor(df1$x,df1$y)*(n-1)
 > sxy2 <- cor(df2$x,df2$y)*(n-1)
 > d2xy1 <- ssy1 - sxy1^2/ssx1         # unexplained
 > d2xy2 <- ssy2 - sxy2^2/ssx2
 > Fs <- db^2/((ssx1+ssx2)/(ssx1*ssx2)*(d2xy1+ d2xy2)/(2*n-4))  # F 
statistic
 > 1-pf(Fs,1,2*n-4)
[1] 0.8827102

slight differences, but can be MUCH larger with more data!

greetings,

joerg




More information about the R-help mailing list