Re: [R] testing for significantly different slopes

From: Dylan Beaudette <dylan.beaudette_at_gmail.com>
Date: Wed, 05 Mar 2008 15:53:30 -0800

Thanks for the quick reply.

On Wednesday 05 March 2008, Bill.Venables_at_csiro.au wrote:
> Generically, let y be the response, f the factor and x the covariate.
> Then
>
> pModel <- lm(y ~ f + x, data) # parallel regressions
> sModel <- lm(y ~ f/x, data) # separate regressions (the '-1' is
> optional)
> anova(pModel, sModel) # tests whether there are differences in
> slopes.
>
> In the example you quote below (which seems oddly familiar...) there are
> only two classes so you get only 1 degree of freedom. Since the tail
> area is 0.064, a strict 5% straight-up-and-down frequentist would say
> you retain the null hypothesis of parallel regressions (i.e. equal
> slopes) at the 0.05 level, but a cautious fence sitter would keep a
> watchful eye on the evidence.

Thanks for the further clarification. I was hoping to get a response by using that example-- perhaps I should have included a bit more (to follow).

> The same logic applies however many classes the factor has, (or for that
> matter however many covariates). You just get more degrees of freedom
> for the test, and more ways things can depart from parallelism.

Got it.

> What's the problem?

The problem is that I would like to do a pair-wise comparison between the multiple slopes. For example with this model:

lm1 <- lm (Sepal.Length ~ Species/Sepal.Width -1, data=iris)

# truncated output from summary(lm1)
# just the slope terms

Speciessetosa:Sepal.Width       0.6905     0.1657   4.166 5.31e-05 ***
Speciesversicolor:Sepal.Width   0.8651     0.2002   4.321 2.88e-05 ***
Speciesvirginica:Sepal.Width    0.9015     0.1948   4.628 8.16e-06 ***

If I wanted to test the hypothesis that Speciessetosa:Sepal.Width was different than Speciesversicolor:Sepal.Width, what course of action should I take?

I have found an example in the gmodels package, using the estimable() function, but the documentation is not clear to me. Here is the example:

library(gmodels)

# example from manual
lm1 <- lm (Sepal.Length ~ Sepal.Width + Species + Sepal.Width:Species, data=iris)

cm <- rbind(

'Setosa vs. Versicolor'   = c(0, 0, 1, 0, 1, 0),
'Setosa vs. Virginica'    = c(0, 0, 0, 1, 0, 1),
'Versicolor vs. Virginica'= c(0, 0, 1,-1, 1,-1)
)

estimable(lm1, cm)

This *appears* to test what I am after, but I am not clear on how the 'cm' argument works.

Am I barking up the wrong tree here?

Thanks,

Dylan

>
> Bill Venables
> CSIRO Laboratories
> PO Box 120, Cleveland, 4163
> AUSTRALIA
> Office Phone (email preferred): +61 7 3826 7251
> Fax (if absolutely necessary): +61 7 3826 7304
> Mobile: +61 4 8819 4402
> Home Phone: +61 7 3286 7700
> mailto:Bill.Venables_at_csiro.au
> http://www.cmis.csiro.au/bill.venables/
>
> -----Original Message-----
> From: r-help-bounces_at_r-project.org [mailto:r-help-bounces_at_r-project.org]
> On Behalf Of Dylan Beaudette
> Sent: Thursday, 6 March 2008 9:28 AM
> To: r-help_at_r-project.org
> Subject: [R] testing for significantly different slopes
>
> Hi,
>
> How would one go about determining if the slope terms from an analysis
> of
> covariance model are different from eachother?
>
> Based on the example from MASS:
>
> library(MASS)
>
> # parallel slope model
> l.para <- lm(Temp ~ Gas + Insul, data=whiteside)
>
> # multiple slope model
> l.mult <- lm(Temp ~ Insul/Gas -1, data=whiteside)
>
> # compare nested models:
> anova(l.para, l.mult)
> Analysis of Variance Table
>
> Model 1: Temp ~ Gas + Insul
> Model 2: Temp ~ Insul/Gas - 1
> Res.Df RSS Df Sum of Sq F Pr(>F)
> 1 53 52.045
> 2 52 48.704 1 3.341 3.5673 0.06451 .
>
> It seems like this approach would yield insight into whether or not the
> two
> slope terms (InsulBefore:Gas and InsulAfter:Gas) were different.
> However, is
> there a formal test for this sort of question, and can it be generalized
> to
> differences between more than 2 slope terms?
>
> Thanks,
>
> Dylan

-- 
Dylan Beaudette
Soil Resource Laboratory
http://casoilresource.lawr.ucdavis.edu/
University of California at Davis
530.754.7341

______________________________________________
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.
Received on Thu 06 Mar 2008 - 00:08:32 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 06 Mar 2008 - 10:30:19 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive