[R] Problem with Slope.test function

Антон Морковин A-Morkovin at yandex.ru
Fri Mar 18 08:04:04 CET 2011


Hi all,
I need to test the significnce of difference between slopes of two regression lines and regression line with theoretical line. I try to use Slope.test function from emu package,
but an error occured... 

library(emu)
d1<-data.frame(P1=c(1,2,3,5,7,8,9,13,14,15),
 P2=c(1,2,5,8,11,13,15,15,18,24),
 R=c(2,7,8,9,16,21,27,31,33,36)) # First data set
m1<-lm(R~P1+P2+P1*P2,data=d1) # Regr. model

d2<-data.frame(P1=c(1,5,4,7,9,1,12,4,4,5),
 P2=c(1,2,0,7,4,1,2,0,7,0),
 R=c(3,12,15,15,9,7,4,5,6,1)) # Second data set
m2<-lm(R~P1+P2+P1*P2,data=d2) # Regr. model

Slope.test(data.frame(fitted(m1),d1$R),data.frame(fitted(m2),d2$R)) #Doesn't work...

Is it correct to use t-test in this situation and how to compute  df  for it? My solution is:

s1<-coefficients(summary(lm(fitted(m1)~d1$R)))[2,1] #Slopes of regr.line
s2<-coefficients(summary(lm(fitted(m2)~d2$R)))[2,1]
se1<-coefficients(summary(lm(fitted(m1)~d1$R)))[2,2] #SE of slopes
se2<-coefficients(summary(lm(fitted(m2)~d1$R)))[2,2]
df1<-df.residual(lm(fitted(m1)~d1$R)) #D. of f.
df2<-df.residual(lm(fitted(m2)~d1$R))

kk<-function(se1,se2,df1,df2){(se1^2+se2^2)^2/(se1^4/(df1-1)+se2^4/(df2-1))} #D. of f. for Welsch test
tt<-function(s1,s2,se1,se2){(s1-s2)/sqrt(se1^2+se2^2)}
pp<-function(s1,s2,se1,se2,df1,df2){2*pt(-abs(tt(s1,s2,se1,se2)),df=kk(se1,se2,df1,df2))}

pp(s1,s2,se1,se2,df1,df2) # p-value

## Theoretical line

s3<-0.75
se3<-0
df3<-0

pp(s1,s3,se1,se3,df1,df3) # p-value
pp(s2,s3,se2,se3,df2,df3) # p-value


Thanks,
A.M.



More information about the R-help mailing list