![]()
Analyser ses données écologiques en SAS
![]()
Dernière modification : 20/03/2004
Comment définir le rôle de différents facteurs écologiques sur la distribution d'une espèce (autécologie)?
Objectif : identifier les variables qui permettent de prédire la présence ou l''abondance d'une espèce.
Procédure : La théorie est expliquée dans ce document. Pour les abondances, une première approche est d'abord la simple régression multiple linéaire. Mais elle ne sera adaptée qu'à des espèces dont les abondances diminuent ou augmentent régulièrement le long d'un gradient. On ne pourra donc pas identifier des relations non-linéaires comme celle définie par la courbe gaussienne, qui impliquent des régressions multiples non-linéaires. Enfin, pour prédire la présence d'une espèce, ou plutôt la probabilité de sa présence en fonction d'une variable continue ou d'une combinaison de variables continue, il faut utiliser la régression logistique.
Jeu de données : Une matrice de variables décrivant les stations où l'espèce a été observée avec une varaible définissant la présence ou l'abondance de l'espèce étudiée.
Exemples : Facteurs édaphiques et microclimatiques pour expliquer la distribution de Carabides, relevés botaniques ou de ressources florales pour expliquer la répartition de papillons ou d'autres butineurs, ...
Résultats: PROC REG : pour la régression linaire simple, linéaire multiple ou non-linéaire multiple. La procédure permet de définir a priori la combinaison de variables ou de laisser la "meilleure" combinaison s'exprimer (selection=forward, bacward ou stepwise).
PROC LOGISTIC : pour la régression logistique avec aussi la possibilité de sélectionner la meilleure combinaison des variables pour définir la probabilité de présence d'une espèce.
Réalise les régressions linéaires et non-linéaires.
- DATA=nomdudatasetSAS : nom du dataset avec la matrice de données [exemple : DATA=donnees ]
- MODEL = expression du modèle utilisé
dans le cas d'un modèle linéaire, on juxtapose le ou les noms des variables
dans le cas d'un modèle non-linéaire comme un modèle polynomial, on aura défini auparavant des variables avec les valeurs aux carrés, les cubes, .. des variables initiales et on utilisera ces variables à côté des variables initiales.
Lorsqu'on n'a pas de modèle défini au départ et qu'on souhaite que la procédure identifie la combinaison la plus performante, on peut utiliser la sous-option / SELECTION= avec les variantes FORWARD ou BACKWARD ou STEPWISE : FORWARD suppose que le modèle entre d'abord une variable qui explique le mieux la variable dépendante, puis elle cherche la variable qui explique le mieux la variance qui reste à expliquer, ... et ainsi de suite. BACKWARD introduit d'abord toutes les variables puis elle se débarasse des variables qui n'expliquent rien. STEPWISE est intermédiaire dans le sens où elle commence comme une FORWARD puis teste à chaque étape s'il n'y a pas moyen d'éliminer une variable entrée auparavant.- ;
Réalise les régressions logistiques.
- DATA=nomdudatasetSAS : nom du dataset avec la matrice de données [exemple : DATA=donnees ]
- MODEL = expression du modèle utilisé
On juxtapose le ou les noms des variables.
Lorsqu'on n'a pas de modèle défini au départ et qu'on souhaite que la procédure identifie la combinaison la plus performante, on peut utiliser la sous-option / SELECTION= avec les variantes FORWARD ou BACKWARD ou STEPWISE : FORWARD suppose que le modèle entre d'abord une variable qui explique le mieux la variable dépendante, puis elle cherche la variable qui explique le mieux la variance qui reste à expliquer, ... et ainsi de suite. BACKWARD introduit d'abord toutes les variables puis elle se débarasse des variables qui n'expliquent rien. STEPWISE est intermédiaire dans le sens où elle commence comme une FORWARD puis teste à chaque étape s'il n'y a pas moyen d'éliminer une variable entrée auparavant.- ;
Par exemple, on souhaiterait identifier les équations qui permettent de prédire les abondances d'un papillon (variable abond) a partir de plusieurs variables écologiques.
* Lecture des donnees : abondance du papillon et 4 variables ecologiques;
options nocenter;
data ligea; infile "ligeatest.txt" firstobs=2;
input abond aire humidite paysage altitude ;
run;
proc print;
* On calcule le carre des variables ecologiques (regression gaussienne);
data ligea; set ligea;
array vect(4) aire--altitude;
array carvec(4) carre1-carre4;
do j = 1 to 4;
carvec(j) = vect(j)*vect(j);
end;
* On cree la variable absence/presence pour la regression logistique;
* On cree le logarithme de l'abondance pour la regression gaussienne;
logabond=0; pres=0;
if abond > 0 then pres = 1;
if abond > 1 then logabond= log(abond);
run;
TITLE "Regression Multiple lineaire";
proc reg data=ligea;
model abond=aire--altitude /
selection=stepwise cli r;
run;
TITLE "Regression Multiple Gaussienne stepwise";
proc reg data=ligea;
model logabond=aire--altitude carre1--carre4 /
selection=stepwise cli r;
run;
TITLE "Regression Multiple Gaussienne backward";
proc reg data=ligea;
model logabond=aire--altitude carre1--carre4 /
selection=backward cli r;
run;
TITLE "Regression Multiple Gaussienne aire et son carré";
proc reg data=ligea;
model logabond=aire carre1;
run;
Obs abond aire humidite paysage altitude 1 0 2.0 1.1 0.74 0.86 2 0 3.0 1.1 1.00 1.00 3 0 3.2 1.2 0.73 0.85 4 0 4.2 1.2 0.64 0.80 5 2 6.0 1.5 0.67 0.82 6 7 7.8 1.5 0.22 0.47 7 15 10.1 2.1 0.22 0.47 8 18 11.0 2.1 0.25 0.50 9 32 12.0 2.1 0.02 0.14 10 43 12.1 2.1 0.79 0.89 11 45 12.5 2.4 0.50 0.71 12 46 12.9 2.4 0.32 0.57 13 36 13.0 2.6 0.78 0.88 14 24 14.0 2.9 0.01 0.45 15 20 15.0 3.0 0.92 0.87 16 14 15.0 3.5 0.18 0.42 17 9 16.0 4.5 0.07 0.26 18 7 17.0 5.0 0.06 0.25 19 3 19.0 5.3 0.31 0.56 20 0 21.0 6.5 0.87 0.93
Regression Multiple lineaire The REG Procedure Model: MODEL1 Dependent Variable: abond No variable met the 0.1500 significance level for entry into the model.
Aucune variable n'explique les abondances de l'espèce de manière linéaire.
Quid de la regression gaussienne en laissant la sélection des variables (Stepwise)
Regression Multiple Gaussienne Stepwise
The REG Procedure
Model: MODEL1
Dependent Variable: logabond
Stepwise Selection: Step 1
Variable carre4 Entered: R-Square = 0.1929 and C(p) = 168.7054
Analysis of Variance
Sum of Mean
Source DF Squares Square F Value Pr > F
Model 1 7.90408 7.90408 4.30 0.0527
Error 18 33.08129 1.83785
Corrected Total 19 40.98538
Parameter Standard
Variable Estimate Error Type II SS F Value Pr > F
Intercept 3.00613 0.55707 53.51889 29.12 <.0001
carre4 -2.07862 1.00231 7.90408 4.30 0.0527
All variables left in the model are significant at the 0.1500 level.
No other variable met the 0.1500 significance level for entry into the model.
Summary of Stepwise Selection
Variable Variable Number Partial Model
Step Entered Removed Vars In R-Square R-Square C(p) F Value Pr > F
1 carre4 1 0.1929 0.1929 168.705 4.30 0.0527
The REG Procedure
Model: MODEL1
Dependent Variable: logabond
Output Statistics
Dep Var Predicted Std Error Std Error Student Cook's
Obs logabond Value Mean Predict 95% CL Predict Residual Residual Residual -2-1 0 1 2 D
1 0 1.4688 0.4086 -1.5059 4.4435 -1.4688 1.293 -1.136 | **| | 0.064
2 0 0.9275 0.6149 -2.1999 4.0549 -0.9275 1.208 -0.768 | *| | 0.076
3 0 1.5043 0.3973 -1.4636 4.4723 -1.5043 1.296 -1.161 | **| | 0.063
4 0 1.6758 0.3496 -1.2655 4.6171 -1.6758 1.310 -1.279 | **| | 0.058
5 0.6931 1.6085 0.3668 -1.3421 4.5591 -0.9153 1.305 -0.701 | *| | 0.019
6 1.9459 2.5470 0.3904 -0.4169 5.5109 -0.6011 1.298 -0.463 | | | 0.010
7 2.7081 2.5470 0.3904 -0.4169 5.5109 0.1611 1.298 0.124 | | | 0.001
8 2.8904 2.4865 0.3727 -0.4673 5.4403 0.4039 1.303 0.310 | | | 0.004
9 3.4657 2.9654 0.5407 -0.1009 6.0317 0.5003 1.243 0.402 | | | 0.015
10 3.7612 1.3597 0.4456 -1.6384 4.3577 2.4015 1.280 1.876 | |*** | 0.213
11 3.8067 1.9583 0.3055 -0.9613 4.8779 1.8484 1.321 1.399 | |** | 0.052
12 3.8286 2.3308 0.3346 -0.6029 5.2644 1.4979 1.314 1.140 | |** | 0.042
13 3.5835 1.3964 0.4327 -1.5933 4.3862 2.1871 1.285 1.702 | |*** | 0.164
14 3.1781 2.5852 0.4022 -0.3857 5.5561 0.5928 1.295 0.458 | | | 0.010
15 2.9957 1.4328 0.4204 -1.5491 4.4148 1.5629 1.289 1.213 | |** | 0.078
16 2.6391 2.6395 0.4199 -0.3422 5.6211 -0.000404 1.289 -0.0003 | | | 0.000
17 2.1972 2.8656 0.5016 -0.1712 5.9025 -0.6684 1.259 -0.531 | *| | 0.022
18 1.9459 2.8762 0.5057 -0.1636 5.9161 -0.9303 1.258 -0.740 | *| | 0.044
19 1.0986 2.3543 0.3396 -0.5819 5.2904 -1.2557 1.312 -0.957 | *| | 0.031
20 0 1.2083 0.5015 -1.8285 4.2451 -1.2083 1.259 -0.959 | *| | 0.073
Sum of Residuals 0
Sum of Squared Residuals 33.08129
Predicted Residual SS (PRESS) 40.33509
La régression gaussienne est presque significative (P = 0.0527) pour une valeur du carré de l'altitude. Une fois que la sélection a entré cette variable, elle ne peut plus en entrer d'autres ...
Si maintenant on regarde le listing produit par la sélection backward :
Regression Multiple Gaussienne Backward
The REG Procedure
Model: MODEL1
Dependent Variable: logabond
Backward Elimination: Step 0
All Variables Entered: R-Square = 0.9519 and C(p) = 9.0000
Analysis of Variance
Sum of Mean
Source DF Squares Square F Value Pr > F
Model 8 39.01524 4.87691 27.23 <.0001
Error 11 1.97013 0.17910
Corrected Total 19 40.98538
Parameter Standard
Variable Estimate Error Type II SS F Value Pr > F
Intercept -0.80724 1.24034 0.07586 0.42 0.5285
aire 0.61264 0.17783 2.12580 11.87 0.0055
humidite 0.01938 0.76482 0.00011494 0.00 0.9802
paysage 0.25896 2.26722 0.00234 0.01 0.9111
altitude -5.81428 3.60568 0.46571 2.60 0.1351
carre1 -0.01039 0.01131 0.15121 0.84 0.3779
carre2 -0.16336 0.09192 0.56577 3.16 0.1031
carre3 -2.75345 2.19103 0.28285 1.58 0.2349
carre4 7.48277 4.32280 0.53666 3.00 0.1114
Un modèle avec toute les variables est significatif mais seule le paramètre de l'aire est different de 0. On procède donc à une élimination progressive des variabales inutiles ... Plus on élimine plus le F augmente ...
Backward Elimination: Step 1
Variable humidite Removed: R-Square = 0.9519 and C(p) = 7.0006
Analysis of Variance
Sum of Mean
Source DF Squares Square F Value Pr > F
Model 7 39.01513 5.57359 33.95 <.0001
Error 12 1.97025 0.16419
Corrected Total 19 40.98538
The REG Procedure
Model: MODEL1
Dependent Variable: logabond
Backward Elimination: Step 1
Parameter Standard
Variable Estimate Error Type II SS F Value Pr > F
Intercept -0.79096 1.01589 0.09953 0.61 0.4513
aire 0.61392 0.16321 2.32299 14.15 0.0027
paysage 0.25526 2.16627 0.00228 0.01 0.9081
altitude -5.79445 3.36999 0.48541 2.96 0.1112
carre1 -0.01037 0.01081 0.15119 0.92 0.3562
carre2 -0.16142 0.04854 1.81607 11.06 0.0060
carre3 -2.73982 2.03361 0.29802 1.82 0.2028
carre4 7.45150 3.96654 0.57943 3.53 0.0848
Backward Elimination: Step 2
Variable paysage Removed: R-Square = 0.9519 and C(p) = 5.0134
Analysis of Variance
Sum of Mean
Source DF Squares Square F Value Pr > F
Model 6 39.01285 6.50214 42.85 <.0001
Error 13 1.97253 0.15173
Corrected Total 19 40.98538
Parameter Standard
Variable Estimate Error Type II SS F Value Pr > F
Intercept -0.82695 0.93144 0.11960 0.79 0.3908
aire 0.61688 0.15503 2.40240 15.83 0.0016
altitude -5.63648 2.97227 0.54565 3.60 0.0804
carre1 -0.01058 0.01025 0.16183 1.07 0.3206
carre2 -0.16052 0.04608 1.84131 12.14 0.0040
carre3 -2.59580 1.56249 0.41878 2.76 0.1206
carre4 7.44937 3.81309 0.57912 3.82 0.0726
Backward Elimination: Step 3
Variable carre1 Removed: R-Square = 0.9479 and C(p) = 3.9169
The REG Procedure
Model: MODEL1
Dependent Variable: logabond
Backward Elimination: Step 3
Analysis of Variance
Sum of Mean
Source DF Squares Square F Value Pr > F
Model 5 38.85102 7.77020 50.97 <.0001
Error 14 2.13436 0.15245
Corrected Total 19 40.98538
Parameter Standard
Variable Estimate Error Type II SS F Value Pr > F
Intercept -0.10886 0.62122 0.00468 0.03 0.8634
aire 0.46073 0.03431 27.48644 180.29 <.0001
altitude -6.16334 2.93511 0.67224 4.41 0.0543
carre2 -0.20537 0.01546 26.91294 176.53 <.0001
carre3 -2.91392 1.53546 0.54906 3.60 0.0785
carre4 8.00301 3.78418 0.68187 4.47 0.0529
All variables left in the model are significant at the 0.1000 level.
On voit bien que deux variables sont largement significatives : l'aire et son carré. Si le niveau sélectionné était 0.05, les autres seraient d'ailleurs éliminées.
Summary of Backward Elimination
Variable Number Partial Model
Step Removed Vars In R-Square R-Square C(p) F Value Pr > F
1 humidite 7 0.0000 0.9519 7.0006 0.00 0.9802
2 paysage 6 0.0001 0.9519 5.0134 0.01 0.9081
3 carre1 5 0.0039 0.9479 3.9169 1.07 0.3206
The REG Procedure
Model: MODEL1
Dependent Variable: logabond
Output Statistics
Dep Var Predicted Std Error Std Error Student Cook's
Obs logabond Value Mean Predict 95% CL Predict Residual Residual Residual -2-1 0 1 2 D
1 0 -0.4130 0.2024 -1.3563 0.5303 0.4130 0.334 1.237 | |** | 0.094
2 0 -0.0494 0.2588 -1.0541 0.9552 0.0494 0.292 0.169 | | | 0.004
3 0 0.0602 0.1768 -0.8591 0.9796 -0.0602 0.348 -0.173 | | | 0.001
4 0 0.5282 0.1672 -0.3829 1.4392 -0.5282 0.353 -1.497 | **| | 0.084
5 0.6931 1.2127 0.1455 0.3190 2.1063 -0.5195 0.362 -1.434 | **| | 0.055
6 1.9459 1.7528 0.1760 0.8343 2.6713 0.1931 0.349 0.554 | |* | 0.013
7 2.7081 2.3689 0.1491 1.4725 3.2653 0.3392 0.361 0.940 | |* | 0.025
8 2.8904 2.7904 0.1423 1.8991 3.6817 0.0999 0.364 0.275 | | | 0.002
9 3.4657 3.8070 0.3244 2.7183 4.8957 -0.3413 0.217 -1.570 | ***| | 0.915
10 3.7612 3.5955 0.2263 2.6276 4.5634 0.1657 0.318 0.521 | |* | 0.023
11 3.8067 3.3972 0.1770 2.4777 4.3167 0.4095 0.348 1.177 | |** | 0.060
12 3.8286 3.4403 0.1534 2.5405 4.3401 0.3883 0.359 1.082 | |** | 0.036
13 3.5835 3.4933 0.2126 2.5397 4.4469 0.0902 0.327 0.276 | | | 0.005
14 3.1781 3.4610 0.1437 2.5686 4.3534 -0.2830 0.363 -0.779 | *| | 0.016
15 2.9957 3.1828 0.3535 2.0531 4.3125 -0.1870 0.166 -1.128 | **| | 0.964
16 2.6391 3.0150 0.1385 2.1264 3.9036 -0.3760 0.365 -1.030 | **| | 0.025
17 2.1972 2.0284 0.1880 1.0989 2.9578 0.1689 0.342 0.493 | | | 0.012
18 1.9459 1.5382 0.2145 0.5827 2.4937 0.4077 0.326 1.250 | |** | 0.113
19 1.0986 1.6544 0.2144 0.6991 2.6098 -0.5558 0.326 -1.703 | ***| | 0.209
20 0 -0.1260 0.3230 -1.2128 0.9608 0.1260 0.219 0.574 | |* | 0.119
Sum of Residuals 0
Sum of Squared Residuals 2.13436
Predicted Residual SS (PRESS) 5.66311
Si on refait la regression mais uniquement avec les deux variables identifiées comme pertinentes :
Regression Multiple Gaussienne aire et son carré
The REG Procedure
Model: MODEL1
Dependent Variable: logabond
Analysis of Variance
Sum of Mean
Source DF Squares Square F Value Pr > F
Model 2 38.12231 19.06115 113.18 <.0001
Error 17 2.86307 0.16842
Corrected Total 19 40.98538
Root MSE 0.41039 R-Square 0.9301
Dependent Mean 2.03689 Adj R-Sq 0.9219
Coeff Var 20.14762
Parameter Estimates
Parameter Standard
Variable DF Estimate Error t Value Pr > |t|
Intercept 1 -1.04941 0.25329 -4.14 0.0007
aire 1 0.43813 0.02952 14.84 <.0001
carre2 1 -0.19711 0.01463 -13.47 <.0001
Le test de F est bien meilleur et tous les paramètres sont bien différents de zéros.
L'équation est donc : Log(abondance) = -1.04941 + 0.43813 * aire - 0.19711 * aire * aire.
Lorsqu'on dispose des données d'abondance de l'espèce sur un gradient, il suffit de faire une régression polynomiale (équation du type y = b0 + b1x + b2x2 = une parabole) en utilisant les logarithmes des abondances pour pouvoir déduire les paramètres biologiques de l'espèce, soit :
- l'optimum u = - b1/(2b2) ;
- l'amplitude t = 1/(-2b2)1/2;
- le maximum c = exp (b0 + b1u + b2u2).
Il suffit donc de remplacer les valeurs b0, b1 et b2 définis par la régression dans les 3 équations pour avoir une interprétation écologique pertinente.
On remarquera donc que la régression linéaire ne donnait aucune équation plausible et que la sélection "stepwise" des variables masquait une véritable relation écologique. Il faut donc faire de multiples essais et tests avec des combinaisons différentes pour identifier celle qui est la plus explicative.
![]()