Analyse de données sur les arbres de Guadeloupe et des Caraibes

Michel DE LARA
(avec le soutien du Ministère de l'Outre-Mer)
Version pdf de ce document
Version sans bandeaux

Table des matières

1 Relations espèces-aires pour les arbres des Caraibes1

On dispose des données suivantes :
Ile volcan/calcaire Aire (km2)  Arbres (S)
Saint-Barthélémy    C   25  99
Désirade    C   23  104
Saint-Martin    C   98  148
Marie-Galante   C   157 155
Grande-Terre    C   556 143
Anguilla    C   88  42
Barbuda C   166 68
Antigua C   276 174
Barbade C   430 120
Les Saintes Terre de Haut   V   43  75
Les Saintes Terre de Bas    V   66  89
Basse-Terre V   848 340
Martinique  V   1078    365
Saba    V   13  115
Saint-Eustache  V   21  121
Saint-Kitts V   172 142
Nevis   V   97  43
Montserrat  V   84  209
Dominique   V   778 285
Sainte-Lucie    V   616 293
Sainte-Vincent  V   301 266
Les Grenadines  V   128 97
Grenade V   304 159
    

Question 1   Recopier dans un fichier arbres.sce le code suivant, puis l'exécuter en tapant la commande exec arbres.sce.




M=[25   99
23  104
98  148
157 155
556 143
88  42
166 68
276 174
430 120
43  75
66  89
848 340
1078    365
13  115
21  121
172 142
97  43
84  209
778 285
616 293
301 266
128 97
304 159];

// on aurait aussi pu faire
//M=fscanfMat('data_arbres_Caraibes.txt');

aires=M(:,1);
arbres=M(:,2);
// on extrait aires et nombres d'espèces

xdel(0:6);
// on ferme d'éventuelles fenêtres graphiques numérotées de 0 à 4

xbasc();plot(aires',arbres');
// comme les aires ne sont pas ordonnées, le graphique n'est pas lisible

[aires_sorted,indexes]=sort(aires);
// on ordonne les aires par ordre décroissant

xset("window",1);
xbasc();
plot2d(aires_sorted,arbres(indexes),rect=[0,0,1200,400],style=-1);
 xtitle(["nombre especes en fonction de aire ile"])
legends("nombre especes",[0;0],2)
legends("aire ile (km2)",[0;1],4)

xset("window",2);
xbasc();
plot2d(aires_sorted,arbres(indexes),logflag="ll",style=-1);
 xtitle(["nombre especes en fonction de aire ile (echelle logarithmique)"])
// la même chose, mais en coordonnées log-log

Figure: Nombre d'espèces en fonction de l'aire de l'île
\begin{figure}
\begin{center}
\mbox{\begin{picture}(300.00,212.00)
\epsfig{fi...
....eps,width=300.00pt,height=212.00pt}\end{picture}}
\end{center}
\end{figure}

Figure: Nombre d'espèces en fonction de l'aire de l'île (échelle logarithmique)
\begin{figure}
\begin{center}
\mbox{\begin{picture}(300.00,212.00)
\epsfig{fi...
....eps,width=300.00pt,height=212.00pt}\end{picture}}
\end{center}
\end{figure}

Il est classique en écologie d'observer des relations espèces-aires de la forme

   nombre d'espèces$\displaystyle \quad = c \times$   (aire)$\displaystyle ^z$ (1)

On cherche à vérifier si une telle loi est valable pour les arbres des Caraibes en fonction de l'aire des îles.     

Question 2   Effectuer, à l'aide de la macro reglin une régression linéaire du logarithme du nombre d'espèces sur le logarithme de l'aire. Vérifier graphiquement que la droite de régression traverse bien le nuage de points. Tracer sur un autre graphique le nombre d'espèces en fonction de l'aire ainsi que la courbe de la relation (1).



[a,b,sig]=reglin(log(aires_sorted)',log(arbres(indexes))');
 xset("window",3);
 xbasc();
 plot2d([log(aires_sorted) log(aires_sorted)],...
       [log(arbres(indexes)) a*log(aires_sorted)+b],...
        style=[-1,1]);
  xtitle(["regression lineaire log(nombre especes) sur log(aire ile)"])
 
 xset("window",4);
 xbasc();
 plot2d([aires_sorted aires_sorted],...
       [arbres(indexes) (exp(b))*(aires_sorted)^a],...
        rect=[0,0,1200,400],style=[-1,1]);
  xtitle(["relation puissance (nombre especes)--(aire ile)"])

Figure: Régression linéaire log(nombre d'espèces) sur log(aire de l'île)
\begin{figure}
\begin{center}
\mbox{\begin{picture}(300.00,212.00)
\epsfig{fi...
....eps,width=300.00pt,height=212.00pt}\end{picture}}
\end{center}
\end{figure}

Figure: Relation puissance entre nombre d'espèces et aire de l'île
\begin{figure}
\begin{center}
\mbox{\begin{picture}(300.00,212.00)
\epsfig{fi...
....eps,width=300.00pt,height=212.00pt}\end{picture}}
\end{center}
\end{figure}

    

Question 3   Isoler parmi les données celles correspondant aux îles volcaniques et reprendre les questions précédentes pour voir si l'ajustement est de meilleure qualité.



aires=M(10:$,1);
arbres=M(10:$,2);
// seulement les îles volcaniques

Figure: Régression linéaire log(nombre d'espèces) sur log(aire de l'île) : îles volcaniques
\begin{figure}
\begin{center}
\mbox{\begin{picture}(300.00,212.00)
\epsfig{fi...
....eps,width=300.00pt,height=212.00pt}\end{picture}}
\end{center}
\end{figure}

Figure: Relation puissance entre nombre d'espèces et aire de l'île : îles volcaniques
\begin{figure}
\begin{center}
\mbox{\begin{picture}(300.00,212.00)
\epsfig{fi...
....eps,width=300.00pt,height=212.00pt}\end{picture}}
\end{center}
\end{figure}

2 Distribution des circonférences d'arbres de Guadeloupe2

On dispose de très nombreuses données de circonférences d'arbres de Guadeloupe sur 47 parcelles.
Parcelle    Arbre   Circonférence
1   1   52
1   2   180
...........
47  26  39
47  27  32
    

Question 4   Charger ces données contenues dans le fichier data_arbres_Gpe.txt sous la forme d'une matrice $ M$ grâce à la macro fscanfMat. Extraire de $ M$ la dernière colonne et en faire un histogramme à l'aide de la macro histplot. On commencera par dix classes de circonférence, puis on fera un petit programme pour afficher une suite d'histogrammes avec trente, soixante,..., trois cent classes pour tenter d'identifier des structures.



M=fscanfMat('data_arbres_Gpe.txt');
c=M(:,3);
// circonférences
circonferences=c(c>0);
size(circonferences)
// nombre de données

histplot(10,circonferences);
// premier histogramme avec 10 classes de circonférence

for j=30:30:300 do
xbasc();histplot(j,circonferences);
halt()
end

Figure: Histogramme avec 300 classes de circonférence
\begin{figure}
\begin{center}
\mbox{\begin{picture}(300.00,212.00)
\epsfig{fi...
....eps,width=300.00pt,height=212.00pt}\end{picture}}
\end{center}
\end{figure}

Une analyse extérieure permet de regrouper les parcelles en ``lots'' cohérents. Par exemple les parcelles sous latitude Nord, sur versants au vent, en altitude élevée sont (dans le désordre)
44 41 39 25 15 9 27 7 8
    

Question 5   Extraire les circonférences correspondant à ces parcelles et retracer des histogrammes.



parcelles=M(:,1);
x=parcelles;
LNAVAE=(x==44|x==41|x==39|x==25|x==15|x==9|x==27|x==7|x==8);
circ_LNAVAE=circonferences(LNAVAE);
circonferences=circ_LNAVAE(circ_LNAVAE>30);
// nombre de données

xbasc();histplot(10,circonferences);
// premier histogramme avec 10 classes de circonférence

for j=30:30:300 do
xbasc();histplot(j,circonferences);
halt()
end

circonferences=M(:,3);

Figure: Histogramme avec 300 classes de circonférence (par parcelles)
\begin{figure}
\begin{center}
\mbox{\begin{picture}(300.00,212.00)
\epsfig{fi...
....eps,width=300.00pt,height=212.00pt}\end{picture}}
\end{center}
\end{figure}



Notes

... Caraibes1
avec les données de Bernard ROLLET et le concours d'Alain ROUSTEAU
... Guadeloupe2
avec les données de Bernard ROLLET et d'Alain ROUSTEAU