paint-brush
Detectarea valorii aberante: Ce trebuie să știțide@nataliaogneva
54,644 lecturi
54,644 lecturi

Detectarea valorii aberante: Ce trebuie să știți

de Natalia Ogneva
Natalia Ogneva HackerNoon profile picture

Natalia Ogneva

@nataliaogneva

Statistics lover

4 min read2024/04/23
Read on Terminal Reader
Read this story in a terminal
Print this story
Read this story w/o Javascript
Read this story w/o Javascript
tldt arrow
ro-flagRO
Citiți această poveste în limba română!
en-flagEN
Read this story in the original language, English!
ln-flagLN
Tanga lisolo oyo na lingala!
lo-flagLO
ອ່ານເລື່ອງນີ້ເປັນພາສາລາວ!
ps-flagPS
دا کیسه په پښتو ژبه ولولئ!
lt-flagLT
Skaitykite šią istoriją lietuvių kalba!
hr-flagHR
Pročitajte ovu priču na hrvatskom!
lv-flagLV
Izlasi šo stāstu latviešu valodā!
ht-flagHT
Li istwa sa a an kreyòl ayisyen!
hu-flagHU
Olvasd el ezt a történetet magyarul!
hy-flagHY
Կարդացեք այս պատմությունը հայերեն։
uk-flagUK
Читайте цю історію українською!
mg-flagMG
Vakio amin'ny teny malagasy ity tantara ity!
More
RO

Prea lung; A citi

Analiștii întâlnesc adesea valori aberante în date în timpul lucrului lor. Deciziile se bazează de obicei pe media eșantionului, care este foarte sensibilă la valori aberante. Este esențial să gestionați valorile aberante pentru a lua decizia corectă. Să luăm în considerare câteva abordări simple și rapide pentru a lucra cu valori neobișnuite.

Companies Mentioned

Mention Thumbnail
effect
Mention Thumbnail
Series
featured image - Detectarea valorii aberante: Ce trebuie să știți
Natalia Ogneva HackerNoon profile picture
Natalia Ogneva

Natalia Ogneva

@nataliaogneva

Statistics lover

Analiștii întâlnesc adesea valori aberante în date în timpul lucrului lor, cum ar fi în timpul analizei testului AB, creând modele predictive sau urmărind tendințele. Deciziile se bazează de obicei pe media eșantionului, care este foarte sensibilă la valori aberante și poate schimba dramatic valoarea. Prin urmare, este esențial să gestionați valorile aberante pentru a lua decizia corectă.


Să luăm în considerare câteva abordări simple și rapide pentru a lucra cu valori neobișnuite.

Formularea problemei

Imaginați-vă că trebuie să efectuați o analiză de experiment folosind o valoare medie a comenzii ca măsură principală. Să presupunem că metrica noastră are de obicei o distribuție normală. De asemenea, știm că distribuția metrică în grupul de testare este diferită de cea din control. Cu alte cuvinte, media distribuției în control este 10, iar în test este 12. Abaterea standard în ambele grupuri este 3.


Cu toate acestea, ambele eșantioane au valori aberante care obligă mediile eșantionului și abaterea standard a eșantionului.

image

 import numpy as np N = 1000 mean_1 = 10 std_1 = 3 mean_2 = 12 std_2 = 3 x1 = np.concatenate((np.random.normal(mean_1, std_1, N), 10 * np.random.random_sample(50) + 20)) x2 = np.concatenate((np.random.normal(mean_2, std_2, N), 4 * np.random.random_sample(50) + 1))

NB că luarea în considerare a metricii ar putea avea valori aberante din ambele părți. Dacă valoarea dvs. ar putea avea valori aberante doar dintr-o parte, metodele ar putea fi ușor transformate în acest scop.

Tăiați Cozile

Cea mai ușoară metodă este să tăiați toate observațiile înainte de percentila de 5% și după percentila de 95% . În acest caz, am pierdut 10% din informații ca un escrocher. Cu toate acestea, distribuțiile par mai formate, iar momentele eșantionului sunt mai apropiate de momentele de distribuție.

image

 import numpy as np x1_5pct = np.percentile(x1, 5) x1_95pct = np.percentile(x1, 95) x1_cutted = [i for i in x1 if i > x1_5pct and i < x1_95pct] x2_5pct = np.percentile(x2, 5) x2_95pct = np.percentile(x2, 95) x2_cutted = [i for i in x2 if i > x2_5pct and i < x2_95pct]


O altă modalitate este de a exclude observațiile din afara intervalului specific . Banda inferioară este egală cu percentila de 25% minus jumătate din intervalul intercuartil, iar banda superioară este egală cu percentila de 75% plus jumătate. Aici vom pierde doar 0,7% din informații. Distribuțiile par mai formate decât inițiale. Momentele eșantionului sunt și mai egale cu momentele de distribuție.

image

 import numpy as np low_band_1 = np.percentile(x1, 25) - 1.5 * np.std(x1) high_band_1 = np.percentile(x1, 75) + 1.5 * np.std(x1) x1_cutted = [i for i in x1 if i > low_band_1 and i < high_band_1] low_band_2 = np.percentile(x2, 25) - 1.5 * np.std(x2) high_band_2 = np.percentile(x2, 75) + 1.5 * np.std(x2) x2_cutted = [i for i in x2 if i > low_band_2 and i < high_band_2]

Bootstrap

A doua metodă pe care am luat-o în considerare aici este un bootstrap. În această abordare, media este construită ca o medie a subeșantioanelor. În exemplul nostru, media din grupul de control este egală cu 10,35, iar grupul de testare este 11,78. Este încă un rezultat mai bun în comparație cu prelucrarea suplimentară a datelor.

 import pandas as pd def create_bootstrap_samples( sample_list: np.array, sample_size: int, n_samples: int ): # create a list for sample means sample_means = [] # loop n_samples times for i in range(n_samples): # create a bootstrap sample of sample_size with replacement bootstrap_sample = pd.Series(sample_list).sample(n = sample_size, replace = True) # calculate the bootstrap sample mean sample_mean = bootstrap_sample.mean() # add this sample mean to the sample means list sample_means.append(sample_mean) return pd.Series(sample_means) (create_bootstrap_samples(x1, len(x1), 1000).mean(), create_bootstrap_samples(x2, len(x2), 1000).mean())

Concluzie

Detectarea și procesarea valorii aberante sunt importante pentru luarea deciziei corecte. Acum, cel puțin trei abordări rapide și directe vă pot ajuta să verificați datele înainte de analiză.


Cu toate acestea, este esențial să ne amintim că valorile aberante detectate ar putea fi valori neobișnuite și o caracteristică pentru efectul de noutate. Dar e alta poveste :)

L O A D I N G
. . . comments & more!

About Author

Natalia Ogneva HackerNoon profile picture
Natalia Ogneva@nataliaogneva
Statistics lover

Etichete suspendate

ACEST ARTICOL A FOST PREZENTAT IN...

Permanent on Arweave
Read on Terminal Reader
Read this story in a terminal
 Terminal
Read this story w/o Javascript
Read this story w/o Javascript
 Lite

Mentioned in this story

companies
X REMOVE AD