[R-sig-eco] Logistic regression with 2 categorical predictors

Andrew Halford andrew.halford at gmail.com
Mon Oct 20 16:06:16 CEST 2014


Hi Listers,

I am trying to run a logistic regression to look at the effects of
experiment type and age on the behavior of fish in a choice chamber
experiment.

I am using the glm approach and would like some advice on how or whether to
perform contrasts to work out what levels of Factor1 (Age) and Factor 2
(Test) are significantly different from each other. I have not been able to
clarify from my reading what is the appropriate approach to take when
dealing with a significant interaction term. I am also not sure as to how
one interprets a model when all the coefficients are non-significant but
the chi-square ANOVA shows a highly significant interaction term.

I have graphed up the data as dot plots and there is definitely evidence of
changes in proportions in later ages.

I want to provide evidence for when and for which tests there was a
'significant' change in behavior.

> snapper2
   age test prefer avoid
1    1   LR     15    14
2    1   SD     15    13
3    1   SG     17    14
4    1   SW     14    14
5    2   LR     17    14
6    2   SD     16    19
7    2   SG     20    10
8    2   SW     15    21
9    3   LR     10    16
10   3   SD     14    10
11   3   SG     14     9
12   3   SW     13    15
13   4   LR     12    11
14   4   SD     14    11
15   4   SG     13    12
16   4   SW     11    14
17   5   LR      4    12
18   5   SD      8     8
19   5   SG      0    18
20   5   SW     10     6
21   6   LR      0     6
22   6   SD      3     4
23   6   SG      0     5
24   6   SW      5     3

 >
dotplot(age~prefer/avoid,data=snapper2,group=snapper2$test,cex=1.5,pch=19,ylab="age",auto.key=list(space="right",title="Tests"))


> out2 <- glm(cbind(prefer,avoid) ~ age*test, data=snapper2,
family=binomial)

> summary(out2)

Call:
glm(formula = cbind(prefer, avoid) ~ age * test, family = binomial,
    data = snapper2)

Deviance Residuals:
 [1]  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Coefficients:
              Estimate Std. Error z value Pr(>|z|)
(Intercept)  6.899e-02  3.716e-01   0.186   0.8527
age2         1.252e-01  5.180e-01   0.242   0.8091
age3        -5.390e-01  5.483e-01  -0.983   0.3256
age4         1.802e-02  5.589e-01   0.032   0.9743
age5        -1.168e+00  6.866e-01  -1.701   0.0890 .
age6        -2.575e+01  9.348e+04   0.000   0.9998
testSD       7.411e-02  5.307e-01   0.140   0.8890
testSG       1.252e-01  5.180e-01   0.242   0.8091
testSW      -6.899e-02  5.301e-01  -0.130   0.8964
age2:testSD -4.401e-01  7.260e-01  -0.606   0.5444
age3:testSD  7.324e-01  7.846e-01   0.933   0.3506
age4:testSD  8.004e-02  7.863e-01   0.102   0.9189
age5:testSD  1.024e+00  9.301e-01   1.102   0.2707
age6:testSD  2.532e+01  9.348e+04   0.000   0.9998
age2:testSG  3.738e-01  7.407e-01   0.505   0.6138
age3:testSG  7.867e-01  7.832e-01   1.004   0.3152
age4:testSG -1.321e-01  7.764e-01  -0.170   0.8649
age5:testSG -2.568e+01  8.768e+04   0.000   0.9998
age6:testSG  2.121e-02  1.334e+05   0.000   1.0000
age2:testSW -4.616e-01  7.249e-01  -0.637   0.5242
age3:testSW  3.959e-01  7.662e-01   0.517   0.6054
age4:testSW -2.592e-01  7.858e-01  -0.330   0.7415
age5:testSW  1.678e+00  9.386e-01   1.788   0.0737 .
age6:testSW  2.626e+01  9.348e+04   0.000   0.9998
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 5.4908e+01  on 23  degrees of freedom
Residual deviance: 2.6113e-10  on  0  degrees of freedom
AIC: 122.73

Number of Fisher Scoring iterations: 23


> anova(out2, test="Chisq")

Analysis of Deviance Table

Model: binomial, link: logit

Response: cbind(prefer, avoid)

Terms added sequentially (first to last)


         Df Deviance Resid. Df Resid. Dev  Pr(>Chi)
NULL                        23     54.908
age       5   11.235        18     43.673 0.0469115 *
test      3    1.593        15     42.079 0.6608887
age:test 15   42.079         0      0.000 0.0002185 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

cheers

Andy

	[[alternative HTML version deleted]]



More information about the R-sig-ecology mailing list