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 logistique et linéaire


Sujet :

R

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 23
    Points : 1
    Points
    1
    Par défaut Régression logistique et linéaire
    Bonjour, lors de regression logistisques et linéaire sur un nouveau ordinateur, avec des codes correctes j'obtiens :


    fit=lm(Of_Bet~Market_size)


    Error in rep.int(c(1, numeric(n)), n - 1L) :
    negative length vectors are not allowed

    Merci d'avance de vos réponses
    Laurent

  2. #2
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Tout d'abord quelques remarques :

    • Lorsque vous insérez du code R dans vos messages sur le forum, merci de le mettre entre balises CODE (bouton "dièse" de la barre de personnalisation des messages)

    • Il est toujours bienvenu de décrire un minimum les données utilisées : type de variables (quantitatives, qualitatives : combien de modalités? sont-elles ordonnées?), et dans la mesure du possible, de donner un court mais représentatif extrait des données utilisées afin que les personnes souhaitant essayer de vous aider puisse faire tourner votre code et peut-être voir où se situe le problème...


    Sinon, en ce qui concerne les modèles de régression logistique "classique" avec R, il me semble que la fonction glm est plus appropriée (en tout cas c'est celle que j'ai toujours utilisée dans ce cas...).

    Enfin, concernant le message d'erreur que vous obtenez, tout semble indiquer qu'il y a sûrement un problème au niveau du format de vos données (ou de la définition de votre modèle?).
    Il sera plus facile de vous aider lorsque vous aurez donné un aperçu du format de vos données.

    En attendant, bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 23
    Points : 1
    Points
    1
    Par défaut
    Bonjour, merci pour ces précisions, voici unextrait du jeu de donnée
    la premiere variable est qualitative (TY prend les valeurs entieres de 1 à 3 ) et les 2 autres colonnes sont des variables quantitatives ( a et b ) .


    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
     
     
    TY      a               b
    5       0.00          3316.25
    2     -93.00           38 783
    1       0.00            190.2
    1       0.00           38 780
    6    -100.00           38 828
    5       0.00           7765.6
    5       0.00           3316.5
    2     108.00           38 818
     
     
    fit1=glm(TY~a+b+a*b,data=z,family=poisson)
    summary(fit1)
     
    Error in rep.int(c(1, numeric(n)), n - 1L) : 
    negative length vectors are not allowed
    merci pour votre aide
    cordialement

  4. #4
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Re-bonjour,

    Tout d'abord merci pour ces précisions concernant vos données.

    Juste une petite remarque, vous dîtes :
    Citation Envoyé par foxley_gravity
    la premiere variable est qualitative (TY prend les valeurs entieres de 1 à 3 )
    Or dans le jeu de données que vous présentez, la variable TY prend aussi les valeurs 5 et 6 Cela dit je ne pense pas que le problème vienne de là...

    J'ai essayé de faire tourner votre code avec uniquement l'extrait des données que vous fournissez, et cela fonctionne parfaitement chez moi !
    Du coup, et comme je suis peu familière des modèles ayant recours à la loi de poisson, j'avoue ne pas bien voir où peut se situer le problème malheureusement...
    Mon seul conseil serait d'abord de vérifier le format des données (pour chaque variable). Ensuite, que vous renvoie R lorsque vous tapez uniquement "fit1"? Car d'après ce que vous postez, le problème semble n'apparaître que lors de l'appel à la fonction "summary", c'est bien cela?

    Bon en tout cas je vous souhaite une bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 23
    Points : 1
    Points
    1
    Par défaut
    Re ,
    non le message d'erreur apparait just apres le fit1 , et oui en effet la variable prend les valeurs de1 à 6 ,
    Peut etre que le probleme vient de mon jeu de données relativement important ( plus de 1000 lignes) ..je ne sais pas du tout comment résoudre ce probleme
    De plus je ne sais pas trop quelle lois choisir ( poisson etc ) pour expliquer ma variables , existe t'il des test pour trouver la meilleur lois à choisir lors de la lgm ?
    merci
    laurent

  6. #6
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Re-bonjour,

    Je ne pense pas que le problème vienne du fait que vous ayez beaucoup de données si par beaucoup vous entendez quelque chose de l'ordre du millier d'individus.

    Pour ce qui est du choix de la famille de loi à utiliser, je pense que c'est à vous de le déterminer en fonction de ce que réprésente vos données et de ce que vous cherchez comme réponse. N'hésitez pas à nous en dire plus à ce propos d'ailleurs.

    De plus, dans la mesure où votre variable à expliquer prendre des valeurs comprises entre 1 et 6, il faut plutôt avoir recours à un modèle de régression logistique multinomial ou polytomique (c'est la même chose), car le modèle de régression logistique "classique" est adapté à des variables à expliquer binaire (de type 0/1 par exemple).

    Je sais que tout ceci ne résout pas le problème rencontré avec R (dont je ne connais pas l'origine puisqu'avec l'extrait des données que vous fournissez, votre code fonctionne parfaitement chez moi...), cela dit je vous conseillerais avant tout de vous renseigner sur les différents modèles de régression logistique afin de déterminer celui qui est le plus approprié à vos données et votre problématique.
    Ensuite, pour trouver la fonction R appropriée, il y a les forums (comme ici ) ainsi que le "site" RSiteSearch.

    Bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 23
    Points : 1
    Points
    1
    Par défaut
    Même chse avec le modèle multinomial , dont j'ai esayé de d'approfondire la méthode, sorte de géénralisation du modèle binomiale, par contre j'ai trouvé trés peu d'explication dessous et d'exemple avec R
    Même chose avec vglm, toujours même probleme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    > mlogit=vglm(TY~a+b,data=z,family=multinomial(),na.action=na.pass)
    Error in rep.int(c(1, numeric(n)), n - 1L) : 
      negative length vectors are not allowed
    merci

  8. #8
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Re-bonjour,

    Comme je l'ai dit précédemment, je ne suis pas une experte de ce genre de modèle...
    Cela dit, il semblerait que vous obteniez la même erreur quelle que soit la fonction (et donc le modèle) choisie. Or lorsque j'essaie votre code à l'aide des données fournies (que j'ai dupliquées et ré-arrangées afin d'avoir un jeu de données avec 1000 individus), cela fonctionne parfaitement. J'entends bien sûr par là que je n'ai pas de message d'erreur de R, après en ce qui concerne l'interprétation des résultats c'est autre chose...
    Bref, tout ceci m'amène à penser que votre problème se situe peut-être "en amont", et je vous conseille très fortement de vérifier vos données (les données numériques le sont-elles bien? la variable réponse est-elle bien de type 'facteur'? le jeu de données est-il un dataframe? etc...).

    Après sinon, j'avoue ne pas voir où pourrait se situer le problème... Si vous n'en avez vraiment aucune idée, vous pouvez reprendre le code de la fonction utilisée (par exemple glm) et lancer les lignes de commandes une à une (fastidieux je sais ) pour essayer de voir à quel niveau se situe votre problème.
    Ne rencontrant pas le même problème que vous, je ne peux pas vous apporter beaucoup plus d'aide malheureusement...

    Bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  9. #9
    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
    Points : 254
    Points
    254
    Par défaut
    a mon avis tout le pb vient de la structure de tes données:
    esssai avec des as.charactere() et as.numeri() et tu remets tout dans un donnee=data.frame(cbind(vet1, vect2,vect3)) et tu recommence

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/07/2012, 18h07
  2. Régression logistique avec intéractions
    Par joyeux_lapin13 dans le forum SAS STAT
    Réponses: 1
    Dernier message: 27/04/2010, 11h43
  3. régression logistique et graphiques
    Par ebongue dans le forum SAS STAT
    Réponses: 4
    Dernier message: 16/06/2009, 13h54
  4. régression logistique SAS
    Par sandrine_87 dans le forum SAS STAT
    Réponses: 1
    Dernier message: 09/02/2009, 21h01
  5. Réponses: 1
    Dernier message: 17/04/2007, 16h47

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