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 :

Fit Gaussian from data + extrapolate.


Sujet :

R

  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 Fit Gaussian from data + extrapolate.
    Bonjour,

    Je dispose de données auxquelles je souhaiterais appliquer une Gaussienne. Cependant, mes données ne décrivent pas la distribution dans son ensemble. Je m'explique:
    Je peux disposer de données qui ne vont décrire que la moitié de la courbe de Gauss (cf.graphe en pièce jointe). Je voudrais donc, pardon si je ne m'exprime pas correctement, fitter une gaussienne (ce qui va je pense nécessiter d'imposer quelques contraintes à la fonction de fit puisque dans mon cas la Gaussienne est en quelques sortes "implicite/cachée" pour moitié) pour ensuite récupérer la valeur "x" pour laquelle "y" prend sa valeur maximale (si je ne fais pas d'erreur, il s'agit de mu, l'un des paramètres de la loi normale). Je précise que l'échelle des "y" est en pourcentage (de 0 à 1).

    Auriez-vous une idée de la méthode que je pourrais employer ici?
    Merci pour votre aide.
    Images attachées Images attachées  

  2. #2
    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 précise que la relation que j'étudie est très couramment caractérisée par une gaussienne (phénomène biologique). C'est la raison pour laquelle je me permets d'utiliser cette méthode, bien que n'ayant que la moitié de cette courbe théorique au travers de mes points expérimentaux.

  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
    Voilà ce que j'ai fait pour l'instant! Avec des estimateurs fourni par l'utilisateur, ce script permet via la fonction optim de déterminer un couple (mu; sigma).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    a=read.table("marsillargues.txt", header=TRUE)
     
    fitG =
      function(x,y,mu,sig,scale){
     
        f = function(p){
          d = p[3]*dnorm(x,mean=p[1],sd=p[2])
          sum((d-y)^2)
        }
     
        optim(c(mu,sig,scale),f)
      }
     
    fit2P = fitG(a$Tleaf,a$CondProp,25.02,14.5,0.2)
    J'obtiens les résultats suivants:
    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
    > fit2P
    $par
    [1] 24.57984 10.09999 24.98141
     
    $value
    [1] 0.0540938
     
    $counts
    function gradient 
         114       NA 
     
    $convergence
    [1] 0
     
    $message
    NULL
    24.98 semble tout à fait cohérent avec mes données. Maintenant, ça coince lorsque j'essaie de ploter tout ça (points expé + fit):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    plot(a$Tleaf,a$CondProp)
    p = fit2P$par
    lines(a$Tleaf,p[3]*dnorm(a$Tleaf,p[1],p[2]))
    Voici le graphe que j'obtiens en sortie:
    https://drive.google.com/file/d/0Bwe...it?usp=sharing
    Je souhaiterais corriger le fait qu'il y ait 4 graphes superposés.
    Egalement, je souhaiterais affiner l'échelle de mon fit.

    Dites moi ce que vous pensez de tout ça!
    Merci.

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/05/2008, 14h56
  2. utilisation de "collect data from user"
    Par johan971 dans le forum SharePoint
    Réponses: 0
    Dernier message: 21/04/2008, 19h37
  3. create a new table B from data coming from a table A
    Par Dev_ps dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 12/06/2007, 12h04
  4. C# MatLab :: fit de data points
    Par sayag dans le forum C#
    Réponses: 1
    Dernier message: 28/05/2007, 00h56
  5. [SQL-SERVER]Importing data from external sources
    Par poosh dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/04/2006, 13h25

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