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 :

interpretation lm() avec R


Sujet :

R

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 20
    Points : 13
    Points
    13
    Par défaut interpretation lm() avec R
    bonjours à vous,
    j'ai une variable avec 4 modalités N<F<S<T j'ai fais un lm()
    et j'ai cette sortie

    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
    Call:
    lm(formula = jaz.dat$Q3_Tps_Sdb ~ jaz.dat$Age + jaz.dat$Cdt.Sdb)
     
    Residuals:
         Min       1Q   Median       3Q      Max 
    -128.733  -41.924   -3.064   48.308  126.267 
     
    Coefficients:
                      Estimate Std. Error t value Pr(>|t|)    
    (Intercept)         13.940     43.011   0.324 0.749406    
    jaz.dat$Age          5.465      1.136   4.811 0.000121 ***
    jaz.dat$Cdt.Sdb.L  147.942     28.218   5.243 4.63e-05 ***
    jaz.dat$Cdt.Sdb.Q   -9.657     27.523  -0.351 0.729548    
    jaz.dat$Cdt.Sdb.C   35.083     30.000   1.169 0.256686    
    ---
    Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 
     
    Residual standard error: 67.37 on 19 degrees of freedom
    Multiple R-squared: 0.8017,     Adjusted R-squared:  0.76 
    F-statistic:  19.2 on 4 and 19 DF,  p-value: 1.819e-06
    que signifie jaz.dat$Cdt.Sdb.L, jaz.dat$Cdt.Sdb.Q,jaz.dat$Cdt.Sdb.C
    pour écrire mon équation sa donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Q3=   13.940+ 5.465 (Age)+
    147.942(Cdt.Sdb.L)-9.657(Cdt.Sdb.Q)+35.083(Cdt.Sdb.C)
    comment donner une valeur au Cdt.Sdb sachant que c'est des caractères au départ


  2. #2
    Membre expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Points : 3 378
    Points
    3 378
    Par défaut
    Bonjour,

    Réponse tardive en espérant que ça puisse encore aider...

    Si c'est vraiment l'approche que tu souhaites utiliser et si tu es certain que ce sont les coefficients réels (attention au contrast utilisé), tu devrais pouvoir faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    with(jaz.dat, 13.940 + 5.465 * (Age) + 
                  147.942 * (Cdt.Sdb == "L") - 
                  9.657 * (Cdt.Sdb == "Q") + 
                  35.083 * (Cdt.Sdb == "C"))
    Dans ce cas, chaque test de la forme (qui retourne TRUE ou FALSE) est interprété comme 0 ou 1.

    Ça reste néanmoins du bricolage. En plus, je soupçonne qu'il te manque un coefficient (encore ces histoires de contrast).

    Je te recommande donc d'utiliser la fonction predict (ici avec des données "inventées") :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    > obj.lm <- lm(Q3_Tps_Sdb ~ 1 + Age + Cdt.Sdb, data=jaz.dat)
    >
     
    > ## Données prédites par le modèle ; par défaut pour les observations utilisées pour l'ajustement :
    > predict(obj.lm)
          1       2       3       4       5       6       7       8       9      10 
     69.863  65.418 315.788 369.552 376.923 194.672 538.967 158.323 549.897 480.758
    Et les prédictions pour de nouvelles données :
    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
     
    > predict(obj.lm,
    +         newdata=data.frame(Age=c(10, 23),
    +                            Cdt.Sdb = factor(c("L", "Q"),
    +                                             levels=c("L", "Q", "C"))))
          1       2 
    216.532 129.978
     
    > ## Pour info, voila à quoi ressemblent la data.frame :
    > data.frame(Age=c(10, 23),
    +            Cdt.Sdb = factor(c("L", "Q"),
    +                             levels=c("L", "Q", "C")))
      Age Cdt.Sdb
    1  10       L
    2  23       Q
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

Discussions similaires

  1. Mauvaise interpretation header avec smtp exchange 2010
    Par trezeled dans le forum Autres Solutions d'entreprise
    Réponses: 0
    Dernier message: 12/11/2013, 16h37
  2. Interpreter XML avec python
    Par Karang dans le forum Général Python
    Réponses: 12
    Dernier message: 17/02/2009, 17h33
  3. PB avec une balise qui interprete le code ...
    Par acado dans le forum ASP
    Réponses: 4
    Dernier message: 19/05/2006, 13h40
  4. Réponses: 9
    Dernier message: 17/11/2005, 10h33

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