Simplified version of my model:

    glm(cbind(young, adults) ~ 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:

![enter image description here][1]


  [1]: https://i.sstatic.net/9VZ2I.png

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