IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

réaliser une ANOVA déséquilibrée? [Débutant]


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut réaliser une ANOVA déséquilibrée?
    Bonjour à tous et d'avance, je m'excuse sincèrement si je n'ai pas mis cette demande d'aide au bon endroit.

    Je vous explique mon petit soucis.

    Je suis en train de traiter les données d'une expérience que j'ai conduite.
    Nous prenions dans une matrice, sur les plusieurs colonnes, les diverses composante du comportement, et chaque ligne était un essai.

    Une des colonne est un flag pour voir si l'essai était correct. Si le flag est différent de la valeur flag ok (en l’occurrence 1), la ligne est supprimée comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    i=find(data(:,2)~=1);
    data(i,: )=[];
    tout simplement.


    Nous faisons ça pour toute les passations (for passation = 0:8) et selon une composante que nous choisissons au début ( nommée de façon tout à fait arbitraire 'composante', c'est bon l'imagination) qui renvoi donc à une des colonnes.

    Sauf que voulant mettre une ANOVA dans mon script (pour voir s'il y a une différence de résultats selon les conditions expérimentale), je veux mettre chacune des colonne choisies comme composante à étudier de mes 9 passations dans une seule matrice.

    je fais donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataAn(:,passation+1)=data(:,composante);
    mais forcément uniquement si je ne supprime pas les essais loupés, sinon ma matrice ne peut se faire car n'a pas le même nombre de valeur par colonne.
    Si je ne supprime pas les lignes annulées, toute les valeurs sur cets lignes sont à 0, puis je donc:

    _soit créer une matrice atypique?
    _soit ignorer une même valeur dans une ANOVA (lui dire de ne traiter que les valeurs différentes de 0 par exemple)?
    _soit faire encore autrement?



    J'espère être assez clair...
    D'avance merci pour vos lumières.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,
    Citation Envoyé par junta128 Voir le message
    ma matrice ne peut se faire car n'a pas le même nombre de valeur par colonne.
    Je n'ai pas bien compris cette partie, pourrais-tu ré-expliquer ou bien nous fournir un jeu de données simplifié qui permettrait de reproduire ce problème?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    salut,

    une remarque bête, mais en général les fonctions d'anova sous Matlab utilisent au minimum deux arguments : un pour les données, un pour les indices de groupes. Ces deux arguments doivent avoir le même nombre de lignes. Est-ce le cas avec ta démarche actuelle ?

    A+

  4. #4
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Comme suggéré par kangourou, plutôt que de concaténer des colonnes de tailles différentes dans une matrice avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataAn(:,passation+1)=data(:,composante);
    il faut concaténer en un unique vecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataAn=[dataAn;data(:,composante)];
    tout en stockant un vecteur de groupe, qui précise de quelle population provient chaque élément, de sorte que tu aies 2 vecteurs de la même taille de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Datas                    Groups
    composant1.1        1
    ...              1
    composant1.K1      1
    composant2.1        2
    ...              2
    composant2.K2      2
    Comme expliqué dans doc anova1
    p = anova1(X,group) performs ANOVA by group. For more information on grouping variables, see Grouping Variables.

    If X is a matrix, anova1 treats each column as a separate group, and evaluates whether the population means of the columns are equal. This form of anova1 is appropriate when each group has the same number of elements (balanced ANOVA). group can be a character array or a cell array of strings, with one row per column of X, containing group names. Enter an empty array ([]) or omit this argument if you do not want to specify group names.

    If X is a vector, group must be a categorical variable, vector, string array, or cell array of strings with one name for each element of X. X values corresponding to the same value of group are placed in the same group. This form of anova1 is appropriate when groups have different numbers of elements (unbalanced ANOVA).

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup pour vos réponses.

    Je les teste et vous fait un retour.

    Donc encore merci et bonne semaine

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour et désolé de ne répondre que si tardivement.

    J'ai donc mis les données dans deux vecteurs (je n'ai pas utilisé exactement la méthode de VV33D, j'ai bricolé ma tambouille) et c'est parfait, j'ai mon ANOVA.

    encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 23/01/2008, 09h17
  2. question pour réaliser une pagination
    Par vbcasimir dans le forum Langage
    Réponses: 1
    Dernier message: 13/10/2005, 08h17
  3. [GD] Réaliser une ombre
    Par Atomicfryer dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 03/02/2005, 16h35
  4. [FLASH MX] Comment réaliser une forme dentelée
    Par celina5880 dans le forum Flash
    Réponses: 4
    Dernier message: 04/11/2004, 17h48
  5. [TQuery]Réaliser une requete à partir d'une requete
    Par Eric SAULNIER dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/07/2004, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo