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 :

Prediction with logistic regression


Sujet :

R

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut Prediction with logistic regression
    Bonjour,
    Je veux faire une prédiction via une régression logistique, pour cela j'ai divisé ma dataframe en Training et testing.
    Puis j'ai appliqué une régression GLM sur la partie testing (80% de la base), mais les résultats sont un peux choquants pour moi.
    Toutes les variables ne sont pas significatives!!??
    Voici le script que j'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    library(caTools)
    split=sample.split(data,SplitRatio = 0.80)
    split
    training=subset(data,split=="TRUE")
    testing=subset(data,split=="FALSE")
    model=glm(diag~., training, family = binomial(link = logit))
    summary(model)
    Est-ce que quelqu'un parmi vous pourra m'aider svp??

  2. #2
    Membre expérimenté
    Homme Profil pro
    Data scientist
    Inscrit en
    Février 2017
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2017
    Messages : 211
    Par défaut
    Bonjour,

    si les variables ne sont pas significatives c'est que la régression logistique n'est pas adapté pour modéliser tes données. La régression logistique suppose une liaison linaire entre ta variable à expliquer et les variables explicatives, et c'est peut-être pas le cas. Il faut soit changer de méthode et essayer des méthodes plus performantes ou essayer de transformer tes variables explicatives mais j'en doute que ca doit marcher. Il faut aussi recouponner que ta data n'extrait aucune information...

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut
    Citation Envoyé par marou1991 Voir le message
    Bonjour,

    si les variables ne sont pas significatives c'est que la régression logistique n'est pas adapté pour modéliser tes données. La régression logistique suppose une liaison linaire entre ta variable à expliquer et les variables explicatives, et c'est peut-être pas le cas. Il faut soit changer de méthode et essayer des méthodes plus performantes ou essayer de transformer tes variables explicatives mais j'en doute que ca doit marcher. Il faut aussi recouponner que ta data n'extrait aucune information...
    Bonjour,
    merci pour votre réponse, non la régression logistique est la mieux adaptée pour cette étude (je veux faire une prédiction des patients atteints du cancer donc la variable explicative prends les modalité "1" si cancer "0" sinon") quand j'applique la régression sur toutes les variables, pratiquement toutes les variables sont significatives.
    mon problème réside dans la phase prédiction: quand j'applique la régression sur "training" les variables deviendront tous non significatives!!

  4. #4
    Membre émérite
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Par défaut
    Le premier argument de sample.split doit être un vecteur de type étiquette (ou niveau d'un facteur) qui est celle qui sert au découpage. Si ce n'est pas le cas, le résultat peut être bizarre. Donc commence par déterminer quel est ton facteur de stratification pour le découpage, utilise alors uniquement cette variable dans sample.split et refait ton analyse. Je pense que dans ton cas, c'est diag. Si c'est le cas, le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    library( caTools)
    split <- sample.split( data$diag, SplitRatio=0.80)
    split
    training <- subset( data, split=="TRUE")
    testing <- subset( data, split=="FALSE")
    model <- glm( diag ~ ., training, family=binomial( link = logit))
    summary( model)
    @marou1991
    La régression logistique suppose une liaison linaire entre ta variable à expliquer et les variables explicatives
    Non, c'est la régression linéaire. Pour la régression logistique, le relation linéaire est entre le logit (log du rapport des probabilités entre cas favorables et cas défavorables) et les variables explicatives. Donc, d'après la description que fait orsen10 de son problème, il faut donc bien faire une régression logistique.

    @orsen10 pour évaluer la qualité de la prédiction, j'utiliserai une approche de type validation croisée (par exemple, K-fold cross-validation) même si ton approche est aussi valable.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut
    [QUOTE=faubry;9865890]Le premier argument de sample.split doit être un vecteur de type étiquette (ou niveau d'un facteur) qui est celle qui sert au découpage. Si ce n'est pas le cas, le résultat peut être bizarre. Donc commence par déterminer quel est ton facteur de stratification pour le découpage, utilise alors uniquement cette variable dans sample.split et refait ton analyse. Je pense que dans ton cas, c'est diag. Si c'est le cas, le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    library( caTools)
    split <- sample.split( data$diag, SplitRatio=0.80)
    split
    training <- subset( data, split=="TRUE")
    testing <- subset( data, split=="FALSE")
    model <- glm( diag ~ ., training, family=binomial( link = logit))
    summary( model)
    Bonjour;
    je vous remercie pour votre réponse, mais j'ai déjà essayé de procéder ainsi mais le résultat est le même tous les prob sont sup à 0.05.
    je veux juste savoir pourquoi ça n'a pas marché avec cette méthode?
    j'ai utilisé la méthode LDA pour la classification et ça a marché .
    cordialement

  6. #6
    Membre émérite
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Par défaut
    j'ai déjà essayé de procéder ainsi mais le résultat est le même tous les prob sont sup à 0.05
    Les probabilités obtenues comment ? Il faudrait voir le code pour répondre.
    j'ai utilisé la méthode LDA pour la classification et ça a marché
    Là aussi il faudrait voir le code.

Discussions similaires

  1. Regression logistic, interprétation des résultats
    Par Lyricslife dans le forum SAS STAT
    Réponses: 2
    Dernier message: 20/08/2016, 11h07
  2. Réponses: 3
    Dernier message: 26/09/2011, 17h34
  3. comment obtenir un polynome de regression
    Par evariste_galois dans le forum Mathématiques
    Réponses: 17
    Dernier message: 19/01/2007, 15h06
  4. [Débutant] Utilisation de FOP - Register Fonts with FOP
    Par Johnbob dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 31/01/2004, 00h27
  5. installation php avec option --with-pgsql: marche pô.
    Par phil25 dans le forum Requêtes
    Réponses: 3
    Dernier message: 02/01/2004, 15h59

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