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

R Discussion :

Anova successives et boucle for


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Doctorant en sciences biologiques
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Doctorant en sciences biologiques

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Par défaut Anova successives et boucle for
    Bonjour,

    Si je poste ici, c'est que je suis confronté au problème suivant :

    je travaille sur des communautés de champignons du sol, et dans le design expérimental que j'ai réalisé, j'ai regardé l'effet de différents traitements sur des parcelles de sol. Cela a abouti à l'obtention d'un tableau de ce style.


    Nom : table.JPG
Affichages : 826
Taille : 63,3 Ko


    pour voir si l'effet traitement est significatif sur l'otu2 je réalise l'opération suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    otu2 <- lm(traitement~otu2, data=OTU_R_Ready)
    anova(otu2)
    et apparait la sortie telle que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Analysis of Variance Table
     
    Response: traitement
              Df Sum Sq Mean Sq F value Pr(>F)
    otu2       1    3.8   3.797  0.3119 0.5783
    Residuals 70  852.2  12.174
    N'ayant pas vraiment l'envie de retaper à la main 82 fois l’opération précédente pour avoir le résultat pour les autres otu, je me suis dit qu'il était sans doute possible de réaliser une boucle for pour automatiser le processus.
    Cependant je manque de connaissances en la matière. Auriez-vous une idée de ce que cela pourrait donner ?

    En vous remerciant par avance de toute l'aide que vous pourrez m'apporter.

  2. #2
    Membre émérite

    Homme Profil pro
    Cyber Security & AI
    Inscrit en
    Février 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Cyber Security & AI

    Informations forums :
    Inscription : Février 2009
    Messages : 506
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Si je comprends ta question je ferais cela :

    Code R : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(i in 1:82){
    otu2 <- lm(OTU_R_Ready[,4]~OTU_R_Ready[,5+i], data=OTU_R_Ready)
    anova(otu2)}

    Mais je serais surpris que tu en veilles pas faire cela.

    Code R : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    otu2 <- lm(OTU_R_Ready[,4]~OTU_R_Ready[,5:87], data=OTU_R_Ready)
    anova(otu2)

    Attention! Ton paramètre "Traitement" est numérique. Si cela correspond à des quantités, il n'y a aucun problème, mais si les traitements sont différents, il ne faut pas faire une régression directement.

    Au plaisir de te lire.

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Doctorant en sciences biologiques
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Doctorant en sciences biologiques

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Par défaut
    Bonjour,

    Merci beaucoup pour ta réponse.

    Citation Envoyé par dev_ggy Voir le message
    Attention! Ton paramètre "Traitement" est numérique. Si cela correspond à des quantités, il n'y a aucun problème, mais si les traitements sont différents, il ne faut pas faire une régression directement.

    Au plaisir de te lire.
    Le paramètre traitement est en effet non quantitatif. est-il du coup possible de passer directement à du non paramétrique du genre permanova (package vegan) ?


    ----------------------

    Sinon, j'ai l'impression de m'être mal exprimé lors de mon premier message :

    mon intention est de voir l'effet "traitement" sur l'otu2, puis sur l'otu1 et ainsi de suite pour voir si sur chacun des otu l'effet est significatif ou non. Le but est de repérer les champignons qui sont sous influence des différents traitements et ceux que les traitements n'influencent aucunement.

    Du coup ma question c'est comment stocker l'information retournée dans la boucle par la commande
    à chaque étape de la boucle ?

    L'idéal serait d'avoir à la fin un tableau tel que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Analysis of Variance Table
    Response: OTU_R_Ready[, 4]
         Df  Sum Sq Mean Sq F value Pr(>F)
    otu2  1  13.49  13.491  1.1209 0.2934
    otu1  1  13.49  13.491  1.1209 0.2934
    otu6  1  13.49  13.491  1.1209 0.0064 **
     
    ... etc pour tous les autres otu
     
    Residuals            70 842.51  12.036
    Ceci est un exemple, les valeurs ne sont pas du tout bonnes, mais l'idée est là.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/09/2008, 12h22
  2. Réponses: 3
    Dernier message: 06/07/2004, 10h21
  3. [Debutant] Batch et Boucle for
    Par ludovic.fernandez dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 06/05/2004, 19h21
  4. [Swing][boucles] for, do, if .....comment faire simple?
    Par chastel dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 02/05/2004, 22h49
  5. [langage] boucle "for" modification du pas
    Par K-ZimiR dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2004, 11h54

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