You are on page 1of 129

‫د‪ .

‬أحمد أديب أحمد‬ ‫الإحصاء‬


‫الحاسوبلغةفيالبرمجة ‪R‬‬ ‫استخدام‬
‫إحصائية في‬ ‫سلسلة تطبيقات‬

‫تطـبيقات إحصــائية‬
‫في لـغـة الـبـرمـجـــة ‪R‬‬
‫المستوى األول‬

‫إعداد‬

‫الدكتور أحمد أديب أحمد‬


‫كلية االقتصاد ‪ -‬جامعة تشرين‬
‫سورية ‪2021‬‬

‫‪1‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫تطبيقات إحصائية في لغة البرمجة ‪ – R‬المستوى األول‬


‫المؤلف‪ :‬الدكتور أحمد أديب أحمد‬
‫الطبعة األولى ‪ 0202‬م‬
‫طبع هذا الكتاب بقرار موافقة وزارة اإلعالم رقم ‪202021‬‬

‫‪2‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مقدمة‬
‫‪ R‬هي أقوى لغة برمجة في العالم للحوسبة اإلحصائية‪ ،‬والتعلم‬
‫اآللي والرسومات‪ .‬وقد صدرت أول نسخة مستقرة منها عام ‪ ،0222‬ثم‬
‫تطورت بسرعة لتصبح لغة البرمجة الرئيسية في مجال االحصاءات‬
‫والبيانات العلمية‪.‬‬
‫تعريف لغة ‪:R‬‬
‫‪ R‬من البرمجيات الحرة والمصممة للحوسبة اإلحصائية المفتوحة‬
‫المصدر‪ .‬وتستخدم بشكل واسع بين اإلحصائيين لتطوير البرامج‬
‫اإلحصائية وتحليل وتمثيل البيانات والقيام بالعمليات الحسابية والرسوم‬
‫البيانية‪.‬‬
‫مميزات لغة ‪:R‬‬
‫تتميز لغة الـ ‪ R‬ببساطتها اذ أنها لغة سكريبت فال تحتاج لكتابة‬
‫دالة دخول كما هو في لغات البرمجة الكالسيكية‪ .‬حيث يعتبر أول سطر‬
‫هو أول أمر‪ ،‬وفيما يلي مميزات اخرى للغة البرمجة ‪:R‬‬
‫‪ .1‬متوفرة في موقع مجاني ومفتوح المصدر لغرض تنصيبها على‬
‫الكمبيوتر‪ ،‬أي متاحة للجميع‪.‬‬
‫‪ .0‬تعمل مع عدة أنظمة تشغيل مثل نظام لينوكس ويونكس وماك‬
‫وويندوز‪.‬‬

‫‪3‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ .3‬لغة إحصائية تعمل على حل جميع المسائل اإلحصائية وبأسلوب‬


‫سهل‪ .‬مثلا‪ :‬استعمل األمر ‪ sum‬لحساب المجموع واألمر ‪var‬‬
‫لحساب التباين واألمر ‪ mean‬لحساب المتوسط‪ ....‬وهكذا‪.‬‬
‫‪ .4‬تحتوي على إجراءات إحصائية متقدمة غير متوفرة في مجموعات‬
‫أخرى‪.‬‬
‫‪ .5‬لها قدرات رسومية عالية للمخططات ثالثية األبعاد فضالً على‬
‫إمكانية إظهار رسومات جذابة بسهولة‪.‬‬
‫‪ .6‬لها قابلية لبرمجة الحسابات المتوازية حيث يمكن حل عمليات‬
‫الحوسبة المعقدة والنظم اإلحيائية‪.‬‬
‫‪ .7‬هي لغة مفسرة؛ أي التنفيذ مباشرة بدون ترجمة وهذا ما نجده واضحاً‬
‫في تغيير التعامل مع أنواع البيانات أثناء التنفيذ‪.‬‬
‫‪ .8‬تحتوي على العديد من الحزم االحصائية والتطبيقات اإلدارية والمالية‬
‫واالقتصادية والعلمية والتقنية ‪ ...‬إلخ مما جذب إليها العديد من‬
‫الباحثين واإلحصائيين‪.‬‬
‫‪ .9‬تمتلك واجهة لغة ‪ HTML‬مما يساعد على تنفيذ األوامر البرمجية‬
‫بسهولة‪.‬‬
‫تعطي النتائج التي تحتاجها بشكل مبسط دون تكديس المخرجات‬ ‫‪.12‬‬
‫خالفاً لبرمجيات إحصائية أخرى مثل برنامج ‪.SPSS‬‬

‫‪4‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫الكائنات وبعض املالحظات حول ‪R‬‬

‫إن لغة ‪ R‬كباقي لغات البرمجة تحتوي أنواع متعددة من‬


‫المتغيرات‪ ،‬والمتغير هو مكان في الذاكرة يمكن تخزين البيانات فيه ويمكن‬
‫الرجوع له واستخدامه أو تعديله متى شئنا‪ .‬وتدعى المتغيرات في ‪R‬‬
‫بالكائنات ‪ ،Objects‬ويتم تخزينها ضمن ساحة العمل ‪.Workspace‬‬
‫وألسماء الكائنات قواعد يجب االلتزام بها وهي‪:‬‬
‫‪ .1‬يمكن أن يحوي اسم المتغير أي من األحرف األبجدية سواء ‪ a-b‬أو‬
‫‪ A-B‬أو األرقام ‪ 2-9‬أو النقطة (‪ ).‬أو الخط السفلي (_) وال يحوي‬
‫أية رموز أخرى (مثل ‪ )....@%$‬وال يحوي (‪ )-‬ضمن االسم‪.‬‬
‫‪ .0‬يبدأ اسم المتغير حص اًر بحرف أو نقطة‪ ،‬وال يبدأ برقم‪ ،‬وال يبدأ بـ "_"‬
‫وال بـ "‪."-‬‬
‫‪ .3‬لو بدأنا اسم المتغير بنقطة فال يجوز أن يتبع النقطة رقم‪.‬‬

‫‪5‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫ملحظة‪ :‬إن ‪ R‬حساسة لحالة األحرف الكبيرة والصغيرة أي أن ‪ a‬غير‬


‫‪ A‬كما أن التعليمة )(‪ q‬غير )(‪.Q‬‬

‫المتغيرات في ‪:R‬‬
‫هي البيانات التي تتغير قيمتها حسب الحاجة‪ ،‬وتستخدم‬
‫المتغيرات لتخزين البيانات وتكون أسماؤها فريدة (للدوال أو األشياء)‪،‬‬
‫ولها األنواع التالية‪ :‬عددية ‪ – numeric‬عددية معقدة ‪- complex‬‬
‫نصية ‪ – character‬منطقية ‪ - logical‬خاصة ‪.special‬‬
‫يعتبر ‪ R‬بشكل افتراضي كل األعداد التي نقوم بإدخالها ثنائية‬
‫‪ double‬حتى نقوم نحن بتحديد ما إذا كنا نريدها صحيحة‪ ،‬وإلنشاء‬
‫متغير مثالً له قيمة معينة يخزن في الذاكرة‪ ،‬حيث يمكن استدعائه عند‬
‫الحاجة يكون بالشكل التالي‪:‬‬
‫‪>y<-7‬‬ ‫أو‬ ‫‪> x=2‬‬

‫ملحظة‪( :‬المساواة لها نفس المعنى للرمز ‪)<-‬‬

‫‪6‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫الثوابت في ‪:R‬‬
‫هي الكيانات التي ال يمكن تغييرها‪ .‬وتعد األنواع األساسية من‬
‫الثوابت هي‪:‬‬
‫‪ .1‬الثوابت الرقمية‪ :‬وتشمل كل األرقام‪ ،‬ويمكن أن تكون من نوع عدد‬
‫صحيح أو معقد ‪ ،‬والدالة )(‪ typeof‬لمعرفة نوع الثابت‪ ،‬ويعتبر‬
‫الثابت الرقمي الذي يليه الحرف ‪ L‬عدد صحيح‪ ،‬والذي يليه الحرف‬
‫‪ i‬معقد‪.‬‬

‫‪ .0‬الثوابت النصية‪ :‬وتتمثل بتحديدها باستخدام عالمات اقتباس مفردة‬


‫) ' ( أو عالمات اقتباس مزدوجة ) " (‪.‬‬

‫‪7‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫األحرف اإلنكليزية الكبيرة‪:‬‬

‫األحرف اإلنكليزية الصغيرة‪:‬‬

‫أسماء األشهر‪:‬‬

‫‪8‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫أسماء األشهر المختصرة (أول ثلثة أحرف)‪:‬‬

‫‪9‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫بعض األوامر اخلاصة يف لغة الربجمة ‪R‬‬

‫لكل لغة من لغات البرمجة عدد من الرموز الخاصة التي تميزها‬


‫عن اللغات األخرى‪ ،‬وتعتبر قواعد هامة يجب االلتزام باستخدامها‬
‫الصحيح‪.‬‬
‫وفيما يلي أهم وأكثر األوامر الخاصة في لغة البرمجة ‪:R‬‬
‫‪ .1‬الرمز )‪ :(<-‬يشير إلى عملية اإلسناد‪ ،‬وهي الطريقة األكثر شيوعاً‬
‫مقارنة برمز المساواة = والذي يصح استخدامه أيضاً‪.‬‬
‫لو أردنا تخزين القيمة ‪ 14‬في المتغير ‪ x‬فيمكن اتباع أحد الطرائق‬
‫األربعة اآلتية‪:‬‬

‫‪11‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ .0‬يمكن أن يكون األمر أو العبارة في لغة ‪ R‬على عدة أسطر‪.‬‬

‫‪ .3‬الفاصلة المنقوطة );(‪ :‬تستخدم لفصل األوامر في السطر الواحد‪،‬‬


‫أو يكتب األمر التالي في سطر جديد‪.‬‬

‫‪ .4‬العبارة التعريفية‪ :‬كل شيء بعد الرمز (‪ )#‬إلى نهاية السطر يعتبر‬
‫عبارة تعريفية أو تعليق للمستخدم ويتم تجاهله من قبل لغة ‪.R‬‬

‫‪11‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ .5‬تطبع قبل النتيجة العلمة ]‪ [1‬وهذا ألن ‪ R‬يعتبر افتراضياً كل شيء‬


‫بمثابة متجه "‪ "vector‬والرقم واحد هو مؤشر عن العنصر األول‬
‫في هذا المتجه‪ .‬مثل‪:‬‬

‫‪ .6‬إن ناتج تنفيذ أي أمر أو دالة بلغة ‪ R‬يظهر بعدها مباشرة‪ ،‬وهكذا‬
‫تتكون جلسة العمل االعتيادية من تنفيذ لتتالي من األوامر والتعليمات‬
‫وصوالً إلى إنجاز العمل أو التحليل المطلوب‪.‬‬
‫‪ .7‬يوفر ‪ R‬آلية إلعادة تنفيذ األوامر السابقة وذلك باستخدام مفاتيح‬
‫األسهم على لوحة المفاتيح حيث يمكن أن تستخدم للتنقل إلى األمام‬
‫والخلف من خالل األوامر السابقة االستخدام‪ ،‬كما يمكن للمؤشر أن‬
‫ينتقل ضمن األوامر باستخدام مفاتيح األسهم األفقية‪ ،‬واألحرف‬
‫يمكن إزالتها مع مفتاح ‪ DEL‬أو إضافتها من مفاتيح أخرى‪ .‬كما‬
‫يمكن باستخدام أزرار األسهم إلى األعلى وإلى األسفل التنقل عبر‬
‫مجموعة األوامر التي تم تنفيذها‪.‬‬

‫‪12‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ .8‬دالة الربط والتي لها البناء اللغوي التالي‪، c(object1,…..) :‬‬


‫تستخدم بشكل كبير لوضع قيم ذات نوع واحد في شكل متجه‪ .‬مثل‪:‬‬
‫)"‪> x<-c(1,2,3,"b‬‬
‫للتنفيذ أو االنتقال إلى سطر جديد نضغط على مفتاح ‪ .Enter‬حيث‬
‫تظهر النتيجة في هذا المثال كاآلتي‪:‬‬

‫‪ R .9‬حساسة لحالة االحرف فـ ‪ a‬و‪ A‬نوعان من كائنات مختلفة‪ .‬مثالً‪:‬‬

‫لكن ممكن أن تكون الحالة صحيحة في حالة‪:‬‬

‫‪13‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫تعطي ‪ R‬العلمة ‪ +‬في بداية السطر للداللة على أن المدخل‬ ‫‪.12‬‬


‫حتى اآلن لم يكتمل تعريفه‪ ،‬كما في المثال التالي‪:‬‬

‫‪14‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫تعليمات عامة يف لغة الربجمة ‪R‬‬

