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 :

Programmer fonction répartition empirique


Sujet :

R

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Programmer fonction répartition empirique
    Bonjour à tous,

    Je sollicite votre aide car je suis débutant sur R et je ne parviens pas à réaliser ce que je souhaiterais.

    Mon objectif est d'avoir une ligne de programme qui permet de calculer la fonction de réparition empirique d'un ensemble de données.
    Sur R, j'ai pu voir qu'il existe une fonction "ecdf()" qui permet de l'obtenir graphiquement. J'ai également vu que la commande "knots" renvoie aux valeurs en x de la fonction.

    De mon côté, je voudrais obtenir les valeurs en Fn(x) qui sont comprises entre 0 et 1.

    Pour ça, j'ai tenté d'écrire une ligne de programme qui malheureusement ne fonctionne pas. Elle prend la forme suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ### Valeurs initiales ###
     
    a=c(14,15,12,9,7,3,2,18,6,17)
     
    ### Mise en ordre croissant des valeurs du vecteur a ###
     
    b=sort(a)
     
    ### Calcul de la fonction de répartition empirique ###
     
    FRE=function(x) function(t){
    t=1:10
    sum(x %in% t)/length(x)}
    epdf(b)
    Je souhaiterais avoir quelques indications pour faire fonctionner ce code.

    Je vous remercie.


    Atacama

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Points : 339
    Points
    339
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    > ttt <- ecdf(c(14,15,12,9,7,3,2,18,6,17))
    > knots(ttt)
     [1]  2  3  6  7  9 12 14 15 17 18
    > ttt(knots(ttt))
     [1] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
    Dans ce code, la ligne ttt(knots(ttt)) donne "les valeurs en Fn(x) qui sont comprises entre 0 et 1".
    Pour conprendre, il faut savoir que ecdf() est une fonction qui retourne une fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > class(ttt)
    [1] "ecdf"     "stepfun"  "function"
    C'est bien ce que vous vouliez faire?

    A++

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse rapide. Ca me donne bien les valeurs que je voulais.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/09/2013, 22h10
  2. Bug sur mon programme fonction vlookup
    Par ze_mechant dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/05/2013, 12h17
  3. Sous-programme / Fonctions externes
    Par tyass dans le forum Fortran
    Réponses: 1
    Dernier message: 18/09/2009, 14h00
  4. Réponses: 1
    Dernier message: 14/05/2007, 09h44
  5. [NASM] Programmation fonction strtok
    Par moustiks dans le forum Assembleur
    Réponses: 4
    Dernier message: 15/01/2007, 09h30

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