كيفية استخدام وظيفة jitter في r للسحب النقطية
يشرح هذا البرنامج التعليمي متى وكيف يتم استخدام وظيفة الارتعاش في R للسحب النقطية.
متى تستخدم الاهتزاز
تعتبر المخططات المبعثرة ممتازة لتصور العلاقة بين متغيرين مستمرين. على سبيل المثال، يساعدنا مخطط التشتت التالي على تصور العلاقة بين الطول والوزن لـ 100 رياضي:
#define vectors of heights and weights weights <- runif(100, 160, 240) heights <- (weights/3) + rnorm(100) #create data frame of heights and weights data <- as.data.frame(cbind(weights, heights)) #view first six rows of data frame head(data) # weights heights #1 170.8859 57.20745 #2 183.2481 62.01162 #3 235.6884 77.93126 #4 231.9864 77.12520 #5 200.8562 67.93486 #6 169.6987 57.54977 #create scatterplot of heights vs weights plot(data$weights, data$heights, pch = 16, col = 'steelblue')
ومع ذلك، في بعض الأحيان قد نرغب في تصور العلاقة بين متغير مستمر ومتغير آخر شبه مستمر.
على سبيل المثال، لنفترض أن لدينا مجموعة البيانات التالية التي توضح عدد المباريات التي بدأها لاعب كرة السلة خلال أول 10 مباريات في الموسم بالإضافة إلى متوسط نقاطه لكل مباراة:
#create data frame games_started <- sample(1:10, 300, TRUE) points_per_game <- 3*games_started + rnorm(300) data <- as.data.frame(cbind(games_started, points_per_game)) #view first six rows of data frame head(data) # games_started points_per_game #1 9 25.831554 #2 9 26.673983 #3 10 29.850948 #4 4 12.024353 #5 4 11.534192 #6 1 4.383127
النقاط لكل لعبة هي متغير مستمر، ولكن الألعاب التي بدأت هي متغير منفصل. إذا حاولنا إنشاء مخطط تشتت لهذين المتغيرين، فهذا ما سيبدو عليه:
#create scatterplot of games started vs average points per game
plot(data$games_started, data$points_per_game, pch = 16, col = 'steelblue')
من مخطط التشتت هذا يمكننا القول أن الألعاب بدأت وأن متوسط النقاط لكل لعبة لها علاقة إيجابية، ولكن من الصعب بعض الشيء رؤية النقاط الفردية في المخطط لأن العديد منها متداخل.
باستخدام دالة Jitter ، يمكننا إضافة بعض “الضوضاء” إلى مجموعات متغيرات المحور السيني التي تم طرحها حتى نتمكن من رؤية النقاط الفردية على المخطط بشكل أكثر وضوحًا:
#add jitter to games started plot( jitter (data$games_started), data$points_per_game, pch = 16, col = 'steelblue')
يمكننا اختياريًا إضافة وسيطة رقمية إلى الارتعاش لإضافة المزيد من الضوضاء إلى البيانات:
#add jitter to games started plot( jitter (data$games_started, 2 ), data$points_per_game, pch = 16, col = 'steelblue')
ومع ذلك، يجب أن نكون حريصين على عدم إضافة الكثير من عدم الاستقرار، لأن هذا قد يؤدي إلى تشويه البيانات الأصلية كثيرًا:
plot( jitter (data$games_started, 20 ), data$points_per_game, pch = 16, col = 'steelblue')
يوفر Jittering رؤية أفضل للبيانات
يكون عدم الاستقرار مفيدًا بشكل خاص عندما يحتوي أحد مستويات المتغير المنفصل على قيم أكثر بكثير من المستويات الأخرى.
على سبيل المثال، في مجموعة البيانات التالية، هناك ثلاثمائة لاعب كرة سلة بدأوا 2 من أول 5 مباريات في الموسم، ولكن حوالي 100 لاعب فقط بدأوا مباراة واحدة أو 3 أو 4 أو 5 مباريات:
games_started <- sample(1:5, 100, TRUE) points_per_game <- 3*games_started + rnorm(100) data <- as.data.frame(cbind(games_started, points_per_game)) games_twos <- rep(2, 200) points_twos <- 3*games_twos + rnorm(200) data_twos <- as.data.frame(cbind(games_twos, points_twos)) names(data_twos) <- c('games_started', 'points_per_game') all_data <- rbind(data, data_twos)
عندما نتصور عدد المباريات التي تم لعبها بالنسبة لمتوسط النقاط لكل مباراة، يمكننا القول أن هناك المزيد من اللاعبين الذين لعبوا مباراتين، ولكن من الصعب تحديد عدد اللاعبين الآخرين الذين لعبوا مباراتين بالضبط:
plot(all_data$games_started, all_data$points_per_game, pch = 16, col = 'steelblue')
ومع ذلك، بمجرد إضافة الارتعاش إلى متغير بداية اللعبة ، يمكننا معرفة عدد اللاعبين الإضافيين الذين بدأوا مباراتين:
plot( jitter (all_data$games_started), all_data$points_per_game,
pch=16, col='steelblue')
إن زيادة كمية الارتعاش قليلاً تكشف عن هذا الاختلاف بشكل أكبر:
plot( jitter (all_data$games_started, 1.5 ), all_data$points_per_game, pch=16, col='steelblue')
غضب للتصورات فقط
كما ذكرنا سابقًا، يضيف الارتعاش تشويشًا عشوائيًا إلى البيانات، وهو ما يمكن أن يكون مفيدًا عندما نريد تصور البيانات في سحابة نقطية. باستخدام دالة الارتعاش، يمكننا الحصول على صورة أفضل للعلاقة الأساسية الحقيقية بين متغيرين في مجموعة البيانات.
ومع ذلك، عند استخدام التحليل الإحصائي مثل الانحدار، ليس من المنطقي إضافة ضوضاء عشوائية إلى المتغيرات في مجموعة البيانات، لأن ذلك من شأنه أن يؤثر على نتائج التحليل.
لذا فإن المقصود من الارتعاش هو استخدامه فقط لتصور البيانات، وليس لتحليل البيانات.