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 :

régression et non-normalité


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 régression et non-normalité
    Bonjour,
    Je souhaite procéder à une régression linéaire avec la fonction glm mais le test de normalité de shapiro-wilk sur les résidus de la régression est négatif. L'hétéroscédasticité des résidus n'est pas non plus respectée.

    Que faire dans ce cas de figure? L'objectif de ma démarche est de comparer la pente de ma régression selon plusieurs conditions d'expérimentation (une régression par cas). Je souhaite donc récupérer l'estimateur du paramètre correspondant à la pente (je n'ai qu'une seule variable explicative).

    D'après ce que j'ai lu sur les régression non-paramétriques, celles-ci ne fournissent pas ce type d'information. La seule solution qu'il me reste consiste donc à calculer un coefficient de correlation de type "spearman" qui semble convenir dans mon cas.

    Est-ce que je passe à coté de quelque chose?
    Merci pour votre aide!

  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,
    Pour répondre à ta question:
    1. Lorsque les hypothèses (normalité, homoscedasticité, ...) d'une modélisation ne sont pas satisfaites, il existe des méthodes pour les repoudres et parmi lesquelles la transformation de variable.
    2. Le coefficient de corrélation de spearman te permet de connaitre le degré de liaison (pas forcement linéaire) de tes deux variables. Ça te suffira si ton objectif est juste de voir la corrélation entre tes variables.
    Sinon, pour une régression linéaire simple, je pense qu'il est déjà plus simple d'utiliser la fonction lm. D'autre part, il est aussi plus judicieux de faire une régression "standardisé", i.e tes variables sont centrées et reduites et de là, tu pourra mieux iterpreter tes coefficients (intercept et pente) et la pente ne sera rien d'autre que le coefficient de corrélation linéaire entre x et y.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    model.rep <- lm(scale(y)~scale(x))
    summary(model.rep)
    A partir de là tu étudie à nouveau tes résidus: Tracer les residus en fonction de y et de x pour voir leurs structures (est ce plutôt linaire, quadratique, dans ce cas il faudra mettre un x^2 dans le modèle au lieu de x, ...). La transformation (log, racine carrée, ...) de variables (Y ou X) permet parfois de résoudre ce genre de problème.


    BC

  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
    Bonjour,
    Merci pour la réponse. Cependant, pourquoi devrais-je standardiser mes données (x ET y)? En quoi cela faciliterait l'interprétation des paramètres de la régression?

    je ne dispose ici que de 2 variables : l'une explicative et l'autre à expliquée.

    Autrement, transformer mes données ne me paraîtrait pas très judicieux puisque je souhaite interpréter les paramètres de ma régression, plus particulièrement la valeur du paramètre de la variable explicative qui correspond en effet à la pente de ma droite de régression. Or, après transformation, l'interprétation est délicate.

    Me trompe-je?

    En réalité je souhaite seulement pouvoir comparer 2 conditions d'expérimentation en déterminant si dans un cas ou dans l'autre la pente de ma droite de régression est plus importante ou non. Je pense donc que le coefficient de corrélation de Spearman convient dans mon cas... p-e pas nécessaire de se compliquer la vie avec les régressions.

    Dernière question, peut-être pourrez-vous m'éclairer. D'après ce que j'ai vu des régressions non-paramétriques, celles-ci ne fournissent pas de valeurs de paramètre (pente, intercepte, etc.)?

  4. #4
    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
    Pourquoi devrais-je standardiser mes données (x ET y)? En quoi cela faciliterait l'interprétation des paramètres de la régression?
    Si, vous faites une régression non-standardisé, comment vous interpretez la constante de régression et comment vous allez vous y prendre si vos deux variables n'ont pas les mêmes ordres de grandeurs et les mêmes unités.
    Pour l’interprétation d'une régression stanrdisé: Y= a + bX, on dira que si X augmente d'une unité, Y= b+a
    Autrement, transformer mes données ne me paraîtrait pas très judicieux puisque je souhaite interpréter les paramètres de ma régression, plus particulièrement la valeur du paramètre de la variable explicative qui correspond en effet à la pente de ma droite de régression. Or, après transformation, l'interprétation est délicate.
    Si vous avez par exemple log(Y)=a+bX => Y=exp(a)exp(bX),...je pense pas que ça change quelques choses.

    En réalité je souhaite seulement pouvoir comparer 2 conditions d'expérimentation
    Pourquoi ne pas penser à un t-test ou à une ANOVA (en fonction de la condition d’expérimentation).

    Bref, ça ne sont que des suggestions. Personnellement à ta place je créerai une nouvelle variable factorielle: X2="condition d'experimenation" et jefais un modele mixte ANCOVA, i.e modeliser Y en fonction de X1 en tenant compte de l'effet de X2.

    BC

  5. #5
    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 me suis finalement tourné vers la fonction "mblm" du package du même nom qui permet de réaliser des régressions non-paramétriques et qui fournit l'estimateur du paramètre du modèle par la méthode des médianes.
    Je voudrais maintenant pouvoir tester statistiquement la valeur de mon estimateur issu du même modèle (variables identiques) appliqué à des pas de temps différents, soient avec des individus différents (cf graphe en pièce jointe, points bleus Vs. points rouges --> En abscisse ma variable explicative (température) et en ordonnée la valeur prise par mes individus. Les individus ont été échantillonnés seulement selon qq valeurs de température (contrainte due à l'expérimentation)).
    Existe-t-il une méthode pour faire ça?
    Images attachées Images attachées  

Discussions similaires

  1. Tests de non régression environnement Cognos
    Par ashlose dans le forum Cognos
    Réponses: 3
    Dernier message: 09/03/2010, 10h42
  2. Régression non linéaire
    Par iamsebfont dans le forum MATLAB
    Réponses: 0
    Dernier message: 13/02/2010, 12h31
  3. Régression non linéaire
    Par loique dans le forum MATLAB
    Réponses: 9
    Dernier message: 25/06/2008, 14h00
  4. Logiciels open source pour Tests de non-régression, robustesse, etc.
    Par Fanto117 dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 14/04/2008, 17h43
  5. [outil] Test non régression
    Par guen dans le forum Access
    Réponses: 1
    Dernier message: 13/05/2007, 12h02

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