GLM et valeurs négatives: VEGAM?
Bonjour à tous,
J’aurais besoin que l’on m’aide pour réaliser des GLM.
Voici mon cas :
j’ai des valeurs d’émissions de N2O (variable expliquée) et des variables explicatives : ammonium (NH4), nitrates (NO3) et WFPS(taux de remplissage des pores du sol)
Mes valeurs de N2O ne suivent pas une loi normale. La distribution ressemble à celle d’une loi gamma mais j’ai des valeurs négatives de flux de N2o (qui atteignent -4 au maximum).
Le problème c’est que je veux faire des GLM mais je ne sais pas quelle famille choisir. Je n’ai pas trouvé d’exemples de GLM avec des valeurs négatives. Du coup, j’ai regardé sur internet pour voir quelles lois pouvaient correspondre et j’ai vu que celle de Gumbel pouvait être intéressante. Je me suis donc plongé dans la théorie des valeurs extrêmes, j’ai téléchargé le package VGAM.
Voici mon script et le summary :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| mod1<-vglm(data$n2o~data$no3*data$nh4*data$wfps,family=egev)
summary(mod1)
Call:
vglm(formula = data$n2o ~ data$no3 * data$nh4 * data$wfps, family = egev)
Pearson Residuals:
Min 1Q Median 3Q Max
location -2.90044 -0.53255 0.22745 0.72631 1.2353
log(scale) -0.81478 -0.69469 -0.39934 0.16192 22.1130
logoff(shape, list(offset = 0.5)) -24.31504 -0.47293 -0.21665 0.21016 19.0097
Coefficients:
Value Std. Error t value
(Intercept):1 1.0781e+00 6.4991e-01 1.65889
(Intercept):2 6.8235e-01 2.2945e-01 2.97387
(Intercept):3 -3.4070e-01 4.2363e-02 -8.04224
data$no3:1 -6.8335e-01 1.2275e-01 -5.56684
data$no3:2 -3.1688e-02 2.3861e-02 -1.32806
data$nh4:1 -2.8500e-01 1.3750e-01 -2.07264
data$nh4:2 -5.6694e-02 4.8934e-02 -1.15857
data$wfps:1 -2.2401e-02 1.2753e-02 -1.75648
data$wfps:2 1.8714e-03 4.0591e-03 0.46103
data$no3:data$nh4:1 3.2765e-02 1.3288e-02 2.46578
data$no3:data$nh4:2 1.5935e-03 3.6199e-03 0.44022
data$no3:data$wfps:1 1.9802e-02 2.7491e-03 7.20282
data$no3:data$wfps:2 1.3561e-03 4.1319e-04 3.28209
data$nh4:data$wfps:1 9.2564e-03 3.1529e-03 2.93581
data$nh4:data$wfps:2 1.6881e-03 8.8523e-04 1.90700
data$no3:data$nh4:data$wfps:1 -6.5548e-04 3.0717e-04 -2.13396
data$no3:data$nh4:data$wfps:2 -6.0697e-05 6.7707e-05 -0.89647
Number of linear predictors: 3
Names of linear predictors: location, log(scale), logoff(shape, list(offset = 0.5))
Dispersion Parameter for egev family: 1
Log-likelihood: -1956.877 on 2143 degrees of freedom
Number of Iterations: 16 |
Le problème c’est que je veux ensuite utiliser les fonctions step() et anova(test= »Chisq ») mais ça ne marche pas.
Donc mes questions sont :
-suis-je dans la bonne démarche ? ou existe-t-il une façon plus simple de faire pour un jeu de données avec des valeurs négatives ?
-si oui, faut-il utiliser la fonction vglm() et la famille egev ? Faut-il préciser les liens pour les paramètres gamma,bêta et xi ? si oui, comment les obtenir ?
-enfin, quelles fonctions adaptées à ce cas peuvent réaliser le même travail que step() et anova(test= »Chisq ») ?
Merci par avance pour vos réponses !
Tifenn