1. Grâce à ce formulaire vous pouvez proposer une astuce ou un script sur R.
  2. Votre script doit pouvoir être lancé en l'état. Veuillez penser à :
    • inclure le chargement des "library" nécessaires
    • construire un petit jeu de données si besoin est.
    • commenter les lignes de codes pour en faciliter la compréhension.
  3. Le titre de votre script ou astuce doit être clair et explicite.
  4. Pensez à mettre votre code entre les balises [R] et [/R]; Pour cela, vous pouvez utiliser le bouton

Vous pouvez utiliser vos comptes Facebook, twitter ou google pour vous identifer (google est compatible yahoo, openID...)
L'ideal étant de vous connecter si vous avez un compte utilisateur, ou faire une demande de compte utilisateur si vous n'en avez pas encore.
Créer un compte va vous permettre de pouvoir éditer vos codes et de mettre en avant votre site internet.
Sinon vous pouvez soumettre anonymement en remplissant les champs ci-après.







Choisissez les catégories correspondantes à votre Code:

  • algorithmique
  • Analyse de survie
  • base indispensable
  • bayésien
  • configuration de R
  • exportation de données
  • fonctions utiles
  • graphique
  • importation de données
  • inférence
  • manipulation de données
  • message d'erreur
  • modélisation
  • Non classé
  • optimisation
  • planification
  • programmer avec R
  • regression linéaire
  • Test
  • tidyverse
  • Transformation de données


Comment enlever les outliers d’un boxplot?

6
dans base indispensable
Les boxplots mettent parfois en évidence des individus qu’on peut qualifier d’atypiques ou outliers.

Un fois mis en évidence graphiquement on peut les repérer et si nécessaire les enlever.

 
 
#on crée un jeu de donnée 
 
b1<-c(0.1, 0.2,6,5,5,6,7,8,8,9,9,9,10,10,25)
 
#on trace le boxplot
 
boxplot(b1) #il y a 3 outliers 
 
#on met le boxplot dans un objet box
 
box<-boxplot(b1)
boxplot(b1)
 
#box$out donne les outliers
 
#on crée des nouvelles données sans les outliers
 
b2<-b1[-which(b1%in%box$out)]
 
#on vérifie
 
boxplot(b2)
 
 


Proposé par Melen.

Ce script vous à rendu service? remerciez l'auteur en votant ici:
- ça ne sert à rien -- c\'est interessant - (score de +4 sur 4 votes)
Loading ... Loading ...

6 Comments

  1. Vincent
    Posté le 14 novembre 2011 a 21 h 13 min | Permalink

    Pas mal je connaissais pas.

  2. emy
    Posté le 17 avril 2013 a 10 h 41 min | Permalink

    Bonjour Melen,

    merci pour ce code très utile !

    je n’arrive pas à traçer le dernier boxplot :

    > boxplot(c2)
    Erreur dans boxplot.default(c2) : premier argument incorrect

    je ne trouve pas d’où vient l’erreur

    il me semble que ça avoir avec la définition du c2 car si je fais :

    >c2
    list()

    merci de ton aide

  3. Vincent
    Posté le 17 avril 2013 a 11 h 08 min | Permalink

    melen propose de faire le test avec un objet b2 ( et pa c2). c’est de la dont doit venir ton erreur.

  4. emy
    Posté le 17 avril 2013 a 11 h 18 min | Permalink

    oui mais il se trouve que j’ai mis c1 et c2 partout…enfait j’ai vraiment un vecteur c1

    y-a-t-il une autre possibilité ?

    > #on met le boxplot dans un objet box
    >  
    > box<-boxplot(c1)
    > boxplot(c1)
    >  
    > #box$out donne les outliers
    >
    > box$out
    [1] 0.341 0.492 0.845 0.488 0.218
    >  
    > #on crée des nouvelles données sans les outliers
    >  
    > c2=c1[-which(c1%in%box$out)]
    >
    > #on vérifie
    >  
    > boxplot(c2)
    Erreur dans boxplot.default(c2) : premier argument incorrect
    >

  5. emy
    Posté le 17 avril 2013 a 11 h 21 min | Permalink

    peu importe le nom, si??

    la même chose avec b1 et b2

    > b1=m1[,3]
    >
    > b1
    [[1]]
     [1] 0.341 0.492 0.845 0.488 0.083 0.043 0.062 0.060 0.063 0.060 0.131 0.094
    [13] 0.218 0.087 0.047 0.140 0.057 0.154 0.031 0.045 0.024 0.035 0.023 0.021
    [25] 0.013 0.021 0.026 0.116 0.033 0.032 0.036 0.036 0.014 0.012 0.070 0.016
    [37] 0.009 0.008 0.008 0.007 0.004 0.019

    >
    > boxplot(b1)
    >
    > #on met le boxplot dans un objet box
    >  
    > box<-boxplot(b1)
    > boxplot(b1)
    >  
    > #box$out donne les outliers
    >
    > box$out
    [1] 0.341 0.492 0.845 0.488 0.218
    >  
    > #on crée des nouvelles données sans les outliers
    >  
    > b2=b1[-which(b1%in%box$out)]
    >
    > #on vérifie
    >  
    > boxplot(b2)
    Erreur dans boxplot.default(b2) : premier argument incorrect

  6. emy
    Posté le 17 avril 2013 a 11 h 23 min | Permalink

    comment peut-on remplacer les cases des outliers par des vides ou des NaN ?
    car mon vecteur b1 est issu d’une colonne d’une matice m1 dont je veux conserver la forme.

Poster un commentaire


Votre email ne seras jamais communiqué champs requis désigné par une *

*
*


− un = 7

Formation logiciel R