2012-07-28 1 views
2

J'essaie d'identifier les valeurs aberrantes à partir d'une boîte à moustache en utilisant MATLAB. La fonction a une valeur de moustache par défaut de 1,5 qui fournit + - 2.7 * couverture sigma ou 99.3. Cependant, je veux une couverture sigma 99.7 ou 3 *. Quelle pourrait être la valeur de moustache dans ce cas? Je ne voulais pas faire une supposition au hasard, alors j'ai besoin d'aide de votre part. MerciValeur de la moustache dans la boîte à moustaches pour une couverture de 99,7

Répondre

4

En général, laissez:

Q1 = icdf('norm',0.25,0,1); 
Q3 = icdf('norm',0.75,0,1); 
IQR = Q3-Q1; 
  • Maintenant, si vous avez une k constante (BOXPLOT par défaut a k=1.5 pour la longueur de foc), le IQR outlier test identifie les valeurs en dehors de la plage: [Q1 - k*IQR, Q3 + k*IQR] comme valeurs aberrantes, ce qui correspond à:

    >> k = 1.5; 
    >> sdCov = [Q1 - k*IQR, Q3 + k*IQR]  %# +/-2.698*sigma coverage 
    sdCov = 
         -2.698  2.698 
    

    ou (en termes de aire sous la courbe):

    >> area = 2*normcdf(sdCov(2), 0, 1)-1 %# 99.3% coverage 
    area = 
         0.99302 
    
  • Dans le sens inverse, si vous voulez une couverture sdCov*sigma, puis:

    >> sdCov = 3; 
    >> k = (Q1+sdCov)/IQR 
    k = 
         1.7239 
    

    ou:

    >> area = 0.9973; 
    >> sdCov = norminv(1-(1-area)/2); 
    >> k = (Q1+sdCov)/IQR 
    

    utilisent donc ce qui suit dans votre case:

    boxplot(data, 'whisker',1.7239) 
    

Voici une illustration empruntée à Wikipedia:

http://en.wikipedia.org/wiki/Interquartile_range

+0

Merci, ce fut vraiment utile. – Shehroz

Questions connexes