paint-brush
זיהוי חריגים: מה שאתה צריך לדעתעל ידי@nataliaogneva
54,626 קריאות
54,626 קריאות

זיהוי חריגים: מה שאתה צריך לדעת

על ידי Natalia Ogneva
Natalia Ogneva HackerNoon profile picture

Natalia Ogneva

@nataliaogneva

Statistics lover

4 דקה 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
iw-flagIW
קרא את הסיפור הזה בעברית!
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
IW

יותר מדי זמן; לקרוא

אנליסטים נתקלים לעתים קרובות בחריגים בנתונים במהלך עבודתם. ההחלטות מבוססות בדרך כלל על ממוצע המדגם, שרגיש מאוד לחריגות. זה חיוני לנהל חריגים כדי לקבל את ההחלטה הנכונה. הבה נבחן מספר גישות פשוטות ומהירות לעבודה עם ערכים יוצאי דופן.

Companies Mentioned

Mention Thumbnail
effect
Mention Thumbnail
Series
featured image - זיהוי חריגים: מה שאתה צריך לדעת
Natalia Ogneva HackerNoon profile picture
Natalia Ogneva

Natalia Ogneva

@nataliaogneva

Statistics lover

אנליסטים נתקלים לעתים קרובות בחריגות בנתונים במהלך עבודתם, כגון במהלך ניתוח AB-test, יצירת מודלים חזויים או מעקב אחר מגמות. החלטות מתבססות בדרך כלל על ממוצע המדגם, שהוא רגיש מאוד לחריגים ויכול לשנות באופן דרמטי את הערך. לכן, זה חיוני לנהל חריגים כדי לקבל את ההחלטה הנכונה.


הבה נבחן מספר גישות פשוטות ומהירות לעבודה עם ערכים יוצאי דופן.

ניסוח בעיה

תאר לעצמך שאתה צריך לבצע ניתוח ניסוי באמצעות ערך הזמנה ממוצע כמדד ראשי. נניח שלמדד שלנו יש בדרך כלל התפלגות נורמלית. כמו כן, אנו יודעים שהתפלגות המטרית בקבוצת הבדיקה שונה מזו שבביקורת. במילים אחרות, ממוצע ההתפלגות בבקרה הוא 10, ובמבחן הוא 12. סטיית התקן בשתי הקבוצות היא 3.


עם זאת, לשתי הדגימות יש חריגים שמטות את אמצעי המדגם ואת סטיית התקן של המדגם.

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))

שים לב שלהתחשב במדד עשויות להיות חריגות משני הצדדים. אם המדד שלך יכול להכיל חריגים רק מצד אחד, ניתן היה לשנות בקלות שיטות למטרה זו.

חתוך זנבות

השיטה הקלה ביותר היא לנתק את כל התצפיות לפני אחוזון 5% ואחרי אחוזון 95% . במקרה זה, איבדנו 10% מהמידע כמחדל. עם זאת, ההתפלגויות נראות מעוצבות יותר, ורגעי המדגם קרובים יותר לרגעי ההתפלגות.

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]


דרך נוספת היא לא לכלול תצפיות מחוץ לטווח הספציפי . התחום הנמוך שווה לאחוזון של 25% פחות מחצית מהטווח הבין-רבעוני, והפס הגבוה שווה לאחוזון של 75% פלוס חצי. כאן, נאבד רק 0.7% מהמידע. ההפצות נראות יותר מעוצבות מהראשוניות. רגעי המדגם שווים אפילו יותר לרגעי החלוקה.

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]

אתחול

השיטה השנייה ששקלנו כאן היא רצועה. בגישה זו, הממוצע בנוי כמו ממוצע של תת-דגימות. בדוגמה שלנו, הממוצע בקבוצת הביקורת שווה ל-10.35, וקבוצת הבדיקה היא 11.78. זו עדיין תוצאה טובה יותר בהשוואה לעיבוד נתונים נוסף.

 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())

מַסְקָנָה

זיהוי ועיבוד חריגים הם משמעותיים לקבלת ההחלטה הנכונה. כעת, לפחות שלוש גישות מהירות ופשוטות יכולות לעזור לך לבדוק את הנתונים לפני הניתוח.


עם זאת, חשוב לזכור שחריגים שזוהו יכולים להיות ערכים יוצאי דופן ותכונה לאפקט החידוש. אבל זה כבר סיפור אחר :)

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

About Author

Natalia Ogneva HackerNoon profile picture
Natalia Ogneva@nataliaogneva
Statistics lover

תלו תגים

מאמר זה הוצג ב...

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