paint-brush
آؤٹ لیئر کا پتہ لگانا: آپ کو کیا جاننے کی ضرورت ہے۔کی طرف سے@nataliaogneva
54,619 ریڈنگز
54,619 ریڈنگز

آؤٹ لیئر کا پتہ لگانا: آپ کو کیا جاننے کی ضرورت ہے۔

کی طرف سے Natalia Ogneva4m2024/04/23
Read on Terminal Reader
Read this story w/o Javascript

بہت لمبا؛ پڑھنے کے لئے

تجزیہ کار اکثر اپنے کام کے دوران اعداد و شمار میں آؤٹ لیرز کا سامنا کرتے ہیں۔ فیصلے عام طور پر نمونے کے اوسط پر مبنی ہوتے ہیں، جو باہر جانے والوں کے لیے بہت حساس ہوتا ہے۔ درست فیصلہ کرنے کے لیے باہر جانے والوں کا انتظام کرنا بہت ضروری ہے۔ آئیے غیر معمولی اقدار کے ساتھ کام کرنے کے لیے کئی آسان اور تیز طریقوں پر غور کریں۔

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - آؤٹ لیئر کا پتہ لگانا: آپ کو کیا جاننے کی ضرورت ہے۔
Natalia Ogneva HackerNoon profile picture

تجزیہ کار اکثر اپنے کام کے دوران ڈیٹا میں آؤٹ لیرز کا سامنا کرتے ہیں، جیسے کہ AB-ٹیسٹ تجزیہ کے دوران، پیشین گوئی کرنے والے ماڈل بنانا، یا رجحانات کو ٹریک کرنا۔ فیصلے عام طور پر نمونے کے اوسط پر مبنی ہوتے ہیں، جو باہر جانے والوں کے لیے بہت حساس ہوتے ہیں اور قدر کو ڈرامائی طور پر تبدیل کر سکتے ہیں۔ لہذا، درست فیصلہ کرنے کے لیے باہر جانے والوں کا انتظام کرنا بہت ضروری ہے۔


آئیے غیر معمولی اقدار کے ساتھ کام کرنے کے لیے کئی آسان اور تیز طریقوں پر غور کریں۔

مسئلہ کی تشکیل

تصور کریں کہ آپ کو ایک پرائمری میٹرک کے بطور اوسط آرڈر ویلیو کا استعمال کرتے ہوئے ایک تجربہ تجزیہ کرنے کی ضرورت ہے۔ ہم کہتے ہیں کہ ہمارے میٹرک میں عام طور پر ایک عام تقسیم ہوتی ہے۔ نیز، ہم جانتے ہیں کہ ٹیسٹ گروپ میں میٹرک کی تقسیم کنٹرول میں اس سے مختلف ہے۔ دوسرے الفاظ میں، کنٹرول میں تقسیم کا اوسط 10 ہے، اور ٹیسٹ میں 12 ہے۔ دونوں گروپوں میں معیاری انحراف 3 ہے۔


تاہم، دونوں نمونوں میں آؤٹ لیئرز ہیں جو نمونے کے ذرائع اور نمونے کے معیاری انحراف کو متزلزل کرتے ہیں۔

 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 کہ میٹرک پر غور کرنے سے دونوں اطراف سے باہر نکلنے والے ہو سکتے ہیں۔ اگر آپ کے میٹرک میں صرف ایک طرف سے آؤٹ لیرز ہوسکتے ہیں، تو اس مقصد کے لیے طریقے آسانی سے تبدیل کیے جاسکتے ہیں۔

دم کاٹ دیں۔

سب سے آسان طریقہ یہ ہے کہ تمام مشاہدات کو 5% پرسنٹائل سے پہلے اور 95% پرسنٹائل کے بعد کاٹ دیا جائے۔ اس صورت میں، ہم نے 10% معلومات کو بطور ایک کھو دیا۔ تاہم، تقسیم زیادہ تشکیل شدہ نظر آتی ہے، اور نمونے کے لمحات تقسیم کے لمحات کے قریب ہوتے ہیں۔

 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% کھو دیں گے۔ تقسیم ابتدائی سے زیادہ تشکیل شدہ نظر آتی ہے۔ نمونے کے لمحات تقسیم کے لمحات سے بھی زیادہ برابر ہیں۔

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

نتیجہ

درست فیصلہ کرنے کے لیے باہر کی نشاندہی اور پروسیسنگ اہم ہیں۔ اب، کم از کم تین تیز اور سیدھے طریقے سے آپ کو تجزیہ کرنے سے پہلے ڈیٹا چیک کرنے میں مدد مل سکتی ہے۔


تاہم، یہ یاد رکھنا ضروری ہے کہ پتہ چلا آؤٹ لیرز غیر معمولی قدریں اور نیاپن کے اثر کے لیے ایک خصوصیت ہو سکتی ہیں۔ لیکن یہ ایک اور کہانی ہے :)