|](../../sketchnotes/03-DefiningData.png)|
|](../../sketchnotes/03-DefiningData.png)|
|:---:|
|تعريف البيانات - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ |
|تعريف البيانات - _مذكرة مرسومة بواسطة [@nitya](https://twitter.com/nitya)_ |
البيانات هي الحقائق، المعلومات، الملاحظات والقياسات التي تُستخدم لاكتشافات ودعم القرارات المستنيرة. نقطة البيانات هي وحدة واحدة من البيانات داخل مجموعة بيانات، وهي عبارة عن مجموعة من نقاط البيانات. قد تأتي مجموعات البيانات في أشكال وهياكل مختلفة، وعادةً ما تعتمد على مصدرها أو المكان الذي جاءت منه البيانات. على سبيل المثال، قد تكون أرباح الشركة الشهرية في جدول بيانات، بينما قد تكون بيانات معدل ضربات القلب كل ساعة من ساعة ذكية بتنسيق [JSON](https://stackoverflow.com/a/383699). من الشائع أن يعمل علماء البيانات مع أنواع مختلفة من البيانات داخل مجموعة بيانات واحدة.
البيانات هي حقائق ومعلومات وملاحظات وقياسات تُستخدم لاكتشاف أشياء ودعم اتخاذ قرارات مستنيرة. نقطة بيانات هي وحدة واحدة من البيانات داخل مجموعة بيانات، وهي مجموعة من نقاط البيانات. يمكن أن تأتي مجموعات البيانات بأشكال وهياكل مختلفة، وغالبًا ما تكون بناءً على مصدرها أو من أين أتت البيانات. على سبيل المثال، قد تكون أرباح شركة شهرية في جدول بيانات لكن بيانات معدل ضربات القلب الساعة من ساعة ذكية قد تكون بتنسيق [JSON](https://stackoverflow.com/a/383699). من الشائع أن يعمل علماء البيانات مع أنواع مختلفة من البيانات ضمن مجموعة بيانات.
تركز هذه الدرس على تحديد وتصنيف البيانات بناءً على خصائصها ومصادرها.
تركز هذه الدرسة على تحديد وتصنيف البيانات بناءً على خصائصها ومصادرها.
## [اختبار ما قبل المحاضرة](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## كيف يتم وصف البيانات
## كيف توصف البيانات
### البيانات الخام
البيانات الخام هي البيانات التي تأتي من مصدرها في حالتها الأولية ولم يتم تحليلها أو تنظيمها. لفهم ما يحدث داخل مجموعة بيانات، يجب تنظيمها في شكل يمكن للبشر فهمه وكذلك التكنولوجيا التي قد يستخدمونها لتحليلها بشكل أكبر. تصف بنية مجموعة البيانات كيفية تنظيمها ويمكن تصنيفها إلى: منظمة، غير منظمة، وشبه منظمة. تختلف هذه الأنواع من البنية بناءً على المصدر ولكنها في النهاية تندرج ضمن هذه الفئات الثلاث.
البيانات الخام هي البيانات التي جاءت من مصدرها في حالتها الأصلية ولم يتم تحليلها أو تنظيمها. من أجل فهم ما يحدث مع مجموعة بيانات، يجب تنظيمها في شكل يمكن أن يفهمه البشر وكذلك التكنولوجيا التي قد يستخدمونها لتحليلها بشكل أعمق. يصف هيكل مجموعة البيانات كيف يتم تنظيمها ويمكن تصنيفها إلى منظم، غير منظم وشبه منظم. تختلف أنواع هذه الهياكل اعتمادًا على المصدر لكنها في النهاية تندرج ضمن هذه الفئات الثلاث.
### البيانات الكمية
البيانات الكمية هي الملاحظات الرقمية داخل مجموعة البيانات ويمكن عادةً تحليلها وقياسها واستخدامها رياضيًا. بعض الأمثلة على البيانات الكمية هي: عدد سكان بلد معين، طول شخص ما، أو أرباح شركة ربع سنوية. مع بعض التحليل الإضافي، يمكن استخدام البيانات الكمية لاكتشاف الاتجاهات الموسمية لمؤشر جودة الهواء (AQI) أو تقدير احتمالية ازدحام المرور خلال ساعات الذروة في يوم عمل عادي.
البيانات الكمية هي ملاحظات عددية ضمن مجموعة بيانات ويمكن تحليلها وقياسها واستخدامها رياضيًا عادةً. بعض أمثلة البيانات الكمية هي: عدد سكان دولة، طول شخص أو أرباح شركة ربع سنوية. مع بعض التحليل الإضافي، يمكن استخدام البيانات الكمية لاكتشاف الاتجاهات الموسمية لمؤشر جودة الهواء (AQI) أو تقدير احتمال ازدحام المرور خلال ساعات الذروة في يوم عمل عادي.
### البيانات النوعية
البيانات النوعية، والمعروفة أيضًا بالبيانات الفئوية، هي بيانات لا يمكن قياسها بشكل موضوعي مثل ملاحظات البيانات الكمية. عادةً ما تكون بيانات ذات صيغة ذاتية تلتقط جودة شيء ما، مثل منتج أو عملية. أحيانًا تكون البيانات النوعية رقمية ولكنها لا تُستخدم عادةً رياضيًا، مثل أرقام الهواتف أو الطوابع الزمنية. بعض الأمثلة على البيانات النوعية هي: تعليقات الفيديو، نوع وطراز السيارة، أو اللون المفضل لأقرب أصدقائك. يمكن استخدام البيانات النوعية لفهم المنتجات التي يفضلها المستهلكون أو تحديد الكلمات المفتاحية الشائعة في السير الذاتية للوظائف.
البيانات النوعية، المعروفة أيضًا بالبيانات التصنيفية، هي بيانات لا يمكن قياسها موضوعيًا مثل ملاحظات البيانات الكمية. عادةً ما تكون صيغ متعددة من البيانات الذاتية التي تلتقط جودة شيء ما، مثل منتج أو عملية. أحيانًا تكون البيانات النوعية عددية ولا تُستخدم عادة رياضيًا، مثل أرقام الهواتف أو الطوابع الزمنية. بعض أمثلة البيانات النوعية هي: تعليقات الفيديو، نوع وطراز سيارة أو اللون المفضل لأقرب أصدقائك. يمكن استخدام البيانات النوعية لفهم المنتجات التي يفضلها المستهلكون أو تحديد الكلمات المفتاحية الشائعة في سير ذاتية لوظائف.
### البيانات المنظمة
البيانات المنظمة هي البيانات التي يتم تنظيمها في صفوف وأعمدة، حيث يحتوي كل صف على نفس مجموعة الأعمدة. تمثل الأعمدة قيمة لنوع معين ويتم تحديدها باسم يصف ما تمثله القيمة، بينما تحتوي الصفوف على القيم الفعلية. غالبًا ما تحتوي الأعمدة على مجموعة محددة من القواعد أو القيود على القيم لضمان أن القيم تمثل العمود بدقة. على سبيل المثال، تخيل جدول بيانات للعملاء حيث يجب أن يحتوي كل صف على رقم هاتف، ولا تحتوي أرقام الهواتف على أحرف أبجدية. قد تكون هناك قواعد مطبقة على عمود رقم الهاتف لضمان عدم تركه فارغًا وأن يحتوي فقط على أرقام.
البيانات المنظمة هي البيانات التي تُنظم في صفوف وأعمدة، حيث لكل صف نفس مجموعة الأعمدة. تمثل الأعمدة قيمة من نوع معين وتُحدد باسم يصف ما تمثله القيمة، بينما الصفوف تحتوي على القيم الفعلية. غالبًا ما يكون للأعمدة مجموعة محددة من القواعد أو القيود على القيم، لضمان تمثيل القيم العمود بدقة. على سبيل المثال تخيل جدول بيانات العملاء حيث يجب أن يحتوي كل صف على رقم هاتف والأرقام لا تحتوي أبدًا على حروف أبجدية. قد تكون هناك قواعد مطبقة على عمود رقم الهاتف لضمان عدم خلوه واحتوائه على أرقام فقط.
ميزة البيانات المنظمة هي أنه يمكن تنظيمها بطريقة تجعلها مرتبطة ببيانات منظمة أخرى. ومع ذلك، نظرًا لأن البيانات مصممة لتكون منظمة بطريقة معينة، فإن إجراء تغييرات على هيكلها العام قد يتطلب جهدًا كبيرًا. على سبيل المثال، إضافة عمود بريد إلكتروني إلى جدول بيانات العملاء بحيث لا يمكن أن يكون فارغًا يعني أنك ستحتاج إلى معرفة كيفية إضافة هذه القيم إلى الصفوف الحالية للعملاء في مجموعة البيانات.
فائدة البيانات المنظمة أنها يمكن تنظيمها بطريقة تسمح بربطها ببيانات منظمة أخرى. ومع ذلك، لأن البيانات مصممة ليتم تنظيمها بطريقة معينة، فإن إجراء تغييرات على هيكلها الكامل قد يتطلب جهدًا كبيرًا. على سبيل المثال، إضافة عمود بريد إلكتروني إلى جدول بيانات العملاء لا يمكن أن يكون فارغًا يعني أنك تحتاج لمعرفة كيفية إضافة هذه القيم إلى الصفوف الموجودة بالفعل في مجموعة البيانات.
أمثلة على البيانات المنظمة: جداول البيانات، قواعد البيانات العلائقية، أرقام الهواتف، كشوف الحسابات البنكية.
أمثلة على البيانات المنظمة: جداول البيانات، قواعد البيانات العلائقية، أرقام الهواتف، كشوفات البنك
### البيانات غير المنظمة
البيانات غير المنظمة عادةً لا يمكن تصنيفها إلى صفوف أو أعمدة ولا تحتوي على صيغة أو مجموعة من القواعد التي يجب اتباعها. نظرًا لأن البيانات غير المنظمة تحتوي على قيود أقل على بنيتها، فمن الأسهل إضافة معلومات جديدة مقارنةً بمجموعة بيانات منظمة. إذا كان جهاز استشعار يلتقط بيانات عن ضغط الهواء كل دقيقتين قد تلقى تحديثًا يسمح له الآن بقياس وتسجيل درجة الحرارة، فإنه لا يتطلب تعديل البيانات الحالية إذا كانت غير منظمة. ومع ذلك، قد يجعل هذا تحليل أو التحقيق في هذا النوع من البيانات يستغرق وقتًا أطول. على سبيل المثال، قد يرغب عالم في العثور على متوسط درجة الحرارة للشهر السابق من بيانات المستشعر، لكنه يكتشف أن المستشعر سجل "e" في بعض بياناته للإشارة إلى أنه كان معطلاً بدلاً من رقم نموذجي، مما يعني أن البيانات غير مكتملة.
عادةً لا يمكن تصنيف البيانات غير المنظمة إلى صفوف أو أعمدة ولا تحتوي على تنسيق أو مجموعة قواعد للاتباع. لأن البيانات غير المنظمة لديها قيود أقل على الهيكل، فمن الأسهل إضافة معلومات جديدة مقارنة بمجموعة بيانات منظمة. إذا استقبل مستشعر يقيس الضغط الجوي كل دقيقتين تحديثًا يسمح له بقياس وتسجيل درجة الحرارة، فلن يتطلب تعديل البيانات الحالية إذا كانت غير منظمة. ومع ذلك، قد يجعل هذا تحليل أو فحص هذا النوع من البيانات يستغرق وقتًا أطول. على سبيل المثال، عالِم يريد معرفة متوسط درجة حرارة الشهر السابق من بيانات المستشعر، لكنه يكتشف أن المستشعر سجل "e" في بعض بياناته المسجلة للدلالة على أنه كان معطلًا بدل رقم عادي، مما يعني أن البيانات غير مكتملة.
أمثلة على البيانات غير المنظمة: ملفات النصوص، الرسائل النصية، ملفات الفيديو.
أمثلة على البيانات غير المنظمة: ملفات نصية، رسائل نصية، ملفات فيديو
### البيانات شبه المنظمة
البيانات شبه المنظمة لها ميزات تجعلها مزيجًا من البيانات المنظمة وغير المنظمة. عادةً لا تتبع صيغة الصفوف والأعمدة ولكنها منظمة بطريقة تُعتبر منظمة وقد تتبع صيغة ثابتة أو مجموعة من القواعد. تختلف البنية بين المصادر، مثل التسلسل الهرمي المحدد جيدًا إلى شيء أكثر مرونة يسمح بالتكامل السهل للمعلومات الجديدة. البيانات الوصفية هي مؤشرات تساعد في تحديد كيفية تنظيم البيانات وتخزينها وستحمل أسماء مختلفة بناءً على نوع البيانات. بعض الأسماء الشائعة للبيانات الوصفية هي العلامات، العناصر، الكيانات والسمات. على سبيل المثال، تحتوي رسالة البريد الإلكتروني النموذجية على موضوع، نص، ومجموعة من المستلمين ويمكن تنظيمها بناءً على من أرسلها أو متى تم إرسالها.
### شبه منظمة
البيانات شبه المنظمة لها ميزات تجعلها مزيجًا من البيانات المنظمة وغير المنظمة. عادةً لا تتوافق مع تنسيق صفوف وأعمدة، لكنها منظمة بطريقة تُعتبر منظمة وقد تتبع تنسيقًا ثابتًا أو مجموعة قواعد. يختلف الهيكل بين المصادر، مثل وجود تسلسل هرمي معرف جيدًا إلى شيء أكثر مرونة يسمح بالتكامل السهل لمعلومات جديدة. البيانات الوصفية هي مؤشرات تساعد في تحديد كيفية تنظيم وتخزين البيانات ولها أسماء مختلفة حسب نوع البيانات. بعض الأسماء الشائعة للبيانات الوصفية هي الوسوم والعناصر والكيانات والصفات. على سبيل المثال، رسالة بريد إلكتروني تحتوي عادةً على موضوع، نص ومجموعة من المستلمين ويمكن تنظيمها حسب المرسل أو وقت الإرسال.
أمثلة على البيانات شبه المنظمة: HTML، ملفات CSV، JavaScript Object Notation (JSON).
أمثلة على البيانات شبه المنظمة: HTML، ملفات CSV، تنسيق كائنات جافاسكريبت (JSON)
## مصادر البيانات
مصدر البيانات هو الموقع الأولي الذي تم فيه إنشاء البيانات أو المكان الذي "تعيش" فيه، ويختلف بناءً على كيفية ووقت جمعها. البيانات التي يتم إنشاؤها بواسطة مستخدميها تُعرف بالبيانات الأولية، بينما البيانات الثانوية تأتي من مصدر جمع البيانات للاستخدام العام. على سبيل المثال، مجموعة من العلماء الذين يجمعون ملاحظات في غابة مطيرة يُعتبرون مصدرًا أوليًا، وإذا قرروا مشاركتها مع علماء آخرين، فستُعتبر ثانوية بالنسبة لأولئك الذين يستخدمونها.
مصدر البيانات هو الموقع الأولي الذي تم فيه إنشاء البيانات، أو حيث "تعيش"، وسوف يختلف بناء على كيفية ووقت جمعها. تُعرف البيانات التي ينتجها المستخدم(المستخدمون) بأنها بيانات أولية، بينما تأتي البيانات الثانوية من مصدر جمع البيانات لاستخدام عام. على سبيل المثال، يُعتبر مجموعة من العلماء يجمعون ملاحظات في غابة مطيرة بيانات أولية وإذا قرروا مشاركتها مع علماء آخرين تعتبر بيانات ثانوية لأولئك الذين يستخدمونها.
تُعتبر قواعد البيانات مصدرًا شائعًا وتعتمد على نظام إدارة قواعد البيانات لاستضافة البيانات وصيانتها، حيث يستخدم المستخدمون أوامر تُعرف بالاستعلامات لاستكشاف البيانات. يمكن أن تكون الملفات كمصادر بيانات عبارة عن ملفات صوتية، صور، وملفات فيديو بالإضافة إلى جداول بيانات مثل Excel. تُعتبر مصادر الإنترنت موقعًا شائعًا لاستضافة البيانات، حيث يمكن العثور على قواعد البيانات وكذلك الملفات. واجهات برمجة التطبيقات، المعروفة أيضًا بـ APIs، تسمح للمبرمجين بإنشاء طرق لمشاركة البيانات مع المستخدمين الخارجيين عبر الإنترنت، بينما عملية استخراج البيانات من صفحات الويب تُعرف بـ Web Scraping. تركز [الدروس في العمل مع البيانات](../../../../../../../../../2-Working-With-Data) على كيفية استخدام مصادر البيانات المختلفة.
قواعد البيانات مصدر شائع وتعتمد على نظام إدارة قواعد بيانات لاستضافة البيانات وصيانتها حيث يستخدم المستخدمون أوامر تسمى استعلامات لاستكشاف البيانات. الملفات كمصادر بيانات يمكن أن تكون ملفات صوت، صورة، فيديو بالإضافة إلى جداول بيانات مثل Excel. مصادر الإنترنت موقع شائع لاستضافة البيانات حيث يمكن إيجاد قواعد بيانات وكذلك الملفات. واجهات برمجة التطبيقات، المعروفة أيضًا بـ APIs، تسمح للمبرمجين بإنشاء طرق لمشاركة البيانات مع المستخدمين الخارجيين عبر الإنترنت، بينما تستخرج عملية جمع البيانات عبر الويب البيانات من صفحة ويب. تركز [الدروس في التعامل مع البيانات](../../../../../../../../../2-Working-With-Data) على كيفية استخدام مصادر البيانات المختلفة.
## الخاتمة
## الخلاصة
في هذا الدرس تعلمنا:
- ما هي البيانات
- كيف يتم وصف البيانات
- كيف يتم تصنيف البيانات وفئاتها
- كيف توصف البيانات
- كيف تُصنف البيانات وتُصنَّف
- أين يمكن العثور على البيانات
## 🚀 التحدي
## 🚀 تحدي
Kaggle هو مصدر ممتاز لمجموعات البيانات المفتوحة. استخدم [أداة البحث عن مجموعات البيانات](https://www.kaggle.com/datasets) للعثور على بعض مجموعات البيانات المثيرة للاهتمام وصنف 3-5 مجموعات بيانات وفقًا لهذه المعايير:
Kaggle مصدر ممتاز لمجموعات البيانات المفتوحة. استخدم [أداة البحث عن المجموعات](https://www.kaggle.com/datasets) لإيجاد بعض مجموعات البيانات المثيرة وصف من 3-5 مجموعات بيانات وفقًا لهذه المعايير:
- هل البيانات كمية أم نوعية؟
- هل البيانات منظمة، غير منظمة، أم شبه منظمة؟
## [اختبار ما بعد المحاضرة](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## المراجعة والدراسة الذاتية
- تحتوي وحدة Microsoft Learn بعنوان [تصنيف بياناتك](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) على شرح مفصل للبيانات المنظمة، شبه المنظمة، وغير المنظمة.
## مراجعة ودراسة ذاتية
- وحدة Microsoft Learn هذه، بعنوان [تحديد تنسيقات البيانات](https://learn.microsoft.com/en-us/training/modules/explore-core-data-concepts/2-data-formats?pivots=text) تحتوي على تحليل مفصل للبيانات المنظمة وشبه المنظمة وغير المنظمة.
## الواجب
@ -72,5 +73,7 @@ Kaggle هو مصدر ممتاز لمجموعات البيانات المفتوح
---
**إخلاء المسؤولية**:
تم ترجمة هذه الوثيقة باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار الوثيقة الأصلية بلغتها الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**تنويه**:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي والمعتمد. للمعلومات الهامة، يُنصح بالاستعانة بترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.
"في هذا الدفتر، سنقوم بالتجربة مع بعض المفاهيم التي ناقشناها سابقًا. العديد من المفاهيم من الاحتمالات والإحصاء ممثلة بشكل جيد في المكتبات الكبرى لمعالجة البيانات في بايثون، مثل `numpy` و `pandas`.\n"
"في هذه المذكرة، سوف نتعامل مع بعض المفاهيم التي ناقشناها سابقًا. العديد من المفاهيم من الاحتمالات والإحصاء ممثلة جيدًا في المكتبات الرئيسية لمعالجة البيانات في بايثون، مثل `numpy` و `pandas`.\n"
]
},
{
@ -25,7 +25,7 @@
"metadata": {},
"source": [
"## المتغيرات العشوائية والتوزيعات\n",
"لنبدأ برسم عينة من 30 قيمة من توزيع متساوي بين 0 و 9. سنقوم أيضًا بحساب المتوسط والتباين.\n"
"لنبدأ بسحب عينة مكونة من 30 قيمة من توزيع متساوي بين 0 و 9. سنقوم أيضًا بحساب المتوسط والتباين.\n"
]
},
{
@ -44,7 +44,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"لتقدير عدد القيم المختلفة في العينة بصريًا، يمكننا رسم **الهيستوجرام**:\n"
"لتقدير بصري لعدد القيم المختلفة الموجودة في العينة، يمكننا رسم **مخطط التوزيع التكراري**:\n"
]
},
{
@ -63,7 +63,7 @@
"source": [
"## تحليل البيانات الحقيقية\n",
"\n",
"المتوسط والتباين مهمان جدًا عند تحليل البيانات الواقعية. لنقم بتحميل البيانات الخاصة بلاعبي البيسبول من [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
"المتوسط والتباين مهمان جدًا عند تحليل بيانات العالم الحقيقي. لنقم بتحميل بيانات لاعبي البيسبول من [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
]
},
{
@ -80,9 +80,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> نحن نستخدم حزمة تسمى [**Pandas**](https://pandas.pydata.org/) هنا لتحليل البيانات. سنتحدث أكثر عن Pandas والعمل مع البيانات في بايثون لاحقًا في هذه الدورة.\n",
"> نحن نستخدم حزمة تسمى [**Pandas**](https://pandas.pydata.org/) هنا لتحليل البيانات. سنتحدث أكثر عن Pandas والعمل مع البيانات في بايثون لاحقًا في هذا المساق.\n",
"يمكننا أيضًا صنع مخططات الصناديق لعينات فرعية من مجموعتنا البيانية، على سبيل المثال، مجمعة حسب دور اللاعب.\n"
"يمكننا أيضًا إنشاء مخططات صندوق للأجزاء الفرعية من مجموعة بياناتنا، على سبيل المثال، مجمعة حسب دور اللاعب.\n"
]
},
{
@ -165,9 +165,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **ملاحظة**: يشير هذا المخطط إلى أنه في المتوسط، أطوال لاعبي القاعدة الأولى أعلى من أطوال لاعبي القاعدة الثانية. لاحقًا سنتعلم كيف يمكننا اختبار هذه الفرضية بطريقة أكثر رسمية، وكيفية إثبات أن بياناتنا ذات دلالة إحصائية لتوضيح ذلك.\n",
"> **ملاحظة**: تشير هذه المخططة إلى أنه في المتوسط، يكون طول لاعبي القاعدة الأولى أطول من طول لاعبي القاعدة الثانية. فيما بعد سنتعلم كيف يمكننا اختبار هذه الفرضية بشكل رسمي، وكيف نبرهن أن بياناتنا ذات دلالة إحصائية لإثبات ذلك.\n",
"\n",
"العمر، الطول، والوزن جميعها متغيرات عشوائية مستمرة. ما رأيك في توزيعها؟ طريقة جيدة لمعرفة ذلك هي رسم المدرج التكراري للقيم:\n"
"العمر والطول والوزن كلها متغيرات عشوائية مستمرة. ما رأيك في توزيعها؟ طريقة جيدة لمعرفة ذلك هي رسم مخطط التكرار للقيم: \n"
]
},
{
@ -190,7 +190,7 @@
"source": [
"## التوزيع الطبيعي\n",
"\n",
"دعونا ننشئ عينة اصطناعية للأوزان تتبع توزيعًا طبيعيًا بمتوسط وتباين متماثل مع بياناتنا الحقيقية:\n"
"لننشئ عينة صناعية من الأوزان تتبع توزيعًا طبيعيًا بنفس المتوسط والتباين مثل بياناتنا الحقيقية:\n"
]
},
{
@ -231,7 +231,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"نظرًا لأن معظم القيم في الحياة الواقعية تتبع التوزيع الطبيعي، فلا ينبغي علينا استخدام مولد أعداد عشوائية متساوية التوزيع لتوليد بيانات عينة. إليك ما يحدث إذا حاولنا توليد الأوزان بتوزيع متساوي (تم توليدها بواسطة `np.random.rand`):\n"
"بما أن معظم القيم في الحياة الواقعية تكون موزعة طبيعيًا، فلا ينبغي علينا استخدام مولد أرقام عشوائية منتظمة لتوليد بيانات العينة. هذا ما يحدث إذا حاولنا توليد أوزان بتوزيع منتظم (مولَّد بواسطة `np.random.rand`):\n"
]
},
{
@ -253,7 +253,7 @@
"source": [
"## فترات الثقة\n",
"\n",
"دعونا الآن نحسب فترات الثقة لأوزان وأطوال لاعبي البيسبول. سنستخدم الكود [من هذا النقاش على ستاك أوفرفلو](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
"لنحسب الآن فترات الثقة لأوزان وطول لاعبي البيسبول. سنستخدم الشفرة [من هذا النقاش على ستاك أوفرفلو](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
]
},
{
@ -272,7 +272,7 @@
" return m, h\n",
"\n",
"for p in [0.85, 0.9, 0.95]:\n",
" m, h = mean_confidence_interval(df['Weight'].fillna(method='pad'),p)\n",
" m, h = mean_confidence_interval(df['Weight'].ffill(),p)\n",
" print(f\"p={p:.2f}, mean = {m:.2f} ± {h:.2f}\")"
]
},
@ -282,7 +282,7 @@
"source": [
"## اختبار الفرضيات\n",
"\n",
"دعونا نستكشف أدوارًا مختلفة في مجموعة بيانات لاعبي البيسبول لدينا:\n"
"دعونا نستكشف الأدوار المختلفة في مجموعة بيانات لاعبي كرة القاعدة لدينا:\n"
]
},
{
@ -298,7 +298,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"دعونا نختبر الفرضية القائلة بأن لاعبي القاعدة الأولى أطول من لاعبي القاعدة الثانية. أبسط طريقة للقيام بذلك هي اختبار فترات الثقة:\n"
"دعونا نختبر الفرضية التي تقول إن لاعبي المركز الأول أكثر طولاً من لاعبي المركز الثاني. أبسط طريقة لفعل ذلك هي اختبار فترات الثقة:\n"
]
},
{
@ -317,9 +317,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"يمكننا أن نرى أن الفواصل الزمنية لا تتداخل.\n",
"يمكننا أن نرى أن الفترات الزمنية لا تتداخل.\n",
"\n",
"الطريقة الأكثر صحة إحصائيًا لإثبات الفرضية هي استخدام **اختبار t لستودنت**:\n"
"طريقة إحصائية أكثر دقة لإثبات الفرضية هي استخدام **اختبار ت للطالب**:\n"
"* قيمة p يمكن اعتبارها كاحتمال أن يكون للوزعين نفس المتوسط. في حالتنا، القيمة منخفضة جدًا، مما يعني أن هناك دليلاً قوياً يدعم أن لاعبي القاعدة الأولى أطول.\n",
"* قيمة t هي القيمة الوسيطة لاختلاف المتوسطات المعيارية التي تُستخدم في اختبار t، ويتم مقارنتها مع قيمة عتبة لقيمة ثقة معينة.\n"
"* يمكن اعتبار قيمة p-القيمة على أنها احتمال أن يكون لتوزيعين نفس المتوسط. في حالتنا، هي منخفضة جدًا، مما يعني وجود دليل قوي يدعم أن لاعبي القاعدة الأولى أطول.\n",
"* قيمة t-القيمة هي القيمة الوسطية لفارق المتوسط المُطَبَّع الذي يُستخدم في اختبار t، ويتم مقارنتها مع قيمة عتبة معينة لقيمة ثقة محددة.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## محاكاة توزيع طبيعي مع نظرية الحد المركزي\n",
"## محاكاة التوزيع الطبيعي باستخدام نظرية الحد المركزي\n",
"\n",
"مصدر الأعداد العشوائية الزائفة في بايثون مصمم لإعطائنا توزيعًا منتظمًا. إذا أردنا إنشاء مولد لتوزيع طبيعي، يمكننا استخدام نظرية الحد المركزي. للحصول على قيمة موزعة طبيعيًا، سنقوم فقط بحساب متوسط عينة مولدة بشكل منتظم.\n"
"مُولّد الأعداد العشوائية الزائفة في بايثون مصمم ليعطينا توزيعًا متسقًا. إذا أردنا إنشاء مُولّد للتوزيع الطبيعي، يمكننا استخدام نظرية الحد المركزي. للحصول على قيمة موزعة طبيعيًا، سنحسب فقط متوسط عينة مُولدة بتوزيع متسق.\n"
]
},
{
@ -375,7 +375,7 @@
"source": [
"## الارتباط وشركة البيسبول الشريرة\n",
"\n",
"يسمح لنا الارتباط بإيجاد العلاقات بين تسلسلات البيانات. في مثالنا التوضيحي، دعونا نتخيل وجود شركة بيسبول شريرة تدفع للاعبيها وفقًا لطولهم - كلما كان اللاعب أطول، زادت الأموال التي يحصل عليها. لنفترض أن هناك راتبًا أساسيًا قدره 1000 دولار، ومكافأة إضافية تتراوح بين 0 و100 دولار، تعتمد على الطول. سنأخذ اللاعبين الحقيقيين من MLB، ونحسب رواتبهم الخيالية:\n"
"يسمح لنا الارتباط بإيجاد علاقات بين تسلسلات البيانات. في مثالنا البسيط، دعنا نتخيل أن هناك شركة بيسبول شريرة تدفع للاعبيها حسب طولهم - كلما كان اللاعب أطول، زادت الأموال التي يحصل عليها. لنفترض أن هناك راتبًا أساسيًا قدره 1000 دولار، ومكافأة إضافية تتراوح من 0 إلى 100 دولار، حسب الطول. سنأخذ لاعبين حقيقيين من MLB، ونحسب رواتبهم التخيلية:\n"
"لنحسب الآن التغاير والارتباط لتلك المتتاليات. ستعطينا الدالة `np.cov` ما يُسمى **مصفوفة التغاير**، وهي تمديد للتغاير ليشمل متغيرات متعددة. العنصر $M_{ij}$ من مصفوفة التغاير $M$ هو التغاير بين المتغيرين الإدخاليين $X_i$ و $X_j$، والقيم القطرية $M_{ii}$ هي تباين $X_{i}$. وبالمثل، ستعطينا الدالة `np.corrcoef` **مصفوفة الارتباط**.\n"
"لنحسب الآن التغاير والارتباط لتلك المتتاليات. ستعطينا دالة `np.cov` ما يُسمى **مصفوفة التغاير**، وهي امتداد لمفهوم التغاير إلى عدة متغيرات. العنصر $M_{ij}$ في مصفوفة التغاير $M$ هو التغاير بين المتغيرين المدخلين $X_i$ و $X_j$، والقيم القطرية $M_{ii}$ هي التباين للمتغير $X_{i}$. وبالمثل، ستعطينا دالة `np.corrcoef` **مصفوفة الارتباط**.\n"
]
},
{
@ -411,7 +411,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"يشير الارتباط الذي يساوي 1 إلى وجود **علاقة خطية** قوية بين متغيرين. يمكننا رؤية العلاقة الخطية بصريًا من خلال رسم قيمة مقابل الأخرى:\n"
"تعني العلاقة الارتباطية التي تساوي 1 وجود علاقة **خطية قوية** بين متغيرين. يمكننا رؤية العلاقة الخطية بصريًا عن طريق رسم قيمة مقابل الأخرى:\n"
]
},
{
@ -430,7 +430,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"لنرَ ماذا يحدث إذا لم تكن العلاقة خطية. لنفترض أن شركتنا قررت إخفاء التبعية الخطية الواضحة بين الطول والرواتب، وأدخلت بعض اللاخطية في الصيغة، مثل `sin`:\n"
"لنرَ ماذا يحدث إذا لم تكن العلاقة خطية. لنفترض أن شركتنا قررت إخفاء الاعتماد الخطي الواضح بين الطول والرواتب، وأدخلت بعض اللاخطية في الصيغة، مثل `sin`:\n"
]
},
{
@ -447,7 +447,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"في هذه الحالة، الارتباط أقل قليلاً، ولكنه لا يزال مرتفعًا إلى حد كبير. الآن، لجعل العلاقة أقل وضوحًا، قد نرغب في إضافة بعض العشوائية الإضافية عن طريق إضافة متغير عشوائي إلى الراتب. لنرَ ما سيحدث:\n"
"في هذه الحالة، الارتباط أقل بقليل، لكنه لا يزال مرتفعًا إلى حد كبير. الآن، لجعل العلاقة أقل وضوحًا، قد نرغب في إضافة بعض العشوائية الإضافية عن طريق إضافة متغير عشوائي إلى الراتب. دعنا نرى ماذا يحدث:\n"
]
},
{
@ -476,9 +476,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> هل يمكنك تخمين لماذا تتراصف النقاط في خطوط عمودية مثل هذه؟\n",
"> هل يمكنك التخمين لماذا تصطف النقاط في خطوط رأسية هكذا؟\n",
"\n",
"لقد لاحظنا العلاقة بين مفهوم مصطنع الهندسة مثل الراتب والمتغير الملحوظ *الطول*. دعونا نرى أيضًا ما إذا كان المتغيران الملحظان، مثل الطول والوزن، يرتبطان أيضًا:\n"
"لقد لاحظنا الترابط بين مفهوم مصطنع مثل الراتب والمتغير المرصود *الطول*. فلنر أيضًا إذا ما كانت المتغيرات المرصودة الاثنين، مثل الطول والوزن، مترابطة أيضًا:\n"
]
},
{
@ -494,11 +494,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"لسوء الحظ، لم نحصل على أي نتائج - فقط بعض القيم الغريبة `nan`. يرجع ذلك إلى أن بعض القيم في سلسلتنا غير معرفة، ممثلة بـ `nan`، مما يسبب أن تكون نتيجة العملية غير معرفة أيضًا. من خلال النظر إلى المصفوفة يمكننا أن نرى أن عمود `Weight` هو العمود الإشكالي، لأن الارتباط الذاتي بين قيم `Height` قد تم حسابه.\n",
"للأسف، لم نحصل على أي نتائج - فقط بعض القيم الغريبة `nan`. يعود ذلك إلى أن بعض القيم في سلسلتنا غير معرفة، ممثلة بـ `nan`، مما يتسبب في أن تكون نتيجة العملية غير معرفة أيضًا. من خلال النظر إلى المصفوفة يمكننا أن نرى أن العمود `Weight` هو العمود المسبب للمشكلة، لأن الارتباط الذاتي بين قيم `Height` قد تم حسابه.\n",
"\n",
"> يوضح هذا المثال أهمية **إعداد البيانات** و**تنظيفها**. بدون بيانات مناسبة لا يمكننا حساب أي شيء.\n",
"> يوضح هذا المثال أهمية **تحضير البيانات** و **تنظيفها**. بدون بيانات صحيحة لا يمكننا حساب أي شيء.\n",
"\n",
"لنعتمد على طريقة `fillna` لملء القيم المفقودة، وحساب الارتباط:\n"
"دعونا نستخدم طريقة `fillna` لملء القيم المفقودة، ونحسب الارتباط:\n"
"هناك بالفعل علاقة ارتباط، لكنها ليست قوية كما في مثالنا الاصطناعي. في الواقع، إذا نظرنا إلى مخطط التشتت لقيمة مقابل الأخرى، فإن العلاقة ستكون أقل وضوحًا بكثير:\n"
"توجد بالفعل علاقة ارتباط، لكنها ليست قوية كما في مثالنا الاصطناعي. في الواقع، إذا نظرنا إلى مخطط التبعثر لقيمة واحدة مقابل الأخرى، ستكون العلاقة أقل وضوحًا بكثير:\n"
]
},
{
@ -535,16 +535,16 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## الاستنتاج\n",
"## الخاتمة\n",
"\n",
"في هذا الدفتر تعلمنا كيفية إجراء العمليات الأساسية على البيانات لحساب الدوال الإحصائية. نحن الآن نعرف كيفية استخدام مجموعة قوية من الرياضيات والإحصائيات من أجل إثبات بعض الفرضيات، وكيفية حساب فواصل الثقة للمتغيرات التعسفية بناءً على عينة بيانات.\n"
"في هذا الدفتر تعلمنا كيفية تنفيذ العمليات الأساسية على البيانات لحساب الدوال الإحصائية. نحن الآن نعرف كيف نستخدم مجموعة قوية من الرياضيات والإحصاء لإثبات بعض الفرضيات، وكيف نحسب فترات الثقة للمتغيرات العشوائية المعطاة عينة من البيانات.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**تنويه**:\nتمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى جاهدين لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. ينبغي اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. للمعلومات الحساسة، يُنصح بالاعتماد على الترجمة المهنية بواسطة مترجم بشري. نحن غير مسؤولين عن أي سوء تفاهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**تنويه**:\nتمت ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي والمعتمد. للمعلومات الهامة، يُنصح بالاستعانة بترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"سنستخدم بيانات عن الأفراد المصابين بكوفيد-19، مقدمة من [مركز علوم وهندسة الأنظمة](https://systems.jhu.edu/) (CSSE) في [جامعة جونز هوبكنز](https://jhu.edu/). مجموعة البيانات متاحة في [مستودع GitHub هذا](https://github.com/CSSEGISandData/COVID-19).\n"
"سنستخدم بيانات الأفراد المصابين بكوفيد-19، المقدمة من قبل [مركز علوم وهندسة النظم](https://systems.jhu.edu/) (CSSE) في [جامعة جون هوبكنز](https://jhu.edu/). تتوفر مجموعة البيانات في [مستودع GitHub هذا](https://github.com/CSSEGISandData/COVID-19).\n"
]
},
{
@ -27,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"يمكننا تحميل أحدث البيانات مباشرة من GitHub باستخدام `pd.read_csv`. إذا لم تكن البيانات متوفرة لسبب ما، يمكنك دائمًا استخدام النسخة المتوفرة محليًا في مجلد `data` - فقط قم بإلغاء تعليق السطر أدناه الذي يحدد `base_url`:\n"
"يمكننا تحميل أحدث البيانات مباشرةً من GitHub باستخدام `pd.read_csv`. إذا لم تكن البيانات متوفرة لأي سبب من الأسباب، يمكنك دائمًا استخدام النسخة المتوفرة محليًا في مجلد `data` - فقط قم بإلغاء تعليق السطر أدناه الذي يعرّف `base_url`:\n"
]
},
{
@ -48,7 +48,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"لنحمّل الآن بيانات الأفراد المصابين ونرى كيف تبدو البيانات:\n"
"لنقم الآن بتحميل بيانات الأفراد المصابين ونرى كيف تبدو البيانات:\n"
]
},
{
@ -265,7 +265,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"يمكننا أن نرى أن كل صف من الجدول يحدد عدد الأفراد المصابين لكل دولة و/أو مقاطعة، والأعمدة تتوافق مع التواريخ. يمكن تحميل جداول مماثلة لبيانات أخرى، مثل عدد المتعافين وعدد الوفيات.\n"
"يمكننا أن نرى أن كل صف من الجدول يحدد عدد الأفراد المصابين لكل دولة و/أو محافظة، والأعمدة تقابل التواريخ. يمكن تحميل جداول مشابهة لبيانات أخرى، مثل عدد المتعافين وعدد الوفيات.\n"
]
},
{
@ -284,7 +284,7 @@
"source": [
"## فهم البيانات\n",
"\n",
"من الجدول أعلاه، دور عمود المحافظة غير واضح. لنرَ القيم المختلفة الموجودة في عمود `Province/State`:\n"
"من الجدول أعلاه دور عمود المقاطعة غير واضح. لنرَ القيم المختلفة الموجودة في عمود `Province/State`:\n"
]
},
{
@ -322,7 +322,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"من الأسماء يمكننا استنتاج أن دولًا مثل أستراليا والصين لديها تقسيم أكثر تفصيلاً حسب المقاطعات. لنبحث عن معلومات عن الصين لرؤية المثال:\n"
"من الأسماء يمكننا أن نستنتج أن دولاً مثل أستراليا والصين لديها تفصيلات أكثر دقة حسب المقاطعات. دعنا نبحث عن معلومات عن الصين لنرى المثال: \n"
]
},
{
@ -1321,9 +1321,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## معالجة البيانات الأولية\n",
"## معالجة البيانات مسبقًا \n",
"\n",
"لسنا مهتمين بتفصيل الدول إلى مناطق فرعية، لذلك سنقوم أولاً بالتخلص من هذا التفصيل وإضافة المعلومات لجميع المناطق معًا، للحصول على معلومات عن الدولة ككل. يمكن القيام بذلك باستخدام `groupby`:\n"
"نحن غير مهتمين بتقسيم البلدان إلى أقاليم إضافية، لذلك سنقوم أولًا بالتخلص من هذا التقسيم وإضافة المعلومات لجميع الأقاليم معًا، للحصول على معلومات عن البلد بأكمله. يمكن فعل ذلك باستخدام `groupby`: \n"
]
},
{
@ -1578,7 +1578,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"يمكنك أن ترى أنه بفضل استخدام `groupby` أصبحت جميع إطارات البيانات مفهرسة الآن حسب البلد/المنطقة. لذلك يمكننا الوصول إلى البيانات الخاصة بدولة معينة باستخدام `.loc`:|\n"
"يمكنك أن ترى أنه بسبب استخدام `groupby` تم الآن فهرسة جميع DataFrames حسب البلد/المنطقة. وبالتالي يمكننا الوصول إلى بيانات بلد معين باستخدام `.loc`:|\n"
]
},
{
@ -1607,7 +1607,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **ملاحظة** كيف نستخدم `[3:]` لإزالة العناصر الثلاثة الأولى من تسلسل يحتوي على بيانات وصفية غير تاريخية (عمود المقاطعة/الولاية وعمود الموقع الجغرافي). يمكننا أيضًا حذف هذه الأعمدة الثلاثة تمامًا:\n"
"> **ملاحظة** كيف نستخدم `[3:]` لإزالة الثلاثة عناصر الأولى من تسلسل يحتوي على بيانات وصفية غير متعلقة بالتاريخ (عمود المقاطعة/الولاية وعمود الموقع الجغرافي). يمكننا أيضًا حذف تلك الأعمدة الثلاثة بالكامل:\n"
]
},
{
@ -1627,7 +1627,7 @@
"source": [
"## التحقيق في البيانات\n",
"\n",
"لننتقل الآن للتحقيق في بلد معين. لنقم بإنشاء إطار يحتوي على بيانات الإصابات مفهرسة حسب التاريخ:\n"
"لننتقل الآن إلى التحقيق في دولة معينة. لننشئ إطارًا يحتوي على بيانات الإصابات مؤشرة حسب التاريخ:\n"
]
},
{
@ -1793,7 +1793,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"الآن دعونا نحسب عدد الأشخاص المصابين الجدد كل يوم. سيسمح لنا ذلك برؤية سرعة تقدم الجائحة. أسهل طريقة للقيام بذلك هي استخدام `diff`:\n"
"الآن دعونا نحسب عدد الأشخاص الجدد المصابين كل يوم. سيسمح لنا هذا برؤية سرعة تقدم الجائحة. أسهل طريقة للقيام بذلك هي استخدام `diff`:\n"
]
},
{
@ -1823,7 +1823,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"يمكننا أن نرى تقلبات عالية في البيانات. لننظر عن كثب إلى أحد الشهور:\n"
"يمكننا رؤية تقلبات عالية في البيانات. دعونا نلقي نظرة أقرب على أحد الشهور:\n"
]
},
{
@ -1852,7 +1852,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"من الواضح أن هناك تقلبات أسبوعية في البيانات. وبما أننا نريد أن نتمكن من رؤية الاتجاهات، فمن المنطقي تنعيم المنحنى عن طريق حساب المتوسط المتحرك (أي لكل يوم سنحسب القيمة المتوسطة للأيام السابقة عدة أيام):\n"
"يبدو بوضوح أن هناك تقلبات أسبوعية في البيانات. نظرًا لأننا نريد أن نتمكن من رؤية الاتجاهات، فمن المنطقي تنعيم المنحنى عن طريق حساب المتوسط المتحرك (أي لكل يوم سنحسب القيمة المتوسطة للأيام السابقة عدة أيام):\n"
]
},
{
@ -1882,7 +1882,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"لكي نتمكن من مقارنة عدة دول، قد نرغب في أخذ عدد سكان الدولة في الاعتبار، ومقارنة نسبة الأفراد المصابين بالنسبة إلى عدد سكان الدولة. للحصول على عدد سكان الدولة، دعونا نحمل مجموعة بيانات الدول:\n"
"لكي نستطيع مقارنة عدة دول، قد نرغب في أخذ عدد سكان البلد في الاعتبار، ومقارنة نسبة الأفراد المصابين بالنسبة إلى عدد سكان البلد. للحصول على عدد سكان البلد، دعونا نحمل مجموعة بيانات الدول:\n"
]
},
{
@ -2153,7 +2153,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"نظرًا لأن مجموعة البيانات هذه تحتوي على معلومات عن كل من الدول والمحافظات، للحصول على عدد سكان البلد بأكمله نحتاج إلى أن نكون أكثر ذكاءً قليلاً:\n"
"نظرًا لأن مجموعة البيانات هذه تحتوي على معلومات عن كل من البلدان والمحافظات، للحصول على عدد سكان الدولة بأكملها نحتاج إلى أن نكون أكثر ذكاءً قليلاً:\n"
]
},
{
@ -2261,15 +2261,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## حساب $R_t$\n",
"\n",
"لمعرفة مدى عدوى المرض، ننظر إلى **عدد التكاثر الأساسي** $R_0$، الذي يشير إلى عدد الأشخاص الذين قد يُعديهم الشخص المصاب. عندما يكون $R_0$ أكثر من 1، فمن المحتمل أن ينتشر الوباء.\n",
"لرؤية مدى عدوى المرض، ننظر إلى **عدد التكاثر الأساسي** $R_0$، الذي يشير إلى عدد الأشخاص الذين يمكن لشخص مصاب أن ينقل لهم العدوى. عندما يكون $R_0$ أكثر من 1، من المحتمل أن ينتشر الوباء.\n",
"\n",
"$R_0$ هو خاص بمرض نفسه، ولا يأخذ في الاعتبار بعض التدابير الوقائية التي قد يتخذها الناس لإبطاء الوباء. أثناء تقدم الوباء، يمكننا تقدير عدد التكاثر $R_t$ في أي وقت معين $t$. وقد تبين أن هذا الرقم يمكن تقديره تقريبا بأخذ نافذة زمنية لمدة 8 أيام، وحساب \n",
"حيث $I_t$ هو عدد الأفراد المصابين حديثًا في يوم $t$.\n",
"$R_0$ خاصية للمرض نفسه، ولا يأخذ في الاعتبار بعض الإجراءات الوقائية التي قد يتخذها الناس لإبطاء انتشار الوباء. أثناء تقدم الوباء، يمكننا تقدير عدد التكاثر $R_t$ في أي زمن معين $t$. لقد ثبت أن هذا العدد يمكن تقديره بشكل تقريبي بأخذ نافذة زمنية لمدة 8 أيام، وحساب $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"حيث $I_t$ هو عدد الأفراد المصابين حديثًا في اليوم $t$.\n",
"\n",
"دعونا نحسب $R_t$ لبيانات الوباء الخاصة بنا. للقيام بذلك، سوف نأخذ نافذة متداخلة من 8 قيم لـ `ninfected`، ونطبق الدالة لحساب النسبة المذكورة أعلاه:\n"
"يمكنك أن ترى أن هناك بعض الفجوات في الرسم البياني. يمكن أن تكون هذه ناجمة إما عن `NaN`، إذا كانت قيم `inf` موجودة في مجموعة البيانات. قد يكون سبب `inf` هو القسمة على صفر، و`NaN` يمكن أن تشير إلى بيانات مفقودة، أو عدم توفر بيانات لحساب النتيجة (كما في بداية إطارنا حيث لم يتوفر بعد نافذة متحركة بعرض 8). لجعل الرسم البياني أجمل، نحتاج إلى ملء تلك القيم باستخدام دالتي `replace` و`fillna`.\n",
"يمكنك رؤية وجود بعض الفجوات في الرسم البياني. يمكن أن تكون ناتجة عن `NaN`، إذا كانت قيم `inf` موجودة في مجموعة البيانات. قد يكون سبب `inf` هو القسمة على 0، و`NaN` يمكن أن تشير إلى بيانات مفقودة، أو عدم توفر بيانات لحساب النتيجة (مثلما في بداية الإطار حيث لم تتوفر بعد نافذة التمرير بعرض 8). لجعل الرسم البياني أجمل، نحتاج إلى ملء تلك القيم باستخدام دالتي `replace` و`fillna`.\n",
"\n",
"لنلقي نظرة أعمق على بداية الجائحة. سنقوم أيضًا بتقييد قيم المحور الصادي لإظهار القيم التي تقل عن 6 فقط، من أجل الرؤية بشكل أفضل، ورسم خط أفقي عند القيمة 1.\n"
"لنلقِ نظرة أعمق على بداية الوباء. سنقوم أيضًا بتحديد قيم المحور الصادي لعرض القيم أقل من 6 فقط، من أجل الرؤية الأفضل، ورسم خط أفقي عند 1.\n"
]
},
{
@ -2332,7 +2332,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"مؤشر آخر مثير للاهتمام للجائحة هو **المشتقة**، أو **الفرق اليومي** في الحالات الجديدة. يتيح لنا رؤية واضحة متى ترتفع الجائحة أو تنخفض.\n"
"مؤشر آخر مثير للاهتمام للجائحة هو **المشتقة**، أو **الفارق اليومي** في الحالات الجديدة. يتيح لنا رؤية متى تزداد الجائحة أو تتناقص بوضوح.\n"
]
},
{
@ -2361,7 +2361,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"نظرًا لوجود العديد من التقلبات في البيانات الناتجة عن التقارير، فمن المنطقي تنعيم المنحنى عن طريق تشغيل المتوسط المتحرك للحصول على الصورة العامة. دعونا نركز مرة أخرى على الأشهر الأولى من الجائحة:\n"
"نظرًا لوجود الكثير من التقلبات في البيانات الناتجة عن التقارير، فمن المنطقي تسوية المنحنى عن طريق تشغيل المتوسط المتحرك للحصول على الصورة الكلية. دعونا نركز مرة أخرى على الأشهر الأولى من الجائحة:\n"
]
},
{
@ -2391,14 +2391,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## التحدي\n",
"\n",
"حان الوقت الآن لتلعب أكثر مع الكود والبيانات! إليك بعض الاقتراحات التي يمكنك تجربتها:\n",
"* راقب انتشار الوباء في دول مختلفة.\n",
"* ارسم مخططات $R_t$ لعدة دول على مخطط واحد للمقارنة، أو ارسم عدة مخططات جنبًا إلى جنب \n",
"* راقب كيف يرتبط عدد الوفيات والتعافي بعدد الحالات المصابة.\n",
"* حاول معرفة مدة بقاء المرض النموذجية من خلال الربط البصري بين معدل الإصابة ومعدل الوفيات والبحث عن بعض الشذوذات. قد تحتاج إلى النظر إلى دول مختلفة لاكتشاف ذلك. \n",
"* حساب معدل الوفيات وكيف يتغير مع مرور الوقت. قد ترغب في أخذ مدة المرض بالأيام في الاعتبار لتحويل إحدى السلاسل الزمنية قبل إجراء الحسابات.\n"
"حان الوقت الآن لتلعب أكثر بالكود والبيانات! إليك بعض الاقتراحات التي يمكنك تجربتها:\n",
"* راقب انتشار الوباء في دول مختلفة.\n",
"* ارسم مخططات $R_t$ لعدة دول على مخطط واحد للمقارنة، أو صنع عدة مخططات جنبًا إلى جنب\n",
"* راقب كيف يرتبط عدد الوفيات والتعافي بعدد الحالات المصابة.\n",
"* حاول معرفة مدة المرض النموذجية من خلال الربط البصري بين معدل العدوى ومعدل الوفيات والبحث عن بعض الشذوذات. قد تحتاج إلى النظر في دول مختلفة لاكتشاف ذلك.\n",
"* احسب معدل الوفيات وكيف يتغير مع مرور الوقت. قد ترغب في أخذ مدة المرض بالأيام في الاعتبار لتحويل إحدى السلاسل الزمنية قبل إجراء الحسابات\n"
]
},
{
@ -2407,10 +2408,10 @@
"source": [
"## المراجع\n",
"\n",
"يمكنك الاطلاع على دراسات إضافية حول انتشار وباء كوفيد في المنشورات التالية:\n",
"* [نموذج SIR المتحرك لتقدير Rt خلال جائحة كوفيد](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/)، تدوينة من قبل [دميتري سوشنيكوف](http://soshnikov.com)\n",
"* ت. بتروفا، د. سوشنيكوف، أ. جرونين. [تقدير رقم التكاثر الزمني للاختلاج العالمي لكوفيد-19](https://www.preprints.org/manuscript/202006.0289/v1). *المطبوعات الأولية* **2020**، 2020060289 (المعرف الرقمي: 10.20944/preprints202006.0289.v1)\n",
"* [كود الورقة السابقة على GitHub](https://github.com/shwars/SlidingSIR)\n"
"يمكنك الاطلاع على دراسات إضافية حول انتشار وباء COVID في المنشورات التالية:\n",
"* [نموذج SIR المتحرك لتقدير Rt خلال جائحة COVID](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/)، منشور مدونة بواسطة [دميتري سوشنيكوف](http://soshnikov.com)\n",
"* [رموز الورقة أعلاه على GitHub](https://github.com/shwars/SlidingSIR)\n"
]
},
{
@ -2424,7 +2425,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**إخلاء المسؤولية**: \nتم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر المعتمد. بالنسبة للمعلومات الهامة، يُنصح بالترجمة المهنية البشرية. نحن غير مسؤولين عن أي سوء فهم أو تحريف ناتج عن استخدام هذه الترجمة.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**تنويه**:\nتمت ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي والمعتمد. للمعلومات الهامة، يُنصح بالاستعانة بترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
انظر [Configuration Reference](https://cli.vuejs.org/config/).
---
**إخلاء المسؤولية**:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**تنويه**:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي والمعتمد. للمعلومات الهامة، يُنصح بالاستعانة بترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.
انظر [مرجع التكوين](https://cli.vuejs.org/config/).
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**تنويه**:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي والمعتمد. للمعلومات الهامة، يُنصح بالاستعانة بترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.
|Definition von Daten - _Sketchnote von [@nitya](https://twitter.com/nitya)_ |
Daten sind Fakten, Informationen, Beobachtungen und Messungen, die genutzt werden, um Entdeckungen zu machen und fundierte Entscheidungen zu unterstützen. Ein Datenpunkt ist eine einzelne Einheit innerhalb eines Datensatzes, der eine Sammlung von Datenpunkten darstellt. Datensätze können in unterschiedlichen Formaten und Strukturen vorliegen, abhängig von ihrer Quelle oder Herkunft. Zum Beispiel könnten die monatlichen Einnahmen eines Unternehmens in einer Tabellenkalkulation vorliegen, während stündliche Herzfrequenzdaten von einer Smartwatch im [JSON](https://stackoverflow.com/a/383699)-Format gespeichert sein könnten. Es ist üblich, dass Datenwissenschaftler mit verschiedenen Datentypen innerhalb eines Datensatzes arbeiten.
Daten sind Fakten, Informationen, Beobachtungen und Messungen, die verwendet werden, um Entdeckungen zu machen und fundierte Entscheidungen zu unterstützen. Ein Datenpunkt ist eine einzelne Einheit von Daten innerhalb eines Datensatzes, welcher eine Sammlung von Datenpunkten ist. Datensätze können in verschiedenen Formaten und Strukturen vorliegen und basieren in der Regel auf ihrer Quelle oder dem Ursprung der Daten. Zum Beispiel könnten die monatlichen Einnahmen eines Unternehmens in einer Tabelle vorliegen, während stündliche Herzfrequenzdaten einer Smartwatch im [JSON](https://stackoverflow.com/a/383699)-Format vorliegen. Es ist üblich, dass Datenwissenschaftler mit verschiedenen Datentypen innerhalb eines Datensatzes arbeiten.
Diese Lektion konzentriert sich darauf, Daten anhand ihrer Eigenschaften und ihrer Herkunft zu identifizieren und zu klassifizieren.
## [Quiz vor der Vorlesung](https://ff-quizzes.netlify.app/en/ds/quiz/4)
Diese Lektion konzentriert sich darauf, Daten anhand ihrer Eigenschaften und ihrer Quellen zu identifizieren und zu klassifizieren.
Rohdaten sind Daten, die direkt aus ihrer Quelle stammen und sich in ihrem ursprünglichen Zustand befinden, ohne analysiert oder organisiert worden zu sein. Um zu verstehen, was in einem Datensatz vor sich geht, müssen die Daten in ein Format gebracht werden, das sowohl für Menschen als auch für die Technologie, die sie weiter analysieren soll, verständlich ist. Die Struktur eines Datensatzes beschreibt, wie er organisiert ist, und kann als strukturiert, unstrukturiert oder semi-strukturiert klassifiziert werden. Diese Strukturen variieren je nach Quelle, fallen aber letztlich in eine dieser drei Kategorien.
Rohdaten sind Daten, die von ihrer Quelle im Anfangszustand stammen und nicht analysiert oder organisiert wurden. Um zu verstehen, was mit einem Datensatz passiert, muss er in ein Format organisiert werden, das von Menschen sowie von der Technologie verstanden werden kann, die zur weiteren Analyse verwendet wird. Die Struktur eines Datensatzes beschreibt, wie er organisiert ist, und kann als strukturiert, unstrukturiert oder halbstrukturiert klassifiziert werden. Diese Strukturtypen variieren je nach Quelle, passen aber letztlich in diese drei Kategorien.
### Quantitative Daten
Quantitative Daten sind numerische Beobachtungen innerhalb eines Datensatzes, die typischerweise analysiert, gemessen und mathematisch verwendet werden können. Beispiele für quantitative Daten sind: die Bevölkerung eines Landes, die Körpergröße einer Person oder die vierteljährlichen Einnahmen eines Unternehmens. Mit zusätzlicher Analyse könnten quantitative Daten genutzt werden, um saisonale Trends des Luftqualitätsindex (AQI) zu entdecken oder die Wahrscheinlichkeit von Berufsverkehr an einem typischen Arbeitstag zuschätzen.
Quantitative Daten sind numerische Beobachtungen innerhalb eines Datensatzes, die typischerweise analysiert, gemessen und mathematisch verwendet werden können. Einige Beispiele für quantitative Daten sind: die Bevölkerung eines Landes, die Körpergröße einer Person oder die vierteljährlichen Einnahmen eines Unternehmens. Mit zusätzlicher Analyse könnten quantitative Daten verwendet werden, um saisonale Trends des Luftqualitätsindex (AQI) zu entdecken oder die Wahrscheinlichkeit von Stoßzeiten im Berufsverkehr an einem typischen Arbeitstag abzuschätzen.
### Qualitative Daten
Qualitative Daten, auch als kategoriale Daten bekannt, sind Daten, die nicht objektiv wie quantitative Daten gemessen werden können. Sie umfassen in der Regel verschiedene Formate subjektiver Daten, die die Qualität von etwas erfassen, wie z. B. ein Produkt oder einen Prozess. Manchmal sind qualitative Daten numerisch, werden aber normalerweise nicht mathematisch verwendet, wie Telefonnummern oder Zeitstempel. Beispiele für qualitative Daten sind: Videokommentare, die Marke und das Modell eines Autos oder die Lieblingsfarbe Ihrer engsten Freunde. Qualitative Daten könnten genutzt werden, um herauszufinden, welche Produkte Verbraucher am meisten mögen, oder um beliebte Schlüsselwörter in Lebensläufen zu identifizieren.
Qualitative Daten, auch bekannt als kategoriale Daten, sind Daten, die nicht objektiv wie quantitative Daten gemessen werden können. Es handelt sich meist um verschiedene Formen subjektiver Daten, die die Qualität von etwas, wie einem Produkt oder Prozess, erfassen. Manchmal sind qualitative Daten numerisch, werden jedoch in der Regel nicht mathematisch genutzt, wie Telefonnummern oder Zeitstempel. Beispiele für qualitative Daten sind: Videokommentare, Marke und Modell eines Autos oder die Lieblingsfarbe deiner engsten Freunde. Qualitative Daten könnten verwendet werden, um zu verstehen, welche Produkte Verbraucher am meisten mögen oder um beliebte Schlüsselwörter in Lebensläufen zu identifizieren.
### Strukturierte Daten
Strukturierte Daten sind Daten, die in Zeilen und Spalten organisiert sind, wobei jede Zeile denselben Satz von Spalten enthält. Spalten repräsentieren einen bestimmten Werttyp und werden mit einem Namen versehen, der beschreibt, was der Wert darstellt, während die Zeilen die tatsächlichen Werte enthalten. Spalten haben oft spezifische Regeln oder Einschränkungen für die Werte, um sicherzustellen, dass die Werte die Spalte korrekt repräsentieren. Stellen Sie sich beispielsweise eine Kunden-Tabelle vor, in der jede Zeile eine Telefonnummer enthalten muss und Telefonnummern keine Buchstaben enthalten dürfen. Es könnten Regeln für die Telefonnummernspalte gelten, um sicherzustellen, dass sie niemals leer ist und nur Zahlen enthält.
Strukturierte Daten sind Daten, die in Zeilen und Spalten organisiert sind, wobei jede Zeile denselben Satz von Spalten hat. Spalten repräsentieren einen Wert eines bestimmten Typs und werden mit einem Namen identifiziert, der beschreibt, was der Wert repräsentiert, während Zeilen die tatsächlichen Werte enthalten. Spalten haben oft festgelegte Regeln oder Einschränkungen für die Werte, um sicherzustellen, dass die Werte die Spalte korrekt repräsentieren. Zum Beispiel stelle dir eine Kundentabelle vor, in der jede Zeile eine Telefonnummer haben muss und die Telefonnummern keine alphabetischen Zeichen enthalten dürfen. Es könnten Regeln für die Spalte mit Telefonnummern gelten, die sicherstellen, dass sie nie leer ist und nur Zahlen enthält.
Ein Vorteil strukturierter Daten ist, dass sie so organisiert werden können, dass sie mit anderen strukturierten Daten in Beziehung gesetzt werden können. Da die Daten jedoch so gestaltet sind, dass sie auf eine bestimmte Weise organisiert sind, kann es viel Aufwand erfordern, ihre Struktur zu ändern. Zum Beispiel würde das Hinzufügen einer E-Mail-Spalte zur Kundentabelle, die nicht leer sein darf, bedeuten, dass Sie herausfinden müssen, wie Sie diese Werte für die bestehenden Kundenzeilen im Datensatz hinzufügen.
Ein Vorteil strukturierter Daten ist, dass sie so organisiert werden können, dass sie mit anderen strukturierten Daten in Beziehung gesetzt werden können. Da die Daten jedoch so gestaltet sind, dass sie auf eine bestimmte Weise organisiert sind, kann das Ändern der Gesamtstruktur viel Aufwand erfordern. Zum Beispiel bedeutet das Hinzufügen einer E-Mail-Spalte zu einer Kundentabelle, die nicht leer sein darf, dass du herausfinden musst, wie du diese Werte in die bereits vorhandenen Kundenzeilen im Datensatz integrieren kannst.
Beispiele für strukturierte Daten: Tabellenkalkulationen, relationale Datenbanken, Telefonnummern, Kontoauszüge
Beispiele für strukturierte Daten: Tabellen, relationale Datenbanken, Telefonnummern, Kontoauszüge
### Unstrukturierte Daten
Unstrukturierte Daten können in der Regel nicht in Zeilen oder Spalten kategorisiert werden und folgen keinem bestimmten Format oder Regelwerk. Da unstrukturierte Daten weniger Einschränkungen hinsichtlich ihrer Struktur haben, ist es einfacher, neue Informationen hinzuzufügen, im Vergleich zu einem strukturierten Datensatz. Wenn ein Sensor, der alle zwei Minuten Daten zum Luftdruck erfasst, ein Update erhält, das es ihm ermöglicht, auch die Temperatur zu messen und aufzuzeichnen, erfordert dies keine Änderung der bestehenden Daten, wenn diese unstrukturiert sind. Dies könnte jedoch die Analyse oder Untersuchung dieser Art von Daten zeitaufwändiger machen. Ein Wissenschaftler, der beispielsweise die durchschnittliche Temperatur des letzten Monats aus den Sensordaten ermitteln möchte, könnte feststellen, dass der Sensor in einigen seiner aufgezeichneten Daten ein "e" notiert hat, um anzuzeigen, dass er defekt war, anstatt eine typische Zahl aufzuzeichnen, was bedeutet, dass die Daten unvollständig sind.
Unstrukturierte Daten lassen sich typischerweise nicht in Zeilen oder Spalten kategorisieren und enthalten kein Format oder Regelwerk, dem sie folgen. Da unstrukturierte Daten weniger Einschränkungen in ihrer Struktur haben, ist es einfacher, neue Informationen hinzuzufügen, verglichen mit strukturierten Datensätzen. Wenn ein Sensor, der alle 2 Minuten Daten zum Luftdruck erfasst, ein Update erhält, das ihm erlaubt, Temperatur zu messen und aufzuzeichnen, muss die bestehende Datenstruktur bei unstrukturierten Daten nicht verändert werden. Das kann jedoch die Analyse oder Untersuchung dieser Datenart verlängern. Beispielsweise möchte ein Wissenschaftler die Durchschnittstemperatur des letzten Monats anhand der Sensordaten ermitteln, entdeckt jedoch, dass der Sensor an manchen Stellen ein „e“ aufgezeichnet hat, um anzuzeigen, dass er defekt war, anstatt einer üblichen Zahl – was bedeutet, dass die Daten unvollständig sind.
Beispiele für unstrukturierte Daten: Textdateien, Textnachrichten, Videodateien
### Semi-strukturierte Daten
Semi-strukturierte Daten haben Merkmale, die sie zu einer Kombination aus strukturierten und unstrukturierten Daten machen. Sie folgen in der Regel keinem Format aus Zeilen und Spalten, sind jedoch auf eine Weise organisiert, die als strukturiert gilt, und können einem festen Format oder Regelwerk folgen. Die Struktur variiert je nach Quelle, von einer klar definierten Hierarchie bis hin zu etwas Flexiblerem, das eine einfache Integration neuer Informationen ermöglicht. Metadaten sind Indikatoren, die helfen, zu entscheiden, wie die Daten organisiert und gespeichert werden, und haben je nach Datentyp verschiedene Namen. Häufige Namen für Metadaten sind Tags, Elemente, Entitäten und Attribute. Ein typisches E-Mail-Nachricht enthält beispielsweise einen Betreff, einen Textkörper und eine Empfängerliste und kann nach Absender oder Versandzeit organisiert werden.
### Halbstrukturierte Daten
Halbstrukturierte Daten besitzen Merkmale, die sie als Kombination aus strukturierten und unstrukturierten Daten kennzeichnen. Sie entsprechen typischerweise nicht dem Format von Zeilen und Spalten, sind aber so organisiert, dass sie als strukturiert gelten und einem festen Format oder Regelwerk folgen können. Die Struktur variiert je nach Quelle, etwa von einer gut definierten Hierarchie bis hin zu flexibleren Strukturen, die eine einfache Integration neuer Informationen erlauben. Metadaten sind Indikatoren, die helfen, zu entscheiden, wie Daten organisiert und gespeichert werden, und tragen je nach Datentyp unterschiedliche Bezeichnungen. Häufige Bezeichnungen für Metadaten sind Tags, Elemente, Entitäten und Attribute. Zum Beispiel hat eine typische E-Mail-Nachricht einen Betreff, einen Textkörper und eine Empfängerliste und kann nach Absender oder Versandzeit organisiert werden.
Beispiele für semi-strukturierte Daten: HTML, CSV-Dateien, JavaScript Object Notation (JSON)
Beispiele für halbstrukturierte Daten: HTML, CSV-Dateien, JavaScript Object Notation (JSON)
## Datenquellen
## Datenquellen
Eine Datenquelle ist der ursprüngliche Ort, an dem die Daten generiert wurden oder "leben", und variiert je nach Art und Zeitpunkt der Erfassung. Daten, die von ihren Benutzer*innen generiert werden, werden als Primärdaten bezeichnet, während Sekundärdaten aus einer Quelle stammen, die Daten für allgemeine Zwecke gesammelt hat. Zum Beispiel würde eine Gruppe von Wissenschaftler*innen, die Beobachtungen in einem Regenwald sammelt, als primär betrachtet, und wenn sie diese Daten mit anderen Wissenschaftler*innen teilen, würden diese sie als sekundär betrachten.
Eine Datenquelle ist der Ursprungsort, an dem die Daten erzeugt wurden oder „leben“, und variiert je nachdem, wie und wann sie gesammelt wurden. Daten, die von ihren Nutzer:innen generiert werden, bezeichnet man als Primärdaten, während Sekundärdaten aus einer Quelle stammen, die Daten für allgemeine Nutzung gesammelt hat. Zum Beispiel wäre eine Gruppe von Wissenschaftlern, die Beobachtungen in einem Regenwald sammelt, als primär anzusehen und wenn sie diese mit anderen Wissenschaftlern teilen, gelten diese Daten für diese als sekundär.
Datenbanken sind eine häufige Quelle und basieren auf einem Datenbankmanagementsystem, das die Daten hostet und verwaltet, wobei Benutzer*innen Befehle, sogenannte Abfragen, verwenden, um die Daten zu durchsuchen. Dateien als Datenquellen können Audio-, Bild- und Videodateien sowie Tabellenkalkulationen wie Excel sein. Internetquellen sind ein häufiger Ort, an dem Daten gehostet werden, wobei sowohl Datenbanken als auch Dateien gefunden werden können. Programmierschnittstellen, auch bekannt als APIs, ermöglichen es Programmierer*innen, Wege zu schaffen, um Daten über das Internet mit externen Benutzer*innen zu teilen, während das Web-Scraping Daten von einer Webseite extrahiert. Die [Lektionen in "Arbeiten mit Daten"](../../../../../../../../../2-Working-With-Data) konzentrieren sich darauf, wie verschiedene Datenquellen genutzt werden können.
Datenbanken sind eine häufige Quelle und basieren auf einem Datenbankmanagementsystem, das die Daten hostet und verwaltet, wobei Nutzer:innen Befehle, sogenannte Abfragen, verwenden, um die Daten zu durchsuchen. Dateien als Datenquelle können Audio-, Bild- und Videodateien sowie Tabellen wie Excel sein. Internetquellen sind ein verbreiteter Ort zur Datenbereitstellung, wo sowohl Datenbanken als auch Dateien gefunden werden können. Application Programming Interfaces, auch bekannt als APIs, ermöglichen Programmierern, Daten über das Internet mit externen Nutzern zu teilen, während der Prozess des Webscrapings Daten von Webseiten extrahiert. Die [Lektionen in Working with Data](../../../../../../../../../2-Working-With-Data) konzentrieren sich darauf, wie verschiedene Datenquellen genutzt werden.
## Fazit
@ -51,20 +50,22 @@ In dieser Lektion haben wir gelernt:
- Was Daten sind
- Wie Daten beschrieben werden
- Wie Daten klassifiziert und kategorisiert werden
- Wo Daten gefunden werden können
- Wo Daten zu finden sind
## 🚀 Herausforderung
Kaggle ist eine ausgezeichnete Quelle für offene Datensätze. Verwenden Sie das [Dataset-Suchtool](https://www.kaggle.com/datasets), um einige interessante Datensätze zu finden, und klassifizieren Sie 3-5 Datensätze nach diesen Kriterien:
Kaggle ist eine ausgezeichnete Quelle für offene Datensätze. Nutze das [Datensatz-Suchtool](https://www.kaggle.com/datasets), um einige interessante Datensätze zu finden und klassifiziere 3-5 Datensätze nach diesen Kriterien:
- Sind die Daten quantitativ oder qualitativ?
- Sind die Daten strukturiert, unstrukturiert oder semi-strukturiert?
- Sind die Daten strukturiert, unstrukturiert oder halbstrukturiert?
## [Quiz nach der Vorlesung](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## Überprüfung& Selbststudium
## Review& Selbststudium
- Diese Microsoft Learn-Einheit mit dem Titel [Klassifizieren Sie Ihre Daten](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) bietet eine detaillierte Aufschlüsselung von strukturierten, semi-strukturierten und unstrukturierten Daten.
- Diese Microsoft Learn-Einheit, mit dem Titel [Datenformate identifizieren](https://learn.microsoft.com/en-us/training/modules/explore-core-data-concepts/2-data-formats?pivots=text), bietet eine detaillierte Aufschlüsselung von strukturierten, halbstrukturierten und unstrukturierten Daten.
## Aufgabe
@ -72,5 +73,7 @@ Kaggle ist eine ausgezeichnete Quelle für offene Datensätze. Verwenden Sie das
---
**Haftungsausschluss**:
Dieses Dokument wurde mithilfe des KI-Übersetzungsdienstes [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, weisen wir darauf hin, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Haftungsausschluss**:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache gilt als maßgebliche Quelle. Bei kritischen Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Verwendung dieser Übersetzung entstehen.
"# Einführung in Wahrscheinlichkeit und Statistik\n",
"In diesem Notebook werden wir mit einigen der zuvor besprochenen Konzepte spielen. Viele Konzepte aus Wahrscheinlichkeit und Statistik sind gut vertreten in wichtigen Bibliotheken für die Datenverarbeitung in Python, wie `numpy` und `pandas`.\n"
"# Einführung in Wahrscheinlichkeitsrechnung und Statistik\n",
"In diesem Notizbuch werden wir einige der Konzepte, die wir zuvor besprochen haben, durchspielen. Viele Konzepte aus Wahrscheinlichkeitsrechnung und Statistik sind in wichtigen Bibliotheken für die Datenverarbeitung in Python, wie `numpy` und `pandas`, gut vertreten.\n"
]
},
{
@ -25,7 +25,7 @@
"metadata": {},
"source": [
"## Zufallsvariablen und Verteilungen\n",
"Beginnen wir damit, eine Stichprobe von 30 Werten aus einer Gleichverteilung von 0 bis 9 zu ziehen. Wir werden auch Mittelwert und Varianz berechnen.\n"
"Beginnen wir mit einer Stichprobe von 30 Werten aus einer Gleichverteilung von 0 bis 9. Wir werden auch Mittelwert und Varianz berechnen.\n"
]
},
{
@ -61,9 +61,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Analyse realer Daten\n",
"## Analyse von Realdaten\n",
"\n",
"Mittelwert und Varianz sind beim Analysieren realer Daten sehr wichtig. Laden wir die Daten über Baseballspieler von [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) herunter.\n"
"Mittelwert und Varianz sind sehr wichtig bei der Analyse von realen Daten. Laden wir die Daten über Baseballspieler von [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
]
},
{
@ -82,7 +82,7 @@
"source": [
"> Wir verwenden hier ein Paket namens [**Pandas**](https://pandas.pydata.org/) für die Datenanalyse. Später in diesem Kurs werden wir mehr über Pandas und die Arbeit mit Daten in Python sprechen.\n",
"\n",
"Lassen Sie uns den Durchschnittswert für Alter, Größe und Gewicht berechnen:\n"
"Berechnen wir den Durchschnittswert für Alter, Größe und Gewicht:\n"
]
},
{
@ -98,7 +98,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Kommen wir nun zur Größe und berechnen die Standardabweichung und Varianz:\n"
"Konzentrieren wir uns nun auf die Größe und berechnen die Standardabweichung und Varianz:\n"
]
},
{
@ -126,7 +126,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Zusätzlich zum Mittelwert ist es sinnvoll, den Median und die Quartile zu betrachten. Diese können mithilfe eines **Boxplots** visualisiert werden:\n"
"Zusätzlich zum Mittelwert ist es sinnvoll, sich den Medianwert und die Quartile anzusehen. Diese können mithilfe eines **Boxplots** visualisiert werden:\n"
"Wir können auch Boxplots von Teilmengen unseres Datensatzes erstellen, zum Beispiel gruppiert nach Spielerrolle.\n"
"Wir können auch Boxplots von Untergruppen unseres Datensatzes erstellen, zum Beispiel gruppiert nach Spielerrolle.\n"
]
},
{
@ -165,9 +165,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Hinweis**: Dieses Diagramm legt nahe, dass im Durchschnitt die Körpergrößen der First Basemen höher sind als die der Second Basemen. Später werden wir lernen, wie wir diese Hypothese formaler testen können und wie wir zeigen können, dass unsere Daten statistisch signifikant sind, um dies zu belegen. \n",
"> **Hinweis**: Dieses Diagramm legt nahe, dass im Durchschnitt die Körpergröße von First Basemen größer ist als die Körpergröße von Second Basemen. Später werden wir lernen, wie wir diese Hypothese formaler testen können und wie wir zeigen können, dass unsere Daten statistisch signifikant sind, um dies zu belegen. \n",
"\n",
"Alter, Größe und Gewicht sind alle stetige Zufallsvariablen. Was denkst du, wie ihre Verteilung aussieht? Eine gute Möglichkeit, das herauszufinden, ist es, ein Histogramm der Werte zu zeichnen: \n"
"Alter, Größe und Gewicht sind alle stetige Zufallsvariablen. Was denken Sie, wie ihre Verteilung aussieht? Eine gute Möglichkeit, dies herauszufinden, ist das Histogramm der Werte zu zeichnen: \n"
]
},
{
@ -190,7 +190,7 @@
"source": [
"## Normalverteilung\n",
"\n",
"Lassen Sie uns eine künstliche Stichprobe von Gewichten erstellen, die einer Normalverteilung mit demselben Mittelwert und derselben Varianz wie unsere echten Daten folgt:\n"
"Erstellen wir eine künstliche Stichprobe von Gewichten, die einer Normalverteilung mit dem gleichen Mittelwert und der gleichen Varianz wie unsere realen Daten folgt:\n"
]
},
{
@ -231,7 +231,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Da die meisten Werte im wirklichen Leben normalverteilt sind, sollten wir keinen gleichmäßigen Zufallszahlengenerator verwenden, um Beispieldaten zu erzeugen. So sieht es aus, wenn wir versuchen, Gewichte mit einer gleichmäßigen Verteilung (generiert mit `np.random.rand`) zu erzeugen:\n"
"Da die meisten Werte im wirklichen Leben normalverteilt sind, sollten wir keinen gleichverteilten Zufallszahlengenerator verwenden, um Beispieldaten zu erzeugen. So sieht es aus, wenn wir versuchen, Gewichte mit einer Gleichverteilung zu generieren (erzeugt durch `np.random.rand`):\n"
]
},
{
@ -253,7 +253,7 @@
"source": [
"## Konfidenzintervalle\n",
"\n",
"Lassen Sie uns nun Konfidenzintervalle für das Gewicht und die Größe von Baseballspielern berechnen. Wir verwenden den Code [aus dieser Stackoverflow-Diskussion](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
"Lassen Sie uns nun Konfidenzintervalle für die Gewichte und Größen von Baseballspielern berechnen. Wir verwenden den Code [aus dieser Stackoverflow-Diskussion](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
]
},
{
@ -272,7 +272,7 @@
" return m, h\n",
"\n",
"for p in [0.85, 0.9, 0.95]:\n",
" m, h = mean_confidence_interval(df['Weight'].fillna(method='pad'),p)\n",
" m, h = mean_confidence_interval(df['Weight'].ffill(),p)\n",
" print(f\"p={p:.2f}, mean = {m:.2f} ± {h:.2f}\")"
]
},
@ -280,9 +280,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Hypothesentest\n",
"## Hypothesentests\n",
"\n",
"Lassen Sie uns verschiedene Positionen in unserem Baseball-Spielerdatensatz untersuchen:\n"
"Lassen Sie uns verschiedene Rollen in unserem Baseball-Spieler-Datensatz erkunden:\n"
]
},
{
@ -298,7 +298,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Lassen Sie uns die Hypothese testen, dass Erste Basisspieler größer sind als Zweite Basisspieler. Die einfachste Methode dafür ist, die Konfidenzintervalle zu überprüfen:\n"
"Testen wir die Hypothese, dass Ersten Basisseite größer sind als Zweiten Basisseite. Der einfachste Weg, dies zu tun, ist, die Konfidenzintervalle zu testen:\n"
]
},
{
@ -319,7 +319,7 @@
"source": [
"Wir können sehen, dass sich die Intervalle nicht überschneiden.\n",
"\n",
"Eine statistisch korrektere Methode, um die Hypothese zu überprüfen, ist die Verwendung eines **Student-t-Tests**:\n"
"Eine statistisch korrekturere Methode, die Hypothese zu beweisen, ist die Verwendung eines **Student-t-Tests**:\n"
]
},
{
@ -338,9 +338,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Die beiden von der Funktion `ttest_ind` zurückgegebenen Werte sind: \n",
"* Der p-Wert kann als die Wahrscheinlichkeit betrachtet werden, dass zwei Verteilungen den gleichen Mittelwert haben. In unserem Fall ist er sehr niedrig, was darauf hinweist, dass es starke Hinweise darauf gibt, dass erste Basemen größer sind. \n",
"* Der t-Wert ist der Zwischenschritt des normalisierten Mittelwertunterschieds, der im t-Test verwendet wird und mit einem Schwellwert für einen bestimmten Vertrauenswert verglichen wird.\n"
"Die zwei Werte, die von der Funktion `ttest_ind` zurückgegeben werden, sind:\n",
"* Der p-Wert kann als die Wahrscheinlichkeit betrachtet werden, dass zwei Verteilungen denselben Mittelwert haben. In unserem Fall ist er sehr niedrig, was darauf hindeutet, dass es starke Beweise dafür gibt, dass First Basemen größer sind.\n",
"* Der t-Wert ist der Zwischenwert der normalisierten Mittelwertsdifferenz, der im t-Test verwendet wird, und er wird gegen einen Schwellenwert für einen gegebenen Vertrauenswert verglichen.\n"
]
},
{
@ -349,7 +349,7 @@
"source": [
"## Simulation einer Normalverteilung mit dem Zentralen Grenzwertsatz\n",
"\n",
"Der Pseudozufallsgenerator in Python ist so konzipiert, dass er uns eine gleichmäßige Verteilung liefert. Wenn wir einen Generator für die Normalverteilung erstellen möchten, können wir den zentralen Grenzwertsatz verwenden. Um einen normalverteilten Wert zu erhalten, berechnen wir einfach den Mittelwert einer gleichmäßig generierten Stichprobe.\n"
"Der Pseudozufallsgenerator in Python ist so konzipiert, dass er uns eine gleichmäßige Verteilung liefert. Wenn wir einen Generator für Normalverteilungen erstellen wollen, können wir den Zentralen Grenzwertsatz verwenden. Um einen normalverteilten Wert zu erhalten, berechnen wir einfach den Mittelwert einer gleichmäßig erzeugten Stichprobe.\n"
]
},
{
@ -375,7 +375,7 @@
"source": [
"## Korrelation und Evil Baseball Corp\n",
"\n",
"Korrelation ermöglicht es uns, Beziehungen zwischen Datenfolgen zu finden. In unserem einfachen Beispiel tun wir so, als gäbe es eine böse Baseballfirma, die ihre Spieler entsprechend ihrer Körpergröße bezahlt – je größer der Spieler ist, desto mehr Geld erhält er/sie. Angenommen, es gibt ein Grundgehalt von 1000 $, und einen zusätzlichen Bonus von 0 bis 100 $, abhängig von der Körpergröße. Wir nehmen die echten Spieler der MLB und berechnen deren imaginäres Gehalt:\n"
"Korrelation ermöglicht es uns, Beziehungen zwischen Datenfolgen zu finden. In unserem Beispiel tun wir so, als ob es eine böse Baseballfirma gibt, die ihre Spieler nach ihrer Körpergröße bezahlt – je größer der Spieler, desto mehr Geld bekommt er/sie. Angenommen, es gibt ein Grundgehalt von 1000 $, und einen zusätzlichen Bonus von 0 bis 100 $, abhängig von der Körpergröße. Wir nehmen die echten Spieler aus der MLB und berechnen ihre imaginären Gehälter:\n"
"Berechnen wir nun die Kovarianz und Korrelation dieser Sequenzen. `np.cov` liefert uns eine sogenannte **Kovarianzmatrix**, die eine Erweiterung der Kovarianz auf mehrere Variablen darstellt. Das Element $M_{ij}$ der Kovarianzmatrix $M$ ist eine Kovarianz zwischen den Eingangsvariablen $X_i$ und $X_j$, und die Diagonalwerte $M_{ii}$ sind die Varianz von $X_{i}$. Ähnlich liefert `np.corrcoef` uns die **Korrelationsmatrix**.\n"
"Lassen Sie uns nun die Kovarianz und Korrelation dieser Sequenzen berechnen. `np.cov` liefert uns eine sogenannte **Kovarianzmatrix**, die eine Erweiterung der Kovarianz auf mehrere Variablen darstellt. Das Element $M_{ij}$ der Kovarianzmatrix $M$ ist eine Korrelation zwischen den Eingangsvariablen $X_i$ und $X_j$, und die Diagonalwerte $M_{ii}$ sind die Varianz von $X_{i}$. Ebenso liefert `np.corrcoef` die **Korrelationsmatrix**.\n"
]
},
{
@ -411,7 +411,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Eine Korrelation von 1 bedeutet, dass eine starke **lineare Beziehung** zwischen zwei Variablen besteht. Wir können die lineare Beziehung visuell sehen, indem wir einen Wert gegen den anderen auftragen:\n"
"Eine Korrelation von 1 bedeutet, dass zwischen zwei Variablen eine starke **lineare Beziehung** besteht. Wir können die lineare Beziehung visuell erkennen, indem wir den einen Wert gegen den anderen auftragen:\n"
]
},
{
@ -430,7 +430,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Mal sehen, was passiert, wenn die Beziehung nicht linear ist. Angenommen, unser Unternehmen hätte beschlossen, die offensichtliche lineare Abhängigkeit zwischen Größen und Gehältern zu verbergen und eine gewisse Nicht-Linearität in die Formel einzuführen, wie zum Beispiel `sin`:\n"
"Sehen wir uns an, was passiert, wenn die Beziehung nicht linear ist. Angenommen, unser Unternehmen hat beschlossen, die offensichtliche lineare Abhängigkeit zwischen Größe und Gehalt zu verschleiern und hat eine Nichtlinearität in die Formel eingefügt, wie z. B. `sin`:\n"
]
},
{
@ -447,7 +447,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"In diesem Fall ist die Korrelation etwas geringer, aber immer noch ziemlich hoch. Nun, um die Beziehung noch weniger offensichtlich zu machen, könnten wir etwas zusätzliche Zufälligkeit hinzufügen, indem wir eine Zufallsvariable zum Gehalt addieren. Mal sehen, was passiert:\n"
"In diesem Fall ist die Korrelation etwas geringer, aber immer noch recht hoch. Um die Beziehung noch unauffälliger zu machen, könnten wir etwas zusätzliche Zufälligkeit hinzufügen, indem wir eine zufällige Variable zum Gehalt addieren. Mal sehen, was passiert:\n"
]
},
{
@ -476,9 +476,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> Können Sie erraten, warum die Punkte sich zu solchen vertikalen Linien anordnen?\n",
"> Können Sie erraten, warum sich die Punkte zu solchen vertikalen Linien anordnen?\n",
"\n",
"Wir haben die Korrelation zwischen einem künstlich entwickelten Konzept wie dem Gehalt und der beobachteten Variable *Größe* untersucht. Schauen wir uns nun an, ob die beiden beobachteten Variablen, wie Größe und Gewicht, ebenfalls korrelieren:\n"
"Wir haben die Korrelation zwischen einem künstlich konstruierten Konzept wie dem Gehalt und der beobachteten Variablen *Größe* untersucht. Schauen wir uns nun auch an, ob die beiden beobachteten Variablen, wie Größe und Gewicht, ebenfalls korrelieren:\n"
]
},
{
@ -494,11 +494,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Leider haben wir keine Ergebnisse erhalten – nur einige seltsame `nan`-Werte. Dies liegt daran, dass einige Werte in unserer Serie undefiniert sind, dargestellt als `nan`, was dazu führt, dass auch das Ergebnis der Operation undefiniert ist. Wenn wir uns die Matrix ansehen, erkennen wir, dass `Weight` die problematische Spalte ist, da die Selbstkorrelation zwischen den `Height`-Werten berechnet wurde.\n",
"Leider haben wir keine Ergebnisse erhalten – nur einige seltsame `nan`-Werte. Dies liegt daran, dass einige der Werte in unserer Reihe undefiniert sind, dargestellt als `nan`, was dazu führt, dass auch das Ergebnis der Operation undefiniert ist. Wenn man sich die Matrix anschaut, sieht man, dass `Weight` die problematische Spalte ist, da die Selbstkorrelation zwischen `Height`-Werten berechnet wurde.\n",
"\n",
"> Dieses Beispiel zeigt die Bedeutung von **Datenvorbereitung** und **Datenbereinigung**. Ohne richtige Daten können wir nichts berechnen.\n",
"> Dieses Beispiel zeigt die Bedeutung von **Datenvorbereitung** und **Datenbereinigung**. Ohne ordnungsgemäße Daten können wir nichts berechnen.\n",
"\n",
"Lassen Sie uns die Methode `fillna` verwenden, um die fehlenden Werte zu füllen, und die Korrelation berechnen: \n"
"Verwenden wir die Methode `fillna`, um die fehlenden Werte zu füllen und die Korrelation zu berechnen:\n"
"Es gibt tatsächlich eine Korrelation, aber keine so starke wie in unserem künstlichen Beispiel. Wenn wir uns tatsächlich das Streudiagramm eines Werts gegen den anderen ansehen, wäre die Beziehung viel weniger offensichtlich:\n"
"Es gibt zwar eine Korrelation, aber nicht eine so starke wie in unserem künstlichen Beispiel. Tatsächlich wäre bei einem Streudiagramm eines Werts gegen den anderen die Beziehung viel weniger offensichtlich:\n"
]
},
{
@ -537,14 +537,14 @@
"source": [
"## Fazit\n",
"\n",
"In diesem Notebook haben wir gelernt, wie man grundlegende Operationen an Daten durchführt, um statistische Funktionen zu berechnen. Wir wissen jetzt, wie man ein solides Arsenal an Mathematik und Statistik einsetzt, um Hypothesen zu überprüfen, und wie man Konfidenzintervalle für beliebige Variablen anhand einer Datenstichprobe berechnet.\n"
"In diesem Notebook haben wir gelernt, wie man grundlegende Operationen an Daten durchführt, um statistische Funktionen zu berechnen. Wir wissen jetzt, wie man ein solides Arsenal von Mathematik und Statistik verwendet, um einige Hypothesen zu beweisen, und wie man Konfidenzintervalle für beliebige Variablen anhand einer Datenstichprobe berechnet.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Haftungsausschluss**:\nDieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir um Genauigkeit bemüht sind, können automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten. Das Originaldokument in seiner Ausgangssprache sollte als maßgebliche Quelle angesehen werden. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Haftungsausschluss**:\nDieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache gilt als maßgebliche Quelle. Bei kritischen Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Verwendung dieser Übersetzung entstehen.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"Wir werden Daten zu COVID-19-infizierten Personen verwenden, die vom [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) an der [Johns Hopkins University](https://jhu.edu/) bereitgestellt werden. Der Datensatz ist in [diesem GitHub-Repository](https://github.com/CSSEGISandData/COVID-19) verfügbar.\n"
"Wir verwenden Daten zu COVID-19-infizierten Personen, bereitgestellt vom [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) der [Johns Hopkins University](https://jhu.edu/). Der Datensatz ist in [diesem GitHub-Repository](https://github.com/CSSEGISandData/COVID-19) verfügbar.\n"
]
},
{
@ -27,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Wir können die neuesten Daten direkt von GitHub mit `pd.read_csv` laden. Falls die Daten aus irgendeinem Grund nicht verfügbar sind, können Sie immer die lokale Kopie im Ordner `data` verwenden – kommentieren Sie einfach die folgende Zeile aus, die `base_url` definiert:\n"
"Wir können die aktuellsten Daten direkt von GitHub mit `pd.read_csv` laden. Falls die Daten aus irgendeinem Grund nicht verfügbar sind, können Sie immer die lokal in dem `data`-Ordner verfügbare Kopie verwenden – kommentieren Sie dazu einfach die Zeile unten aus, die `base_url` definiert:\n"
]
},
{
@ -48,7 +48,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Lassen Sie uns nun die Daten für infizierte Personen laden und sehen, wie die Daten aussehen:\n"
"Laden wir nun die Daten für infizierte Personen und sehen uns an, wie die Daten aussehen:\n"
]
},
{
@ -265,7 +265,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Wir können sehen, dass jede Zeile der Tabelle die Anzahl der infizierten Personen für jedes Land und/oder jede Provinz definiert, und die Spalten entsprechen den Daten. Ähnliche Tabellen können für andere Daten geladen werden, wie z. B. die Anzahl der Genesenen und die Anzahl der Todesfälle.\n"
"Wir können sehen, dass jede Zeile der Tabelle die Anzahl der infizierten Personen für jedes Land und/oder jede Provinz definiert und die Spalten den Daten entsprechen. Ähnliche Tabellen können für andere Daten geladen werden, wie zum Beispiel die Anzahl der genesenen Personen und die Anzahl der Todesfälle.\n"
]
},
{
@ -282,9 +282,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Verständnis der Daten\n",
"## Die Daten verstehen\n",
"\n",
"Aus der obigen Tabelle ist die Rolle der Spalte „Province“ nicht klar. Schauen wir uns die verschiedenen Werte an, die in der Spalte „Province/State“ vorhanden sind:\n"
"Aus der obigen Tabelle geht die Rolle der Spalte Provinz nicht klar hervor. Schauen wir uns die verschiedenen Werte an, die in der Spalte `Province/State` vorhanden sind:\n"
]
},
{
@ -322,7 +322,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Aus den Namen können wir schließen, dass Länder wie Australien und China eine detailliertere Aufschlüsselung nach Provinzen haben. Schauen wir uns Informationen über China als Beispiel an:\n"
"Anhand der Namen können wir ableiten, dass Länder wie Australien und China eine detailliertere Aufschlüsselung nach Provinzen haben. Schauen wir uns Informationen zu China an, um das Beispiel zu sehen:\n"
]
},
{
@ -1321,9 +1321,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Vorverarbeitung der Daten\n",
"## Vorverarbeitung der Daten\n",
"\n",
"Wir sind nicht daran interessiert, Länder in weitere Gebiete aufzuteilen, daher werden wir diese Aufteilung zuerst entfernen und Informationen zu allen Gebieten zusammenführen, um Informationen für das gesamte Land zu erhalten. Dies kann mit `groupby` durchgeführt werden:\n"
"Wir sind nicht daran interessiert, Länder weiter in Territorien aufzuschlüsseln, daher würden wir diese Aufschlüsselung zunächst entfernen und Informationen für alle Territorien zusammenfassen, um Informationen für das gesamte Land zu erhalten. Dies kann mit `groupby` erfolgen:\n"
]
},
{
@ -1578,7 +1578,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Sie können sehen, dass aufgrund der Verwendung von `groupby` alle DataFrames jetzt nach Land/Region indexiert sind. Wir können somit auf die Daten eines bestimmten Landes mit `.loc` zugreifen:|\n"
"Sie können sehen, dass aufgrund der Verwendung von `groupby` alle DataFrames jetzt nach Land/Region indiziert sind. Wir können somit die Daten für ein bestimmtes Land mit `.loc` abrufen:|\n"
]
},
{
@ -1607,7 +1607,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Hinweis** wie wir `[3:]` verwenden, um die ersten drei Elemente einer Sequenz zu entfernen, die Nicht-Datum-Metadaten enthalten (die Spalten Provinz/Bundesland und Geolokalisierung). Wir können diese drei Spalten auch ganz entfernen:\n"
"> **Beachte**, wie wir `[3:]` verwenden, um die ersten drei Elemente einer Sequenz zu entfernen, die nicht-datumbezogene Metadaten (die Provinz/Bundeseinheit und die Geolokalisierungsspalten) enthalten. Wir können diese drei Spalten auch ganz entfernen:\n"
]
},
{
@ -1627,7 +1627,7 @@
"source": [
"## Untersuchung der Daten\n",
"\n",
"Lassen Sie uns nun zu einer Untersuchung eines bestimmten Landes übergehen. Erstellen wir einen Frame, der die Daten zu Infektionen nach Datum indexiert enthält:\n"
"Schauen wir uns nun ein bestimmtes Land genauer an. Erstellen wir einen Rahmen, der die Daten zu Infektionen enthält, die nach Datum indiziert sind:\n"
]
},
{
@ -1793,7 +1793,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Berechnen wir nun die Anzahl der täglich neu infizierten Personen. Dadurch können wir die Geschwindigkeit des Fortschreitens der Pandemie sehen. Der einfachste Weg, dies zu tun, ist die Verwendung von `diff`:\n"
"Berechnen wir nun die Anzahl der täglich neu infizierten Personen. So können wir die Geschwindigkeit sehen, mit der sich die Pandemie ausbreitet. Am einfachsten geht das mit `diff`:\n"
]
},
{
@ -1852,7 +1852,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Es sieht eindeutig so aus, als gäbe es wöchentliche Schwankungen in den Daten. Da wir die Trends erkennen wollen, macht es Sinn, die Kurve durch die Berechnung eines gleitenden Durchschnitts zu glätten (d.h. für jeden Tag berechnen wir den Durchschnittswert der vorhergehenden Tage):\n"
"Es sieht eindeutig so aus, als gäbe es wöchentliche Schwankungen in den Daten. Da wir die Trends erkennen wollen, macht es Sinn, die Kurve durch Berechnung eines gleitenden Durchschnitts zu glätten (d.h. für jeden Tag berechnen wir den Durchschnittswert der vorhergehenden Tage):\n"
]
},
{
@ -1882,7 +1882,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Um mehrere Länder vergleichen zu können, möchten wir möglicherweise die Bevölkerungszahl des Landes berücksichtigen und den Prozentsatz der infizierten Personen im Verhältnis zur Bevölkerungszahl des Landes vergleichen. Um die Bevölkerungszahl eines Landes zu erhalten, laden wir den Datensatz der Länder:\n"
"Um mehrere Länder vergleichen zu können, möchten wir möglicherweise die Bevölkerung des Landes berücksichtigen und den Prozentsatz der infizierten Personen in Bezug auf die Landesbevölkerung vergleichen. Um die Bevölkerungszahl des Landes zu erhalten, laden wir den Datensatz der Länder:\n"
]
},
{
@ -2153,7 +2153,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Da dieses Datenset Informationen sowohl zu Ländern als auch zu Provinzen enthält, müssen wir etwas schlauer vorgehen, um die Bevölkerung des gesamten Landes zu ermitteln:\n"
"Da dieser Datensatz Informationen sowohl zu Ländern als auch zu Provinzen enthält, müssen wir etwas schlauer vorgehen, um die Bevölkerung des gesamten Landes zu erhalten: \n"
]
},
{
@ -2261,14 +2261,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Berechnung von $R_t$\n",
"\n",
"Um zu sehen, wie ansteckend die Krankheit ist, betrachten wir die **Basisreproduktionszahl** $R_0$, die angibt, wie viele Personen eine infizierte Person weiter anstecken würde. Wenn $R_0$ größer als 1 ist, wird sich die Epidemie wahrscheinlich ausbreiten.\n",
"Um zu sehen, wie ansteckend die Krankheit ist, betrachten wir die **Basisreproduktionszahl** $R_0$, die angibt, wie viele Personen eine infizierte Person weitere anstecken würde. Wenn $R_0$ größer als 1 ist, wird sich die Epidemie wahrscheinlich ausbreiten.\n",
"\n",
"$R_0$ ist eine Eigenschaft der Krankheit selbst und berücksichtigt nicht einige Schutzmaßnahmen, die Menschen ergreifen können, um die Pandemie zu verlangsamen. Im Verlauf der Pandemie können wir die Reproduktionszahl $R_t$ zu einem beliebigen Zeitpunkt $t$ schätzen. Es wurde gezeigt, dass diese Zahl grob geschätzt werden kann, indem man ein Fenster von 8 Tagen nimmt und berechnet $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"$R_0$ ist eine Eigenschaft der Krankheit selbst und berücksichtigt nicht einige Schutzmaßnahmen, die Menschen ergreifen können, um die Pandemie zu verlangsamen. Während des Verlaufs der Pandemie können wir die Reproduktionszahl $R_t$ zu jedem Zeitpunkt $t$ abschätzen. Es wurde gezeigt, dass diese Zahl ungefähr geschätzt werden kann, indem man ein Fenster von 8 Tagen nimmt und $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$ berechnet,\n",
"wobei $I_t$ die Anzahl der neu infizierten Personen am Tag $t$ ist.\n",
"\n",
"Berechnen wir $R_t$ für unsere Pandemiedaten. Dazu nehmen wir ein gleitendes Fenster von 8 `ninfected`-Werten und wenden die Funktion an, um das obige Verhältnis zu berechnen:\n"
"Lassen Sie uns $R_t$ für unsere Pandemiedaten berechnen. Dazu nehmen wir ein rollierendes Fenster von 8 `ninfected`-Werten und wenden die Funktion an, um das obige Verhältnis zu berechnen:\n"
]
},
{
@ -2298,9 +2299,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Sie können sehen, dass es einige Lücken im Diagramm gibt. Diese können entweder durch `NaN` verursacht werden, wenn `inf`-Werte im Datensatz vorhanden sind. `inf` kann durch Division durch 0 entstehen und `NaN` kann fehlende Daten anzeigen oder keine verfügbaren Daten, um das Ergebnis zu berechnen (wie am Anfang unseres Frames, wo das gleitende Fenster mit der Breite 8 noch nicht verfügbar ist). Um das Diagramm ansprechender zu machen, müssen wir diese Werte mit den Funktionen `replace` und `fillna` auffüllen.\n",
"Sie können sehen, dass es im Diagramm einige Lücken gibt. Diese können entweder durch `NaN` oder durch `inf`-Werte im Datensatz verursacht werden. `inf` kann durch eine Division durch 0 entstehen, und `NaN` kann fehlende Daten oder keine verfügbaren Daten zur Berechnung des Ergebnisses anzeigen (wie ganz am Anfang unseres Frames, wo ein gleitendes Fenster der Breite 8 noch nicht verfügbar ist). Um das Diagramm ansprechender zu gestalten, müssen wir diese Werte mit den Funktionen `replace` und `fillna` füllen.\n",
"\n",
"Werfen wir einen genaueren Blick auf den Beginn der Pandemie. Wir werden auch die Werte der y-Achse beschränken, um nur Werte unter 6 anzuzeigen, um eine bessere Übersicht zu erhalten, und eine horizontale Linie bei 1 zeichnen.\n"
"Schauen wir uns weiter den Beginn der Pandemie an. Wir werden auch die Werte der y-Achse auf Werte unter 6 beschränken, um sie besser sehen zu können, und eine horizontale Linie bei 1 zeichnen.\n"
]
},
{
@ -2331,7 +2332,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Ein weiterer interessanter Indikator für die Pandemie ist die **Ableitung** oder **tägliche Differenz** der neuen Fälle. Sie ermöglicht es uns, klar zu erkennen, wann die Pandemie zunimmt oder abnimmt.\n"
"Ein weiterer interessanter Indikator der Pandemie ist die **Ableitung** oder **tägliche Differenz** der neuen Fälle. Sie ermöglicht es uns, klar zu erkennen, wann die Pandemie zunimmt oder abnimmt.\n"
]
},
{
@ -2360,7 +2361,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Angesichts der Tatsache, dass es aufgrund von Meldungen viele Schwankungen in den Daten gibt, macht es Sinn, die Kurve durch die Berechnung eines gleitenden Durchschnitts zu glätten, um das Gesamtbild zu erhalten. Konzentrieren wir uns noch einmal auf die ersten Monate der Pandemie:\n"
"Angesichts der Tatsache, dass es viele Schwankungen in den Daten aufgrund von Meldungen gibt, ist es sinnvoll, die Kurve durch einen gleitenden Durchschnitt zu glätten, um das Gesamtbild zu erhalten. Lassen Sie uns erneut auf die ersten Monate der Pandemie konzentrieren:\n"
]
},
{
@ -2390,14 +2391,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Herausforderung\n",
"\n",
"Jetzt ist es an der Zeit, dass du mehr mit dem Code und den Daten spielst! Hier sind einige Vorschläge, mit denen du experimentieren kannst:\n",
"* Sieh dir die Verbreitung der Pandemie in verschiedenen Ländern an.\n",
"* Erstelle $R_t$-Grafiken für mehrere Länder in einem Diagramm zum Vergleich oder mache mehrere Diagramme nebeneinander.\n",
"* Sieh dir die Ausbreitung der Pandemie in verschiedenen Ländern an.\n",
"* Erstelle $R_t$-Diagramme für mehrere Länder in einem Diagramm zum Vergleich oder mache mehrere Diagramme nebeneinander.\n",
"* Sieh dir an, wie die Anzahl der Todesfälle und Genesungen mit der Anzahl der Infizierten korreliert.\n",
"* Versuche herauszufinden, wie lange eine typische Krankheit dauert, indem du Infektionsrate und Sterberate visuell korrelierst und nach einigen Anomalien suchst. Möglicherweise musst du verschiedene Länder betrachten, um das herauszufinden.\n",
"* Berechne die Sterblichkeitsrate und wie sie sich im Laufe der Zeit verändert. Du solltest eventuell die Dauer der Krankheit in Tagen berücksichtigen, um eine Zeitreihe vor den Berechnungen zu verschieben.\n"
"* Versuche herauszufinden, wie lange eine typische Krankheit dauert, indem du die Infektionsrate und die Todesrate visuell korrelierst und nach Anomalien suchst. Du musst möglicherweise verschiedene Länder ansehen, um das herauszufinden.\n",
"* Berechne die Sterblichkeitsrate und wie sie sich im Laufe der Zeit verändert. Du möchtest vielleicht die Dauer der Krankheit in Tagen berücksichtigen, um eine Zeitreihe vor der Berechnung zu verschieben.\n"
]
},
{
@ -2406,10 +2408,10 @@
"source": [
"## Referenzen\n",
"\n",
"Sie können weitere Studien zur Ausbreitung der COVID-Epidemie in den folgenden Veröffentlichungen einsehen:\n",
"Sie können weitere Studien zur Verbreitung der COVID-Epidemie in den folgenden Veröffentlichungen ansehen:\n",
"* [Sliding SIR Model for Rt Estimation during COVID Pandemic](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), Blogbeitrag von [Dmitry Soshnikov](http://soshnikov.com)\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [Estimation of Time-Dependent Reproduction Number for Global COVID-19 Outbreak](https://www.preprints.org/manuscript/202006.0289/v1). *Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [Code für die oben genannte Arbeit auf GitHub](https://github.com/shwars/SlidingSIR)\n"
"* [Code für das obige Paper auf GitHub](https://github.com/shwars/SlidingSIR)\n"
]
},
{
@ -2423,7 +2425,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Haftungsausschluss**:\nDieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir Genauigkeit anstreben, können automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten. Das Originaldokument in seiner Ursprungssprache gilt als maßgebliche Quelle. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Verwendung dieser Übersetzung entstehen.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Haftungsausschluss**:\nDieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache gilt als maßgebliche Quelle. Bei kritischen Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Verwendung dieser Übersetzung entstehen.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
Um loszulegen, müssen Sie sicherstellen, dass NPM und Node auf Ihrem Rechner laufen. Installieren Sie die Abhängigkeiten (npm install) und führen Sie das Projekt anschließend lokal aus (npm run serve):
Um zu beginnen, müssen Sie sicherstellen, dass NPM und Node **>=20.0.0** auf Ihrem Rechner laufen. Installieren Sie die Abhängigkeiten (npm install) und starten Sie dann das Projekt lokal (npm run serve):
## Projektsetup
## Projekt-Setup
```
npm install
```
### Kompiliert und lädt für die Entwicklung automatisch neu
### Kompiliert und lädt für die Entwicklung hot-reload nach
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Haftungsausschluss**:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache gilt als maßgebliche Quelle. Bei kritischen Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Verwendung dieser Übersetzung entstehen.
Um loszulegen, stellen Sie sicher, dass NPM und Node auf Ihrem Rechner laufen. Installieren Sie die Abhängigkeiten (npm install) und führen Sie das Projekt anschließend lokal aus (npm run serve):
Um zu starten, müssen Sie sicherstellen, dass NPM und Node **>=20.0.0** auf Ihrem Computer laufen. Installieren Sie die Abhängigkeiten (npm install) und führen Sie dann das Projekt lokal aus (npm run serve):
## Projektsetup
## Projekteinstellungen
```
npm install
```
### Kompiliert und lädt Änderungen für die Entwicklung automatisch neu
### Kompiliert und lädt für die Entwicklung automatisch nach
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Haftungsausschluss**:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache gilt als maßgebliche Quelle. Bei kritischen Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Verwendung dieser Übersetzung entstehen.
| ](../../sketchnotes/03-DefiningData.png)|
| ](../../sketchnotes/03-DefiningData.png)|
|:---:|
|Определение данных - _Скетчноут от [@nitya](https://twitter.com/nitya)_ |
|Определение данных - _Sketchnote от [@nitya](https://twitter.com/nitya)_ |
Данные — это факты, информация, наблюдения и измерения, которые используются для открытия новых знаний и поддержки обоснованных решений. Единица данных — это отдельный элемент данных в наборе данных, который представляет собой коллекцию таких элементов. Наборы данных могут быть представлены в различных форматах и структурах, которые обычно зависят от их источника, то есть от того, откуда они поступили. Например, ежемесячный доход компании может быть представлен в виде таблицы, а данные о частоте сердечных сокращений, полученные со смарт-часов, могут быть в формате [JSON](https://stackoverflow.com/a/383699). Для специалистов по данным часто бывает необходимо работать с разными типами данных в рамках одного набора.
Данные — это факты, информация, наблюдения и измерения, которые используются для открытия нового и поддержки обоснованных решений. Точкой данных называется единица данных в наборе данных, который является коллекцией таких точек. Наборы данных могут иметь разные форматы и структуры, обычно зависящие от источника, или откуда данные были получены. Например, ежемесячный доход компании может быть в электронной таблице, а почасовые данные о частоте сердечных сокращений с умных часов могут быть в формате [JSON](https://stackoverflow.com/a/383699). Для специалистов по данным обычно нормально работать с разными типами данных в одном наборе.
Этот урок посвящен определению и классификации данных по их характеристикам и источникам.
Этот урок сфокусирован на идентификации и классификации данных по их характеристикам и источникам.
## [Тест перед лекцией](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## Как описываются данные
### Сырые данные
Сырые данные — это данные, поступившие из источника в их исходном состоянии, которые еще не были проанализированы или организованы. Чтобы понять, что происходит с набором данных, его необходимо организовать в формат, который будет понятен как людям, так и технологиям, используемым для дальнейшего анализа. Структура набора данных описывает, как он организован, и может быть классифицирована как структурированная, неструктурированная и полуструктурированная. Эти типы структур зависят от источника данных, но в конечном итоге укладываются в одну из трех категорий.
### Исходные данные
Исходные данные — это данные, полученные из источника в их первоначальном виде и не подвергавшиеся анализу или организации. Чтобы понять, что происходит с набором данных, его нужно организовать в формат, который будет понятен людям, а также технологиям, используемым для дальнейшего анализа. Структура набора данных описывает, как он организован, и может классифицироваться как структурированная, неструктурированная и полуструктурированная. Эти типы структуры будут различаться в зависимости от источника, но в конечном счёте попадают в эти три категории.
### Количественные данные
Количественные данные — это числовые наблюдения в наборе данных, которые можно анализировать, измерять и использовать математически. Примеры количественных данных: численность населения страны, рост человека или квартальная прибыль компании. Спомощью дополнительного анализа количественные данные могут быть использованы для выявления сезонных тенденций индекса качества воздуха (AQI) или оценки вероятности пробок в час пик в обычный рабочий день.
Количественные данные — это числовые наблюдения в наборе данных, которые обычно можно анализировать, измерять и использовать математически. Примеры количественных данных: население страны, рост человека или квартальная прибыль компании. Сдополнительным анализом количественные данные можно использовать для выявления сезонных тенденций Индекса качества воздуха (AQI) или для оценки вероятности возникновения пробок в часы пик в обычный рабочий день.
### Качественные данные
Качественные данные, также известные как категориальные данные, — это данные, которые нельзя измерить объективно, как количественные наблюдения. Это, как правило, различные форматы субъективных данных, которые фиксируют качество чего-либо, например продукта или процесса. Иногда качественные данные могут быть числовыми, но не использоваться в математических расчетах, например, номера телефонов или временные метки. Примеры качественных данных: комментарии к видео, марка и модель автомобиля или любимый цвет ваших близких друзей. Качественные данные могут быть использованы для понимания того, какие продукты больше всего нравятся потребителям, или для выявления популярных ключевых слов в резюме соискателей.
Качественные данные, также известные как категориальные данные, — это данные, которые нельзя объективно измерить, как количественные данные. Обычно это различные форматы субъективных данных, которые отражают качество чего-либо, например продукта или процесса. Иногда качественные данные могут быть числовыми, но обычно не используются математически, например телефонные номера или отметки времени. Примеры качественных данных: комментарии к видео, марка и модель автомобиля, любимый цвет ваших близких друзей. Качественные данные могут использоваться для понимания, какие продукты потребителям нравятся больше, или для выявления популярных ключевых слов в резюме.
### Структурированные данные
Структурированные данные организованы в виде строк и столбцов, где каждая строка имеет одинаковый набор столбцов. Столбцы представляют значения определенного типа и обозначаются именем, описывающим, что представляет это значение, а строки содержат сами значения. Часто на столбцы накладываются определенные правила или ограничения, чтобы гарантировать, что значения точно соответствуют их описанию. Например, представьте таблицу клиентов, где каждая строка должна содержать номер телефона, а номера телефонов не могут содержать буквенных символов. На столбец с номерами телефонов могут быть наложены правила, чтобы он никогда не оставался пустым и содержал только цифры.
Структурированные данные — это данные, организованные в строки и столбцы, где каждая строка содержит одинаковый набор столбцов. Столбцы представляют значения определённого типа и имеют имя, описывающее, что они представляют, а строки содержат сами значения. Часто для столбцов применяются правила или ограничения, чтобы обеспечить правильное представление данных. Например, представьте таблицу клиентов, где в каждой строке обязательно должен быть номер телефона, и номера не содержат букв. Для столбца с номерами телефона могут быть введены правила, чтобы он никогда не был пустым и содержал только цифры.
Преимущество структурированных данных заключается в том, что их можно организовать так, чтобы они были связаны с другими структурированными данными. Однако из-за того, что данные организованы определенным образом, внесение изменений в их структуру может потребовать значительных усилий. Например, добавление столбца с адресами электронной почты в таблицу клиентов, где этот столбец не может быть пустым, потребует решения, как заполнить значения для уже существующих строк.
Преимущество структурированных данных в том, что они могут быть организованы так, чтобы иметь связь с другими структурированными данными. Однако, поскольку данные спроектированы для определённой структуры, внесение изменений в общую структуру может потребовать много усилий. Например, добавление столбца с электронной почтой, который не может быть пустым, к таблице клиентов означает, что надо будет продумать, как добавить эти значения в уже существующие строки.
Примеры структурированных данных: таблицы, реляционные базы данных, номера телефонов, банковские выписки.
Примеры структурированных данных: электронные таблицы, реляционные базы данных, телефонные номера, банковские выписки
### Неструктурированные данные
Неструктурированные данные, как правило, не могут быть организованы в строки и столбцы и не имеют формата или набора правил. Из-за меньших ограничений на структуру неструктурированных данных добавление новой информации в них проще по сравнению со структурированными наборами данных. Например, если датчик, измеряющий барометрическое давление каждые 2 минуты, получил обновление, позволяющее ему фиксировать температуру, это не потребует изменения уже существующих данных, если они неструктурированы. Однако анализ или исследование таких данных может занять больше времени. Например, ученый, который хочет вычислить среднюю температуру за прошлый месяц по данным датчика, может обнаружить, что датчик записал "e" вместо числового значения, чтобы указать на неисправность, что делает данные неполными.
Неструктурированные данные обычно нельзя отнести к строкам или столбцам и они не имеют формата или набора правил. Поскольку у неструктурированных данных меньше ограничений по структуре, добавлять новую информацию в них проще по сравнению со структурированными данными. Если датчик, который измеряет атмосферное давление каждые 2 минуты, получает обновление, позволяющее также измерять температуру, это не требует изменения уже существующих данных, если они неструктурированные. Однако это может усложнить анализ данных. Например, учёный, который хочет найти среднюю температуру за прошлый месяц по данным с датчиков, обнаружит, что в некоторых записях датчик отметил «e», чтобы указать на неполноту данных или поломку.
Полуструктурированные данные имеют характеристики, которые делают их комбинацией структурированных и неструктурированных данных. Они обычно не соответствуют формату строк и столбцов, но организованы таким образом, который считается структурированным, и могут следовать фиксированному формату или набору правил. Структура может варьироваться в зависимости от источника, от четко определенной иерархии до более гибкой, которая позволяет легко добавлять новую информацию. Метаданные — это индикаторы, которые помогают определить, как данные организованы и хранятся, и имеют различные названия в зависимости от типа данных. Некоторые распространенные названия для метаданных: теги, элементы, сущности и атрибуты. Например, типичное электронное письмо будет содержать тему, текст и список получателей и может быть организовано по отправителю или времени отправки.
Полуструктурированные данные сочетают свойства структурированных и неструктурированных данных. Обычно они не соответствуют формату строк и столбцов, но организованы так, что считаются структурированными и могут иметь фиксированный формат или набор правил. Структура варьируется в зависимости от источника, от чётко определённой иерархии до более гибкой, позволяющей легко интегрировать новую информацию. Метаданные — это индикаторы, помогающие определить, как данные организованы и хранятся, и могут называться тегами, элементами, сущностями и атрибутами. Например, обычное электронное письмо имеет тему, тело и набор получателей и может быть организовано по отправителю или дате отправки.
Источник данных — это начальное место, где данные были сгенерированы или где они "хранятся", и оно может варьироваться в зависимости от того, как и когда данные были собраны. Данные, сгенерированные их пользователями, называются первичными данными, тогда как вторичные данные поступают из источника, который собирал их для общего использования. Например, группа ученых, собирающих наблюдения в тропическом лесу, будет считаться первичным источником, а если они решат поделиться этими данными с другими учеными, то для последних это будет вторичный источник.
Источник данных — это первоначальное место создания данных или место их «нахождения», и зависит от того, как и когда они были собраны. Данные, созданные их пользователями, называются первичными, а вторичные данные — это данные, собранные из источника для общего использования. Например, группа учёных, собирающая наблюдения в тропическом лесу, считается первичным источником, а если эти данные будут переданы другим учёным, для них они станут вторичными.
Базы данных являются распространенным источником данных и полагаются на системы управления базами данных для их хранения и обслуживания, где пользователи используют команды, называемые запросами, для изучения данных. Файлы как источники данных могут быть аудио-, видеофайлами, изображениями, а также таблицами, такими как Excel. Интернет — это распространенное место для хранения данных, где можно найти как базы данных, так и файлы. Интерфейсы прикладного программирования, также известные как API, позволяют программистам создавать способы обмена данными с внешними пользователями через интернет, а процесс веб-скрейпинга извлекает данные с веб-страниц. [Уроки в разделе "Работа с данными"](../../../../../../../../../2-Working-With-Data) посвящены использованию различных источников данных.
Базы данных — распространённый источник, который использует систему управления базами данных для хранения и поддержки данных, где пользователи исследуют данные с помощью запросов. Файлы как источники данных могут быть аудио-, изображениями и видеофайлами, а также электронными таблицами, например Excel. Интернет является распространённым местом размещения данных, где могут находиться базы данных и файлы. Интерфейсы программирования приложений (API) позволяют программистам создавать способы обмена данными через интернет, а веб-скрейпинг извлекает данные со страниц сайтов. [Уроки по работе с данными](../../../../../../../../../2-Working-With-Data) посвящены использованию разных источников данных.
## Заключение
В этом уроке мы узнали:
В этом уроке мы изучили:
- Что такое данные
- Как описываются данные
@ -54,22 +54,26 @@
## 🚀 Задание
Kaggle — отличный источник открытых наборов данных. Используйте [инструмент поиска наборов данных](https://www.kaggle.com/datasets), чтобы найти несколько интересных наборов данных и классифицировать 3-5 из них по следующим критериям:
Kaggle — отличный источник открытых наборов данных. Используйте [инструмент поиска наборов данных](https://www.kaggle.com/datasets), чтобы найти интересные наборы и классифицировать 3-5 наборов по следующим критериям:
- Являются ли данные количественными или качественными?
- Являются ли данные структурированными, неструктурированными или полуструктурированными?
## [Тест после лекции](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## Обзор и самостоятельное изучение
- Этот модуль Microsoft Learn под названием [Классификация данных](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) содержит подробное описание структурированных, полуструктурированных и неструктурированных данных.
- Этот модуль Microsoft Learn под названием [Определение форматов данных](https://learn.microsoft.com/en-us/training/modules/explore-core-data-concepts/2-data-formats?pivots=text) подробно разбирает структурированные, полуструктурированные и неструктурированные данные.
## Задание
## Домашнее задание
[Классификация наборов данных](assignment.md)
---
**Отказ от ответственности**:
Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Отказ от ответственности**:
Этот документ был переведен с использованием сервиса машинного перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.
"В этой тетради мы поиграем с некоторыми концепциями, которые мы обсуждали ранее. Многие концепции из области вероятности и статистики хорошо представлены в основных библиотеках для обработки данных на Python, таких как `numpy` и `pandas`.\n"
"В этой тетради мы поэкспериментируем с некоторыми из ранее обсуждавшихся концепций. Многие концепции из теории вероятностей и статистики хорошо представлены в основных библиотеках для обработки данных на Python, таких как `numpy` и `pandas`.\n"
]
},
{
@ -44,7 +44,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Чтобы визуально оценить, сколько различных значений содержится в выборке, мы можем построить **гистограмму**:\n"
"Чтобы наглядно оценить, сколько различных значений содержится в выборке, мы можем построить **гистограмму**:\n"
]
},
{
@ -63,7 +63,7 @@
"source": [
"## Анализ реальных данных\n",
"\n",
"Среднее значение и дисперсия очень важны при анализе данных из реального мира. Давайте загрузим данные о бейсболистах с сайта [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
"Среднее и дисперсия очень важны при анализе реальных данных. Давайте загрузим данные о бейсболистах с [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
]
},
{
@ -98,7 +98,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Теперь давайте сосредоточимся на росте и вычислим стандартное отклонение и дисперсию:\n"
"Теперь сосредоточимся на высоте и вычислим стандартное отклонение и дисперсию:\n"
]
},
{
@ -126,7 +126,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"В дополнение к среднему значению имеет смысл рассмотреть медиану и квартили. Их можно визуализировать с помощью **ящик с усами**:\n"
"Помимо среднего значения, имеет смысл рассмотреть медиану и квартильные значения. Их можно визуализировать с помощью **ящик с усами**:\n"
"Мы также можем построить боксплоты для подмножеств нашего датасета, например, сгруппированные по роли игрока.\n"
"Мы также можем строить диаграммы размаха для подмножеств нашего набора данных, например, сгруппированных по роли игрока.\n"
]
},
{
@ -165,9 +165,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Примечание**: Эта диаграмма предполагает, что в среднем рост первых базменов выше, чем рост вторых базменов. Позже мы узнаем, как можно проверить эту гипотезу более формально и как показать, что наши данные статистически значимы для этого. \n",
"> **Примечание**: Эта диаграмма показывает, что в среднем рост первых базовых игроков выше, чем рост вторых базовых игроков. Позже мы узнаем, как можно проверить это гипотезу более формально и как доказать, что наши данные статистически значимы для этого утверждения. \n",
"\n",
"Возраст, рост и вес — это все непрерывные случайные величины. Как вы думаете, какое у них распределение? Хороший способ это выяснить — построить гистограмму значений: \n"
"Возраст, рост и вес — все являются непрерывными случайными величинами. Как вы думаете, каково их распределение? Хороший способ это выяснить — построить гистограмму значений: \n"
]
},
{
@ -190,7 +190,7 @@
"source": [
"## Нормальное распределение\n",
"\n",
"Давайте создадим искусственную выборку весов, которая следует нормальному распределению с той же средней и дисперсией, что и наши реальные данные:\n"
"Давайте создадим искусственную выборку весов, которая следует нормальному распределению с тем же средним и дисперсией, что и наши реальные данные:\n"
]
},
{
@ -231,7 +231,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Поскольку большинство значений в реальной жизни распределены нормально, не следует использовать генератор случайных чисел с равномерным распределением для генерации выборочных данных. Вот что происходит, если попытаться сгенерировать веса с равномерным распределением (сгенерированным с помощью `np.random.rand`):\n"
"Поскольку большинство значений в реальной жизни распределены нормально, мы не должны использовать равномерный генератор случайных чисел для генерации выборочных данных. Вот что происходит, если мы пытаемся сгенерировать веса с равномерным распределением (сгенерированным с помощью `np.random.rand`):\n"
]
},
{
@ -251,9 +251,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Интервалы доверия\n",
"## Интервалы Доверия\n",
"\n",
"Теперь давайте вычислим интервалы доверия для веса и роста бейсболистов. Мы будем использовать код [из этого обсуждения на Stack Overflow](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
"Теперь давайте вычислим интервалы доверия для веса и роста бейсбольных игроков. Мы будем использовать код [из этого обсуждения на stackoverflow](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
]
},
{
@ -272,7 +272,7 @@
" return m, h\n",
"\n",
"for p in [0.85, 0.9, 0.95]:\n",
" m, h = mean_confidence_interval(df['Weight'].fillna(method='pad'),p)\n",
" m, h = mean_confidence_interval(df['Weight'].ffill(),p)\n",
" print(f\"p={p:.2f}, mean = {m:.2f} ± {h:.2f}\")"
]
},
@ -282,7 +282,7 @@
"source": [
"## Проверка гипотез\n",
"\n",
"Давайте рассмотрим различные роли в нашем наборе данных игроков в бейсбол:\n"
"Давайте изучим разные роли в нашем наборе данных игроков бейсбола:\n"
]
},
{
@ -298,7 +298,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Давайте проверим гипотезу о том, что игроки первой базы выше игроков второй базы. Самый простой способ сделать это — проверить доверительные интервалы:\n"
"Давайте проверим гипотезу о том, что первого бейсмена выше, чем второго бейсмена. Самый простой способ сделать это — проверить доверительные интервалы:\n"
]
},
{
@ -319,7 +319,7 @@
"source": [
"Мы видим, что интервалы не пересекаются.\n",
"\n",
"Статистически более корректным способом проверки гипотезы является использование **t-критерия Стьюдента**:\n"
"Статистически более корректный способ проверить гипотезу — использовать **t-тест Стьюдента**:\n"
"* p-value можно рассматривать как вероятность того, что два распределения имеют одинаковое среднее значение. В нашем случае оно очень низкое, что означает наличие веских доказательств в пользу того, что первичные базмены выше ростом.\n",
"* t-value — это промежуточное значение нормализованной разницы средних, которое используется в t-тесте, и оно сравнивается с пороговым значением для данного уровня доверия.\n"
"* p-значение можно рассматривать как вероятность того, что два распределения имеют одинаковое среднее. В нашем случае оно очень низкое, что означает наличие веских доказательств в пользу того, что первые бейсмены выше.\n",
"* t-значение — это промежуточное значение нормализованной разницы средних, используемое в t-критерии, которое сравнивается с пороговым значением для заданного уровня доверия.\n"
]
},
{
@ -349,7 +349,7 @@
"source": [
"## Моделирование нормального распределения с помощью центральной предельной теоремы\n",
"\n",
"Псевдослучайный генератор в Python предназначен для получения равномерного распределения. Если мы хотим создать генератор для нормального распределения, мы можем использовать центральную предельную теорему. Чтобы получить нормально распределённое значение, мы просто вычислим среднее значение выборки, сгенерированной равномерно.\n"
"Псевдослучайный генератор в Python предназначен для создания равномерного распределения. Если мы хотим создать генератор для нормального распределения, мы можем использовать центральную предельную теорему. Чтобы получить нормально распределенное значение, мы просто вычислим среднее значение выборки, сгенерированной равномерно.\n"
]
},
{
@ -373,9 +373,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Корреляция и злая бейсбольная корпорация\n",
"## Корреляция и злой бейсбольный корпорация\n",
"\n",
"Корреляция позволяет нам находить связи между последовательностями данных. В нашем учебном примере представим, что есть злая бейсбольная корпорация, которая платит своим игрокам в зависимости от их роста — чем выше игрок, тем больше он получает денег. Предположим, что базовая зарплата составляет $1000, а дополнительный бонус от $0 до $100 зависит от роста. Мы возьмем реальных игроков из MLB и вычислим их воображаемые зарплаты:\n"
"Корреляция позволяет нам находить взаимосвязи между последовательностями данных. В нашем простом примере предположим, что существует злая бейсбольная корпорация, которая платит своим игрокам в зависимости от их роста — чем выше игрок, тем больше денег он/она получает. Предположим, что базовая зарплата составляет 1000 долларов, а дополнительный бонус варьируется от 0 до 100 долларов в зависимости от роста. Мы возьмем реальных игроков из MLB и вычислим их воображаемые зарплаты:\n"
"Давайте теперь вычислим ковариацию и корреляцию этих последовательностей. `np.cov` даст нам так называемую **ковариационную матрицу**, которая является расширением ковариации на несколько переменных. Элемент $M_{ij}$ ковариационной матрицы $M$ — это ковариация между входными переменными $X_i$ и $X_j$, а диагональные значения $M_{ii}$ — дисперсия $X_{i}$. Аналогично, `np.corrcoef` даст нам **корреляционную матрицу**.\n"
"Давайте теперь вычислим ковариацию и корреляцию этих последовательностей. `np.cov` даст нам так называемую **матрицу ковариации**, которая является расширением ковариации на несколько переменных. Элемент $M_{ij}$ матрицы ковариации $M$ — это корреляция между входными переменными $X_i$ и $X_j$, а диагональные значения $M_{ii}$ — это дисперсия $X_{i}$. Аналогично, `np.corrcoef` даст нам **матрицу корреляции**.\n"
]
},
{
@ -411,7 +411,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Корреляция, равная 1, означает, что существует сильная **линейная связь** между двумя переменными. Мы можем визуально увидеть линейную связь, построив график одного значения относительно другого:\n"
"Корреляция, равная 1, означает, что существует сильная **линейная зависимость** между двумя переменными. Мы можем визуально увидеть линейную зависимость, построив график одной величины относительно другой:\n"
]
},
{
@ -430,7 +430,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Давайте посмотрим, что произойдет, если зависимость не линейная. Предположим, что наша корпорация решила скрыть очевидную линейную зависимость между ростом и зарплатами и ввела некоторую нелинейность в формулу, например, функцию `sin`:\n"
"Посмотрим, что произойдет, если зависимость не будет линейной. Предположим, что наша корпорация решила скрыть очевидную линейную зависимость между ростом и зарплатами, и ввела некоторую нелинейность в формулу, например, `sin`:\n"
]
},
{
@ -447,7 +447,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"В этом случае корреляция немного меньше, но она все равно достаточно высокая. Теперь, чтобы сделать связь еще менее очевидной, мы можем добавить некоторую дополнительную случайность, добавив случайную переменную к зарплате. Давайте посмотрим, что получится:\n"
"В этом случае корреляция немного меньше, но все равно достаточно высокая. Теперь, чтобы сделать связь менее очевидной, мы можем добавить дополнительный случайный фактор, добавив некоторую случайную переменную к зарплате. Посмотрим, что получится:\n"
]
},
{
@ -476,9 +476,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> Можете догадаться, почему точки выстраиваются в такие вертикальные линии?\n",
"> Можете ли вы догадаться, почему точки выстраиваются в такие вертикальные линии?\n",
"\n",
"Мы наблюдали корреляцию между искусственно созданной концепцией, такой как зарплата, и наблюдаемой переменной *рост*. Давайте также посмотрим, коррелируют ли две наблюдаемые переменные, такие как рост и вес:\n"
"Мы наблюдали корреляцию между искусственно созданной концепцией, такой как зарплата, и наблюдаемой переменной *рост*. Давайте также посмотрим, коррелируют ли две наблюдаемые переменные, например рост и вес:\n"
]
},
{
@ -494,11 +494,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"К сожалению, мы не получили никаких результатов — только странные значения `nan`. Это происходит из-за того, что некоторые значения в нашем ряду неопределены, представлены как `nan`, что приводит к неопределённому результату операции. Глядя на матрицу, мы видим, что проблемным столбцом является `Weight`, так как была вычислена автокорреляция значений `Height`.\n",
"К сожалению, мы не получили никаких результатов — только некоторые странные значения `nan`. Это связано с тем, что некоторые значения в нашей серии неопределены, представлены как `nan`, что вызывает неопределённость результата операции. По матрице видно, что проблемным столбцом является `Weight`, поскольку была вычислена самокорреляция значений `Height`.\n",
"\n",
"> Этот пример демонстрирует важность **подготовки данных** и **очистки**. Без надлежащих данных мы не можем ничего вычислить.\n",
"> Этот пример демонстрирует важность **подготовки данных** и **очистки**. Без правильных данных мы не можем ничего вычислить.\n",
"\n",
"Давайте используем метод `fillna` для заполнения пропущенных значений и вычислим корреляцию:\n"
"Давайте используем метод `fillna` для заполнения пропущенных значений и вычислим корреляцию:\n"
"Действительно существует корреляция, но не такая сильная, как в нашем искусственном примере. Если посмотреть на точечную диаграмму одного значения относительно другого, связь будет гораздо менее очевидна:\n"
"Действительно, существует корреляция, но не такая сильная, как в нашем искусственном примере. Если взглянуть на диаграмму рассеяния одной величины относительно другой, взаимосвязь будет гораздо менее очевидной:\n"
]
},
{
@ -537,14 +537,14 @@
"source": [
"## Заключение\n",
"\n",
"В этой тетрадке мы научились выполнять базовые операции с данными для вычисления статистических функций. Теперь мы знаем, как использовать надежный аппарат математики и статистики для проверки гипотез, а также как вычислять доверительные интервалы для произвольных переменных на основе выборки данных.\n"
"В этой тетради мы научились выполнять основные операции с данными для вычисления статистических функций. Теперь мы знаем, как использовать надежный аппарат математики и статистики для проверки некоторых гипотез и как вычислять доверительные интервалы для произвольных переменных на основе выборки данных.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Отказ от ответственности**:\nЭтот документ был переведен с использованием сервиса машинного перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, учтите, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на егородном языке следует считать авторитетным источником. Для важной информации рекомендуется профессиональный перевод носителем языка. Мы не несем ответственности за любые недоразумения или неверные толкования, возникшие в результате использования данного перевода.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Отказ от ответственности**:\nЭтот документ был переведен с использованием сервиса машинного перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на егоисходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"Мы будем использовать данные о заразившихся COVID-19, предоставленные [Центром системных наук и инженерии](https://systems.jhu.edu/) (CSSE) в [Университете Джонса Хопкинса](https://jhu.edu/). Набор данных доступен в [этом репозитории GitHub](https://github.com/CSSEGISandData/COVID-19).\n"
"Мы будем использовать данные о заражённых COVID-19, предоставленные [Центром системной науки и инженерии](https://systems.jhu.edu/) (CSSE) в [Университете Джонса Хопкинса](https://jhu.edu/). Набор данных доступен в [этом репозитории GitHub](https://github.com/CSSEGISandData/COVID-19).\n"
]
},
{
@ -27,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Мы можем загрузить самые свежие данные напрямуюс GitHub, используя `pd.read_csv`. Если по какой-то причине данные недоступны, вы всегда можете использовать копию, доступную локально в папке `data` — просто раскомментируйте строку ниже, которая определяет `base_url`:\n"
"Мы можем загрузить самые свежие данные непосредственнос GitHub, используя `pd.read_csv`. Если по какой-то причине данные недоступны, вы всегда можете использовать локальную копию, которая находится в папке `data` — просто раскомментируйте строку ниже, где определяется `base_url`:\n"
]
},
{
@ -48,7 +48,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Давайте теперь загрузим данные по зараженным и посмотрим, как выглядят эти данные:\n"
"Давайте теперь загрузим данные для инфицированных и посмотрим, как эти данные выглядят:\n"
]
},
{
@ -265,7 +265,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Мы видим, что каждая строка таблицы определяет количество заражённых для каждой страны и/или провинции, а столбцы соответствуют датам. Подобные таблицы можно загрузить для других данных, таких как количество выздоровевших и количество смертей.\n"
"Мы можем видеть, что каждая строка таблицы определяет количество инфицированных для каждой страны и/или провинции, а столбцы соответствуют датам. Похожие таблицы можно загрузить для других данных, таких как количество выздоровевших и количество смертей.\n"
]
},
{
@ -284,7 +284,7 @@
"source": [
"## Понимание данных\n",
"\n",
"Из таблицы выше роль столбца province не ясна. Давайте посмотрим на разные значения, которые присутствуют в столбце `Province/State`:\n"
"Из приведенной выше таблицы роль столбца province не ясна. Давайте рассмотрим различные значения, которые присутствуют в столбце `Province/State`:\n"
]
},
{
@ -322,7 +322,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Из названий можно сделать вывод, что такие страны, как Австралия и Китай, имеют более подробное разделение по провинциям. Давайте найдем информацию о Китае, чтобы увидеть пример:\n"
"Из названий мы можем сделать вывод, что такие страны, как Австралия и Китай, имеют более детальную разбивку по провинциям. Давайте посмотрим информацию по Китаю, чтобы увидеть пример:\n"
]
},
{
@ -1321,9 +1321,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Предварительная обработка данных\n",
"## Предварительная обработка данных\n",
"\n",
"Нас не интересует разбиение стран на отдельные территории, поэтому мы сначала избавимся от такого разбиения и объединим информацию по всем территориям, чтобы получить данные по всей стране. Это можно сделать с помощью `groupby`:\n"
"Мы не заинтересованы в разбиении стран на отдельные территории, поэтому сначала избавимся от такого разбиения и объединим информацию по всем территориям, чтобы получить данные по всей стране. Это можно сделать с помощью `groupby`:\n"
]
},
{
@ -1578,7 +1578,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Вы можете видеть, что благодаря использованию `groupby` все DataFrame теперь индексируются по Стране/Региону. Таким образом, мы можем получить доступ к данным для конкретной страны, используя `.loc`:|\n"
"Вы видите, что благодаря использованию `groupby` все DataFrame теперь индексируются по Country/Region. Таким образом, мы можем получить доступ к данным для конкретной страны, используя `.loc`:|\n"
]
},
{
@ -1607,7 +1607,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Примечание** обратите внимание, как мы используем `[3:]`, чтобы удалить первые три элемента последовательности, которые содержат метаданные, не связанные с датой (колонки Провинция/Штат и геолокация). Мы также можем полностью исключить эти три столбца:\n"
"> **Обратите внимание**, как мы используем `[3:]`, чтобы удалить первые три элемента последовательности, содержащие метаданные, не относящиеся к дате (столбцы Province/State и геолокации). Мы также можем полностью удалить эти три столбца:\n"
]
},
{
@ -1627,7 +1627,7 @@
"source": [
"## Исследование данных\n",
"\n",
"Теперь давайте переключимся на изучение конкретной страны. Давайте создадим фрейм, который содержит данные о заражениях с индексом по дате:\n"
"Теперь давайте переключимся на исследование конкретной страны. Создадим фрейм, который содержит данные о заражениях, индексированные по дате:\n"
]
},
{
@ -1823,7 +1823,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Мы можем увидеть большие колебания в данных. Давайте рассмотрим один из месяцев подробнее:\n"
"Мы можем видеть большие колебания в данных. Давайте взглянем внимательнее на один из месяцев:\n"
]
},
{
@ -1852,7 +1852,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Очевидно, что в данных наблюдаются еженедельные колебания. Поскольку мы хотим видеть тенденции, имеет смысл сгладить кривую, вычисляя скользящее среднее (т.е. для каждого дня мы будем вычислять среднее значение за предыдущие несколько дней):\n"
"Очевидно, что в данных имеются недельные колебания. Поскольку мы хотим видеть тренды, логично сгладить кривую, вычисляя скользящее среднее (то есть для каждого дня мы будем вычислять среднее значение за несколько предыдущих дней):\n"
]
},
{
@ -1882,7 +1882,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Чтобы иметь возможность сравнивать несколько стран, мы можем учесть население страны и сравнить процент инфицированных людей относительно населения страны. Чтобы получить население страны, давайте загрузим набор данных о странах:\n"
"Чтобы иметь возможность сравнивать несколько стран, мы можем захотеть учитывать население страны и сравнивать процент инфицированных по отношению к населению страны. Чтобы получить население страны, давайте загрузим набор данных о странах:\n"
]
},
{
@ -2153,7 +2153,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Поскольку этот набор данных содержит информацию как о странах, так и о провинциях, чтобы получить население всей страны, нам нужно быть немного хитрее:\n"
"Поскольку этот набор данных содержит информацию как о странах, так и о провинциях, чтобы получить население всей страны, нам нужно быть немного хитрее:\n"
]
},
{
@ -2261,14 +2261,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Вычисление $R_t$\n",
"\n",
"Чтобы понять, насколько заразна болезнь, мы смотрим на **базовое репродуктивное число** $R_0$, которое показывает, сколько человек в среднем заразит один инфицированный. Когда $R_0$ больше 1, эпидемия, вероятно, будет распространяться.\n",
"Чтобы понять, насколько заразна болезнь, мы смотрим на **базовое репродукционное число** $R_0$, которое показывает количество людей, которых заразит один инфицированный человек. Когда $R_0$ больше 1, эпидемия, вероятно, будет распространяться.\n",
"\n",
"$R_0$ — это характеристика самой болезни и не учитывает некоторые меры защиты, которые люди могут принимать для замедления пандемии. По мере развития пандемии мы можем оценить репродуктивное число $R_t$ в любой момент времени $t$. Было показано, что это число можно примерно оценить, взяв окно в 8 дней и вычислив $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"$R_0$ — это характеристика самой болезни и не учитывает некоторые защитные меры, которые люди могут принимать, чтобы замедлить пандемию. В ходе развития пандемии мы можем оценить репродукционное число $R_t$ в любой момент времени $t$. Показано, что это число можно приблизительно оценить, взяв окно в 8 дней и вычислив $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"где $I_t$ — количество новых инфицированных в день $t$.\n",
"\n",
"Давайте вычислим $R_t$ для наших данных по пандемии. Для этого мы возьмём скользящее окно из 8 значений `ninfected` и применим функцию для вычисления указанного выше отношения:\n"
"Давайте вычислим $R_t$ для наших данных о пандемии. Для этого мы возьмем скользящее окно из 8 значений `ninfected` и применим функцию для вычисления приведенного выше отношения:\n"
]
},
{
@ -2298,9 +2299,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Вы можете видеть, что на графике есть некоторые пропуски. Они могут быть вызваны либо значениями `NaN`, либо присутствием в наборе данных значений `inf`. `inf` может возникать из-за деления на 0, а `NaN` может означать отсутствие данных или отсутствие доступных данных для вычисления результата (например, в самом начале нашего фрейма, где еще нет доступного скользящего окна шириной 8). Чтобы сделать график более аккуратным, нам нужно заполнить эти значения с помощью функций `replace` и `fillna`.\n",
"Вы можете заметить, что на графике есть пробелы. Они могут быть вызваны либо значениями `NaN`, либо наличием значений `inf` в наборе данных. `inf` может возникать из-за деления на 0, а `NaN` может указывать на отсутствующие данные или на отсутствие данных, необходимых для вычисления результата (например, в самом начале нашего фрейма, где скользящее окно шириной 8 еще недоступно). Чтобы график выглядел лучше, нам нужно заполнить эти значения с помощью функций `replace` и `fillna`.\n",
"\n",
"Давайте подробнее рассмотрим начало пандемии. Мы также ограничим значения по оси y, чтобы показать только значения ниже 6, для лучшей наглядности, и нарисуем горизонтальную линию на уровне 1.\n"
"Давайте подробнее посмотрим на начало пандемии. Мы также ограничим значения по оси y, чтобы показывать только значения ниже 6, для лучшего восприятия, и нарисуем горизонтальную линию на уровне 1.\n"
]
},
{
@ -2331,7 +2332,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Еще одним интересным показателем пандемии является **производная**, или **ежедневная разница** в новых случаях. Это позволяет нам ясно видеть, когда пандемия растет или уменьшается.\n"
"Еще одним интересным показателем пандемии является **производная**, или **ежедневная разница** в новых случаях. Она позволяет нам ясно видеть, когда пандемия растет или снижается. \n"
]
},
{
@ -2360,7 +2361,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Учитывая, что в данных наблюдается множество колебаний, вызванных отчетностью, имеет смысл сгладить кривую, проведя скользящее среднее, чтобы получить общую картину. Давайте снова сосредоточимся на первых месяцах пандемии:\n"
"Учитывая тот факт, что данные сильно колеблются из-за отчетности, имеет смысл сгладить кривую, применив скользящее среднее, чтобы получить общую картину. Снова сосредоточимся на первых месяцах пандемии:\n"
]
},
{
@ -2390,26 +2391,27 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Задача\n",
"\n",
"Теперь пора поиграть с кодом и данными! Вот несколько предложений, с которыми вы можете поэкспериментировать:\n",
"* Посмотрите распространение пандемии в разных странах.\n",
"* Постройте графики $R_t$ для нескольких стран на одном графике для сравнения или сделайте несколько графиков рядом.\n",
"* Посмотрите, как количество смертей и выздоровлений коррелирует с числом заражённых случаев.\n",
"* Попробуйте узнать, сколько в среднем длится заболевание, визуально сопоставляя скорость заражения и скорость смертей, а также ищите аномалии. Возможно, вам придётся взглянуть на разные страны, чтобы это выяснить.\n",
"* Рассчитайте уровень смертности и как он меняется со временем. Возможно, стоит учесть длительность болезни в днях, чтобы сместить один временной ряд перед вычислениями.\n"
"Теперь пришло время поэкспериментировать с кодом и данными! Вот несколько предложений, с которыми вы можете поработать:\n",
"* Посмотреть распространение пандемии в разных странах.\n",
"* Построить графики $R_t$ для нескольких стран на одном графике для сравнения или сделать несколько графиков рядом.\n",
"* Посмотреть, как количество смертей и выздоровлений коррелирует с числом инфицированных.\n",
"* Попробовать выяснить, сколько обычно длится болезнь, визуально сопоставив уровень заражения и уровень смертности и наблюдая некоторые аномалии. Возможно, потребуется посмотреть данные по разным странам.\n",
"* Рассчитать смертность и как она меняется со временем. Возможно, стоит учитывать продолжительность болезни в днях, чтобы сдвинуть один временной ряд перед вычислениями.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## References\n",
"## Ссылки\n",
"\n",
"You may look at further studies of COVID epidemic spread in the following publications:\n",
"* [Sliding SIR Model for Rt Estimation during COVID Pandemic](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), blog post by [Dmitry Soshnikov](http://soshnikov.com)\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [Estimation of Time-Dependent Reproduction Number for Global COVID-19 Outbreak](https://www.preprints.org/manuscript/202006.0289/v1). *Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [Code for the above paper on GitHub](https://github.com/shwars/SlidingSIR)\n"
"Вы можете ознакомиться с дальнейшими исследованиями распространения эпидемии COVID в следующих публикациях:\n",
"* [Sliding SIR Model for Rt Estimation during COVID Pandemic](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), блог Дмитрия Сошникова [Dmitry Soshnikov](http://soshnikov.com)\n",
"* Т.Петрова, Д.Сошников, А.Грунин. [Оценка зависящего от времени репродуктивного числа для глобальной вспышки COVID-19](https://www.preprints.org/manuscript/202006.0289/v1). *Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [Код для указанной статьи на GitHub](https://github.com/shwars/SlidingSIR)\n"
]
},
{
@ -2423,7 +2425,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Отказ от ответственности**: \nЭтот документ был переведён с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, учитывайте, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на языке оригинала следует считать авторитетным источником. Для критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неверные толкования, возникшие в результате использования данного перевода.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Отказ от ответственности**:\nЭтот документ был переведен с использованием сервиса машинного перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
Чтобы начать работу, убедитесь, что у вас установлены NPM и Node на вашем компьютере. Установите зависимости (npm install),а затем запустите проект локально (npm run serve):
Чтобы начать, убедитесь, что у вас на компьютере установлены NPM и Node версии **>=20.0.0**. Установите зависимости (npm install), затем запустите проект локально (npm run serve):
## Настройка проекта
```
npm install
```
### Компиляция и автоматическая перезагрузка для разработки
### Компиляция и горячая перезагрузка для разработки
```
npm run serve
```
### Компиляция и минимизация для продакшена
### Компиляция и минификация для продакшена
```
npm run build
```
### Проверка и исправление файлов
### Проверка кода и исправление файлов
```
npm run lint
```
### Настройка конфигурации
См. [Справочник по конфигурации](https://cli.vuejs.org/config/).
Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Отказ от ответственности**:
Этот документ был переведен с использованием сервиса машинного перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.
Чтобы начать работу, убедитесь, что у вас установлены NPM и Node на вашем компьютере. Установите зависимости (npm install),а затем запустите проект локально (npm run serve):
Чтобы начать, убедитесь, что на вашем компьютере установлены NPM и Node версии **>=20.0.0**. Установите зависимости (npm install), затем запустите проект локально (npm run serve):
## Настройка проекта
```
npm install
```
### Компиляция и автоматическая перезагрузка для разработки
### Компиляция и горячая перезагрузка для разработки
```
npm run serve
```
### Компиляция и минимизация для продакшена
### Компиляция и минификация для продакшена
```
npm run build
```
### Проверка и исправление файлов
### Линтинг и исправление файлов
```
npm run lint
```
### Настройка конфигурации
См. [Справочник по конфигурации](https://cli.vuejs.org/config/).
Смотрите [Справочник по конфигурации](https://cli.vuejs.org/config/).
---
**Отказ от ответственности**:
Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Отказ от ответственности**:
Этот документ был переведен с использованием сервиса машинного перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.