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 :

syntaxe_nombreuses variables à expliquer_LM


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 69
    Par défaut syntaxe_nombreuses variables à expliquer_LM
    Mon objectif est de procéder à une analyse canonique discriminante.
    Pour faire simple, je dispose du jeu de données suivant:
    _Un tableau de 680 colonnes.
    _ la première colonne identifie les individus sur lesquels j'ai mesuré chacune des variables.
    _ les colonnes 2, 3 et 4 contiennent des variables explicatives de type facteur.
    _ les colonnes 5 à 680 contiennent les variables à expliquer.

    Je dois d'abord faire un modèle linéaire que je rentrerai ensuite dans la formule de l'analyse canonique discriminante.
    Je dois donc, dans mon modèle linéaire, considérer mes 3 variables explicatives ainsi que mes 676 variables à expliquer.
    La formule du modèle linéaire étant du type : y~x je dois rentrer 676 variables dans y. Ce que je cherche, c'est une formule me permettant de ne pas avoir à spécifier mes 676 variables une par une. Je voudrais pouvoir les rentrer en une seule fois. Un truc du type:
    (avec "a" mon tableau de données)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mod=lm(a[,5:680]~a$Var1*a$Var2*a$Var3)
    Seulement, "a[,5:680]" ne fonctionne pas. J'obtiens le message d'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Error in model.frame.default(formula = a[, 5:680] ~ flatitude * ftype *  : 
      invalid type (list) for variable 'a[, 5:680]'
    Connaissez-vous un moyen de rentrer toutes mes colonnes d'un coup sans avoir à les spécifier une par une ?

  2. #2
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Par défaut
    Bonjour,
    Je pense qu'il faudrait commencer à regarder la syntaxe et le fonctionnement de la fonction lm en tapant : Ce n'est pas la fonction adaptée à ta problématique à mon avis. Essaye plutôt d'explorer la fonction lda pour ton cas.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 69
    Par défaut
    Je souhaite en fait procéder à une analyse canonique discriminante, via la fonction "candisc" :
    http://127.0.0.1:29294/library/candi...l/candisc.html

    Comme vous pourrez le voir sur cette page internet dans la rubrique "exemples", la fonction "candisc" nécessite en entrée un modèle linéaire.

    C'est pourquoi je me pose le problème que je vous ai soumis dans mon précédent message et dont je n'ai pas trouvé la réponse sur les pages d'aide concernant la fonction "lm".

  4. #4
    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
    Ce lien est un lien vers un serveur local. Nous n'y avons pas accès.

    Bien cordialement.

  5. #5
    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
    Monsieur,



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data(Grass)
    grass.mod <- lm(cbind(N1,N9,N27,N81,N243) ~ Block + Species, data=Grass)
    Anova(grass.mod,test="Wilks")
    grass.can1 <-candisc(grass.mod, term="Species")
    plot(grass.can1, type="n")
    Ci-dessus le code pour l'exemple de la fonction candisc.

    dans l'exemple de la fonction que vous citez candisc on fait une opération supplémentaire que vous je faite pas avec la fonction cbind.

    Si vous la faite qu'obtenez vous ?

    bien cordialement.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 69
    Par défaut
    Dsl, il s'agit de la fonction "candisc" du package "candisc".
    Mais j'ai bien peur qu'elle ne soulève pas les foules... :p

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 69
    Par défaut
    Ayant, 676 variables à expliquer, je ne souhaite pas énumérer chacune des colonnes correspondantes avec un cbind().
    C'est pourquoi je souhaiterais pouvoir trouver un moyen de "rentrer" ces 676 variables d'un seul coup comme avec un "a[,5:680]" (=colonne 5 à 680 de mon tableau "a") qui ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    > abs.mod=lm(cbind(a[,5:680])~flatitude*ftype*forientation,data=a)
    Error in model.frame.default(formula = cbind(a[, 5:680]) ~ flatitude *  : 
      invalid type (list) for variable 'cbind(a[, 5:680])'

  8. #8
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Par défaut
    Bonjour,

    assure toi que ton fichier "a" est bien un data.frame

    BC

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 69
    Par défaut
    C'est bien un data.frame en effet, et j'obtiens le même message d'erreur que précédemment.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/07/2002, 13h32
  2. variables locales ou globales ???
    Par elvivo dans le forum C
    Réponses: 13
    Dernier message: 03/07/2002, 08h22
  3. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08
  4. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 08h34

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