‫‪ .1‬األمر )(‪ : q‬إلنهاء برنامج ‪ ، R‬أو ننقر زر اإلغالق في نافذة‬


‫البرنامج أو ‪.Alt+F4‬‬
‫‪ .0‬األمر )‪ : example(function‬هو وسيلة مساعدة متوفرة في لغة‬
‫‪ R‬لرؤية األمثلة عن الدالة ‪ function‬المراد الحصول على أمثلة‬
‫عملية لها‪ .‬مثال‪:‬‬

‫‪ .3‬األمر )(‪ : citation‬يعرض الطريقة الرسمية لإلشارة إلى لغة ‪R‬‬


‫كمرجع ضمن الئحة المراجع المستخدمة في أي ورقة علمية‪.‬‬
‫‪ .4‬الدالة )(‪ : history‬الستعراض آخر ‪ 05‬أمر‪.‬‬
‫‪ .5‬الدالة )(‪ : ls‬لمشاهدة كل الكائنات في الجلسة الجارية والمخزنة في‬
‫لغة البرمجة ‪.R‬‬

‫‪15‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ .6‬االختصار ‪ : Ctrl+L‬لمسح الشاشة المعروضة بدون مسح أي‬


‫بيانات في الذاكرة‪.‬‬
‫‪ .7‬الدالة )‪ : rm(x‬فهو لمسح ‪ x‬من الذاكرة‪ ،‬حيث أن ‪ x‬قد تكون‬
‫متغير أو متجه أو مصفوفة أو إطار بيانات‪.‬‬
‫‪ .8‬الدالة ))(‪ : rm(list=ls‬لمسح كل ما يوجد اآلن في ذاكرة العمليات‬
‫الحالية من بيانات تم تحميلها فيما سبق‪.‬‬
‫‪ .9‬الدالة )(‪ : getwd‬لمعرفة دليل العمل ‪.Working Directory‬‬
‫الدالة )(‪ dir‬والدالة )(‪ list.files‬لعرض كل الملفات في دليل‬ ‫‪.12‬‬
‫العمل‪.‬‬
‫قد نحتاج إلى تكملة األمر أو كلمة ما في ‪ ،R‬فبعد كتابة حرف‬ ‫‪.11‬‬
‫أو أكثر نضغط مفتاح ‪ Tab‬فتظهر عدة اقتراحات لتكملة الكلمة‬
‫ومنها نختار المطلوب‪.‬‬

‫‪16‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫العمليات احلسابية واملنطقية‬


‫مثل أي لغة برمجة أخرى‪ ،‬تجري لغة ‪ R‬العمليات الحسابية‬
‫األساسية البسيطة‪ ،‬والعمليات المنطقية‪ ،‬والموضحة بالجدول اآلتي‪:‬‬

‫العمليات الحسابية ‪Mathematical Operators‬‬


‫‪> 5**2‬‬ ‫‪> 5^2‬‬
‫** أو ^‬ ‫القوة‬
‫‪[1] 25‬‬ ‫‪[1] 25‬‬
‫‪> 7/2‬‬ ‫‪> 3*2‬‬
‫*‪/,‬‬ ‫الضرب والقسمة‬
‫‪[1] 3.5‬‬ ‫‪[1] 6‬‬
‫‪> 7%/%3‬‬ ‫‪> 7%%3‬‬ ‫‪%%‬‬ ‫باقي القسمة‬
‫‪[1] 2‬‬ ‫‪[1] 1‬‬ ‫‪%/%‬‬ ‫والقسمة الصحيحة‬
‫‪> 3-1‬‬ ‫‪> 1+3‬‬
‫‪-,+‬‬ ‫الجمع والطرح‬
‫‪[1] 2‬‬ ‫‪[1] 4‬‬

‫وللعمليات السابقة أولوية بالتنفيذ كما تم ذكرها بالجدول السابق‬


‫على الترتيب‪ ،‬إال أن األقواس في العملية الرياضية لها أولوية التنفيذ‬
‫دوماً‪.‬‬
‫))‪> 6/(2*(1+2‬‬ ‫)‪> 6/2*(1+2‬‬
‫‪[1] 1‬‬ ‫‪[1] 9‬‬

‫‪17‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫العمليات المنطقية ‪Logical Operators‬‬


‫&‬ ‫"و" ‪AND‬‬ ‫>‬ ‫أكبر‬ ‫==‬ ‫المساواة‬
‫|‬ ‫"أو" ‪OR‬‬ ‫=>‬ ‫أصغر أو يساوي‬ ‫=!‬ ‫عدم المساواة‬
‫!‬ ‫"ال" ‪NOT‬‬ ‫=<‬ ‫أكبر أو يساوي‬ ‫<‬ ‫أصغر‬
‫ملحظة‪ :‬للمتغير المنطقي أحد القيمتين ‪ True‬أو ‪ False‬واختصا اًر ‪T‬‬
‫و ‪.F‬‬
‫‪18‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪:‬‬
‫‪> 3==4‬‬ ‫‪> 3>4‬‬ ‫‪> TRUE&FALSE‬‬
‫‪[1] FALSE‬‬ ‫‪[1] FALSE‬‬ ‫‪[1] FALSE‬‬
‫‪> 3!=4‬‬ ‫‪> 3<=4‬‬ ‫‪> TRUE|FALSE‬‬
‫‪[1] TRUE‬‬ ‫‪[1] TRUE‬‬ ‫‪[1] TRUE‬‬
‫‪> 3<4‬‬ ‫‪> 3>=4‬‬ ‫‪> !TRUE‬‬
‫‪[1] TRUE‬‬ ‫‪[1] FALSE‬‬ ‫‪[1] FALSE‬‬

‫ملحظة‪ :‬إن أي سطر ندخل فيه التعليمات في لغة ‪ R‬يبدأ بـ < أما سطر‬
‫النتائج فيبدأ بـ [ رقم النتيجة ] وذلك ألن التعليمة قد تعطي أكثر من‬
‫نتيجة واحدة‪.‬‬

‫‪19‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫األشعة (املتجهات)‬
‫األشعة ‪ Vectors‬في ‪ R‬هي عبارة عن عدة كائنات لها نفس‬
‫النوع ومخزنة بترتيب محدد‪ .‬فمثالً يمكن تعريف شعاع (متجه) ‪ x‬فيه‬
‫القيم ‪ 3,4,5‬بالشكل‪:‬‬
‫(‪x<-c)5,4,3‬‬
‫حيث يرمز الحرف ‪ c‬إلى الكلمة ‪ concatenate‬والتي تعني "تسلسل"‪.‬‬
‫شعاع (متجه) رقمي ‪:double‬‬

‫شعاع (متجه) حرفي ‪:character‬‬

‫‪21‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫شعاع (متجه) منطقي ‪:logical‬‬

‫)‪length(x‬‬ ‫كما يمكن معرفة عدد عناصر الشعاع ‪ x‬بالتعليمة‪:‬‬


‫)‪typeof(x‬‬ ‫كما يمكن نوع الشعاع ‪ x‬بالتعليمة‪:‬‬

‫‪21‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫التابع ‪:seq‬‬
‫)‪seq(from,to,by‬‬ ‫له الشكل العام اآلتي‪:‬‬
‫وهو تابع يستخدم لتوليد متتالية من األرقام من ‪ from‬إلى ‪to‬‬
‫وبخطوة ‪ ،by‬فلو أردنا مثالً توليد المتتالية‪19 16 13 12 7 4 1 :‬‬
‫‪ 08 05 00‬نكتب أحد التعليمتين اآلتيتين‪:‬‬

‫ملحظة‪ :‬يمكن توليد متتالية من العدد ‪ from‬إلى العدد ‪ to‬بخطوة تساوي‬


‫واحد بالشكل المختصر‪from:to :‬‬
‫مثال‪ :‬لو أردنا توليد أعداد من ‪ 1‬إلى ‪ 15‬نكتب‪:‬‬

‫‪22‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬اكتب برنامج إليجاد مساحة ‪ A‬ومحيط دائرة ‪ C‬نصف قطرها‬


‫معلوم ‪.r=3‬‬

‫مثال‪ :‬بافتراض أن ‪ X=2, Y=3‬احسب قيمة كل من ‪ A, B, C‬وفق‬


‫المعادالت اآلتية‪:‬‬
‫‪A = X2 + 2YB = 2X -3A C = A + XB‬‬

‫‪23‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫التابع ‪:log10‬‬
‫له الشكل العام اآلتي‪log10(x) :‬‬
‫ويعطي اللوغاريتم العشري‬

‫التابع ‪:log‬‬
‫)‪log(x,base=y‬‬ ‫له الشكل العام اآلتي‪:‬‬
‫ويعطي اللوغاريتم ذو األساس ‪ y‬لـ‪.x‬‬

‫‪24‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫التابع ‪:rep‬‬
‫)‪rep(x,each‬‬ ‫له الشكل العام اآلتي‪:‬‬
‫وهو تابع تكرار العناصر حيث أن ‪ x‬هو العنصر أو الشعاع‬
‫المراد تك ارره‪ ،‬و‪ each‬هو عدد مرات التكرار‪ .‬فمثالً لتوليد العناصر‪:‬‬

‫‪25‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫بعض التوابع الرياضية والإحصائية الهامة‬


‫الوظيفة‬ ‫الشكل العام‬ ‫الدالة‬
‫يعطي قيمة بي ‪39141593‬‬ ‫‪pi‬‬ ‫‪pi‬‬

‫القيمة المطلقة‬ ‫)‪abs(x‬‬ ‫‪abs‬‬

‫العدد النيبري مرفوعاً لألس ‪x‬‬ ‫)‪exp(x‬‬ ‫‪exp‬‬

‫‪26‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫الوظيفة‬ ‫الشكل العام‬ ‫الدالة‬


‫الجذر التربيعي لـ ‪x‬‬ ‫)‪sqrt(x‬‬ ‫‪sqrt‬‬

‫أصغر عدد في شعاع ‪x‬‬ ‫)‪min(x‬‬ ‫‪min‬‬


‫أكبر عدد في شعاع ‪x‬‬ ‫)‪max(x‬‬ ‫‪max‬‬
‫المدى للشعاع ‪x‬‬ ‫)‪range(x‬‬ ‫‪range‬‬
‫ترتيب عناصر ‪ x‬تصاعدياً‬ ‫)‪sort(x‬‬ ‫‪sort‬‬
‫إعطاء رتب لعناصر ‪ x‬تصاعدياً‬ ‫)‪rank(x‬‬ ‫‪rank‬‬
‫التكرار التصاعدي لعناصر ‪x‬‬ ‫)‪cumsum(x‬‬ ‫‪cumsum‬‬
‫مجموع عناصر الشعاع ‪x‬‬ ‫)‪sum(x‬‬ ‫‪sum‬‬
‫متوسط عناصر الشعاع ‪x‬‬ ‫)‪mean(x‬‬ ‫‪mean‬‬
‫وسيط عناصر الشعاع ‪x‬‬ ‫)‪median(x‬‬ ‫‪median‬‬
‫تباين عناصر الشعاع ‪x‬‬ ‫)‪var(x‬‬ ‫‪var‬‬
‫االنحراف المعياري لعناصر ‪x‬‬ ‫)‪sd(x‬‬ ‫‪sd‬‬

‫‪27‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫الوظيفة‬ ‫الشكل العام‬ ‫الدالة‬


‫تقريب ألقرب عدد صحيح لألسفل‬ ‫)‪floor(x‬‬ ‫‪floor‬‬
‫إرجاع القسم الصحيح فقط من ‪x‬‬ ‫)‪trunc(x‬‬ ‫‪trunc‬‬

‫‪28‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫الوظيفة‬ ‫الشكل العام‬ ‫الدالة‬


‫ملخص بعض الدوال‬
‫اإلحصائية (أقل قيمة‪ -‬الربيع‬
‫‪summary(x) summary‬‬
‫األول‪ -‬الوسيط‪ -‬المتوسط‪-‬‬
‫الربيع الثالث‪ -‬أكبر قيمة)‬

‫تقريب ألقرب عدد صحيح لألعلى‬ ‫)‪ceiling(x‬‬ ‫‪ceiling‬‬

‫‪29‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫الوظيفة‬ ‫الشكل العام‬ ‫الدالة‬


‫تقريب ‪ x‬بدقة ‪ n‬عدداً‬
‫)‪round(x, digits=n‬‬ ‫‪round‬‬
‫بعد الفاصلة‬

‫‪ x‬عاملي‬ ‫)‪factorial(x‬‬ ‫‪factorial‬‬

‫‪31‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫الفلترة ‪ Filtering‬وبعض التطبيقات على الأشعة‪:‬‬


‫نقصد بالفلترة الوصول لبيانات الشعاع التي تحقق شرطاً أو عدة‬
‫شروط‪.‬‬

‫مثال‪:‬‬
‫‪ -‬امأل الشعاع ‪ x‬بالقيم ‪:‬‬
‫‪8,4,3,6,0,9,11‬‬
‫‪ -‬أوجد حجم الشعاع ‪. x‬‬
‫‪ -‬أوجد العنصر الخامس من الشعاع ‪. x‬‬
‫‪ -‬أوجد الفرق بين عناصر الشعاع ‪. x‬‬

‫‪31‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬ضع الشعاع ‪ x‬في الشعاع ‪ y‬مضيفاً له القيم ‪. 4,8,9,12,13‬‬


‫‪ -‬اطبع قيم الشعاع ‪ y‬عدا العنصر رقم ‪. 10‬‬
‫‪ -‬اطبع أول ‪ 3‬قيم من الشعاع ‪. y‬‬
‫‪ -‬اطبع القيمة األولى والخامسة والتاسعة من الشعاع ‪. y‬‬

‫‪ -‬استبدل القيمة األولى من الشعاع ‪ y‬بالقيمة ‪. 10‬‬

‫‪32‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬استبدل القيمة الثالثة من الشعاع ‪ y‬بمربعها‪.‬‬

‫‪ -‬استبدل أول ‪ 3‬قيم من الشعاع ‪ y‬بالقيمة ‪. 7‬‬

‫‪ -‬استبدل القيمة السابعة والثامنة والتاسعة من الشعاع ‪ y‬بالقيم ‪.7,8,9‬‬

‫‪33‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬أوجد معكوس الشعاع ‪. y‬‬

‫‪ -‬استبدل القيم التي هي أكبر من ‪ 8‬في الشعاع ‪ y‬بالقيمة ‪. 4‬‬

‫‪ -‬اطبع آخر ‪ 9‬قيم من الشعاع ‪. y‬‬

‫‪34‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬أضف للعناصر الزوجية في الشعاع ‪ y‬القيمة ‪. 1‬‬

‫‪ -‬استبدل العناصر الفردية التي هي أقل من ‪ 7‬بالقيمة ‪. 0‬‬

‫‪ -‬استبدل العناصر التي هي أقل من ‪ 7‬أو العناصر الفردية بالقيمة ‪.0‬‬

‫‪-‬‬

‫‪35‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬أوجد كالً من قيمة المجموع والمتوسط والوسيط واالنحراف المعياري‬


‫واالنحراف المتوسط للشعاع ‪ y‬األصلي‪.‬‬

‫‪ -‬أوجد ملخص الدوال اإلحصائية للشعاع ‪.y‬‬

‫‪36‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬أسند نصف قيم الشعاع ‪ y‬للشعاع ‪ x1‬والنصف اآلخر للشعاع ‪.x2‬‬

‫‪ -‬ولد الشعاع ‪ rp‬المكون من العناصر‬


‫‪1112222233333344555‬‬
‫بطريقة مختصرة‪.‬‬

‫‪37‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫العمليات على الأشعة‪:‬‬


‫‪ -‬قم بتوليد الشعاعين ‪ x‬و‪ y‬ثم أوجد الفرق بين عناصرهما‪.‬‬

‫‪ -‬اضرب عناصر الشعاع ‪ x‬بالقيمة ‪.5‬‬

‫‪ -‬قم بتوليد الشعاع ‪ z‬بحيث تكون عناصره هي نواتج طرح الرقم ‪ 1‬من‬
‫عناصر الشعاع ‪.x‬‬

‫‪38‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬قم بتوليد شعاع بحيث تكون عناصره ناتجة عن رفع عناصر الشعاع‬
‫‪ y‬لقوة مقابالتها في الشعاع ‪.x‬‬

‫التعليمة ‪:subset‬‬
‫يمكن استخدامها للوصول إلى بيانات الشعاع التي تحقق شرطاً‬
‫)‪subset(object, condition‬‬ ‫محدداً‪ ،‬ولها الشكل‪:‬‬
‫فمثالً إذا أردنا عرض بيانات الشعاع ‪ x‬التي هي أكبر من ‪5‬‬
‫والتي هي من مضاعفات العدد ‪ 4‬نكتب‪:‬‬

‫فمثالً إذا أردنا عرض بيانات الشعاع ‪ x‬التي هي أكبر من ‪ 5‬أو‬


‫التي هي من مضاعفات العدد ‪ 4‬نكتب‪:‬‬

‫‪39‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫ملحظة‪ :‬يمكن إجراء العمليات الحسابية على شعاعين ‪ x,y‬حيث نقصد‬


‫بالجمع أو الطرح أو الضرب أو القسمة إجراء كل من هذه العمليات‬
‫‪x %*% y‬‬ ‫عنص اًر لعنصر‪ ،‬أما إليجاد الجداء الداخلي فنكتب‪:‬‬

‫‪2*2+5*5+7*7=78‬‬ ‫و‬ ‫حيث‪2*1+5*2+7*3=33 :‬‬

‫‪41‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫املصفوفات‬
‫يمكن تعريف مصفوفة ‪ Matrix‬عناصرها ‪ elements‬مكونة‬
‫من ‪ nrow‬سط اًر و‪ ncol‬عموداً بالشكل‪:‬‬
‫)‪matrix(elements,nrow,ncol‬‬

‫فلتعريف مصفوفة نكتب أحد التعليمات اآلتية‪:‬‬

‫‪41‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪42‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪43‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫ملحظة‪ :‬العمليات الحسابية األربعة (الجمع والطرح والضرب والقسمة)‬


‫تعني إجراء كل من هذه العمليات عنص اًر لعنصر‪ ،‬أما إليجاد الجداء‬
‫‪A %*% B‬‬ ‫حسب مفهوم جداء مصفوفتين فنكتب‪:‬‬

‫التعامل مع الأسطر والأعمدة‪:‬‬


‫سنورد فيما يلي أهم التعليمات التي يمكن استخدامها مع‬
‫المصفوفات والتعامل مع أسطرها وأعمدتها‪:‬‬

‫‪44‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫الوظيفة‬ ‫الدالة‬
‫الحصول على عناصر القطر الرئيسي‬
‫)‪diag(A‬‬
‫للمصفوفة ‪A‬‬
‫أخذ السطر رقم ‪ r‬من مصفوفة ‪A‬‬ ‫] ‪A[r ,‬‬
‫أخذ العمود رقم ‪ c‬من المصفوفة ‪A‬‬ ‫]‪A[ , c‬‬
‫إضافة شعاع ‪ X‬كسطر جديد للمصفوفة ‪A‬‬ ‫)‪rbind(A,X‬‬
‫إضافة شعاع ‪ X‬كعمود جديد للمصفوفة ‪A‬‬ ‫)‪cbind(A,X‬‬
‫توليد مصفوفة قطرية قطرها الشعاع ‪X‬‬
‫)‪diag(X‬‬
‫وباقي العناصر أصفار‬

‫‪45‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫بعض التوابع المستخدمة مع المصفوفات‪:‬‬

‫الوظيفة‬ ‫الشكل العام‬ ‫الدالة‬


‫منقول مصفوفة‬ ‫)‪> t(A‬‬ ‫‪t‬‬
‫محدد مصفوفة ‪A‬‬
‫)‪> det(A‬‬ ‫‪det‬‬
‫(يجب أن تكون مربعة)‬

‫مقلوب المصفوفة ‪A‬‬


‫)‪> solve(A‬‬ ‫‪Solve‬‬
‫(يجب أن تكون مربعة)‬

‫‪46‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬قم بتوليد مصفوفة أحادية من المرتبة (‪ )3×3‬باألمر وسميها ‪:I‬‬

‫‪ -‬قم بتوليد مصفوفة صفرية من المرتبة (‪ )3×4‬باألمر وسميها ‪:d‬‬

‫‪47‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬وّلد مصفوفة قطرية ‪ x‬شعاعها )‪ (1,2,3‬وباقي عناصرها أصفار‪:‬‬

‫‪ -‬استبدل عناصر السطر األول بالقيم ‪.4 7 9‬‬

‫‪ -‬استبدل عناصر السطر الثاني بالقيم ‪.0 5 3‬‬

‫‪48‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬استبدل عناصر السطر الثالث بالقيم ‪.7 6 5‬‬

‫ِّ‬
‫وسمه ‪.z‬‬
‫‪ -‬أنشئ شعاع يمثل عناصر القطر الرئيسي للمصفوفة ‪ّ x‬‬

‫‪ -‬أوجد مقلوب المصفوفة ‪.x‬‬

‫‪49‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬أوجد منقول المصفوفة ‪.x‬‬

‫التعليمة ‪:apply‬‬
‫للتعليمة ‪ apply‬الشكل العام اآلتي‪:‬‬
‫)‪apply(a,row_or_column,statement‬‬
‫يمثل الوسيط األول المصفوفة‪ ،‬أما الوسيط الثاني فيأخذ إما ‪ 1‬للداللة‬
‫على التعامل مع األسطر أو ‪ 0‬للداللة على التعامل مع األعمدة‪ ،‬والوسيط‬
‫الثالث نضع به التعليمة التي نريد تطبيقها على كافة األسطر أو األعمدة‪.‬‬

‫فلو أردنا إيجاد مجموع كافة أسطر المصفوفة ‪ A‬نكتب‪:‬‬


‫)‪apply(A,1,sum‬‬
‫ولو أردنا إيجاد متوسط كافة أعمدة المصفوفة ‪ A‬نكتب‪:‬‬
‫)‪apply(A,2,mean‬‬

‫‪51‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬لتكن لدينا المصفوفة‪:‬‬

‫‪ -‬اطبع العنصر الموجود في‬


‫والعمود‬ ‫الثاني‬ ‫الصف‬
‫الثالث‪ .‬ثم اطبع عناصر‬
‫السطر الثالث‪ .‬ثم اطبع‬
‫عناصر العمود الثاني‪.‬‬

‫‪ -‬استبدل عناصر العمود األول بالقيم ‪.4 7 9‬‬

‫‪51‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬أنشئ ثالثة أشعة ‪y1 y2‬‬


‫‪ y3‬باالستعانة بالعمود‬
‫األول والثاني والصف‬
‫المصفوفة‬ ‫من‬ ‫الثالث‬
‫السابقة على الترتيب‪.‬‬

‫‪ -‬أضف العمود ‪ 3 4 0‬للمصفوفة السابقة‪.‬‬

‫‪ -‬أضف السطر ‪ 0 7 1 8 9‬للمصفوفة السابقة‪.‬‬

‫‪52‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬أوجد المتوسط الحسابي للسطر الثاني للمصفوفة ‪ . y‬ثم أوجد‬


‫المتوسط الحسابي لكل أعمدة المصفوفة ‪. y‬‬

‫مثال‪ :‬قم بتعريف المصفوفتين اآلتيتين‪:‬‬


‫)‪> m<-matrix(c(1,3,5,4,6,0),2,3‬‬
‫)‪> n<-matrix(c(2,4,1,6,0,9),2,3‬‬
‫‪ -‬قم بعرض المصفوفتين‪.‬‬

‫‪53‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬قم بجمع العناصر المتقابلة في المصفوفتين‪.‬‬


‫‪ -‬قم بطرح العناصر المتقابلة فيهما‪.‬‬
‫‪ -‬قم بضرب العناصر المتقابلة فيهما‪.‬‬
‫‪ -‬اعرض أبعاد المصفوفة ‪.m‬‬

‫‪54‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬نستخدم الدالة ‪ solve‬لحل المعادالت الخطية‪:‬‬


‫‪4x1+2x2-x3=2‬‬
‫‪3x1-3x2+2x3=-2‬‬
‫‪-2x1+0.5x2-2x3=1‬‬
‫‪4‬‬ ‫‪2 −1 𝑥1‬‬ ‫‪2‬‬
‫‪(3‬‬ ‫)‪−3 2 ) (𝑥2) = (−2‬‬
‫‪−2‬‬ ‫‪0.5 −2 𝑥3‬‬ ‫‪1‬‬

‫‪A*x=b‬‬ ‫‪‬‬ ‫‪A-1*b=x‬‬

‫‪55‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫إطار البيانات‬
‫يمكن تعريف إطار البيانات ‪ Data Frame‬على أنه جدول‬
‫يحتوي عدة أسطر وعدة أعمدة حيث يمثل كل عمود نوع محدد من‬
‫البيانات وكل سطر بيانات فرد محدد كما في المثال اآلتي‪:‬‬
‫‪Name‬‬ ‫‪Married‬‬ ‫‪Age‬‬
‫‪Tony‬‬ ‫‪False‬‬ ‫‪65‬‬
‫‪Samer‬‬ ‫‪True‬‬ ‫‪52‬‬
‫‪Ali‬‬ ‫‪False‬‬ ‫‪42‬‬
‫‪George‬‬ ‫‪False‬‬ ‫‪32‬‬
‫إلدخال الجدول السابق في ‪ Data Frame‬نكتب‪:‬‬

‫يمكن تعديله باستخدام محرر إطار البيانات بسهولة وديناميكية‬


‫)‪fix(tbl‬‬ ‫أكثر بالتعليمة‪:‬‬
‫‪56‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫يمكن إيجاد إحصاءات عامة حول ‪ Data Frame‬السابقة بالشكل‪:‬‬


‫وللوصول للعمود رقم ‪c‬‬ ‫للوصول للسطر رقم ‪r‬‬
‫نكتب‪ tbl[ ,c] :‬مثالً ‪:‬‬ ‫نكتب‪ tbl[r, ] :‬مثالً ‪:‬‬

‫مثالً ‪:‬‬ ‫للوصول للعمود الذي اسمه ‪ col‬نكتب‪tbl$col :‬‬

‫‪57‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫التعليمة ‪ View‬والتعليمة ‪: stack‬‬


‫التعليمة ‪ View‬والتي تقوم بعرض بيانات ‪ Data Frame‬بشكل‬
‫منسق في نافذة مستقلة‪ ،‬أما التعليمة ‪ stack‬فالهدف منها تجميع بيانات‬
‫‪ Data Frame‬في عمودين األول هو البيانات والثاني هو تسميات هذا‬
‫البيانات‪ ،‬فمثالً لو كان لدينا‪:‬‬
‫‪X1‬‬ ‫‪X2‬‬ ‫‪X3‬‬
‫‪62‬‬ ‫‪95‬‬ ‫‪87‬‬
‫‪61‬‬ ‫‪94‬‬ ‫‪88‬‬
‫‪65‬‬ ‫‪96‬‬ ‫‪83‬‬

‫‪ -‬التعليمة ‪ View‬تجعل عرض البيانات السابقة بالشكل اآلتي‪:‬‬


‫)‪> View(tbl‬‬

‫‪58‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬باستخدام التعليمة ‪ stack‬تصبح ‪ Data Frame‬من الشكل‪:‬‬

‫‪59‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫نظرية االحتماالت‬
‫التوزيع الثنائي )‪:𝐵(𝑛,𝑝) (Binomial Distribution‬‬
‫تعطى دالة الكثافة االحتمالية للتوزيع الثنائي بالعالقة‪:‬‬

‫)‪dbinom(k,n,p‬‬ ‫‪ -‬ونعبر عن ذلك االحتمال في ‪ R‬بالشكل‪:‬‬


‫‪ -‬أما دالة التوزيع التجميعية )𝑘≤𝑋(𝑃=)𝑘(𝐹 فنعرفها في ‪ R‬بالشكل‪:‬‬
‫)‪pbinom(k,n,p‬‬
‫‪ -‬بإمكاننا إيجاد العدد 𝑎 والذي يحقق 𝑏𝑜𝑟𝑝=)𝑎(𝐹 باستخدام‬
‫)‪qbinom(prob,n,p‬‬ ‫التعليمة‪:‬‬
‫‪ -‬كما بإمكاننا توليد عينة عشوائية حجمها 𝑁 تخضع للتوزيع الثنائي‬
‫)‪rbinom(N,n,p‬‬ ‫)𝑝‪ 𝐵(𝑛,‬باستخدام التعليمة‪:‬‬

‫مثال‪ :‬نفرض أن احتمال أن يدفع التاجر ضريبة األرباح ‪ ،298‬فإذا توجه‬


‫جابي الضرائب نحو ‪ 5‬تجار أوجد‪:‬‬
‫‪ .1‬قم بكتابة قانون التوزيع االحتمالي‪ ،‬وتابع التوزيع االحتمالي‪.‬‬
‫‪ .0‬احسب احتمال أن يدفع تاجر واحد فقط الضريبة‪.‬‬
‫‪ .3‬احسب احتمال دفع الضريبة من قبل تاجر واحد على األكثر‪.‬‬
‫‪ .4‬احسب احتمال دفع الضريبة من قبل تاجرين على األقل‪.‬‬

‫‪61‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ .5‬احسب احتمال دفع الضريبة من تاجرين إلى أربع تجار‪.‬‬


‫‪ .6‬احسب احتمال دفع الضرائب‪.‬‬
‫‪ .7‬ما هو عدد التجار الذين يمكن أن يدفعوا الضريبة باحتمال ‪.295‬‬

‫‪61‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬قم بتوليد عينة عشوائية حجمها ‪ 8‬تخضع للتوزيع السابق وسمها‬
‫‪ .x‬واحسب متوسطها وتباينها‪.‬‬

‫توزيع بواسون )‪:𝑝𝑜𝑖(𝜆) (Poisson Distribution‬‬


‫تعطى دالة الكثافة االحتمالية لتوزيع بواسون بالعالقة‪:‬‬

‫)‪dpois(k,lambda‬‬ ‫‪ -‬ونعبر عن ذلك االحتمال في ‪ R‬بالشكل‪:‬‬


‫‪ -‬أما دالة التوزيع التجميعية )𝑘≤𝑋(𝑃=)𝑘(𝐹 فنعرفها في ‪ R‬بالشكل‪:‬‬
‫)‪ppois(k,lambda‬‬
‫‪ -‬بإمكاننا إيجاد العدد 𝑎 والذي يحقق 𝑏𝑜𝑟𝑝=)𝑎(𝐹 باستخدام‬
‫)‪qpois(prob,lambda‬‬ ‫التعليمة‪:‬‬
‫‪ -‬كما بإمكاننا توليد عينة عشوائية حجمها 𝑁 تخضع لتوزيع بواسون‬
‫)‪rpois(N,lambda‬‬ ‫)𝜆(𝑖𝑜𝑃 باستخدام التعليمة‪:‬‬
‫‪62‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬ليكن متوسط عدد العمالء الذين يدفعون أقساط قروضهم في فرع‬
‫المصرف العقاري بين الساعة العاشرة والساعة الحادية عشرة هو ‪1,8‬‬
‫عميل بالدقيقة‪ .‬والمطلوب‪ :‬حساب احتمال أن يكون لدينا خالل الدقيقة‬
‫بين الساعة ‪ 10,53‬و‪ ،10,54‬أحد الحاالت التالية‪:‬‬
‫‪ .1‬عدم وجود أي عميل‪.‬‬
‫‪ .0‬عميل واحد‪.‬‬
‫‪ .3‬عميالن على األكثر‪.‬‬
‫‪ .4‬على األقل عميالن‪.‬‬
‫‪ .5‬أكثر من عميلين‪.‬‬
‫‪ .6‬عدد العمالء الممكن تواجدهم خالل الدقيقة المحددة باحتمال ‪.294‬‬

‫‪63‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬قم بتوليد عينة عشوائية حجمها ‪ 8‬تخضع للتوزيع السابق وسمها‬
‫‪ .y‬واحسب متوسطها وتباينها‪.‬‬

‫التوزيع الطبيعي )‪:𝑁(𝜇,𝜎2) (Normal Distribution‬‬


‫تعطى دالة الكثافة االحتمالية للتوزيع الطبيعي بالعالقة‪:‬‬

‫)‪dnorm(x,mu,sigma‬‬ ‫‪ -‬ونعبر عنها في ‪ R‬بالشكل‪:‬‬


‫‪ -‬أما دالة التوزيع التجميعية )𝑘≤𝑋(𝑃=)𝑘(𝐹 فنعرفها في ‪ R‬بالشكل‪:‬‬
‫)‪pnorm(x,mu,sigma‬‬
‫‪ -‬بإمكاننا إيجاد العدد 𝑎 والذي يحقق 𝑏𝑜𝑟𝑝=)𝑎(𝐹 باستخدام‬
‫)‪qnorm(prob,mu,sigma‬‬ ‫التعليمة‪:‬‬
‫‪ -‬بإمكاننا توليد عينة عشوائية حجمها 𝑁 تخضع للتوزيع الطبيعي‬
‫)‪rnorm(N,mu,sigma‬‬ ‫)‪ 𝑁(𝜇,𝜎2‬باستخدام التعليمة‪:‬‬
‫‪64‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬إذا كان ‪ X‬متحوالً عشوائياً يعبر عن عدد الدقائق التي يقضيها‬
‫المتقاعد في صالة االنتظار لقبض الراتب‪ ،‬ويخضع للتوزيع الطبيعي‬
‫العام‪ ،‬وكان لدينا ‪ 1222‬متقاعد‪ ،‬فإذا علمت أن متوسط عدد الدقائق‬
‫التي يقضيها المتقاعد في صالة االنتظار هو ‪ 172‬دقيقة‪ ،‬وبانحراف‬
‫معياري ‪ 12‬دقائق‪ ،‬والمطلوب‪:‬‬
‫‪ -‬عدد المتقاعدين الذين تقل مدة انتظارهم عن ‪ 172‬دقيقة‪.‬‬
‫‪ -‬عدد المتقاعدين الذين تزيد مدة انتظارهم عن ‪ 192‬دقيقة‪.‬‬
‫‪ -‬عدد المتقاعدين الذين تتراوح مدة انتظارهم بين ‪ 162‬و‪.182‬‬
‫‪ -‬أوجد االحتمال )‪.P(μ-2X μ+2‬‬
‫‪ -‬أوجد االحتمال )‪.P(μ-3X μ+3‬‬
‫‪ -‬أوجد قيمة ‪ X‬التي يكون عندها ‪.P(X<x) = 0.5‬‬

‫‪65‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬قم بتوليد عينة عشوائية حجمها ‪ 42‬تخضع للتوزيع السابق وسمها‬
‫‪ .z‬واحسب متوسطها وتباينها‪.‬‬

‫مثال‪:‬‬
‫‪ -‬إذا كان )‪ Z~N(0,1‬أوجد )‪.P(Z<2.56‬‬
‫‪ -‬إذا كان )‪ Z~N(0,1‬وإذا كان ‪ P(Z<a)=0.8289‬فأوجد قيمة ‪.a‬‬

‫‪66‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مستويات القياس واختبار الفرضيات‬


‫مستويات القياس‪:‬‬
‫بعد جمع الباحث للبيانات التي سيجري عليها التحليل اإلحصائي‬
‫واختبار الفرضيات يجب عليه معرفة نوع البيانات المستخدمة‪ ،‬حيث أنه‬
‫لكل نوع من البيانات اختباراته الخاصة وعدم معرفة الباحث بذلك يجعله‬
‫يقع في أخطاء جسيمة في بحثه وبالتالي تكون نتائج البحث مضللة‪.‬‬
‫ويمكن تصنيف البيانات إلى نوعين رئيسيين هما‪:‬‬

‫‪ .1‬البيانات النوعية ‪:Qualitative Data‬‬


‫وتنقسم إلى نوعين هما البيانات االسمية والبيانات الرتبية‪:‬‬
‫‪ -‬البيانات االسمية ‪ :Nominal Data‬تكون في صورة غير‬
‫عددية‪ ،‬أي ال يمكن قياسها‪ ،‬وتتكون من فئات متشابهة تحمل‬
‫نفس الخصائص ال يتم التفاضل بينها مثل النوع الذي يتكون من‬
‫فئتين‪ ،‬الذكور ونرمز لهم بالرقم (‪ )1‬واإلناث ونرمز لهن بالرقم‬
‫(‪ ،)0‬أو مثالً السؤال الذي تكون إجابته "نعم" ونرمز له بالرقم‬
‫(‪ )1‬و"ال" ونرمز له بالرقم (‪ ،)2‬وكذلك ما يشبه ذلك حالة‬
‫الشخص (مريض‪ -‬سليم)‪( ،‬مدخن‪ -‬غير مدخن)‪ ،‬والحالة‬
‫االجتماعية (عازب‪ -‬متزوج‪ -‬أرمل‪ -‬مطلق)‪ ،‬ولون العيون ولون‬

‫‪67‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫البشرة‪ ...‬إلخ‪ ،‬وفي هذا النوع من البيانات ال نقوم سوى بحساب‬


‫التك اررات والتمثيل البياني فقط‪ ،‬والخطأ الذي يقع فيه الباحث هو‬
‫إجراء عمليات حسابية على البيانات االسمية‪.‬‬
‫‪ -‬البيانات الرتبية ‪ :Ordinal Data‬تكون في صورة غير عددية‬
‫أيضاً وال يمكن إجراء العمليات الحسابية عليها ولكن الفرق بينها‬
‫وبين البيانات االسمية هي عملية المفاضلة والترتيب بين قيم‬
‫المتغير مثل المستوى التعليمي (ابتدائي "‪ ،"1‬إعدادي "‪ ،"0‬ثانوي‬
‫"‪ ،"3‬جامعي فأكثر "‪ ،)"4‬والسنة الدراسية (أولى‪ -‬ثانية‪ -‬ثالثة‪-‬‬
‫رابعة)‪ ...‬إلخ‪ ،‬وفي هذه الحالة قد نستطيع تفسير المتوسط‬
‫الحسابي أو الوسيط وبعض المقاييس األخرى‪ ،‬إال أن أية عملية‬
‫حسابية على تلك البيانات ليس لها معنى‪.‬‬

‫‪ .2‬البيانات الرقمية أو الكمية ‪:Quantitative Data‬‬


‫تنقسم إلى نوعين هما البيانات الفتروية والبيانات النسبية‪:‬‬
‫‪ -‬البيانات الفتروية ‪ :Interval Data‬تكون في صورة مجاالت‬
‫(كاألعمار واألجور ودرجات الح اررة‪ )....‬ويمكن إجراء العمليات‬
‫الحسابية عليها مثل المتوسط الحسابي واالنحراف المعياري‬
‫وغيرها ويمتاز هذا المقياس بتساوي المسافات بين الرتب حيث‬
‫أنه يسمى أحياناً "بمقياس المسافة"‪ ،‬ويستخدم هذا المقياس كثي اًر‬
‫في العلوم التربوية والنفسية واالجتماعية مثل قياس الذكاء‬

‫‪68‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫وغيرها‪ ،‬والجدير بالذكر أن هذا المقياس ال يعني الصفر فيه‬


‫عدم وجود الخاصية‪ ،‬فدرجة طالب تساوي صفر مثالً ال يعني‬
‫أنه ال يعرف شيئاً في المقرر‪ ،‬كما أن درجة الح اررة صفر ال‬
‫تعني انعدام ظاهرة الح اررة‪.‬‬
‫‪ -‬البيانات النسبية ‪ :Rational Data‬هي أعلى مستوى من‬
‫أنواع البيانات السابقة‪ ،‬ويمتاز المستوى النسبي بكافة صفات‬
‫المستويات السابقة باإلضافة لخاصية النسبية والتي تعني أن‬
‫للصفر خاصية العدم أي خاصية انعدام الظاهرة‪ ،‬مثل سرعة‬
‫السيارة التي تساوي صفر تعني أن السيارة متوقفة‪ ،‬أو أن وزن‬
‫شخص يساوي ‪ 62‬كيلو جرام هو ضعف وزن شخص وزنه ‪32‬‬
‫كيلو جرام‪.‬‬

‫اختبار الفرضيات ‪:Hypothesis Testing‬‬


‫نستطيع تعريف الفرضية على أنها تخمين أو ادعاء يتعلق‬
‫بوسطاء المجتمع اإلحصائي وهي تحتمل الصحة والخطأ‪ .‬وعندما يرغب‬
‫الباحث باختبار أية فرضية عليه أن يصوغها على شكل فرضيتين‪:‬‬
‫‪ -‬فرضية تدعى فرضية العدم ويرمز لها ‪.𝐻0‬‬
‫‪ -‬فرضية تدعى الفرضية البديلة ويرمز لها ‪.𝐻1‬‬
‫وهدف اختبار الفرضية هو دراسة إمكانية رفض فرضية العدم‬
‫عند مستوى أهمية محدد‪.‬‬
‫‪69‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫فبعد صياغة الفرضيتين العدمية والبديلة وتحديد مستوى الداللة‬


‫وعادة يكون ‪ 2925‬أو ‪ 2921‬أو ‪ ،2912‬يقوم الباحث بإيجاد إحصاء‬
‫االختبار المناسب‪ ،‬كما أنه يقوم بحساب معنوية االختبار‬
‫)‪ ،Significance (P-Value‬ثم يتم اتخاذ القرار اإلحصائي بمقارنة‬
‫معنوية االختبار مع مستوى الداللة‪ ،‬فإذا كانت قيمة ‪ P-Value‬أقل من‬
‫مستوى الداللة نرفض فرضية العدم‪ ،‬وإذا كانت قيمة ‪ P-Value‬أكبر‬
‫من مستوى الداللة نقبل فرضية العدم‪.‬‬

‫‪71‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫اختبارات الطبيعية‬
‫تستخدم هذه اختبارات الطبيعية ‪ Normality Tests‬فرضية‬
‫العدم القائلة تتوزع البيانات وفق التوزيع الطبيعي‪𝐻0 : 𝑋 ~ N(𝜇,𝜎2) :‬‬
‫مقابل عدم توزعها وفق التوزيع الطبيعي‪ .‬وتوجد العديد من االختبارات‬
‫التي يمكن بواسطتها التأكد من توزع البيانات وفق التوزيع الطبيعي أهمها‪:‬‬

‫اختبار ‪:Kolmogorov-Smirnov‬‬
‫ويمكن تطبيقه باستخدام ‪ R‬بالشكل‪:‬‬
‫)‪ks.test(X,”pnorm”,mu,sigma‬‬
‫فإذا كانت ‪ P>0.05‬فإن البيانات تتوزع وفق التوزيع الطبيعي‪.‬‬
‫مثال‪ :‬قم بتوليد ‪ 322‬قيمة عشوائياً ثم اختبر اعتداليتها‪.‬‬

‫وبما أن ‪ P>0.05‬فإن البيانات تتوزع وفق التوزيع الطبيعي‪.‬‬


‫‪71‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫اختبار ‪:Shapiro-Wilk‬‬
‫ويمكن تطبيقه باستخدام ‪ R‬بالشكل‪:‬‬

‫بما أن ‪ P>0.05‬فإن البيانات تتوزع وفق التوزيع الطبيعي‪.‬‬

‫مخطط ‪:(Q-Q Plot) Q-Q‬‬


‫وهو طريقة وصفية أقل دقة من الطريقتين السابقتين‪ ،‬من الممكن‬
‫االستئناس بها للتأكد من طبيعية البيانات‪ ،‬وتعتمد هذه الطريقة على رسم‬
‫مخطط انتشار للبيانات بعد ترتيبها تصاعدياً مع قيمها المعيارية‪ ،‬فإذا‬
‫كان لالنتشار شكل خطي حول مستقيم الطبيعية تكون البيانات طبيعية‪،‬‬
‫وكلما ابتعدت البيانات عن مستقيم الطبيعية دلنا هذا على عدم توزع‬
‫البيانات وفق التوزيع الطبيعي‪ .‬ويتم رسم مخطط ‪ QQ‬في ‪ R‬بالتعليمة‪:‬‬
‫)‪> qqnorm(x‬‬

‫‪72‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫العينة لدينا تتوزع وفق التوزيع الطبيعي‬

‫العينة لدينا ال تتوزع وفق التوزيع الطبيعي‬

‫‪73‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫اختبارات العينة الواحدة‬


‫اختبار ستودينت للعينة الواحدة ‪:One Sample t-test‬‬
‫يستخدم اختبار ستودينت للعينة الواحدة الختبار الفرضية‪:‬‬
‫𝑚 = ̅𝑥 ‪ 𝐻0 :‬مقابل‪𝐻1 : 𝑥̅ ≠ 𝑚 :‬‬
‫أي الختبار اختالف متوسط العينة ̅𝑥 عن قيمة ما مثل 𝑚‪ ،‬ومن تطبيقاته‬
‫في الحياة العملية اختبار القيمة 𝑚 فيما إذا كانت شاذة أو ال‪.‬‬
‫للتطبيق باستخدام ‪ R‬نكتب التعليمة‪:‬‬
‫)‪t.test(x,mu=m‬‬

‫شروط تطبيق اختبار ‪ t‬لعينة واحدة‪:‬‬


‫‪ . 1‬أن يكون متغير الدراسة كمياً‪.‬‬
‫‪ . 0‬أن تتوزع البيانات وفق التوزيع الطبيعي‪.‬‬
‫‪ . 3‬عدم وجود قيمة شاذة‪.‬‬
‫‪ . 4‬أن يكون حجم العينة يشكل ‪ %5‬على األقل من حجم‬
‫المجتمع‪.‬‬

‫مثال‪ :‬لتكن لدينا قياسات سكر الدم لمجموعة من المرضى الذين تم‬
‫عالجهم باستخدام دواء معين‪ ،‬والمطلوب معرفة فيما إذا كان سكر الدم‬

‫‪74‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫للعينة منضبطاً‪ ،‬علماً أن متوسط سكر الدم الطبيعي لمرضى السكر‬


‫يعتبر ‪.112‬‬
‫‪X 142 92 112 105 111 108 113 89 112‬‬

‫‪t = 0.5197, df = 8, p-value = 0.6174‬‬


‫في السطر األول يعرض ‪ R‬إحصائية االختبار المحسوبة ‪ t‬وعدد درجات‬
‫الحرية و‪( p-value‬احتمال الداللة) وقد كانت قيمة ‪p-value=0.6174‬‬
‫وهي أكبر من ‪ 2925‬وبالتالي نقبل فرضية العدم التي تقول بعدم وجود‬
‫اختالف معنوي لسكر الدم عند المرضى عن سكر الدم الطبيعي عند‬
‫مستوى الداللة ‪.%5‬‬
‫‪alternative hypothesis: true mean is not equal to 110‬‬
‫السطر الثاني يخبرنا بأن الفرضية البديلة تنص على أن متوسط سكر‬
‫الدم للمجموعة يختلف عن ‪.112‬‬
‫‪75‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬
‫‪95 percent confidence interval:‬‬
‫يقصد بالسطر الثالث أنه سيتم إظهار مجال ثقة لمتوسط سكر الدم‬
‫للمرضى باحتمال ‪.=95%‬‬
‫‪100.0701‬‬ ‫‪125.7077‬‬
‫في السطر الرابع تم عرض مجال الثقة والذي كان [‪]105971 ،122927‬‬
‫والذي يعني أنه باحتمال ثقة ‪ %95‬في المجتمع األصلي الذي سحبنا‬
‫منه عينتنا سيكون متوسط سكر الدم بين ‪ 122927‬و‪.105971‬‬
‫‪sample estimates:‬‬
‫السطر الخامس معناه‪ :‬مقدرات العينة‪.‬‬
‫‪mean of x‬‬
‫السطر السادس يعني متوسط ‪ x‬وتم إظهاره في السطر السابع‪.‬‬
‫‪112.88895‬‬
‫في السطر السابع تقدير متوسط المجتمع الذي سحبت منه العينة ‪x‬‬
‫بـ‪ 110989‬وهو يساوي متوسط العينة‪.‬‬

‫مثال‪ :‬يقال إن عدد الساعات التي يقضيها الطفل نائماً في السنوات‬


‫األربعة من عمره يساوي ‪ 32222‬ساعة‪ ،‬لذلك سحبنا عينة من عشرة‬
‫أطفال‪ ،‬والجدول التالي يبين عدد ساعات نوم كل منهم (باأللف) فكانت‪:‬‬
‫‪37 32 09 04 36 40 38 35 31 09‬‬
‫اختبر إذا كانت البيانات تخضع للتوزيع الطبيعي‪.‬‬

‫‪76‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫بما أن ‪ P>0.05‬فإن البيانات تخضع للتوزيع الطبيعي‪.‬‬


‫يتم رسم مخطط ‪ QQ‬كما يلي‪>qqnorm(y) :‬‬

‫‪77‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫الختبار الفرضية القائلة أن متوسط ساعات النوم ال يختلف جوهرياً عن‬


‫‪ 32‬ألف ساعة‪:‬‬

‫‪t = 1.8207, df = 9, p-value = 0.102‬‬


‫في السطر األول يعرض ‪ R‬إحصائية االختبار المحسوبة ‪ t‬وعدد درجات‬
‫الحرية و‪( p-value‬احتمال الداللة) وقد كانت قيمة ‪p-value=0.102‬‬
‫وهي أكبر من ‪ 2925‬وبالتالي نقبل فرضية العدم التي تقول بعدم وجود‬
‫اختالف معنوي لعدد ساعات النوم عند األطفال عن ‪ 32222‬وذلك عند‬
‫مستوى الداللة ‪.%5‬‬
‫‪alternative hypothesis: true mean is not equal to 30‬‬
‫السطر الثاني يخبرنا بأن الفرضية البديلة تنص على أن متوسط عدد‬
‫ساعات النوم عند األطفال يختلف عن ‪.32222‬‬

‫‪78‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬
‫‪95 percent confidence interval:‬‬
‫يقصد بالسطر الثالث أنه سيتم إظهار مجال ثقة لمتوسط عدد ساعات‬
‫النوم عند األطفال باحتمال ‪.=95%‬‬
‫‪29.24842‬‬ ‫‪36.95158‬‬
‫في السطر الرابع تم عرض مجال الثقة والذي كان [‪،29248.42‬‬
‫‪ ]36951.58‬والذي يعني أنه باحتمال ثقة ‪ %95‬في المجتمع األصلي‬
‫الذي سحبنا منه عينتنا سيكون متوسط عدد ساعات النوم عند األطفال‬
‫بين ‪ 29248.42‬و ‪.36951.58‬‬
‫‪sample estimates:‬‬
‫السطر الخامس معناه‪ :‬مقدرات العينة‪.‬‬
‫‪mean of x‬‬
‫السطر السادس يعني متوسط ‪ x‬وتم إظهاره في السطر السابع‪.‬‬
‫‪33.1‬‬
‫في السطر السابع تقدير متوسط المجتمع الذي سحبت منه العينة ‪x‬‬
‫بـ‪ 33122‬وهو يساوي متوسط العينة‪.‬‬

‫‪79‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫اختبار جتانس التباينات‬


‫توجد في برنامج ‪ R‬العديد من اختبارات تجانس التباينات‬
‫‪ Homogeneity of Variance‬وأشهرها اختبار بارتليت ‪.Bartlett‬‬

‫اختبار بارتليت ‪:Bartlett’s Test‬‬


‫يستخدم عندما تكون البيانات تتوزع وفق التوزيع الطبيعي ومقسمة‬
‫لعدة مجموعات حسب عامل محدد‪ .‬ونريد اختبار الفرضية‪:‬‬
‫‪𝐻0 : 𝜎12 = 𝜎22 = ⋯ = 𝜎𝑟2‬‬
‫مقابل‪𝐻1 : 𝜎𝑖2 ≠ 𝜎𝑗2 𝑓𝑜𝑟 𝑠𝑜𝑚𝑒 𝑖,𝑗 :‬‬

‫فإذا كانت لدينا إطار بيانات ‪ Data Frame‬اسمه ‪myData‬‬


‫فيه المتغير المدروس ‪ Y‬والعامل ‪ X‬يمكن تطبيق االختبار السابق‬
‫باستخدام ‪ R‬بالشكل‪:‬‬
‫)‪bartlett.test(Y ~ X, data=myData‬‬
‫فإذا كانت ‪ P>0.05‬نقبل فرضية العدم أي أن البيانات متجانسة‪.‬‬

‫‪81‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬ولد ‪ 02‬قيمة عشوائياً وقسمها إلى مجموعتين ‪ a‬و‪ b‬وطبق اختبار‬
‫بارتليت للتجانس‪.‬‬

‫‪ -‬كرر العدد ‪ 1‬عشر مرات والعدد ‪ 0‬عشر مرات‪:‬‬

‫‪81‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬اجعل العامل هو بمستويين ‪:a=1 , b=2‬‬

‫‪ -‬أنشئ إطار بيانات وسمه ‪:myData‬‬

‫‪82‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫نالحظ أن ‪ p>0.05‬وبالتالي إن البيانات ‪ A‬والبيانات ‪ B‬متجانسة‪.‬‬

‫مثال‪ :‬ولد ‪ 022‬قيمة عشوائياً وقسمها إلى مجموعتين ‪ a‬و‪ b‬وطبق اختبار‬
‫بارتليت للتجانس‪.‬‬

‫نالحظ أن ‪ p>0.05‬وبالتالي إن البيانات ‪ A‬والبيانات ‪ B‬متجانسة‪.‬‬

‫‪83‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬لتكن لدينا القياسات التالية ألطوال الذكور واإلناث في مدرسة‪،‬‬


‫والمطلوب‪ :‬هل مجتمعي الذكور واإلناث متجانسين؟‬
‫‪male 111 108 139 111 101 138 164 149 142‬‬
‫‪female 140 90 110 125 111 128 113 89 110‬‬

‫نالحظ أن ‪ p>0.05‬وبالتالي إن بيانات الذكور واإلناث متجانسة‪.‬‬

‫ترتيب‬ ‫كيفية‬ ‫انظر‬


‫البيانات السابقة‪:‬‬

‫‪84‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪85‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫اختبارات املقارنة بني املتوسطات‬


‫اختبار ستودينت للعينتين المستقلتين‬
‫‪:Independent Samples t-test‬‬
‫يستخدم اختبار ستودينت للعينتين المستقلتين الختبار الفرضية‪:‬‬
‫مقابل‪𝐻1 : 𝑥̅ ≠ 𝑦̅ :‬‬ ‫̅𝑦 = ̅𝑥 ‪𝐻0 :‬‬
‫أي الختبار اختالف متوسط العينة ̅𝑥 عن متوسط العينة ̅𝑦‪ ،‬أي‬
‫لمعرفة إذا كان الفرق بين ̅𝑦‪ 𝑥̅,‬هو فرق ذو داللة إحصائية أو أنه فقط‬
‫بمجرد الصدفة‪.‬‬
‫وهناك حالة أعم الختبار ستودينت للعينتين المستقلتين وتصاغ‬
‫فرضيتاه بالشكل‪:‬‬
‫𝑚 ≠ ̅𝑦 ‪𝐻1 : 𝑥̅ −‬‬ ‫مقابل‪:‬‬ ‫𝑚 = ̅𝑦 ‪𝐻0 : 𝑥̅ −‬‬
‫والذي يدرس معنوية كون الفرق بين ̅𝑦‪ 𝑥̅,‬يساوي مقدار ثابت‬
‫مثل 𝑚‪.‬‬

‫وللتطبيق باستخدام ‪ R‬نكتب التعليمة‪:‬‬


‫)‪t.test(x,y,mu=m‬‬
‫ويمكن إهمال الوسيط الثالث في حال كان ‪.m=0‬‬

‫‪86‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫شروط تطبيق اختبار ‪ t‬لعينتين مستقلتين‪:‬‬


‫‪ . 1‬أن يكون متغير الدراسة كمياً‪.‬‬
‫‪ . 0‬أن تتوزع البيانات لكل من العينتين وفق التوزيع الطبيعي‪.‬‬
‫‪ . 3‬تجانس تباين العينتين‪.‬‬
‫‪ . 4‬أن تكون العينتان مستقلتين‪.‬‬
‫‪ . 5‬عدم وجود قيمة شاذة‪.‬‬
‫‪ . 6‬أن يكون حجم العينة يشكل ‪ %5‬على األقل من حجم المجتمع‪.‬‬

‫مثال‪ :‬لتكن لدينا قياسات سكر الدم لمجموعتين من المرضى حيث تأخذ‬
‫المجموعة األولى الدواء ‪ A‬وتأخذ المجموعة الثانية الدواءين ‪:B‬‬
‫‪A‬‬ ‫‪111 108 139 111 101 138 164 149 142‬‬
‫‪B‬‬ ‫‪140 90 110 125 111 128 113 89 110‬‬
‫والمطلوب معرفة أي الدواءين هو األفضل‪.‬‬

‫‪87‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬
‫‪t = 2.5477, df = 15.959, p-value = 0.0215‬‬
‫في السطر األول يعرض ‪ R‬إحصائية االختبار المحسوبة ‪ t‬وعدد درجات‬
‫الحرية و‪( p-value‬احتمال الداللة) وقد كانت قيمته ‪ 0.02153‬وهي‬
‫أقل من ‪ 2925‬وبالتالي نرفض فرضية العدم التي تقول بعدم وجود‬
‫اختالف معنوي بين سكر الدم في كل من المجموعتين؛ أي يوجد اختالف‬
‫معنوي بين سكر الدم باستخدام العالج األول وسكر الدم باستخدام العالج‬
‫الثاني وذلك عند مستوى الداللة ‪.%5‬‬
‫‪alternative hypothesis: true difference in means is not‬‬
‫‪equal to 0‬‬
‫السطر الثاني يخبرنا بأن الفرضية البديلة تنص على أن الفرق بين‬
‫متوسطي المجموعتين يختلف إحصائياً عن الصفر‪.‬‬
‫‪95 percent confidence interval:‬‬
‫يقصد بالسطر الثالث أنه سيتم إظهار مجال ثقة للفرق بين متوسطي‬
‫المجموعتين باحتمال ‪.=95%‬‬
‫‪3.447788‬‬ ‫‪37.663323‬‬
‫في السطر الرابع تم عرض مجال الثقة والذي كان [‪ ]3945,37966‬والذي‬
‫يعني أنه باحتمال ثقة ‪ %95‬في المجتمع األصلي الذي سحبنا منه عينتنا‬
‫سيكون الفرق بين المتوسطين ضمن المجال ‪ 3945‬و ‪.37966‬‬
‫‪sample estimates:‬‬
‫‪mean of x mean of y‬‬
‫السطر الخامس معناه‪ :‬مقدرات العينة‪ .‬والسطر السادس يعني متوسط ‪x‬‬
‫ومتوسط ‪ y‬وقد تم إظهار كل منهما في السطر السابع‪.‬‬
‫‪88‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬
‫‪133.4444‬‬ ‫‪112.8889‬‬
‫في السطر السابع تقدير متوسط المجتمع الذي سحبت منه العينة ‪x‬‬
‫بـ‪ 133944‬وتقدير متوسط المجتمع الذي سحبت منه العينة ‪ y‬بـ‪.110989‬‬

‫اختبار ستودينت للعينة المزدوجة‬


‫‪:Paired- Sample t-test‬‬
‫يستخدم اختبار ستودينت للعينة المزدوجة (العينتين المرتبطتين)‬
‫الختبار الفرضية‪:‬‬
‫̅‪𝐻1 : 𝑥1̅ ≠ 𝑥2‬‬ ‫مقابل‪:‬‬ ‫̅‪𝐻0 : 𝑥1̅ = 𝑥2‬‬
‫أي الختبار اختالف متوسط العينة ̅‪ 𝑥1‬في ظرف ما عن متوسط‬
‫العينة نفسها في ظرف آخر ̅‪ ،𝑥2‬ومعرفة إذا كان هذا الفرق هو فرق ذو‬
‫داللة إحصائية أو أنه فقط بمجرد الصدفة‪.‬‬
‫وهناك حالة أعم الختبار ستودينت للعينة المزدوجة وتصاغ‬
‫فرضيتاه بالشكل‪:‬‬
‫𝑚 ≠ ̅‪𝐻1 : 𝑥1̅ − 𝑥2‬‬ ‫مقابل‪:‬‬ ‫𝑚 = ̅‪𝐻0 : 𝑥1̅ − 𝑥2‬‬
‫والذي يدرس معنوية كون الفرق بين ̅‪ 𝑥1̅ ,𝑥2‬يساوي مقدار ثابت مثل 𝑚‪.‬‬

‫وللتطبيق باستخدام ‪ R‬نكتب التعليمة‪:‬‬


‫)‪t.test(x,y,mu=m,paired=T‬‬
‫ويمكن إهمال الوسيط الثالث في حال كان ‪.m=0‬‬

‫‪89‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫شروط تطبيق اختبار ‪ t‬للعينة المزدوجة‪:‬‬


‫‪ . 1‬أن يكون متغير الدراسة كمياً‪.‬‬
‫‪ . 0‬أن يتوزع فرق العينتين وفق التوزيع الطبيعي‪.‬‬
‫‪ . 3‬أن تكون العينتان عبارة عن عينة واحدة مقاسة في ظرفين مختلفين‪.‬‬
‫‪ . 4‬عدم وجود قيمة شاذة‪.‬‬
‫‪ . 5‬أن يكون حجم العينة يشكل ‪ %5‬على األقل من حجم المجتمع‪.‬‬

‫مثال‪ :‬قمنا بتطبيق نظام حمية على عينة من النساء لمدة شهر وقمنا‬
‫بتسجيل أوزانهن قبل وبعد الحمية فكانت النتائج كما يلي‪:‬‬
‫قبل‬ ‫‪65‬‬ ‫‪66‬‬ ‫‪60‬‬ ‫‪59‬‬ ‫‪60‬‬ ‫‪74‬‬ ‫‪63‬‬ ‫‪69‬‬ ‫‪65‬‬
‫بعد‬ ‫‪62‬‬ ‫‪62‬‬ ‫‪59‬‬ ‫‪58‬‬ ‫‪54‬‬ ‫‪67‬‬ ‫‪58‬‬ ‫‪60‬‬ ‫‪62‬‬
‫والمطلوب معرفة فيما إذا كانت الحمية مجدية‪.‬‬

‫‪91‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬
‫‪t = 7.2308, df = 8, p-value = 8.972e-05‬‬
‫في السطر األول يعرض ‪ R‬إحصائية االختبار المحسوبة ‪ t‬وعدد درجات‬
‫الحرية و‪( p-value‬احتمال الداللة) وقد كانت قيمته ‪ 0.0000897‬وهي‬
‫أقل من ‪ 2925‬وبالتالي نرفض فرضية العدم التي تقول بعدم وجود‬
‫اختالف معنوي بين األوزان في كلتي الحالتين؛ أي يوجد اختالف معنوي‬
‫بين أوزان النساء قبل الحمية وأوزان النساء بعد الحمية وذلك عند مستوى‬
‫الداللة ‪.%5‬‬
‫‪alternative hypothesis: true difference in means is not‬‬
‫‪equal to 0‬‬
‫السطر الثاني يخبرنا بأن الفرضية البديلة تنص على أن الفرق بين‬
‫المتوسطين يختلف إحصائياً عن الصفر‪.‬‬
‫‪95 percent confidence interval:‬‬
‫يقصد بالسطر الثالث أنه سيتم إظهار مجال ثقة للفرق بين المتوسطي‬
‫باحتمال ‪.=95%‬‬
‫‪3.556775‬‬ ‫‪6.887670‬‬
‫في السطر الرابع تم عرض مجال الثقة والذي كان [‪ ]3956,6989‬والذي‬
‫يعني أنه باحتمال ثقة ‪ %95‬في المجتمع األصلي الذي سحبنا منه عينتنا‬
‫سيكون الفرق بين المتوسطين ضمن المجال ‪ 3956‬و ‪.6989‬‬
‫‪sample estimates:‬‬
‫‪mean of the differences‬‬
‫السطر الخامس معناه‪ :‬مقدرات العينة‪.‬‬
‫والسطر السادس يعني متوسط الفروقات وقد تم إظهاره في السطر السابع‪.‬‬
‫‪91‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬
‫‪5.222222‬‬
‫في السطر السابع تقدير متوسط الفرق بين أوزان النساء قبل وبعد الحمية‬
‫بـ ‪ ،5900‬وبالتالي الحمية مجدية ألن متوسط الفرق بين أوزان النساء قبل‬
‫وبعد الحمية والبالغ ‪ 5900‬هو فرق معنوي‪.‬‬

‫تحليل التباين أحادي الاتجاه ‪:One Way ANOVA‬‬


‫يستخدم اختبار تحليل التباين أحادي االتجاه لدراسة وجود فروق‬
‫معنوية بين عدة مجموعات‪ ،‬أي الختبار الفرضية‪:‬‬
‫̅𝑟𝑥 = ⋯ = ̅‪𝐻0 : 𝑥1̅ = 𝑥2‬‬
‫مقابل‪𝐻1 : 𝑥𝑖̅ ≠ 𝑥𝑗̅ 𝑓𝑜𝑟 𝑠𝑜𝑚𝑒 𝑖,𝑗 :‬‬

‫ويمكن إجراء االختبار باستخدام ‪ R‬بالخطوات اآلتية‪:‬‬


‫‪ . 1‬نعرف ‪ data frame‬ثم ننفذ تعليمة ‪ stack‬للـ ‪data frame‬‬
‫ونحفظها في متغير جديد وليكن ‪.xs‬‬
‫‪ . 0‬نستخدم التعليمة‪:‬‬
‫)‪aov(values~ind,data=xs‬‬

‫شروط تطبيق اختبار ‪:One Way ANOVA‬‬


‫‪ . 1‬أن يكون متغير الدراسة كمياً‪.‬‬
‫‪ . 0‬أن تتوزع البيانات لكل من العينات وفق التوزيع الطبيعي‪.‬‬
‫‪ . 3‬تجانس تباين العينات‪.‬‬
‫‪92‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ . 4‬أن تكون العينات مستقلة‪.‬‬


‫‪ . 5‬عدم وجود قيمة شاذة‪.‬‬
‫‪ . 6‬أن يكون حجم العينة يشكل ‪ %5‬على األقل من حجم المجتمع‪.‬‬

‫مثال‪ :‬لدراسة االختالف في معدالت الطالب باختالف طريقة التدريس‬


‫كانت لدينا النتائج اآلتية‪:‬‬
‫‪A‬‬ ‫‪75‬‬ ‫‪77‬‬ ‫‪70‬‬ ‫‪78‬‬ ‫‪89‬‬ ‫‪79‬‬ ‫‪81‬‬
‫‪B‬‬ ‫‪84‬‬ ‫‪87‬‬ ‫‪83‬‬ ‫‪77‬‬ ‫‪79‬‬ ‫‪80‬‬ ‫‪79‬‬
‫‪C‬‬ ‫‪88‬‬ ‫‪80‬‬ ‫‪87‬‬ ‫‪89‬‬ ‫‪83‬‬ ‫‪85‬‬ ‫‪89‬‬
‫حيث تمثل ‪ A‬طريقة التدريس التقليدية‪ ،‬و‪ B‬التدريس مع جهاز‬
‫إسقاط‪ ،‬و‪ C‬التدريس مع مذاكرات دورية‪.‬‬

‫‪93‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫والذي يهمنا من الناتج هو قيمة احتمال الداللة ‪p=0.00997‬‬


‫وهي أقل من ‪ 2925‬وبالتالي نرفض فرضية العدم القائلة بأنه ال يوجد‬
‫اختالف بين المتوسطات‪ ،‬ونستنتج أن طريقتين على األقل من الطرائق‬
‫الثالثة تختلفان عن بعضهما البعض اختالفاً معنوياً‪.‬‬

‫‪94‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫االرتباط واالحندار‬
‫معامل ارتباط بيرسون‬
‫‪:Pearson Correlation Coefficient‬‬
‫يستخدم معامل ارتباط بيرسون لدراسة وجود عالقة بين متغيرين‬
‫كميين ‪ X‬و‪ Y‬ولقياس شدة هذه العالقة‪ ،‬حيث يقع معامل االرتباط ضمن‬
‫المجال [‪ ]1,1-‬وكلما اقتربت قيمته المطلقة من الواحد دلنا هذا على أن‬
‫العالقة أقوى‪ ،‬وكلما اقتربت قيمته المطلقة من الصفر تكون العالقة‬
‫ضعيفة‪ ،‬واإلشارة الموجبة لمعامل االرتباط تدل على أن العالقة طردية‪،‬‬
‫أما اإلشارة السالبة فتدل على أن العالفة عكسية‪ ،‬بعد حساب معامل‬
‫االرتباط ‪ R‬يتم اختبار الفرضية‪:‬‬
‫‪𝐻1 : 𝑅 ≠ 0‬‬ ‫مقابل‪:‬‬ ‫‪𝐻0 : 𝑅 = 0‬‬
‫ونقوم بدراسة العالقة بين متغيرين ‪ X,Y‬وفق معامل ارتباط‬
‫بيرسون باستخدام التعليمة‪:‬‬
‫)‪cor.test(x,y‬‬

‫شروط تطبيق معامل ارتباط بيرسون الخطي‪:‬‬


‫‪ . 1‬أن يكون متغي ار الدراسة كميين‪.‬‬
‫‪ . 0‬أن تتوزع البيانات لكل من العينتين وفق التوزيع الطبيعي‪.‬‬

‫‪95‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ . 3‬أن تكون العالقة بين المتغيرين خطية (نتحقق من ذلك برسم مخطط‬
‫االنتشار)‪.‬‬
‫‪ . 4‬ثبات التباين ‪ Homoscedasticity‬حول خط االنتشار (يجب أن‬
‫يكون االنتشار على شكل سيجار تقريباً)‪.‬‬
‫‪ . 5‬عدم وجود قيمة شاذة‪.‬‬
‫‪ . 6‬أن يكون حجم العينة يشكل ‪ %5‬على األقل من حجم المجتمع‪.‬‬

‫مثال عن مخطط االنتشار ‪:Scatter Plot‬‬


‫يمكن رسم مخطط االنتشار لشعاعين ‪ x‬و‪ y‬باالستعانة بالتابع ‪ ،plot‬فلو‬
‫أردنا رسم مخطط االنتشار للبيانات اآلتية‪:‬‬
‫‪X‬‬ ‫‪10‬‬ ‫‪13‬‬ ‫‪11‬‬ ‫‪8 7 16 18 10 9 12‬‬
‫‪Y‬‬ ‫‪11‬‬ ‫‪15‬‬ ‫‪12‬‬ ‫‪10 9 15 13 10 8 7‬‬

‫نكتب التعليمة‪:‬‬

‫‪96‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫الناتج‪:‬‬

‫‪97‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬ادرس العالقة بين المتغيرين في المثال السابق‪:‬‬

‫والذي يهمنا أوالً هو القيمة ‪ p=0.01835‬والتي هي أصغر من‬


‫‪ 2925‬وبالتالي نرفض فرضية العدم التي تقول بعدم وجود عالقة ارتباطية‬
‫بين المتغيرين‪ ،‬ونقبل الفرضية البديلة‪ ،‬ونستنتج أنه توجد عالقة معنوية‬
‫بين المتغيرين ‪ X‬و‪ .Y‬كما يعرض ‪ R‬مجال الثقة [‪ ]2.17,2.93‬والذي‬
‫يعني أنه باحتمال ثقة ‪ %95‬سيكون ‪ R‬للمجتمع بين ‪ %17‬و ‪%93‬‬
‫حيث كان ‪ R‬من العينة ‪ 2.70‬وهو مقبول‪.‬‬

‫ِّ‬
‫باستخدام‬ ‫ملحظة‪ :‬يمكن إيجاد مصفوفة االرتباط ألكثر من شعاعين‬
‫نفس التعليمة )‪ cor(A‬حيث أن ‪ A‬هو متغير معرف على أنه ‪matrix‬‬
‫كما يمكن إيجاد مصفوفة التغاير باستخدام التعليمة )‪.cov(A‬‬

‫‪98‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫وبالتطبيق على المثال السابق نجد‪:‬‬

‫‪99‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬لنولد شعاعين ‪ X,Y‬عشوائياً وندرس العالقة بينهما‪:‬‬

‫والذي يهمنا أوالً هو القيمة ‪ p=0.1869‬والتي هي أكبر من‬


‫‪ 2925‬وبالتالي نقبل فرضية العدم ونستنتج أنه ال توجد عالقة معنوية بين‬
‫‪ X‬و‪.Y‬‬

‫الانحدار الخطي البسيط‬


‫‪:Simple Linear Regression‬‬
‫يقصد باالنحدار الخطي البسيط دراسة تأثير المتغير ‪ X‬وهو‬
‫المتغير المستقل ‪ Independent Variable‬على المتغير ‪ Y‬وهو‬
‫المتغير التابع ‪ .Dependent Variable‬ويعطى نموذج االنحدار‬
‫الخطي بالشكل‪:‬‬
‫‪111‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪𝑌 = 𝛽0 + 𝛽1 𝑋 + ‬‬ ‫;‬ ‫)‪ ~ (0,2‬‬


‫حيث ندعو ‪ ‬بالباقي أو الخطأ‪ ،‬ويهدف تحليل االنحدار إلى‬
‫إيجاد مقدرات لكل من ‪ 𝛽0 , 𝛽1‬والتي تجعل مجموع مربعات البواقي‬
‫أصغر ما يمكن‪.‬‬
‫لتطبيق االنحدار الخطي البسيط باستخدام ‪ R‬نكتب التعليمة‪:‬‬
‫)‪lm(y~x‬‬

‫شروط تطبيق االنحدار الخطي البسيط‪:‬‬


‫‪ . 1‬أن يكون كل من المتغير التابع والمتغير المستقل كميين‪.‬‬
‫‪ . 0‬استقالل البواقي‪.‬‬
‫‪ . 3‬التوزيع الطبيعي البواقي‪.‬‬
‫‪ . 4‬تجانس التباين‪.‬‬
‫‪ . 5‬عدم وجود قيم شاذة‪.‬‬
‫‪ . 6‬أن يكون حجم العينة كبي اًر‪.‬‬

‫مثال‪ :‬أوجد معادلة االنحدار الخطي البسيط التي تمثل تأثير الطول على‬
‫الوزن باالعتماد على العينة اآلتية‪:‬‬
‫‪ 162 167 172 175 174 169 168 163‬الطول‬
‫الوزن‬ ‫‪58‬‬ ‫‪65‬‬ ‫‪73‬‬ ‫‪74‬‬ ‫‪78‬‬ ‫‪65‬‬ ‫‪67‬‬ ‫‪61‬‬

‫‪111‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫يهمنا من الجدول السابق قيمتا ‪ intercept‬و‪ ،x‬حيث تمثل‬


‫‪ intercept‬قيمة الثابت ‪ 𝛽0‬وتمثل ‪ x‬قيمة الميل ‪.𝛽1‬‬

‫وبالتالي فإن معادلة االنحدار التي تمثل تأثير الطول ‪ X‬على‬


‫الوزن ‪ Y‬هي‪:‬‬
‫𝑋 ‪𝑌=−145.851+1.269‬‬

‫إن هذه المعادلة غير كافية إحصائياً‪ ،‬لذلك يجب دراسة مدى‬
‫كفاءة هذه المعادلة بالتنبؤ ومدى جودتها ومعنويتها‪ ،‬وهذا يتم بالشكل‬
‫اآلتي‪:‬‬

‫‪112‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪Residuals:‬‬
‫السطر األول يوضح أن المخرجات هي للبواقي ‪ ،Residuals‬أي الفرق‬
‫بين القيم الفعلية والقيم المتنبأ بها‪.‬‬
‫‪Min‬‬ ‫‪1Q‬‬ ‫‪Median‬‬ ‫‪3Q‬‬ ‫‪Max‬‬
‫‪-3.5766 -1.3266 -0.1358‬‬ ‫‪1.4018‬‬ ‫‪3.1546‬‬
‫يظهر في السطر الثالث على الترتيب أصغر باقي‪ ،‬والربيع األول للبواقي‬
‫ووسيط البواقي‪ ،‬والربيع الثالث للبواقي‪ ،‬وأكبر باقي‪.‬‬
‫‪Coefficients:‬‬ ‫)|‪. Estimate Std. Error t value Pr(>|t‬‬
‫السطر الرابع يوضح أن المخرجات اآلتية هي معامالت النموذج‪.‬‬

‫‪113‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬
‫‪(Intercept) -145.8510 31.9907‬‬ ‫**‪-4.559 0.003854‬‬
‫يمثل السطر الخامس الحد الثابت من نموذج االنحدار وقيمته في مثالنا‬
‫‪ 𝛽0=−145.851‬بخطأ معياري ‪ 31999‬وإحصاء اختبار معنوية هذا‬
‫المعامل يخضع لتوزيع ستودينت وقيمته ‪ 𝑡=−4.559‬وهو معنوي كون‬
‫احتمال الداللة ‪.𝑝−𝑣𝑎𝑙𝑢𝑒 = 0.003854 <  = 0.05‬‬
‫‪x‬‬ ‫***‪1.2688 0.1901 6.676 0.000547‬‬
‫يمثل السطر السادس المعامل ‪ 𝛽1‬الذي كانت قيمته ‪ 𝛽1=1.2688‬بخطأ‬
‫معياري ‪ 291921‬وإحصاء اختبار معنوية هذا المعامل يخضع أيضاً‬
‫لتوزيع ستودينت وقيمته ‪ 𝑡=6.676‬وهو معنوي كون احتمال الداللة‬
‫‪.𝑝−𝑣𝑎𝑙𝑢𝑒 = 0.000547 <  = 0.05‬‬
‫‪Signif.codes:0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’0.1‘ ’ 1‬‬
‫في السطر السابع يبين ‪ R‬لنا تفسيره لمعنوية المعامالت حيث يصطلح‬
‫‪ R‬الرمز *** للمعامالت ذات المعنوية العالية جداً (أي أن المعامل‬
‫معنوي عند ‪ 1‬باأللف)‪ ،‬والرمز ** للمعنوية العالية (أي أن المعامل‬
‫معنوي عند ‪ ،)%1‬والرمز * للمعنوية العادية (أي أن المعامل معنوي‬
‫عند ‪.)%5‬‬
‫‪Residual standard error: 2.546 on 6 degrees of freedom‬‬
‫السطر الثامن يبين الخطأ المعياري للبواقي والذي قد كان ‪ 09546‬بـ ‪6‬‬
‫درجات حرية‪.‬‬
‫‪Multiple R-squared: 0.8813, Adjusted R-squared:‬‬
‫‪0.8616‬‬

‫‪114‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫السطر التاسع يبين قيمة معامل التحديد ‪ 𝑅2=0.8813‬والذي يعني بمثالنا‬


‫أن ‪ %88913‬من التغير في الوزن هو بسبب التغير في الطول‪ ،‬أو أن‬
‫الطول يفسر ‪ %88913‬من التغير في الوزن‪.‬‬
‫كما يبين في السطر نفسه قيمة معامل التحديد المعدل والذي بلغ في‬
‫نموذجنا ‪ Adjusted R2 = 0.8616‬ويستخدم معامل التحديد المعدل‬
‫بدالً من معامل التحديد العادي في حال االنحدار الخطي المتعدد‪.‬‬
‫‪F-statistic: 44.57 on 1 and 6 DF, p-value: 0.0005471‬‬
‫السطر العاشر يظهر اإلحصائية العامة عن معنوية النموذج حيث بلغت‬
‫قيمة إحصاء االختبار ‪ 𝐹=44.57‬بدرجة حرية واحدة للبسط وست‬
‫درجات حرية للمقام وبمعنوية ‪ 𝑝−𝑣𝑎𝑙𝑢𝑒 < 0.05‬أي أن النموذج‬
‫الخطي المقترح هو نموذج معنوي‪.‬‬
‫وفي النهاية نستطيع كتابة معادلة االنحدار الممثلة لمثالنا بالشكل‪:‬‬
‫‪Y = −145.851 + 1.269 X‬‬

‫الانحدار الخطي المتعدد‬


‫‪:Multiple Linear Regression‬‬
‫يقصد باالنحدار الخطي المتعدد دراسة تأثير (عالقة) عدة‬
‫متغيرات 𝑝𝑋‪ 𝑋1,𝑋2,…,‬تدعى المتغيرات المستقلة ‪Independent‬‬
‫‪ Variables‬على متغير ‪ Y‬يدعى المتغير التابع ‪Dependent‬‬
‫‪.Variable‬‬

‫‪115‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫يعطى نموذج االنحدار الخطي المتعدد بالشكل‪:‬‬


‫; ‪𝑌 = 𝛽0 + 𝛽1𝑋1 + 𝛽2𝑋2 + ⋯ + 𝛽𝑝𝑋𝑝 + ‬‬ ‫)‪ ~ (0,2‬‬
‫ولتطبيق االنحدار المتعدد باستخدام ‪ R‬نكتب التعليمة‪:‬‬
‫)‪lm(y~x1+x2+…+xp‬‬

‫شروط تطبيق االنحدار الخطي المتعدد‪:‬‬


‫‪ . 1‬أن يكون كل من المتغير التابع والمتغيرات المستقلة كمية‪.‬‬
‫‪ . 3‬استقالل البواقي‪.‬‬
‫‪ . 4‬التوزيع الطبيعي للبواقي‪.‬‬
‫‪ . 5‬ثبات التباين‪.‬‬
‫‪ . 6‬عدم وجود ارتباط خطي متعدد ‪ Multicollinearity‬بين المتغيرات‬
‫المستقلة‪.‬‬
‫‪ . 7‬عدم وجود قيم شاذة‪.‬‬
‫‪ . 8‬أن يكون حجم العينة كبي اًر‪.‬‬

‫مثال‪ :‬أوجد معادلة االنحدار الخطي المتعدد التي تمثل تأثير الطول‬
‫وسكر الدم على الوزن باالعتماد على العينة اآلتية‪:‬‬
‫الوزن‬ ‫‪72‬‬ ‫‪82‬‬ ‫‪62‬‬ ‫‪75‬‬ ‫‪62‬‬ ‫‪59‬‬ ‫‪92‬‬
‫الطول‬ ‫‪170‬‬ ‫‪178 160‬‬ ‫‪175 167‬‬ ‫‪163 172‬‬
‫سكر الدم‬ ‫‪113‬‬ ‫‪108 122‬‬ ‫‪119‬‬ ‫‪89‬‬ ‫‪94‬‬ ‫‪165‬‬

‫‪116‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫يهمنا من الجدول السابق قيم ‪ intercept‬و‪ x1‬و‪ x2‬حيث تمثل‬


‫‪ intercept‬قيمة الثابت ‪ 𝛽0‬وتمثل ‪ x1‬قيمة الميل ‪ 𝛽1‬و‪ x2‬قيمة الميل‬
‫‪.𝛽2‬‬
‫وبالتالي فإن معادلة االنحدار التي تمثل تأثير الطول ‪ 𝑋1‬وسكر‬
‫الدم ‪ 𝑋2‬على الوزن ‪ Y‬هي‪:‬‬
‫‪𝑌=−65.43+0.54𝑋1+0.38𝑋2‬‬

‫إن هذه المعادلة غير كافية إحصائياً‪ ،‬لذلك يجب دراسة مدى‬
‫كفاءة هذه المعادلة بالتنبؤ ومدى جودتها ومعنويتها‪ ،‬وهذا يتم بالشكل‬
‫اآلتي‪:‬‬

‫‪117‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪Residuals:‬‬
‫يوضح السطر األول أن المخرجات هي للبواقي ‪ ،Residuals‬أي الفرق‬
‫بين القيم الفعلية والقيم المتنبأ بها‪.‬‬
‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪7‬‬
‫‪-0.963 0.063 -0.582 0.122 0.899 0.163 0.297‬‬
‫يظهر في السطر الثالث قيم البواقي عند كل مشاهدة‪.‬‬
‫)|‪Coefficients: Estimate Std. Error t value Pr(>|t‬‬
‫السطر الرابع يوضح أن المخرجات اآلتية هي معامالت النموذج‪.‬‬

‫‪118‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬
‫**‪(Intercept) -65.43125 9.28691 -7.046 0.002139‬‬
‫‪x1‬‬ ‫***‪0.54252 0.05879 9.228 0.000766‬‬
‫‪x2‬‬ ‫‪0.38125‬‬ ‫‪0.01354‬‬ ‫***‪28.160 9.46e-06‬‬
‫يظهر في كل من السطر الخامس والسادس والسابع قيم المعامالت‬
‫وخطأها المعياري وإحصائية اختبارها ومعنويتها على الترتيب‪ ،‬ونالحظ‬
‫في مثالنا أن كافة المعامالت معنوية‪.‬‬
‫‪Signif. codes: 0‘***’0.001‘**’0.01‘*’0.05‘.’0.1‘ ’1‬‬
‫السطر الثامن يبين ‪ R‬لنا تفسيره لمعنوية المعامالت‪.‬‬
‫‪Residual standard error: 0.7431 on 4 degrees of‬‬
‫‪freedom‬‬
‫السطر التاسع يبين الخطأ المعياري للبواقي والذي قد كان ‪ 297431‬بـ ‪4‬‬
‫درجات حرية‪.‬‬
‫‪Multiple R-squared: 0.9974, Adjusted R-squared:‬‬
‫‪0.9961‬‬
‫السطر العاشر يبين قيمة معامل التحديد ‪.𝑅2=0.9974‬‬
‫كما يبين السطر نفسه قيمة معامل التحديد المعدل والذي بلغ في نموذجنا‬
‫‪ Adjusted R2 = 299961‬وهو الذي نعتمده كون االنحدار متعدد‪،‬‬
‫ويعني بمثالنا أن ‪ 99961%‬من التغير في الوزن هو بسبب التغير في‬
‫الطول وسكر الدم‪ ،‬أو أن الطول وسكر الدم يفسران ‪ 99961%‬من التغير‬
‫في الوزن‪.‬‬

‫‪119‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬
‫‪F-statistic: 762 on 2 and 4 DF, p-value: 6.853e-06‬‬
‫يظهر السطر الحادي عشر اإلحصائية العامة عن معنوية النموذج حيث‬
‫بلغت قيمة إحصاء االختبار ‪ 𝐹=762‬بدرجتي حرية للبسط وأربع درجات‬
‫حرية للمقام وبمعنوية ‪ 𝑝-vlaue < 0.05‬أي أن النموذج الخطي المقترح‬
‫هو نموذج معنوي‪.‬‬
‫وفي النهاية نستطيع كتابة معادلة االنحدار الممثلة لمثالنا بالشكل‪:‬‬
‫‪Y = -65.43125 + 0.54252 X1 + 0.38125 X2‬‬

‫‪111‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫العبارات الشرطية والتكرارية والتوابع‬


‫العبارة الشرطية ‪:if‬‬
‫تستخدم العبارة الشرطية ‪ if‬عندما نرغب بتنفيذ تعليمة محددة أو‬
‫عدة تعليمات ‪ statements‬عندما يتحقق شرط أو عدة شروط‬
‫‪ ،conditions‬ولها الشكل العام اآلتي‪:‬‬
‫)‪if(conditions‬‬
‫{‬
‫‪Statements‬‬
‫}‬
‫ولها شكل أعم‪ ،‬وهو تنفيذ كتلة التعليمات ‪ statements1‬في‬
‫التعليمات‬ ‫كتلة‬ ‫وتنفيذ‬ ‫‪conditions1‬‬ ‫الشروط‬ ‫تحقق‬ ‫حال‬
‫‪ statements2‬في حال عدم تحققها‪:‬‬
‫)‪if(conditions‬‬
‫{‬
‫‪statements1‬‬
‫‪} else‬‬
‫{‬
‫‪statements2‬‬
‫}‬
‫كما يمكن للتعليمة ‪ if‬أن تأخذ شكالً أعم‪ ،‬فتختبر عدة شروط‬
‫ويكون تحقق كل شرط مقروناً بتعليمات خاصة به وذلك بالشكل اآلتي‪:‬‬

‫‪111‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬
‫)‪if(condition1‬‬
‫{‬
‫‪statements1‬‬
‫)‪} else if (condition2‬‬
‫{‬
‫‪statements2‬‬
‫)‪} else if (condition3‬‬
‫…‬
‫ملحظة‪ :‬الرمز ‪ +‬في بداية األسطر من الثالث إلى األخير تعني أن‬
‫التعليمة لم تنته‪ ،‬وهنا يجب أن نشير إلى أنه علينا أال نكتب ‪ else‬إال‬
‫بجوار القوس وال نفردها بسطر وحدها وإال اعتبرت ‪ R‬أن الكود انتهى‪.‬‬

‫مثال‪ :‬اكتب برنامج يقوم بطباعة ‪ Negative‬إذا كان العدد المدخل‬


‫سالباً‪ ،‬ويطبع ‪ Positive‬إذا كان العدد المدخل موجباً‪ ،‬ويطبع صفر فيما‬
‫عدا ذلك‪:‬‬

‫‪112‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫التابع ‪:ifelse‬‬
‫وهو تابع يفحص العبارة المنطقية ‪ condition‬فإذا كانت‬
‫نتيجتها ‪ TURE‬ينفذ التعليمة ‪ X‬وإذا كانت نتيجتها ‪ FALSE‬ينفذ‬
‫التعليمة ‪ .Y‬وللتابع ‪ ifelse‬الشكل العام اآلتي‪:‬‬
‫)‪ifelse(condition,x,y‬‬

‫مثال‪ :‬إذا كان العدد زوجي في الشعاع ‪ a‬فليكتب ‪ even‬وإذا كان فردي‬
‫فليكتب ‪.odd‬‬

‫العبارة ‪:Switch‬‬
‫للتعليمة ‪ switch‬الشكل العام اآلتي‪:‬‬
‫)‪switch(statement, list‬‬
‫حيث يتم إرجاع قيمة من القائمة ‪ list‬باالعتماد على قيمة‬
‫‪ ،statement‬فمثالً‪:‬‬
‫)"‪> switch(2,"red","green","blue‬‬ ‫التعليمة‬
‫الناتج "‪"green‬‬
‫‪113‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫التعليمة‬
‫)‪>switch("color","color"="red","shape"="square","length"=5‬‬
‫الناتج "‪"red‬‬

‫حلقة التكرار ‪:For‬‬


‫تقوم تعليمة ‪ for‬بتكرار التعليمات ‪ Statements‬بعدد من‬
‫المرات يساوي ‪ .end-start+1‬وشكلها العام‪:‬‬
‫)‪for(i in start:end‬‬
‫{‬
‫‪Statements‬‬
‫}‬
‫‪ :end‬نقطة النهاية‪.‬‬ ‫حيث‪ :i :‬العداد‪ :start .‬نقطة البداية‪.‬‬
‫‪ :statements‬التعليمات المراد تكرارها‪.‬‬

‫مثال‪ :‬احسب عدد االرقام الزوجية في الشعاع التالي‪ .‬حيث أنه في المثال‬
‫أدناه لدينا ‪ 7‬أرقام في الشعاع ‪ ،x‬أخذنا المتغير ‪ count‬ليكون عداد‬
‫لحساب عدد األرقام الزوجية باختبار باقي القسمة على ‪ 0‬إذا كان الناتج‬
‫صفر فالعدد هو رقم زوجي‪ ،‬وبذلك أصبح الناتج ‪.3‬‬
‫‪114‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬قم بإدخال المصفوفة اآلتية‪:‬‬

‫‪ -‬اطبع عناصر القطر الرئيسي‪ .‬بطريقتين‪:‬‬

‫‪115‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬اطبع عناصر القطر الثانوي‪.‬‬

‫‪ -‬اطبع العناصر التي هي فوق القطر الرئيسي‪.‬‬

‫‪116‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬اطبع العناصر التي هي فوق القطر الرئيسي مع القطر الرئيسي‪.‬‬

‫‪ -‬اطبع العناصر التي هي تحت القطر الرئيسي‪.‬‬

‫‪ -‬اطبع العناصر التي هي فوق القطر الثانوي‪.‬‬

‫‪117‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ -‬اطبع العناصر التي هي تحت القطر الثانوي مع القطر الثانوي‪.‬‬

‫حلقة التكرار ‪:while‬‬


‫يتم تقييم ‪ conditions‬فاذا كانت النتيجة صحيحة يتم تنفيذ‬
‫التعليمات داخل الحلقة ويستمر تقييم التعبير حتى تصبح النتيجة خاطئة‪،‬‬
‫وفي هذه الحالة‪ ،‬يتم إنهاء الحلقة‪.‬‬

‫لحلقة التكرار ‪ while‬الشكل العام اآلتي‪:‬‬


‫)‪while (condition‬‬
‫{‬
‫‪Statements‬‬
‫}‬
‫حيث‪ :conditions :‬شروط تنفيذ الحلقة‪.‬‬
‫‪ :statements‬التعليمات التي تتنفذ في حال تحقق شروط تنفيذ‬
‫الحلقة‪.‬‬

‫‪118‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬البرنامج اآلتي يطبع األعداد من ‪ 1‬إلى ‪:9‬‬

‫في المثال أعاله‪ ،‬يتم تهيئة ‪ i‬إلى ‪.1‬‬


‫وهنا ‪ condition‬هو ‪ i <10‬الذي يقيم (صحيح) كلما كان ‪ 1‬هو أقل‬
‫من ‪ .10‬لذا‪ ،‬تم تنفيذ داخل الحلقة وطباعتها وتستمر الحلقة حتى ‪ i‬يأخذ‬
‫قيمة ‪ .12‬فيصبح الشرط ‪ 12 < 12‬وهذا يعطي النتيجة خطأ ويتم‬
‫الخروج من الحلقة‪.‬‬

‫‪119‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫التعليمتان ‪ break‬و‪:next‬‬
‫تستخدم التعليمة ‪ break‬ضمن حلقة تكرار إليقافها عند تحقق‬
‫شرط محدد‪ ،‬والبرنامج اآلتي يطبع األعداد من ‪ 1‬إلى ‪ 12‬ويتوقف عن‬
‫الطباعة عند أول عدد زوجي من مضاعفات العدد ‪:3‬‬

‫بينما تستخدم التعليمة ‪ next‬لتجاهل تنفيذ التعليمات التي تليها‬


‫في حلقة ما دون الخروج من الحلقة‪ ،‬والبرنامج اآلتي يقوم بطباعة األعداد‬
‫الواقعة بين ‪ 1‬و ‪ 05‬والتي تقبل القسمة على ‪ 3‬فقط‪:‬‬

‫‪121‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫حلقة ‪:repeat‬‬
‫وهي حلقة يجب استخدام التعليمة ‪ break‬معها حص اًر إليقاف‬
‫تنفيذها‪ ،‬ولها الشكل العام اآلتي‪:‬‬

‫‪repeat‬‬
‫{‬
‫‪Statements‬‬
‫}‬

‫‪121‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫مثال‪ :‬البرنامج اآلتي يطبع األعداد من ‪ 1‬إلى ‪:12‬‬

‫‪122‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫خلاصة الحلقات التكرارية الثلاثة‪:‬‬


‫تكرر‬ ‫‪for‬‬ ‫‪ .1‬الحلقة‬
‫التعليمات‬
‫طالما‬ ‫‪Statements‬‬
‫أن العداد ضمن المجال‬
‫‪ seq‬المحدد له‪.‬‬

‫‪ .0‬الحلقة ‪ while‬تكرر‬
‫التعليمات‬
‫طالما‬ ‫‪Statements‬‬
‫التنفيذ‬ ‫شرط‬ ‫أن‬
‫‪ Condition‬محقق‪.‬‬

‫‪123‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫‪ .3‬الحلقة ‪ repeat‬تتنفذ مرة‬


‫واحدة على األقل إلى أن‬
‫يتحقق شرط الخروج‬
‫‪.Condition‬‬

‫انتهى الكتاب بعون الله‬

‫الدكتور أحمد أديب أحمد‬

‫‪124‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫السيرة الذاتية للمؤلف‬

‫الدكتور أحمد أديب أحمد‬


‫العمل الحالي‪ :‬عضو هيئة تدريسية في كلية االقتصاد بجامعة تشرين‪.‬‬
‫التخصص الرئيسي‪ :‬اإلحصاء والبرمجة‪.‬‬
‫التخصص الفرعي‪ :‬االقتصاد القياسي‪.‬‬
‫البريد االلكتروني‪a.ahmed79@yahoo.com :‬‬
‫المؤهلت العلمية‪:‬‬
‫‪ .1‬إجازة في االقتصاد باختصاص اإلحصاء بتقدير جيد جداً ‪.1001‬‬
‫‪ .1‬دبلوم في االقتصاد باختصاص اإلحصاء بتقدير امتياز ‪.1001‬‬
‫‪ .3‬ماجسـتير في االقتصـاد باختصـاص اإلحصاء والبرمجة بتقدير امتياز‬
‫‪.1002‬‬
‫‪ .4‬دكتوراه في االقتصـاد باختصـاص اإلحصاء والبرمجة بتقدير جيد جداً‬
‫‪.1013‬‬
‫الخبرات العلمية المهنية السابقة‪:‬‬
‫‪ .1‬خبير اقتص ــادي إحصــائي في مش ــروع دعم الجاهزية التنافس ــية التابع‬
‫لبرنامج ‪ UNDP‬بالتعاون مع هيئة تخطيط الدولة‪.‬‬
‫‪ .1‬قدم آالف السـ ـ ــاعات التدريبية في مجال تقنية المعلومات والد ارسـ ـ ــات‬
‫اإلحصائية واالقتصادية‪.‬‬
‫‪ .3‬مدرس القس ـ ــم النظري والعملي للعديد من المواد المقررة (اإلحص ـ ــاء‪-‬‬
‫الحاسـوب‪ -‬اإلدارة) في كليات جامعتي تشرين ودمشق (‪ 1003‬حتى‬
‫اآلن)‪.‬‬

‫‪125‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬
‫بعض الكتب والمؤلفات واألبحاث المنشورة وقيد النشر‪:‬‬
‫أوالا‪ :‬في المجال االقتصادي‪:‬‬
‫‪ .1‬المعرفة والفوضى في العالم‪.1002 ،‬‬
‫‪ .1‬التعددية السياسية واالقتصادية في مشروع الدستور الجديد‪.1011 ،‬‬
‫‪ .3‬الدليل الس ـ ـ ـريع إلى تصـ ـ ــميم الد ارسـ ـ ــات اإلحصـ ـ ــائية (االسـ ـ ــتبيانات)‪،‬‬
‫‪.1011‬‬
‫‪ .4‬طروحات اقتصادية في ظل الحرب على سورية‪.1011-1011 ،‬‬
‫‪ .2‬تطبيقات حاسـ ــوبية في العلوم االقتصـ ــادية باسـ ــتخدام برنامج ‪،Excel‬‬
‫‪.1012‬‬
‫‪ .2‬تطبيقات في االقتصاد القياسي باستخدام برنامج ‪.1010 ،EViews‬‬
‫‪ .7‬الدليل الس ـ ـ ـريع إلى تصـ ـ ــميم الد ارسـ ـ ــات اإلحصـ ـ ــائية (االسـ ـ ــتبيانات)‪،‬‬
‫‪.1011‬‬
‫‪ .8‬االقتصاد السياحي‪ ،‬قيد النشر‪.‬‬
‫ثاني ا‪ :‬في المجال األدبي‪:‬‬
‫نبض لصفصاف الفضاء‪ -‬شعر ‪.1011‬‬‫ٌ‬ ‫‪.1‬‬
‫‪ .1‬مناجاة مع قائد األمة‪ -‬نثر ‪.1014‬‬
‫‪ .3‬نهر العسل‪ -‬نثر قيد النشر‪.‬‬
‫‪ .4‬رنين الصفاء‪ -‬خواطر نثرية قيد النشر‪.‬‬
‫ثالث ا‪ :‬في المجال السياسي‪:‬‬
‫‪ .1‬إعالء كلمة الحق بين التأييد اإللهي وحكمة القائد‪.1011 ،‬‬
‫‪ .1‬وعي الشباب في مواجهة التكفير واإلرهاب‪.1011 ،‬‬
‫‪ .3‬الوحدة الوطنية‪ ..‬شعار القائد والشعب‪.1011 ،‬‬
‫‪ .4‬الحرية الفاصلة بين تآمر العمالء وإخالص الشرفاء‪.1011 ،‬‬

‫‪126‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬
‫‪ .2‬دور رجال الدين في مواجهة التحديات واألزمات‪.1011 ،‬‬
‫‪ .2‬عالئم النصر في ممانعة الفوضى ومقاومة اإلرهاب‪.1011 ،‬‬
‫‪ .7‬تجليات الحكمة عند القائد بشار حافظ األسد‪.1014 ،‬‬
‫‪ .8‬دعوات اإلرهاب التكفيري امتداد للتلمود الصهيوني‪.1012 ،‬‬
‫‪ .2‬الدور المقاوم في مواجهة التطبيع (سورية أنموذجاً)‪.1010 ،‬‬
‫‪ .10‬مجزرة المدفعية‪ ..‬ش اررة الفتنة األولى لإلخوان المسلمين‪.1011 ،‬‬
‫‪ .11‬تسييس الدين في الحروب‪ -‬قيد النشر‪.‬‬
‫رابع ا‪ :‬في المجال العسكري‪:‬‬
‫‪ .1‬القتال في المدن‪ :‬مواجهة العصابات اإلرهابية المسلحة وأهم المهارات‬
‫والخبرات التي اكتسبها الجيش العربي السوري‪.1017 ،‬‬
‫خامس ا‪ :‬في المجال الديني‪:‬‬
‫‪ .1‬نور الهداية ألهل الوالية‪.1007 ،‬‬
‫‪ .1‬لقاءات وحوارات مع الباحث الديني العلوي‪.1012 ،‬‬
‫‪ .3‬حوار مع عالمة الجيل واإليضاح اللطيف‪.1012 ،‬‬
‫‪ .4‬اإلمام المهدي المنتظر في مواجهة مشاريع حرب القيامة‪.1011 ،‬‬
‫‪ .2‬الضربة النصيرية لمزاعم البدعة اليمانية‪.1011 ،‬‬
‫‪ .2‬المدقق في الكالم المحقق‪ -‬قيد التحضير‪.‬‬

‫وله العديد من الكتب والمؤلفات واألبحاث والمقاالت المنشــ ـ ـ ـ ــورة في العديد‬


‫من الصـ ــحف المحلية والعربية والمواقع االلكترونية‪ ،‬والمقابالت والحوارات اإلعالمية‬
‫على الفض ـ ــائيات واإلذاعات المحلية في المجال الس ـ ــياس ـ ــي واالقتص ـ ــادي‪ ،‬والندوات‬
‫والمحاضرات التي قدمها في المراكز الثقافية والفعاليات الوطنية والجامعة‪.‬‬

‫‪127‬‬
‫د‪ .‬أحمد أديب أحمد‬ ‫تطبيقات إحصائية في لغة البرمجة ‪R‬‬

‫الفهرس‬
‫الصفحة‬ ‫الموضوع‬
‫‪3‬‬ ‫مقدمة‬
‫‪5‬‬ ‫الكائنات وبعض المالحظات حول ‪R‬‬
‫‪12‬‬ ‫بعض األوامر الخاصة في لغة البرمجة ‪R‬‬
‫‪15‬‬ ‫تعليمات عامة في لغة البرمجة ‪R‬‬
‫‪17‬‬ ‫العمليات الحسابية والمنطقية‬
‫‪02‬‬ ‫األشعة (المتجهات)‬
‫‪41‬‬ ‫المصفوفات‬
‫‪56‬‬ ‫إطار البيانات‬
‫‪62‬‬ ‫نظرية االحتماالت‬
‫‪67‬‬ ‫مستويات القياس واختبار الفرضيات‬
‫‪71‬‬ ‫اختبارات الطبيعية‬
‫‪74‬‬ ‫اختبارات العينة الواحدة‬
‫‪82‬‬ ‫اختبار تجانس التباينات‬
‫‪86‬‬ ‫اختبارات المقارنة بين المتوسطات‬
‫‪95‬‬ ‫االرتباط واالنحدار‬
‫‪111‬‬ ‫العبارات الشرطية والتك اررية والتوابع‬
‫‪105‬‬ ‫السيرة الذاتية للمؤلف‬

‫‪128‬‬

You might also like