――Enquête sur la probabilité que des «valeurs aberrantes» dans la boîte de moustaches apparaissent lorsqu'une distribution normale est supposée. --Définition de «valeur aberrante»: plage du 1er quadrant-quart * inférieure à 1,5, ou plage du 1er quadrant-quart * supérieure à 1,5 (y compris les valeurs extrêmes) ――La probabilité d'apparition de «valeurs aberrantes» est d'environ 0,70%.
――Lorsque vous dessinez un diagramme boîte-barbe lors de l'analyse statistique en entreprise, des «valeurs aberrantes» apparaissent souvent. ――Je voulais savoir dans quelle mesure il est probable que des «valeurs aberrantes» apparaissent en supposant une certaine distribution.
Veuillez consulter les sites suivants pour obtenir des explications sur les moustaches de boîte et les valeurs aberrantes dans les moustaches de boîte.
Calculons la probabilité des valeurs aberrantes en utilisant la fonction de densité de probabilité de la distribution normale standard.
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
q1_ideal = stats.norm.ppf (q = 0.25, loc = mu, scale = sd) # 1er quadrant q3_ideal = stats.norm.ppf (q = 0.75, loc = mu, scale = sd) # 3e quadrant iqr_ideal = q3_ideal-q1_ideal # quadrant lb_ideal = q1_ideal-1.5 * iqr_ideal # Limite inférieure des valeurs aberrantes ub_ideal = q3_ideal + 1.5 * iqr_ideal # Limite supérieure des valeurs aberrantes
print('Q1:', q1_ideal)
print('Q3:', q3_ideal)
print('IQR:', iqr_ideal)
print('Lower Bound:', lb_ideal)
print('Upper Bound:', ub_ideal)
print ('Probabilité de valeur aberrante inférieure:', stats.norm.cdf (x = lb_ideal, loc = mu, scale = sd) * 100, '%') print ('Probabilité de valeur aberrante supérieure:', stats.norm.sf (x = ub_ideal, loc = mu, scale = sd) * 100, '%') print ('Probabilité de valeurs aberrantes:', (stats.norm.sf (x = ub_ideal, loc = mu, scale = sd) + stats.norm.cdf (x = lb_ideal, loc = mu, scale = sd)) * 100, '%')
>Q1: -0.674489750196
>Q3: 0.674489750196
>IQR: 1.34897950039
>Lower Bound: -2.69795900078
>Upper Bound: 2.69795900078
Probabilité de valeur aberrante inférieure: 0,348830161964% Probabilité de valeur aberrante supérieure: 0,348830161964% Probabilité de valeurs aberrantes: 0,697660323928%
Ainsi, avec une distribution normale, la probabilité d'obtenir une valeur aberrante est de 0,7%. S'il y a 1000 échantillons, environ 7 seront hors service. 0,3% est en dehors de 3σ, donc c'est plus que cela.
Utilisons des données échantillonnées au hasard à partir d'une distribution normale pour voir si cela se produit vraiment.
n = 1000000 # nombre d'échantillons mu = 0 # moyenne sd = 1 # écart type q1 = stats.scoreatpercentile(data, 25) q3 = stats.scoreatpercentile(data, 75) iqr = q3-q1 lb = q1-1.5iqr ub = q3+1.5iqr print('Q1:', q1) print('Q2:', med) print('Q3:', q3) print('IQR:', iqr) print('Lower Bound:', lb) print('Upper Bound:', ub) print ('Rapport du nombre d'échantillons avec des valeurs aberrantes supérieures au nombre total d'échantillons:', len (np.where (data <lb) [0]) / n * 100, '%') print ('Rapport du nombre d'échantillons avec des valeurs aberrantes inférieures au nombre total d'échantillons:', len (np.where (data> ub) [0]) / n * 100, '%') print ('Rapport du nombre de valeurs aberrantes au nombre total d'échantillons:', (len (np.where (data> ub) [0]) + len (np.where (data <lb))) / n * 100, '%')
>Q1: -0.674873830027
>Q2: -0.00106013590319
>Q3: 0.673290672641
>IQR: 1.34816450267
>Lower Bound: -2.69712058403
>Upper Bound: 2.69553742664
Pourcentage du nombre total d'échantillons avec des valeurs aberrantes supérieures: 0,3554% Pourcentage de tous les échantillons avec des valeurs aberrantes inférieures: 0,3478% Pourcentage de valeurs aberrantes dans le nombre total d'échantillons: 0,7032%
Le pourcentage d'échantillons avec des valeurs aberrantes calculées par échantillonnage aléatoire était de 0,7%, ce qui était presque le même que la valeur calculée à partir de la fonction de densité de probabilité.