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 :

Problème avec l'extrapolation linéaire


Sujet :

R

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Problème avec l'extrapolation linéaire
    Bonjour,

    Je sollicite votre aide pour réaliser une extrapolation sous R. Je dispose de données sur la densité de population pour les années 98, 2003 et 2008.

    Et je souhaiterais déterminer à partir de là la densité de population pour 1993. J'ai essayé d'utilisé la fonction approxExtrap {Hmisc} mais je n'arrive pas à spécifier le xout avec le script suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    library(Hmisc) 
    approxExtrap(dpop$pop98, dpop$pop03, xout=???, method = "linear", n = 3718, rule=2, ties = "ordered",f=0, na.rm = T)
    En vous remerciant par avance

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Points : 38
    Points
    38
    Par défaut
    Lis l'aide de ta fonction ...

    Tu y trouveras la rubrique values :

    a vector the same length as xout
    C'est vrai que c'est pas très clair mais on en déduit que ce sont les valeurs pour lesquelles tu veux une extrapolation linéaire.

    Ensuite l'exemple est assez clair :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    approxExtrap(1:3,1:3,xout=c(0,4))
    En illustrant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    x <- 1:3
    y <- 1:3
    plot(y ~x, xlim=c(-1,5), ylim=c(-1,5))
     
    # on extrapole
    extrapolations <- approxExtrap(x, y, xout=c(0,4))
     
    # on rajoute les points
    points(extrapolations, col='red3', pch=19)
    Maintenant la vraie question c'est est-ce que tu as vraiment besoin d'extrapoler ? Est-ce pertinent ? Est ce que ce que tu connais de tes données te permet d'avoir des hypothèses qui justifient que tu fasses une extrapolation linéaire (on peut imaginer avoir à faire à une population d'insecte qui connaissent des pullulations annuelles)~? Enfin, est-ce que ce n'est as plutôt un modèle paramétrique dont tu as besoin du type (si hypothèse de linéarité) : y = a*x + b, auquel cas tu pourrais t'orienter vers des outils classiques de régression linéaire.

    Tu pourrais aussi opter pour une approche non-paramétrique avec des méthodes de lissage (type régression loess par exemple) qui permettraient d'ajouter un poids au données (est ce que les données de 1998 n'ont pas un poids plus important pour estimer la valeur de 1993 que les données plus éloignées dans le temps en 2003 et 2009) ?

    Bon courage

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par collif Voir le message
    Lis l'aide de ta fonction ...

    Tu y trouveras la rubrique values :


    C'est vrai que c'est pas très clair mais on en déduit que ce sont les valeurs pour lesquelles tu veux une extrapolation linéaire.

    Ensuite l'exemple est assez clair :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    approxExtrap(1:3,1:3,xout=c(0,4))
    En illustrant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    x <- 1:3
    y <- 1:3
    plot(y ~x, xlim=c(-1,5), ylim=c(-1,5))
     
    # on extrapole
    extrapolations <- approxExtrap(x, y, xout=c(0,4))
     
    # on rajoute les points
    points(extrapolations, col='red3', pch=19)
    Maintenant la vraie question c'est est-ce que tu as vraiment besoin d'extrapoler ? Est-ce pertinent ? Est ce que ce que tu connais de tes données te permet d'avoir des hypothèses qui justifient que tu fasses une extrapolation linéaire (on peut imaginer avoir à faire à une population d'insecte qui connaissent des pullulations annuelles)~? Enfin, est-ce que ce n'est as plutôt un modèle paramétrique dont tu as besoin du type (si hypothèse de linéarité) : y = a*x + b, auquel cas tu pourrais t'orienter vers des outils classiques de régression linéaire.

    Tu pourrais aussi opter pour une approche non-paramétrique avec des méthodes de lissage (type régression loess par exemple) qui permettraient d'ajouter un poids au données (est ce que les données de 1998 n'ont pas un poids plus important pour estimer la valeur de 1993 que les données plus éloignées dans le temps en 2003 et 2009) ?

    Bon courage
    Excuse moi d'avoir tarder à te répondre pour te remercier. Tes conseils m'ont bien aidé merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/05/2015, 14h26
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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