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 :
Le problème c’est que je veux ensuite utiliser les fonctions step() et anova(test= »Chisq ») mais ça ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Partager