gam: разные результаты с разным порядком переменных - PullRequest
0 голосов
/ 24 марта 2020

Я заметил довольно тревожную вещь при выполнении игр в R. Две модели с одинаковым набором переменных дают разные результаты в зависимости от порядка переменных:

 g_2303e=gam(nons~vuosi+CWD+s(zb)+ s(intens),family=nb, data= d2303)
Warning message:
In model.matrix.default(mt, mf, contrasts) :
  non-list contrasts argument ignored
> summary(g_2303e)


Anova for Parametric Effects
          Df Sum Sq Mean Sq F value    Pr(>F)    
vuosi      1 0.3396 0.33962  3.3619   0.06992 .  
CWD        1 0.4622 0.46216  4.5750   0.03506 *  
s(zb)      1 2.8278 2.82780 27.9927 8.062e-07 ***
s(intens)  1 1.7755 1.77551 17.5760 6.289e-05 ***
Residuals 93 9.3948 0.10102                      
---

Anova for Nonparametric Effects
            Npar Df  Npar F    Pr(F)    
(Intercept)                             
vuosi                                   
CWD                                     
s(zb)             3 18.7238 1.39e-09 ***
s(intens)         3  0.6709    0.572    
---


>  g_2303eb=gam(nons~vuosi+ s(intens)+CWD+s(zb),family=nb, data= d2303)
Warning message:
In model.matrix.default(mt, mf, contrasts) :
  non-list contrasts argument ignored
> summary(g_2303eb)


Number of Local Scoring Iterations: 8 

Anova for Parametric Effects
          Df Sum Sq Mean Sq F value    Pr(>F)    
vuosi      1 0.3396  0.3396  3.3619   0.06992 .  
s(intens)  1 0.0041  0.0041  0.0406   0.84075    
CWD        1 0.4612  0.4612  4.5653   0.03525 *  
s(zb)      1 4.6002  4.6002 45.5378 1.261e-09 ***
Residuals 93 9.3948  0.1010                      
---

Anova for Nonparametric Effects
            Npar Df  Npar F    Pr(F)    
(Intercept)                             
vuosi                                   
s(intens)         3  0.6709    0.572    
CWD                                     
s(zb)             3 18.7238 1.39e-09 ***

Я полагаю, что Anova сравнивает переменные в порядок, в котором они были записаны в формуле, вместо этого сравнивая их по отдельности с некоторым общим значением (?) Должен ли я как-то настроить контраст? Я попробовал options(contrasts = c("contr.sum","contr.poly")), что решило совершенно другую проблему, с которой я столкнулся ранее с определенным GLM-вопросом, здесь это не сработало (вы догадались, я не статистик, а просто подражатель-эколог). Или я должен просто перебрать все возможные переменные ордера и выбрать модель с лучшим AI C (эта опция неудобна).

...