Coder Social home page Coder Social logo

riverarodrigoa / statis-matlab Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 2.0 222 KB

Fonctions pour calculer le methode STATIS sur matlab|| Functions for calculate the method STATIS in MatLAB

MATLAB 100.00%
statistics matlab matlab-functions statistical-analysis

statis-matlab's Introduction

Méthode STATIS

STATIS est une méthode exploratoire d’analyse des données utilisée pour les données quantitatives. [Escouffier et L’Hermier des Plantes, 1976]. Elle réalise l’exploration simultanée de plusieurs tableaux de données recueillis sur les mêmes individus. Le nombre de variables peut différer d’un tableau à un autre. On parle communément de T études . Son but est la recherche d’une structure commune aux études, appelée infrastructure. Pour la mettre en place, il faut passer par les quatre étapes successives suivantes :

Étude de l’interstructure

On y compare globalement les T tableaux de données. L'objet est représentatif de l'étude (t) ( est la métrique). L'objet est représenté par la formule suivante :

Le produit scalaire de Hilbert-Schmidt est utilisé pour définir une distance entre objets

.

A partir de ce produit scalaire est définie la norme de l’objet

et la distance entre les objets

et

:

Dans le cas où les objets ont des normes trop différentes, il est primordial de les normaliser en utilisant l'objet normé . \newline Le produit scalaire permet de déterminer la matrice des produits scalaires entre , appelée S. Sa diagonalisation permettra d'obtenir une image euclidienne des T études.

En décomposant sur l'espace des variables, on obtient la formule :

représente le individu du tableau (t).

Le coefficient d'association utilisé est le coefficient de corrélation vectorielle entre études, appelé coefficient RV. Au vu des propriétés qu’il possède, il est utile pour l’interprétation de l'interstructure.\ On note la quantité :

La valeur de RV varie entre 0 et 1. Plus les deux matrices et sont similaires et plus sa valeur s'approche de 1. \newline Enfin, l'image euclidienne des T études est obtenue, après avoir affecté un poids à chaque étude. sera utilisée comme matrice diagonale pour contenir tous les poids . Après avoir effectué une ACP de la matrice S, nous obtenons les points , qui sont associés aux études dans l'image euclidienne obtenue. La distance entre deux points est la meilleure approximation possible de la distance de HS entre les objets et . Il est à noter que dans ce cadre, représente le cosinus de l'angle entre les vecteurs et .

Comme dans l'ACP, si l'on ne veut pas que des tableaux interviennent dans la constitution de l'image euclidienne, on les ajoute comme tableaux supplémentaires.

Recherche d'un compromis

Un compromis est une moyenne pondérée entre les objets .

Les coefficients

sont déterminés en respectant les deux critères suivants :

En considérant le vecteur propre de S associé à la plus grande valeur propre , les coefficients sont déterminés comme suit :

Dans l’image euclidienne des études, le compromis est situé sur le premier axe.

Étude de l’intrastructure

L’ACP du nuage d’individus fournit l’image euclidienne compromis. Soient les valeurs propres de la matrice WD associés aux vecteurs propres . L’image euclidienne compromis des individus est composée des points ; leurs coordonnées sur l’axe k sont les composantes du vecteur :

L’étude de l’interstructure a montré l’existence d’une structure des individus commune aux études, la représentation de l’image euclidienne compromis permet sa description. La distance entre deux points et de l’image euclidienne compromis représente la distance compromis entre les individus i et j, elle est aussi la distance moyenne entre i et j sur la période étudiée. Il est possible d’interpréter la position des individus sur un axe quelconque, noté k, pour cela on calcule les corrélations de la composante principale du compromis correspondant à cet axe avec les variables de chaque étude.

Ces corrélations peuvent être résumés sur un graphique. L’étude de ce dernier est utile pour expliquer les positions compromis des individus dans leur image euclidienne.

Représentation des trajectoires des individus

Les trajectoires décrivent les écarts des objets entre eux et avec le compromis au niveau individuel. Leur représentation se fait dans l’image euclidienne compromis en même temps que les T nuages d’individus débouchant sur une représentation de nT points. Pour obtenir la trajectoire, on place les différentes positions d’un individu tel qu’il est décrit par chaque étude (t), on se base sur les coordonnées des points compromis sur l’axe k. En considérant chaque étude comme étant placée en supplémentaire, les coordonnées des points sont pour :

Ces points n’ont pas influencé la construction de l’image euclidienne compromis, mais ils ont pu y être représentés. Les trajectoires décèlent les individus i responsables des écarts entre les études (t) et (t’). Elles s’interprètent par rapport à l’évolution moyenne. Et il y a deux grandes familles de formes de trajectoires:

Si un individu est absent de certaines études, on le place dans l’image euclidienne compromis en le traitant comme un individu supplémentaire et en calculant sa trajectoire. Les individus placés en supplémentaire n’interviennent pas dans la détermination de l’infrastructure ni du compromis, ils n’ont pas de position compromis.

statis-matlab's People

Contributors

mounirb avatar nafis avatar riverarodrigoa avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

nafis mounirb

statis-matlab's Issues

Centrage et réduction des données

Le problème maintenant c'est de trouver la façon correcte de faire le centrage et réduction des tableaux. Il y a deux propositions pour l'instant:

Proposition 1

function [Acr] = centrer(A)
%----------------------------------
% Centrage et reduction des donnees
%----------------------------------
[n,p]=size(A);
Ac= A - repmat(mean(A),n,1);
Acr=Ac.*repmat(std(A),n,1);

Proposition 2

function [Acr] = centrer(A)
%----------------------------------
% Centrage et reduction des donnees
%----------------------------------
UN = ones(size(A));
Me = UN * diag(mean(mean(A)));
Ecart_type = UN * diag(std(std(A)));
ec  = 1./Ecart_type;
Acr  = (A - Me).*ec;
end

[Image euclidienne compromis] Test de validation échoue

Test de validation

%% Validation de l'image euclidienne compromis
alpha = sqrt(alpha_t);
B_val = alpha(1)*Xc(:,:,1);
for i=1:T
    B_val =[B_val [alpha(i)*Xc(:,:,i)]];
end
% ACP du B_val
[XU_v, VaP_v, VeP_v] = ACP(B_val);

B_val_c = XU_v(:,1:j);

Decision = isequal(B,B_val_c);
if Decision
    disp('[Validation test] Image euclidienne compromis correcte');
else
    disp('[Validation test] Image euclidienne compromis incorrecte');
    disp('Image euclidienne');
    disp(B);
    disp('Validation');
    disp(B_val_c);
end

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.