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 :

pb matlab methode anova.stat


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Par défaut pb matlab methode anova.stat
    bonjour

    je débutte avec Matlab et j'ai un petit programme à faire pour mon rattrapage et je suis bloqué sur un truc qui doit etre vraiment facile.
    l'objectif est que je dois créer un programme de mon choix sur les stats.
    mon programme doit lire une base de donnée moi même et ensuite regarder si le nombre de but marqué en une saison dépend du championnat.
    J'ai bien avancé mais là je suis bloqué sur un truc à la con je pense...plusieurs erreurs sont signaléé ( Error: File: arenderelundi.m Line: 19 Column: 7
    The expression to the left of the equals sign is not a valid target for an assignment. et aussi sur textread des fois...).

    voila donc en tout cas si quelqu'un peu me donner un petit coup de main c'est super sympa.
    PS ma base de donnée est en piece jointe
    merci


    voila mon, programme si vous voulez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    clear all
     
    % Lecture des données et création des vecteurs
    [club,v1,v2,v3]=textread('totbut.txt','%s %d %d %d');
     
    % Création des vecteurs contenant les moyennes des but
    % de chaque pays
    x2007=[mean(v1(v3==1)),mean(v1(v3==2)),mean(v1(v3==3)),mean(v1(v3==4)),mean(v1(v3==5))]
    x2008=[mean(v2(v3==1)),mean(v2(v3==2)),mean(v2(v3==3)),mean(v2(v3==4)),mean(v1(v3==5))]
     
    % pareilavec les écarts types
    s2007=[std(v1(v3==1)),std(v1(v3==2)),std(v1(v3==3)),std(v1(v3==4)),std(v1(v3==5))]
    s2008=[std(v2(v3==1)),std(v2(v3==2)),std(v2(v3==3)),std(v2(v3==4)),std(v1(v3==5))]
     
    % Vecteur contenant le nombre but par pays
    n=[sum(v3==1),sum(v3==2),sum(v3==3),sum(v3==4),sum(v3==5);
     
    % Moyennes globales pour 2007 et 2008
    xb2007=sum(x2007.*n)/sum(n);
    xb2008=sum(x2008.*n)/sum(n);
     
    % Test ANOVA pour 2007
    I=length(n); % Nombre de groupes
    DFG2007=I-1;
    DFE2007=sum(n)-I;
    DFT2007=sum(n)-1;
    SSG2007=sum(n.*((x2007-xb2007).^2));
    SSE2007=sum((n-1).*(s2007.^2));
    SST2007=sum((x2007-xb2007).^2);
    MSG2007=SSG2007/(length(n)-1);
    MSE2007=SSE2007/(sum(n)-length(n));
    MST2007=SST2007/DFT2007;
    F2007=MSG2007/MSE2007; % Statistique
    % Comparaison à la variable aléatoire de Fisher
    F2007=fp(F2007,length(n)-1,sum(n)-length(n))
     
    % Tableau ANOVA
    fprintf(1,'Source\t | DF\t | SS\t     | MS\n')
    fprintf(1,'Groupe\t | %g\t | %g\t | %g\n',DFG2007,SSG2007,MSG2007)
    fprintf(1,'Erreur\t | %g\t | %g\t | %g\n',DFE2007,SSE2007,MSE2007)
    fprintf(1,'Total\t | %g\t | %g\t | %g\n',DFT2007,SST2007,MST2007)
     
    % On compare à un taux d'erreur acceptable de 5%
    if F2007>0.95
        display('Avec moins de 5% de chance de se tromper, en 2007 le nombre de but dépend du pays')
    else
        display('Avec moins de 5% de chance de se tromper, en en 2007 le nombre de but ne dépend pas du pays')
    end
     
     
    % Test ANOVA pour 2008
    I=length(n);
    DFG2008=I-1;
    DFE2008=sum(n)-I;
    DFT2008=sum(n)-1;
    SSG2008=sum(n.*((x2008-xb2008).^2));
    SSE2008=sum((n-1).*(s2008.^2));
    SST2008=sum((x2008-xb2008).^2);
    MSG2008=SSG2008/(length(n)-1);
    MSE2008=SSE2008/(sum(n)-length(n));
    MST2008=SST2008/DFT2008;
    F2008=MSG2008/MSE2008;
    F2008=fp(F2008,length(n)-1,sum(n)-length(n))
     
    % Tableau ANOVA
    fprintf(1,'Source\t | DF\t | SS\t     | MS\n')
    fprintf(1,'Groupe\t | %g\t | %g\t | %g\n',DFG2008,SSG2008,MSG2008)
    fprintf(1,'Erreur\t | %g\t | %g\t | %g\n',DFE2008,SSE2008,MSE2008)
    fprintf(1,'Total\t | %g\t | %g\t | %g\n',DFT2008,SST2008,MST2008)
     
    if F2008>0.95
        display('Avec moins de 5% de chance de se tromper, en en 2008 le nombre de but dépend du pays')
    else
        display('Avec moins de 5% de chance de se tromper, en en 2008 le nombre de but ne dépend pas du pays')
    end
    après j'aimerais ploter le total de but par saison et par pays mais mon programme ne marche pas...et je ne sais pas pourquoi.
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par shimux15 Voir le message
    Error: File: arenderelundi.m Line: 19 Column: 7
    The expression to the left of the equals sign is not a valid target for an assignment.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    % Vecteur contenant le nombre but par pays
    n=[sum(v3==1),sum(v3==2),sum(v3==3),sum(v3==4),sum(v3==5);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    % Vecteur contenant le nombre but par pays
    n=[sum(v3==1),sum(v3==2),sum(v3==3),sum(v3==4),sum(v3==5)];

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Par défaut
    Citation Envoyé par Dut Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    % Vecteur contenant le nombre but par pays
    n=[sum(v3==1),sum(v3==2),sum(v3==3),sum(v3==4),sum(v3==5)];
    oulala merci Dut .tout ca pour ca ].on voit que matlab c'est pas mon truc..
    sinon j'ai un dernier problème, je n'arrive pas à déclarer mes variables pour lire ma base de donnée.elle est de cette forme: paris 67 48 1 lyon 65 89 1... et ainsi de suite.
    pourquoi cela ne fonctionne pas dans mon textread ([club,v1,v2,v3]=textread('totbut.txt','%s %f %f %u');
    merci

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par shimux15 Voir le message
    pourquoi cela ne fonctionne pas dans mon textread
    Parce que selon la documentation, le format %s donne :
    %s : Read a white-space or delimiter-separated string.
    Donc "Le Mans" est lu comme deux chaînes de caractères avec le format %s ("Le" et "Mans")... et donc TEXTREAD ne peut pas lire correctement le reste du fichier puisque qu'après le "Le" il doit théoriquement lire une valeur numérique %d (ici 46) alors qu'il trouve une autre chaîne de caractère (ici "Mans")

    Le plus simple dans ton cas consiste à modifier ton fichier txt pour qu'aucun nom de ville ne soit écrit avec des espaces.

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/03/2010, 19h52
  2. la methode newton-raphson sur matlab
    Par crippella dans le forum Mathématiques
    Réponses: 2
    Dernier message: 02/02/2010, 10h27
  3. Anova en Matlab
    Par nathe dans le forum MATLAB
    Réponses: 2
    Dernier message: 02/06/2009, 13h40

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