0% found this document useful (0 votes)
95 views129 pages

Statistical Exercises in R

المستند يقدم مقدمة عن لغة البرمجة R ومميزاتها وكيفية استخدام المتغيرات والثوابت فيها.

Uploaded by

Mohammed Soufi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
95 views129 pages

Statistical Exercises in R

المستند يقدم مقدمة عن لغة البرمجة R ومميزاتها وكيفية استخدام المتغيرات والثوابت فيها.

Uploaded by

Mohammed Soufi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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‬‬

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

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


‫العمل الحالي‪ :‬عضو هيئة تدريسية في كلية االقتصاد بجامعة تشرين‪.‬‬
‫التخصص الرئيسي‪ :‬اإلحصاء والبرمجة‪.‬‬
‫التخصص الفرعي‪ :‬االقتصاد القياسي‪.‬‬
‫البريد االلكتروني‪[email protected] :‬‬
‫المؤهلت العلمية‪:‬‬
‫‪ .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