Simplified version of my model:
glm(cbind(young, adults) ~ as.factor(month) + effort, family = "binomial")
i.e., I study proportion of young as a dependent variable on month (or season), taking into account observer effort. However, the observer effort is dependent on the month:
How to solve this problem? I want to take into account both variables.
I was looking into literature but haven't found any solution. My naive idea is to compute mean effort for each month and instead of taking effort, take difference between effort and this mean. But this is just a naive idea, I would like to hear your advice. Thanks!
EDIT - response to Scortchi question - no, not actually:
> m = glm(cbind(young, adults) ~ as.factor(month) + effort, family = "quasibinomial")
> summary(m)
Call:
glm(formula = cbind(young, adults) ~ as.factor(month) + effort, family = "quasibinomial")
Deviance Residuals:
Min 1Q Median 3Q Max
-2.6829 -1.1138 0.0000 0.9717 4.0090
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.7868764 0.2170738 -3.625 0.000306 ***
as.factor(month)2 0.8857561 0.2606780 3.398 0.000710 ***
as.factor(month)3 0.7055741 0.2918895 2.417 0.015843 *
as.factor(month)4 0.3943665 0.3269973 1.206 0.228138
as.factor(month)5 0.4831113 0.3730987 1.295 0.195713
as.factor(month)6 -0.5217349 0.5027560 -1.038 0.299676
as.factor(month)7 0.1612901 0.4333682 0.372 0.709851
as.factor(month)8 0.5114890 0.3545159 1.443 0.149444
as.factor(month)9 0.7741060 0.3126087 2.476 0.013466 *
as.factor(month)10 0.6601093 0.2609937 2.529 0.011608 *
as.factor(month)11 0.4891778 0.2647303 1.848 0.064967 .
as.factor(month)12 0.4743091 0.2565709 1.849 0.064849 .
effort 0.0032506 0.0007976 4.075 5.02e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for quasibinomial family taken to be 1.270962)
Null deviance: 1518.0 on 878 degrees of freedom
Residual deviance: 1447.8 on 866 degrees of freedom
(750 observations deleted due to missingness)
AIC: NA
Number of Fisher Scoring iterations: 4
Warning message:
In summary.glm(m) :
observations with zero weight not used for calculating dispersion
>
>
> m = glm(cbind(young, adults) ~ as.factor(month), family = "quasibinomial")
> summary(m)
Call:
glm(formula = cbind(young, adults) ~ as.factor(month), family = "quasibinomial")
Deviance Residuals:
Min 1Q Median 3Q Max
-3.1142 -1.1266 0.0000 0.9235 3.6484
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.2296 0.1590 -1.444 0.14890
as.factor(month)2 0.8610 0.2059 4.181 3.09e-05 ***
as.factor(month)3 1.0887 0.2062 5.280 1.51e-07 ***
as.factor(month)4 0.4184 0.2374 1.762 0.07822 .
as.factor(month)5 0.1495 0.3086 0.485 0.62802
as.factor(month)6 -0.6177 0.3872 -1.595 0.11091
as.factor(month)7 -0.4636 0.3666 -1.265 0.20622
as.factor(month)8 0.1089 0.2976 0.366 0.71440
as.factor(month)9 0.4932 0.2490 1.980 0.04787 *
as.factor(month)10 0.6322 0.2096 3.016 0.00261 **
as.factor(month)11 0.4919 0.2152 2.286 0.02243 *
as.factor(month)12 0.2296 0.2127 1.079 0.28071
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for quasibinomial family taken to be 1.309215)
Null deviance: 2400.1 on 1345 degrees of freedom
Residual deviance: 2310.4 on 1334 degrees of freedom
AIC: NA
Number of Fisher Scoring iterations: 4
Warning message:
In summary.glm(m) :
observations with zero weight not used for calculating dispersion
>
>
>
> m = glm(cbind(young, adults) ~ effort, family = "quasibinomial")
> summary(m)
Call:
glm(formula = cbind(young, adults) ~ effort, family = "quasibinomial")
Deviance Residuals:
Min 1Q Median 3Q Max
-2.718 -1.119 0.000 1.011 4.236
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.326899 0.102473 -3.190 0.00147 **
effort 0.003827 0.000688 5.563 3.52e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for quasibinomial family taken to be 1.268467)
Null deviance: 1518.0 on 878 degrees of freedom
Residual deviance: 1475.4 on 877 degrees of freedom
(750 observations deleted due to missingness)
AIC: NA
Number of Fisher Scoring iterations: 4
Warning message:
In summary.glm(m) :
observations with zero weight not used for calculating dispersion
month
&effort
are in the model - compared to what you see when you put each in separately? If not, why do you think there's a problem? $\endgroup$lme4
'slmer
, where something likelmer (cbind (young, adults) ~ (effort | month), family="binomial")
might be what you want. Scortchi's comment sounds much more informed than I can be, though. $\endgroup$