[R] Problem with Slope.test function
Антон Морковин
A-Morkovin at yandex.ru
Fri Mar 18 18:33:44 CET 2011
Good evening! Thanks for your answer, but I don't really understand how to use vcov matrix for comarision of multiple regression line slopes...
I've read this theme about using t-test in slope comarision:
http://www.mail-archive.com/r-help@r-project.org/msg01713.html
but how to use it in case of multiple regression? Is it correct to use intersept and its se of observed/predicted regression line for this comarision?
Thanks,
Anton
18.03.2011, 13:55, "Daniel Kaschek" <daniel.kaschek at physik.uni-freiburg.de>:
> Hi Антон,
>
> my approach would be to use the estimated variance of the slope
> estimator. For your regression models m1 and m2 you can enter
>
> vcov(m1)
> vcov(m2)
>
> to get the variance-covariance matrix of m1 and m2. Then, assuming that
> the slope estimator is normal, you compute the p-value for slope_theo
> with respect to this normal distribution.
>
> On Fri, 2011-03-18 at 10:04 +0300, Антон Морковин wrote:
>
>> 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.
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
> --
> Daniel Kaschek
> Physikalisches Institut, Freiburg
> Hermann-Herder-Str. 3
> 79104 Freiburg
>
> Office: Westbau, 02020
> Phone: +49-761-203-8531
More information about the R-help
mailing list