Вы находитесь на странице: 1из 2

function Matlab_ACP()

% Analyse en Composantes Principales, Toolbox Statistic Matlab


% Charlne Carayol et Sophie Lecourtois
% Version 1.0 - Mars 2011
% La commande qui suit permet de lire le fichier excel comportant la base de
% de donnes avec la fonction xlsread : Donnees = xlsread('ficher.xls',
'onglet', 'matrice des donnes');
Donnees = xlsread('ficher.xls', 'onglet', 'matrice des donnees');
% Les lignes suivantes permettent d'attribuer chaque polluant la colonne
% qui lui correspond dans la base de donnes. Par exemple, pour le PM10, la
% colonne qui lui correspond dans la base de donnes est la colonne 2
PM10
NO2
NO
CO
O3
Trafic
Tmin
Tmax
Pluie
Insol
Vent

=
=
=
=
=
=
=
=
=
=
=

Donnees(:,2); %micro_g/m3
Donnees(:,3); %micro_g/m3
Donnees(:,4); %micro_g/m3
Donnees(:,5); %micro_g/m3
Donnees(:,6); %micro_g/m3
Donnees(:,7); %nombre de voitures
Donnees(:,8); %C
Donnees(:,9); %C
Donnees(:,10); %mm
Donnees(:,11); %h
Donnees(:;12); %m/s

% Cette ligne permet de dfinir les variables.


Variables = ['PM10
'O3
'Pluie

'; 'NO2
'; 'Trafic
';'Insol

'; 'NO
'; 'Tmin
'; 'Vent

'; 'CO
'; 'Tmax
'];

'; ...
'; ...

% Cette commande permet de convertir les donnes numriques correspondant


% aux individus en chane de caractre.
Individus = num2str(Donnees(:,1));
% Donnes (:,2:12) correspondant la matrice de donnes.
Donnees = Donnees(:,2:12);
% Les lignes qui suivents permettent de raliser des bote moustaches
% (boxplot)sur nos variables.
figure('Name','Polluants micro-g/m3 anne 2009','NumberTitle','off');
boxplot(Donnees(:,1:5),'orientation','horizontal','labels',Variables(1:5,1:5));
figure('Name','Trafic anne 2009','NumberTitle','off');
boxplot(Trafic,'orientation','horizontal','labels','Trafic');
figure('Name','Tmin anne 2009','NumberTitle','off');
boxplot(Tmin,'orientation','horizontal','labels','T min');
figure('Name','Tmax anne 2009','NumberTitle','off');
boxplot(Tmax,'orientation','horizontal','labels','T max');
figure('Name','Pluie anne 2009','NumberTitle','off');
boxplot(Pluie,'orientation','horizontal','labels','Pluie');
figure('Name','Insol anne 2009','NumberTitle','off');
boxplot(Pluie,'orientation','horizontal','labels','Insol');
%
%
%
%
%

La commande suivante permet de raliser l'analyse en composantes


principales: [COEFF,scores,latent,tsquare]=princomp(X).
COEFF correspond une matrice dont chaque colonne contient les
coefficients pour une composantes principales.
scores est la reprsentation de X dans l'espace des composantes

%
%
%
%
%
%

principales.
latent renvoie un vecteur contenant les valeurs propres de la matrice
de covariance X.
tsquare renvoie au test statistique d'Hotteling pour chaque point.
princomp(zscore(X))permet de raliser l'analyse en composantes
principales sur des valeurs standardises.

[vect_propres,scores,val_propres,t2] = princomp(zscore(Donnees));
% La commande suivante permet de raliser le graphe des valeurs propres.
figure('Name','Spectre des valeurs propres','NumberTitle','off');
bar(val_propres);
% Et ceci nous donne les inerties cumules des valeurs propres.
cumsum(val_propres)./sum(val_propres);
% Cette commande permet de raliser la carte factorielle des individus sur
% les deux axes principaux.
figure('Name','individus','NumberTitle','off');
plot(scores(:,1),scores(:,2),'r+');
text(scores(:,1),scores(:,2),Individus);
a = axis;
xl = a(1);xu = a(2);yl = a(3);yu = a(4);
xlabel('1re Composante Principale')
ylabel('2nde Composante Principale')
hold on
line([xl xu],[0 0])
line([0 0],[yl yu])
% Cette commande permet de raliser le cercle des corrlations variables
% sur les deux axes principaux.
figure('Name','Variables','NumberTitle','off');
plot(vect_propres(:,1),vect_propres(:,2),'.');
text(vect_propres(:,1),vect_propres(:,2),Variables);
hold on
[x,y,z] = cylinder(1,200);
plot(x(1,:),y(1,:))
hold on
line([-1 1],[0 0])
line([0 0],[-1 1])
axis equal

Вам также может понравиться