# [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

```