مقدمة لطيفة لانحدار بواسون لبيانات العد
الانحدار هو أسلوب إحصائي يمكن استخدامه لتحديد العلاقة بين واحد أو أكثر من متغيرات التوقع ومتغير الاستجابة .
انحدار بواسون هو نوع خاص من الانحدار يكون فيه متغير الاستجابة هو “بيانات العدد”. توضح الأمثلة التالية الحالات التي يمكن فيها استخدام انحدار بواسون:
مثال 1: يمكن استخدام انحدار بواسون لفحص عدد الطلاب الذين تخرجوا من برنامج جامعي معين بناءً على المعدل التراكمي الخاص بهم عند دخولهم البرنامج وجنسهم. في هذه الحالة، يكون “عدد الطلاب المتخرجين” هو متغير الاستجابة، و”المعدل التراكمي عند الالتحاق بالبرنامج” هو متغير متنبئ مستمر، و”الجنس” هو متغير متنبئ قاطع.
مثال 2: يمكن استخدام انحدار بواسون لفحص عدد حوادث المرور عند تقاطع معين بناءً على الظروف الجوية (“مشمس”، “غائم”، “ممطر”) وما إذا كان هناك حدث خاص يقع أم لا في المدينة (“نعم” أو لا”). في هذه الحالة، يكون “عدد حوادث الطرق” هو متغير الاستجابة، في حين أن “الظروف الجوية” و”الحدث الخاص” كلاهما متغيرات تنبؤية فئوية.
مثال 3: يمكن استخدام انحدار بواسون لفحص عدد الأشخاص الذين أمامك في الطابور في متجر بناءً على الوقت من اليوم واليوم من الأسبوع وما إذا كانت عملية البيع تتم أم لا (“نعم أم لا” “). في هذه الحالة، “عدد الأشخاص الذين أمامك في الطابور” هو متغير الاستجابة، و”الوقت من اليوم” و”يوم من الأسبوع” كلاهما متغيران متنبئان مستمران، و”البيع قيد التقدم” هو متغير متنبئ قاطع.
مثال 4: يمكن استخدام انحدار بواسون لفحص عدد الأشخاص الذين أكملوا سباق الترياتلون بناءً على الظروف الجوية (“مشمس”، “غائم”، “ممطر”) وصعوبة الدورة (“سهل”، “ممطر”). معتدل، “صعب”). في هذه الحالة، “عدد الأشخاص الذين ينتهون” هو متغير الاستجابة، في حين أن “الظروف الجوية” و”صعوبة الدورة” كلاهما متغيرات تنبؤية فئوية.
سيسمح لك إجراء انحدار بواسون بمعرفة أي متغيرات التوقع (إن وجدت) لها تأثير ذو دلالة إحصائية على متغير الاستجابة.
بالنسبة لمتغيرات التوقع المستمرة، ستتمكن من تفسير كيفية ارتباط زيادة أو نقصان وحدة واحدة في هذا المتغير بنسبة مئوية للتغير في أرقام متغير الاستجابة (على سبيل المثال، “ترتبط كل زيادة بوحدة واحدة إضافية في المعدل التراكمي بـ زيادة بنسبة 12.5% في متغير الاستجابة).
بالنسبة لمتغيرات التوقع الفئوية، ستتمكن من تفسير النسبة المئوية للتغير في أعداد مجموعة واحدة (على سبيل المثال، عدد الأشخاص الذين أكملوا سباقًا ثلاثيًا في يوم مشمس) مقارنة بمجموعة أخرى (على سبيل المثال، عدد الأشخاص الذين أنهوا سباقًا ثلاثيًا) الترياتلون في الطقس الممطر).
افتراضات الانحدار بواسون
قبل أن نتمكن من إجراء انحدار بواسون، يجب علينا التأكد من استيفاء الافتراضات التالية حتى تكون نتائج انحدار بواسون صالحة:
الافتراض 1: متغير الاستجابة هو بيانات العد. في الانحدار الخطي التقليدي، يكون متغير الاستجابة هو البيانات المستمرة. ومع ذلك، لاستخدام انحدار بواسون، يجب أن يتكون متغير الاستجابة لدينا من بيانات العد بما في ذلك الأعداد الصحيحة من 0 أو أكبر (على سبيل المثال 0، 1، 2، 14، 34، 49، 200، وما إلى ذلك). لا يمكن أن يحتوي متغير الاستجابة الخاص بنا على قيم سلبية.
الفرضية 2: الملاحظات مستقلة. يجب أن تكون كل ملاحظة في مجموعة البيانات مستقلة عن بعضها البعض. وهذا يعني أن ملاحظة واحدة لا ينبغي أن تكون قادرة على تقديم معلومات حول ملاحظة أخرى.
الفرضية 3: توزيع الحسابات يتبع توزيع بواسون. ونتيجة لذلك، ينبغي أن تكون الأعداد المرصودة والمتوقعة متشابهة. إحدى الطرق البسيطة لاختبار ذلك هي رسم الأعداد المتوقعة والمرصودة ومعرفة ما إذا كانت متشابهة.
الافتراض 4: المتوسط والتباين للنموذج متساويان. ينتج هذا عن افتراض أن توزيع الأعداد يتبع توزيع بواسون. بالنسبة لتوزيع بواسون، يكون للتباين نفس قيمة المتوسط. إذا تم استيفاء هذا الافتراض، فهذا يعني أن لديك تشتت متساوي . ومع ذلك، غالبًا ما يتم انتهاك هذا الافتراض لأن التشتت الزائد يمثل مشكلة شائعة.
مثال: انحدار بواسون في R
سنراجع الآن مثالاً لكيفية إجراء انحدار Poisson في R.
خلفية
لنفترض أننا نريد معرفة عدد المنح الدراسية التي يتلقاها لاعب البيسبول في المدرسة الثانوية في مقاطعة معينة بناءً على قسم مدرسته (“أ” أو “ب” أو “ج”) ودرجته المدرسية. امتحان القبول بالجامعة (يقاس من 0 إلى 100). ).
ينشئ التعليمة البرمجية التالية مجموعة البيانات التي سنعمل معها، والتي تتضمن بيانات عن 100 لاعب بيسبول:
#make this example reproducible set.seed(1) #create dataset data <- data.frame(offers = c(rep(0, 50), rep(1, 30), rep(2, 10), rep(3, 7), rep(4, 3)), division = sample(c("A", "B", "C"), 100, replace = TRUE), exam = c(runif(50, 60, 80), runif(30, 65, 95), runif(20, 75, 95)))
فهم البيانات
قبل ملاءمة نموذج انحدار بواسون فعليًا لمجموعة البيانات هذه، يمكننا فهم البيانات بشكل أفضل من خلال تصور الصفوف القليلة الأولى من مجموعة البيانات واستخدام مكتبة dplyr لتشغيل إحصائيات التلخيص:
#view dimensions of dataset dim(data) #[1] 100 3 #view first six lines of dataset head(data) # offers division exam #1 0 A 73.09448 #2 0 B 67.06395 #3 0 B 65.40520 #4 0 C 79.85368 #5 0 A 72.66987 #6 0 C 64.26416 #view summary of each variable in dataset summary(data) # offers division exam # Min. :0.00 To:27 Min. :60.26 # 1st Qu.:0.00 B:38 1st Qu.:69.86 # Median: 0.50 C:35 Median: 75.08 # Mean:0.83 Mean:76.43 # 3rd Qu.:1.00 3rd Qu.:82.87 # Max. :4.00 Max. :93.87 #view mean exam score by number of offers library(dplyr) data %>% group_by (offers) %>% summarize (mean_exam = mean(exam)) # A tibble: 5 x 2 # offers mean_exam # #1 0 70.0 #2 1 80.8 #3 2 86.8 #4 3 83.9 #5 4 87.9
ومن النتيجة السابقة يمكننا ملاحظة ما يلي:
- هناك 100 صف و3 أعمدة في مجموعة البيانات
- الحد الأدنى لعدد العروض التي يتلقاها اللاعب هو صفر، والحد الأقصى هو أربعة، والمتوسط 0.83.
- في مجموعة البيانات هذه، يوجد 27 لاعبًا من القسم “أ”، و38 لاعبًا من القسم “ب”، و35 لاعبًا من القسم “ج”.
- وكان الحد الأدنى لدرجة الامتحان 60.26 والحد الأقصى 93.87 والمعدل 76.43.
- بشكل عام، يميل اللاعبون الذين تلقوا المزيد من عروض المنح الدراسية إلى الحصول على درجات أعلى في الامتحان (على سبيل المثال، متوسط درجات الاختبار للاعبين الذين لم يتلقوا أي عروض كان 70.0 ومتوسط درجات المراجعة للاعبين الذين تلقوا 4 عروض كان 87.9).
يمكننا أيضًا إنشاء رسم بياني لتصور عدد العروض التي يتلقاها اللاعبون بناءً على القسم:
#load ggplot2 package library(ggplot2) #create histogram ggplot(data, aes(offers, fill = division)) + geom_histogram(binwidth=.5, position="dodge")
يمكننا أن نرى أن معظم اللاعبين لم يتلقوا أي عرض أو عرضًا واحدًا فقط. وهذا نموذجي لمجموعات البيانات التي تتبع توزيعات بواسون : جزء كبير من قيم الاستجابة يكون صفرًا.
تركيب نموذج الانحدار بواسون
بعد ذلك، يمكننا ضبط النموذج باستخدام الدالة glm() وتحديد أننا نريد استخدام Family = “fish” للنموذج:
#fit the model model <- glm(offers ~ division + exam, family = "fish" , data = data) #view model output summary(model) #Call: #glm(formula = offers ~ division + exam, family = "fish", data = data) # #Deviance Residuals: # Min 1Q Median 3Q Max #-1.2562 -0.8467 -0.5657 0.3846 2.5033 # #Coefficients: #Estimate Std. Error z value Pr(>|z|) #(Intercept) -7.90602 1.13597 -6.960 3.41e-12 *** #divisionB 0.17566 0.27257 0.644 0.519 #divisionC -0.05251 0.27819 -0.189 0.850 #exam 0.09548 0.01322 7.221 5.15e-13 *** #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 # #(Dispersion parameter for fish family taken to be 1) # # Null deviance: 138,069 on 99 degrees of freedom #Residual deviance: 79,247 on 96 degrees of freedom #AIC: 204.12 # #Number of Fisher Scoring iterations: 5
ومن النتيجة يمكننا ملاحظة ما يلي:
- يتم توفير معاملات انحدار بواسون، والخطأ المعياري في التقديرات، ودرجات z، والقيم p المقابلة.
- معامل المراجعة هو 0.09548 مما يشير إلى أن رقم السجل المتوقع لعدد العروض لزيادة وحدة واحدة في المراجعة هو 0.09548 . هناك طريقة أبسط لتفسير ذلك وهي أخذ القيمة الأسية، أي e 0.09548 = 1.10 . وهذا يعني أن هناك زيادة بنسبة 10% في عدد العروض المستلمة مقابل كل نقطة إضافية يتم الحصول عليها في امتحان القبول.
- معامل القسم B هو 0.1756 ، مما يشير إلى أن العدد المتوقع من العروض للاعب في القسم B أعلى بمقدار 0.1756 من اللاعب في القسم A. والطريقة الأسهل لتفسير ذلك هي أخذ القيمة الأسية، أي e 0.1756 = 1.19 . وهذا يعني أن اللاعبين في القسم B يتلقون عروضًا أكثر بنسبة 19% من اللاعبين في القسم A. لاحظ أن هذا الاختلاف ليس ذا دلالة إحصائية (ع = 0.519).
- معامل القسم C هو -0.05251 ، مما يشير إلى أن رقم السجل المتوقع لعدد العروض للاعب في القسم C أقل بمقدار 0.05251 من اللاعب في القسم A. والطريقة الأسهل لتفسير ذلك هي أخذ القيمة الأسية أي هو 0.05251 = 0.94 . وهذا يعني أن اللاعبين في القسم C يتلقون عروضًا أقل بنسبة 6% من اللاعبين في القسم A. لاحظ أن هذا الاختلاف ليس ذا دلالة إحصائية (ع = 850).
كما يتم توفير معلومات عن انحراف النموذج. نحن مهتمون بشكل خاص بالانحراف المتبقي ، والذي تبلغ قيمته 79.247 من أصل 96 درجة حرية. باستخدام هذه الأرقام، يمكننا إجراء اختبار جودة المطابقة لمربع كاي لمعرفة ما إذا كان النموذج يناسب البيانات. يوضح الكود التالي كيفية إجراء هذا الاختبار:
pchisq(79.24679, 96, lower.tail = FALSE) #[1] 0.8922676
القيمة p لهذا الاختبار هي 0.89 ، وهي أعلى بكثير من مستوى الأهمية 0.05. يمكننا أن نستنتج أن البيانات تناسب النموذج بشكل معقول.
عرض النتائج
يمكننا أيضًا إنشاء مخطط يوضح العدد المتوقع لعروض المنح الدراسية المتلقاة بناءً على نتائج امتحانات القسم والقبول باستخدام الكود التالي:
#find predicted number of offers using the fitted Poisson regression model data$phat <- predict(model, type="response") #create plot that shows number of offers based on division and exam score ggplot(data, aes(x = exam, y = phat, color = division)) + geom_point(aes(y = offers), alpha = .7, position = position_jitter(h = .2)) + geom_line() + labs(x = "Entrance Exam Score", y = "Expected number of scholarship offers")
يوضح الرسم البياني أكبر عدد من عروض المنح الدراسية المتوقعة للاعبين الذين حصلوا على درجات عالية في امتحان القبول. بالإضافة إلى ذلك، يمكننا أن نرى أن اللاعبين في القسم B (الخط الأخضر) يجب أن يتلقوا عروضًا بشكل عام أكثر من اللاعبين في القسم A أو القسم C.
تقرير النتائج
وأخيرا، يمكننا الإبلاغ عن نتائج الانحدار بطريقة تلخص النتائج التي توصلنا إليها:
تم إجراء انحدار بواسون للتنبؤ بعدد عروض المنح الدراسية التي يتلقاها لاعبو البيسبول بناءً على درجات امتحانات الأقسام والقبول. مقابل كل نقطة إضافية يتم الحصول عليها في امتحان القبول، يزداد عدد العروض المتلقاة بنسبة 10% ( p <0.0001) . لم يتم العثور على التقسيم لتكون ذات دلالة إحصائية.
مصادر إضافية
مقدمة إلى الانحدار الخطي البسيط
مقدمة في الانحدار الخطي المتعدد
مقدمة للانحدار متعدد الحدود