[nl,he,vi] chore(i18n): sync translations

Sync translations with latest source changes.
Languages: Dutch [nl], Hebrew [he], Vietnamese [vi]
update-translations
localizeflow[bot] 2 months ago
parent 2e441d2f6e
commit dc977ffcce

@ -12,8 +12,8 @@
"language_code": "he"
},
"1-Introduction/01-defining-data-science/notebook.ipynb": {
"original_hash": "8f5eb7b3f7cc89e6d98fb32e1de65dec",
"translation_date": "2026-02-27T11:51:37+00:00",
"original_hash": "8eb07e3d899aaba7ea9c9ec9b5aa2850",
"translation_date": "2026-07-17T23:12:36+00:00",
"source_file": "1-Introduction/01-defining-data-science/notebook.ipynb",
"language_code": "he"
},
@ -42,8 +42,8 @@
"language_code": "he"
},
"1-Introduction/03-defining-data/README.md": {
"original_hash": "12339119c0165da569a93ddba05f9339",
"translation_date": "2025-09-05T23:27:16+00:00",
"original_hash": "7217c6f9eb464d4ff4bae6c036ab53cb",
"translation_date": "2026-07-17T23:17:07+00:00",
"source_file": "1-Introduction/03-defining-data/README.md",
"language_code": "he"
},
@ -65,6 +65,12 @@
"source_file": "1-Introduction/04-stats-and-probability/assignment.md",
"language_code": "he"
},
"1-Introduction/04-stats-and-probability/notebook.ipynb": {
"original_hash": "0c77e104b29c723287bf11b773fcc5d5",
"translation_date": "2026-07-17T23:13:43+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "he"
},
"1-Introduction/README.md": {
"original_hash": "696a8474a01054281704cbfb09148949",
"translation_date": "2025-08-28T15:45:30+00:00",
@ -108,8 +114,8 @@
"language_code": "he"
},
"2-Working-With-Data/07-python/notebook-covidspread.ipynb": {
"original_hash": "6335cccba01dc6ad7b15aba7a8c73f38",
"translation_date": "2026-02-27T11:53:06+00:00",
"original_hash": "da97f98781c7cd271063f605fe8d71d0",
"translation_date": "2026-07-17T23:12:04+00:00",
"source_file": "2-Working-With-Data/07-python/notebook-covidspread.ipynb",
"language_code": "he"
},
@ -192,14 +198,14 @@
"language_code": "he"
},
"3-Data-Visualization/13-meaningful-visualizations/solution/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-28T15:41:49+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T23:17:15+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/solution/README.md",
"language_code": "he"
},
"3-Data-Visualization/13-meaningful-visualizations/starter/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-28T15:42:03+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T23:17:12+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/starter/README.md",
"language_code": "he"
},

File diff suppressed because one or more lines are too long

@ -1,75 +1,79 @@
# הגדרת נתונים
|![סקצ'נוט מאת [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/03-DefiningData.png)|
|![ סקטנוט מאת [(@sketchthedocs)](https://sketchthedocs.dev) ](../../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)
## כיצד מתוארים נתונים
## [מבחן טרום-הרצאה](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## כיצד מתארים נתונים
### נתונים גולמיים
נתונים גולמיים הם נתונים שהגיעו ממקורם במצבם הראשוני ולא עברו ניתוח או ארגון. כדי להבין מה קורה במערך נתונים, יש לארגן אותו בפורמט שניתן להבנה על ידי בני אדם וגם על ידי הטכנולוגיה שבה הם עשויים להשתמש לניתוח נוסף. מבנה של מערך נתונים מתאר כיצד הוא מאורגן וניתן לסווג אותו כנתונים מובנים, לא מובנים וחצי מובנים. סוגי המבנה הללו ישתנו בהתאם למקור, אך בסופו של דבר יתאימו לשלוש הקטגוריות הללו.
נתונים גולמיים הם נתונים שהגיעו מהמקור שלהם במצבם הראשוני ולא עובדו או אורגנו. כדי להבין מה קורה עם מערך נתונים, יש לארגן אותו לפורמט שניתן להבין הן על ידי בני אדם והן על ידי הטכנולוגיה שהם עשויים להשתמש בה לניתוח נוסף. מבנה של מערך נתונים מתאר כיצד הוא מאורגן וניתן לסיווג למבנה מובנה, לא מובנה וחצי מובנה. סוגי מבנה אלו ישתנו בהתאם למקור אך בסופו של דבר יתאימו לאחת משלוש הקטגוריות האלו.
### נתונים כמותיים
נתונים כמותיים הם תצפיות מספריות בתוך מערך נתונים וניתן בדרך כלל לנתחם, למדוד אותם ולהשתמש בהם מתמטית. דוגמאות לנתונים כמותיים: אוכלוסיית מדינה, גובה של אדם או רווחים רבעוניים של חברה. עם ניתוח נוסף, ניתן להשתמש בנתונים כמותיים כדי לגלות מגמות עונתיות במדד איכות האוויר (AQI) או להעריך את ההסתברות לפקקי תנועה בשעות העומס ביום עבודה טיפוסי.
נתונים כמותיים הם תצפיות מספריות במערך נתונים וניתן בדרך כלל לנתחם, למדודם ולהשתמש בהם במתמטיקה. דוגמאות לנתונים כמותיים הן: אוכלוסיית מדינה, גובה של אדם או ההכנסות רבעוניות של חברה. עם ניתוח נוסף, ניתן להשתמש בנתונים כמותיים לגילוי מגמות עונתיות במדד איכות האוויר (AQI) או להערכת הסבירות לפקקי תנועה בשעת העומס בימי עבודה טיפוסיים.
### נתונים איכותניים
נתונים איכותניים, הידועים גם כנתונים קטגוריים, הם נתונים שלא ניתן למדוד באופן אובייקטיבי כמו תצפיות של נתונים כמותיים. מדובר בדרך כלל בפורמטים שונים של נתונים סובייקטיביים הלוכדים את האיכות של משהו, כמו מוצר או תהליך. לעיתים, נתונים איכותניים הם מספריים אך לא ישמשו בדרך כלל מתמטית, כמו מספרי טלפון או חותמות זמן. דוגמאות לנתונים איכותניים: תגובות על סרטונים, דגם וסוג של רכב או הצבע האהוב על החברים הקרובים שלך. ניתן להשתמש בנתונים איכותניים כדי להבין אילו מוצרים הצרכנים מעדיפים או לזהות מילות מפתח פופולריות בקורות חיים.
### נתונים איכותיים
נתונים איכותיים, הידועים גם כנתונים קטגוריים, הם נתונים שלא ניתן למדודם באופן אובייקטיבי כמו תצפיות של נתונים כמותיים. הם בדרך כלל בפורמטים שונים של נתונים סובייקטיביים שתופסים את האיכות של משהו, כמו מוצר או תהליך. לפעמים, נתונים איכותיים הם מספריים ולא בהכרח ישמשו במתמטיקה, כמו מספרי טלפון או חותמות זמן. דוגמאות לנתונים איכותיים הן: תגובות לווידאו, דגם הדגם של מכונית או הצבע האהוב על החברים הקרובים ביותר שלך. ניתן להשתמש בנתונים איכותיים כדי להבין אילו מוצרים הצרכנים מעדיפים או לזהות מילות מפתח פופולריות בקורות חיים לבקשות עבודה.
### נתונים מובנים
נתונים מובנים הם נתונים המאורגנים בשורות ועמודות, כאשר לכל שורה יש את אותו סט של עמודות. עמודות מייצגות ערך מסוג מסוים ויזוהו בשם המתאר מה הערך מייצג, בעוד שהשורות מכילות את הערכים בפועל. לעיתים קרובות יהיו לעמודות סט כללים או מגבלות על הערכים, כדי להבטיח שהערכים מייצגים את העמודה בצורה מדויקת. לדוגמה, דמיינו גיליון אלקטרוני של לקוחות שבו לכל שורה חייב להיות מספר טלפון, ומספרי הטלפון לעולם אינם מכילים תווים אלפביתיים. ייתכן שיוחלו כללים על עמודת מספר הטלפון כדי לוודא שהיא לעולם אינה ריקה ומכילה רק מספרים.
נתונים מובנים הם נתונים המאורגנים לשורות ועמודות, כאשר לכל שורה יהיה אותו מערך עמודות. עמודות מייצגות ערכים מסוג מסוים ויינתנו להם שמות המתארים את מה שהערך מייצג, בעוד שהשורות מכילות את הערכים בפועל. לעיתים לעמודות יש חוקים או הגבלות על הערכים, כדי לוודא שהערכים מייצגים את העמודה בדיוק. לדוגמה, דמיין גליון אלקטרוני של לקוחות שבו כל שורה חייבת לכלול מספר טלפון ומספרי הטלפון לא מכילים תווים אלפביתיים. ייתכנו חוקים על עמודת הטלפון כדי לוודא שהיא אינה ריקה ומכילה רק מספרים.
יתרון של נתונים מובנים הוא שניתן לארגן אותם כך שניתן יהיה לקשר אותם לנתונים מובנים אחרים. עם זאת, מכיוון שהנתונים מעוצבים להיות מאורגנים בצורה מסוימת, ביצוע שינויים במבנה הכללי שלהם עשוי לדרוש מאמץ רב. לדוגמה, הוספת עמודת דוא"ל לגיליון הלקוחות שלא יכולה להיות ריקה פירושה שתצטרכו להבין כיצד להוסיף ערכים אלה לשורות הקיימות של הלקוחות במערך הנתונים.
יתרון של נתונים מובנים הוא שניתן לארגן אותם כך שיהיו קשורים לנתונים מובנים אחרים. עם זאת, מכיוון שהנתונים מעוצבים להיות מאורגנים בצורה ספציפית, ביצוע שינויים במבנה הכולל שלהם עלול לדרוש מאמץ רב. לדוגמה, הוספת עמודת דואר אלקטרוני לגליון הלקוחות שמחייבת רכיב שאינו ריק פירושה שתצטרך למצוא דרך להוסיף ערכים אלו לשורות הלקוחות הקיימות במערך הנתונים.
דוגמאות לנתונים מובנים: גיליונות אלקטרוניים, מסדי נתונים יחסיים, מספרי טלפון, דפי חשבון בנק.
דוגמאות לנתונים מובנים: גליונות אלקטרוניים, מסדי נתונים יחסיים, מספרי טלפון, דפי חשבון בנק
### נתונים לא מובנים
נתונים לא מובנים בדרך כלל אינם ניתנים לסיווג לשורות או עמודות ואינם מכילים פורמט או סט כללים לעקוב אחריהם. מכיוון שלנתונים לא מובנים יש פחות מגבלות על המבנה שלהם, קל יותר להוסיף מידע חדש בהשוואה למערך נתונים מובנה. אם חיישן שמקליט נתונים על לחץ ברומטרי כל 2 דקות קיבל עדכון שמאפשר לו כעת למדוד ולהקליט טמפרטורה, אין צורך לשנות את הנתונים הקיימים אם הם לא מובנים. עם זאת, ייתכן שזה יגרום לניתוח או חקירה של סוג נתונים זה לקחת יותר זמן. לדוגמה, מדען שרוצה למצוא את הטמפרטורה הממוצעת של החודש הקודם מנתוני החיישן, אך מגלה שהחיישן הקליט "e" בחלק מהנתונים שלו כדי לציין שהוא היה מקולקל במקום מספר טיפוסי, מה שאומר שהנתונים אינם שלמים.
### נתונים לא מבנים
נתונים לא מבנים בדרך כלל לא ניתן לסווג לשורות או עמודות ואין להם פורמט או מערכת חוקים לעקוב אחריהם. מאחר שלנתונים לא מובנים יש פחות הגבלות על המבנה שלהם, קל יותר להוסיף מידע חדש בהשוואה למערך נתונים מובנה. אם חיישן שמודד לחץ ברומטרי כל 2 דקות קיבל עדכון שמאפשר לו למדוד ולרשום טמפרטורה, לא יהיה צורך לשנות את הנתונים הקיימים אם הם לא מובנים. עם זאת, הדבר עשוי להקשות או להאט את ניתוח הנתונים. לדוגמה, מדען שמנסה למצוא את הטמפרטורה הממוצעת בחודש האחרון מהנתונים של החיישנים, אבל מגלה שחיישן אחד רשום "e" במקום מספר טיפוסי כדי לציין שהוא היה מקולקל, מה שמשמעותו שהנתונים אינם שלמים.
דוגמאות לנתונים לא מובנים: קבצי טקסט, הודעות טקסט, קבצי וידאו.
דוגמאות לנתונים לא מבנים: קבצי טקסט, הודעות טקסט, קבצי וידאו
### נתונים חצי מובנים
נתונים חצי מובנים כוללים מאפיינים שהופכים אותם לשילוב של נתונים מובנים ולא מובנים. הם בדרך כלל אינם תואמים לפורמט של שורות ועמודות, אך מאורגנים בצורה שנחשבת מובנית ועשויים לעקוב אחר פורמט קבוע או סט כללים. המבנה ישתנה בין מקורות, כמו היררכיה מוגדרת היטב למשהו גמיש יותר שמאפשר שילוב קל של מידע חדש. מטא-נתונים הם אינדיקטורים שעוזרים להחליט כיצד הנתונים מאורגנים ונשמרים ויהיו להם שמות שונים, בהתאם לסוג הנתונים. שמות נפוצים למטא-נתונים הם תגיות, אלמנטים, ישויות ותכונות. לדוגמה, הודעת דוא"ל טיפוסית תכלול נושא, גוף וקבוצת נמענים וניתן לארגן אותה לפי מי שלח אותה או מתי היא נשלחה.
### חצי מובנים
נתונים חצי מובנים כוללים תכונות שהופכות אותם לשילוב בין נתונים מובנים לנתונים לא מובנים. הם אינם בדרך כלל תואמים לפורמט של שורות ועמודות אך מאורגנים בצורה שנחשבת למובנית ועשויים לעקוב אחר פורמט קבוע או מערכת חוקים. המבנה ישתנה בין מקורות, כמו היררכיה מוגדרת היטב עד למשהו גמיש המאפשר אינטגרציה קלה של מידע חדש. מטה-נתונים הם אינדיקטורים המסייעים להחליט כיצד הנתונים מאורגנים ומאוחסנים ויכללו שמות שונים, בהתאם לסוג הנתונים. שמות נפוצים למטה-נתונים הם תגיות, אלמנטים, ישויות ותכונות. לדוגמה, הודעת דואר אלקטרוני טיפוסית כוללת נושא, גוף וקבוצת נמענים, וניתן לארגן אותה לפי מי ומתי נשלחה.
דוגמאות לנתונים חצי מובנים: HTML, קבצי CSV, JavaScript Object Notation (JSON).
דוגמאות לנתונים חצי מובנים: HTML, קבצי CSV, JavaScript Object Notation (JSON)
## מקורות נתונים
מקור נתונים הוא המיקום הראשוני שבו הנתונים נוצרו או "חיים" וישתנה בהתאם לאופן ולזמן שבו נאספו. נתונים שנוצרו על ידי המשתמשים שלהם נקראים נתונים ראשוניים, בעוד שנתונים משניים מגיעים ממקור שאסף נתונים לשימוש כללי. לדוגמה, קבוצת מדענים שאוספת תצפיות ביער גשם תיחשב לנתונים ראשוניים, ואם הם יחליטו לשתף אותם עם מדענים אחרים, הם ייחשבו לנתונים משניים עבור אלה שמשתמשים בהם.
מקור נתונים הוא המיקום הראשוני בו נוצרו הנתונים, או איפה שהם "נמצאים", וישתנה בהתאם לאופן ומתי הם נאספו. נתונים שנוצרו על ידי משתמשיהם נחשבים לנתונים ראשוניים בעוד נתונים משניים מגיעים ממקור שאסף נתונים לשימוש כללי. לדוגמה, קבוצת מדענים שאוספת תצפיות ביער גשם תיחשב לראשונית ואם הם יחליטו לשתף את הנתונים עם מדענים אחרים, הנתונים יהיו משניים עבור אלו שמשתמשים בהם.
מסדי נתונים הם מקור נפוץ ומסתמכים על מערכת ניהול מסדי נתונים לאחסון ותחזוקת הנתונים, שבה משתמשים משתמשים בפקודות שנקראות שאילתות כדי לחקור את הנתונים. קבצים כמקורות נתונים יכולים להיות קבצי שמע, תמונה ווידאו וכן גיליונות אלקטרוניים כמו Excel. מקורות אינטרנט הם מיקום נפוץ לאחסון נתונים, שבו ניתן למצוא גם מסדי נתונים וגם קבצים. ממשקי תכנות יישומים, הידועים גם כ-APIs, מאפשרים למתכנתים ליצור דרכים לשתף נתונים עם משתמשים חיצוניים דרך האינטרנט, בעוד שתהליך של גרידת רשת (web scraping) שולף נתונים מדף אינטרנט. [השיעורים בעבודה עם נתונים](../../../../../../../../../2-Working-With-Data) מתמקדים כיצד להשתמש במקורות נתונים שונים.
מסדי נתונים הם מקור נפוץ ותלויים במערכת לניהול מסדי נתונים לאירוח ותחזוקת הנתונים שבה משתמשים מפעילים שאילתות כדי לחקור את הנתונים. קבצים כמקור נתונים יכולים לכלול קבצי שמע, תמונה ווידאו וכן גליונות אלקטרוניים כמו Excel. מקורות אינטרנט הם מיקום נפוץ לאירוח נתונים, שבו ניתן למצוא מסדי נתונים וכן קבצים. ממשקי תכנות אפליקציות, הידועים גם כ-APIs, מאפשרים למתכנתים ליצור דרכים לשתף נתונים עם משתמשים חיצוניים דרך האינטרנט, בעוד תהליך של גריפת רשת (web scraping) מחלץ נתונים מדף אינטרנט. [השיעורים בעבודה עם נתונים](../../../../../../../../../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)
## [מבחן לאחר ההרצאה](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). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. יש להחשיב את המסמך המקורי בשפתו הטבעית כמקור הסמכות. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אדם. אנו לא אחראים לכל אי-הבנה או פירוש שגוי הנובע מהשימוש בתרגום זה.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,8 +4,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# הקדמה להסתברות וסטטיסטיקה\n",
"במחברת זו, נשחק עם כמה מהקונספטים שדנו בהם בעבר. רבים מהקונספטים של הסתברות וסטטיסטיקה מיוצגים היטב בספריות מרכזיות לעיבוד נתונים בפייתון, כגון `numpy` ו-`pandas`.\n"
"# מבוא להסתברות וסטטיסטיקה\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,7 +80,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> אנו משתמשים בחבילה בשם [**Pandas**](https://pandas.pydata.org/) כאן לניתוח נתונים. נדבר יותר על Pandas ועל עבודה עם נתונים בפייתון בהמשך הקורס הזה.\n",
"> אנו משתמשים כאן בחבילה בשם [**Pandas**](https://pandas.pydata.org/) לניתוח נתונים. נדבר יותר על Pandas ועבודה עם נתונים בפייתון בהמשך הקורס הזה.\n",
"\n",
"בואו נחשב ערכי ממוצע לגיל, גובה ומשקל:\n"
]
@ -98,7 +98,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"עכשיו נתמקד בגובה, ונחשב סטיית תקן ושונות:\n"
"עכשיו בוא נתמקד בגובה, ונחשב סטיית תקן ושונות: \n"
]
},
{
@ -126,7 +126,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"בנוסף לממוצע, יש הגיון לבחון את הערך החציוני והרבעונים. ניתן להמחיש אותם באמצעות **תרשים תיבתית**:\n"
"בנוסף לממוצע, יש היגיון להסתכל על הערך החציוני ועל הרבעונים. ניתן להמחיש אותם באמצעות **תרשים תיבה**:\n"
]
},
{
@ -136,7 +136,7 @@
"outputs": [],
"source": [
"plt.figure(figsize=(10,2))\n",
"plt.boxplot(df['Height'].ffill(), vert=False, showmeans=True)\n",
"plt.boxplot(df['Height'].ffill(), orientation='horizontal', showmeans=True)\n",
"plt.grid(color='gray', linestyle='dotted')\n",
"plt.tight_layout()\n",
"plt.show()"
@ -146,7 +146,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"אנחנו יכולים גם להכין דיאגרמת קופסאות של תת-קבוצות ממערכת הנתונים שלנו, למשל, מקובצות לפי תפקיד השחקן.\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",
"עכשיו נחשב מרווחי אמון למשקלים והגדלים של שחקני בייסבול. נשתמש בקוד [מהדיון ב-stackoverflow הזה](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": [
"בוא נבחן את ההשערה ששחקני ה-First Basemen גבוהים יותר משחקני ה-Second Basemen. הדרך הפשוטה ביותר לעשות זאת היא לבחון את מרווחי הביטחון:\n"
"בואו נבדוק את ההשערה ששחקני הבסיס הראשון גבוהים יותר משחקני הבסיס השני. הדרך הפשוטה ביותר לעשות זאת היא לבדוק את מרווחי האמינות:\n"
]
},
{
@ -319,7 +319,7 @@
"source": [
"אנו יכולים לראות שהמרווחים אינם חופפים.\n",
"\n",
"דרך סטטיסטית נכונה יותר להוכחת ההשערה היא להשתמש ב**מבחן t של סטודנט**:\n"
"דרך סטטיסטית תקפה יותר להוכיח את ההשערה היא להשתמש ב**מבחן t של סטודנט**:\n"
]
},
{
@ -338,9 +338,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
ני הערכים שמוחזרים על ידי הפונקציה `ttest_ind` הם:\n",
"* ערך p ניתן להתייחס אליו כהסתברות ששתי ההתפלגויות הן בעלות ממוצע זהה. במקרה שלנו, הוא נמוך מאוד, מה שאומר שיש ראיות חזקות התומכות בכך שהבייסמנים הראשונים גבוהים יותר.\n",
"* ערך t הוא הערך הביניים של ההבדל הממוצע המנורמל שנעשה בו שימוש במבחן t, והוא מושווה לערך סף עבור ערך בטחון נתון.\n"
תי הערכים המוחזרים מהפונקציה `ttest_ind` הם:\n",
"* ערך p ניתן להחשיב כהסתברות ששתי התפלגויות בעלות ממוצע זהה. במקרה שלנו, הוא נמוך מאוד, מה שמצביע על עדות חזקה לכך שראשי הבסיס הראשונים גבוהים יותר.\n",
"* ערך t הוא הערך הביניים של הפרש הממוצע המנורמל שמשמש במבחן t, והוא מושווה מול ערך סף לערך ביטחון נתון.\n"
]
},
{
@ -349,7 +349,7 @@
"source": [
"## סימולציה של התפלגות נורמלית עם משפט הגבול המרכזי\n",
"\n",
גנרטור הפסאודו-אקראי בפייתון מיועד לספק לנו התפלגות אחידה. אם נרצה ליצור גנרטור להתפלגות נורמלית, נוכל להשתמש במשפט הגבול המרכזי. כדי לקבל ערך שמתפלג באופן נורמלי פשוט נחשב את הממוצע של דגימה שנוצרה באופן אחיד.\n"
מחולל הפסאודו-אקראי בפייתון מיועד לתת לנו התפלגות אחידה. אם נרצה ליצור מחולל להתפלגות נורמלית, נוכל להשתמש במשפט הגבול המרכזי. כדי לקבל ערך מתפלג נורמלית נחשב פשוט את הממוצע של מדגם שנוצר בהתפלגות אחידה.\n"
]
},
{
@ -373,9 +373,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## קורלציה ו-Evil Baseball Corp\n",
"## קורלציה וחברת הבייסבול הרעה \n",
"\n",
"קורלציה מאפשרת לנו למצוא קשרים בין רצפי נתונים. בדוגמת הצעצוע שלנו, נניח שיש תאגיד בייסבול מרושע שמשלם לשחקנים שלו בהתאם לגובהם - ככל שהשחקן גבוה יותר, הוא מקבל יותר כסף. נניח שיש שכר בסיס של 1000$, ובונוס נוסף מ-0$ עד 100$, תלוי בגובה. ניקח את השחקנים האמיתיים מ-MLB, ונחשב את המשכורות הדמיוניות שלהם:\n"
"קורלציה מאפשרת לנו למצוא קשרים בין רצפי נתונים. בדוגמה הפשוטה שלנו, נתظاهر שיש חברה רעה לבייסבול שמשלמת לשחקניה לפי הגובה שלהם - ככל שהשחקן גבוה יותר, כך הוא מקבל יותר כסף. נניח שקיים שכר בסיס של 1000$, ותוספת בונוס שנעה בין 0 ל-100$, בהתאם לגובה. ניקח את השחקנים האמיתיים מה-MLB, ונחשב את המשכורות המדומיינות שלהם: \n"
]
},
{
@ -384,7 +384,7 @@
"metadata": {},
"outputs": [],
"source": [
"heights = df['Height'].fillna(method='pad')\n",
"heights = df['Height'].ffill()\n",
"salaries = 1000+(heights-heights.min())/(heights.max()-heights.mean())*100\n",
"print(list(zip(heights, salaries))[:10])"
]
@ -393,7 +393,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"כעת נחשב את הקווריאנס והמתאם של הרצפים הללו. `np.cov` ייתן לנו את ה\"matrix הקווריאנס\", שהוא הרחבה של הקווריאנס למספר משתנים. האלמנט $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"
]
},
{
@ -507,14 +507,14 @@
"metadata": {},
"outputs": [],
"source": [
"np.corrcoef(df['Height'].fillna(method='pad'), df['Weight'])"
"np.corrcoef(df['Height'].ffill(), df['Weight'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"קיימת אכן מתאם, אך לא כזה חזק כמו בדוגמה המלאכותית שלנו. אכן, אם נסתכל על תרשים פיזור של ערך אחד כנגד השני, הקשר יהיה הרבה פחות ברור:\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"
]
}
],
@ -568,12 +568,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
},
"coopTranslator": {
"original_hash": "0f899e3c5019f948e7c787b22f3b2304",
"translation_date": "2026-01-16T16:44:10+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "he"
}
},
"nbformat": 4,

@ -8,7 +8,7 @@
"\n",
"## טעינת נתונים\n",
"\n",
"נשתמש בנתונים על אנשים שנדבקו בקורונה, הניתנים על ידי [המרכז למדעי מערכות והנדסה](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/). מאגר הנתונים זמין ב-[מאגר הגיטהאב הזה](https://github.com/CSSEGISandData/COVID-19).\n"
]
},
{
@ -27,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"אנו יכולים לטעון את הנתונים העדכניים ביותר ישירות מגיטהאב באמצעות `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"
]
},
{
@ -282,9 +282,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## להבחין במשמעות הנתונים\n",
"## הבנת הנתונים\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` כל טבלאות הנתונים ממוספרות כעת לפי מדינה/אזור. לכן נוכל לגשת לנתונים עבור מדינה מסוימת על ידי שימוש ב-`.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,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",
"כאשר $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"
"בואו נחושב את $R_t$ עבור נתוני המגפה שלנו. לשם כך, נלקח חלון נייד של 8 ערכי `ninfected`, וניישם את הפונקציה לחישוב היחס שלמעלה:\n"
]
},
{
@ -2298,9 +2299,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"אתה יכול לראות שיש כמה פערים בגרף. אלה יכולים להיגרם או מ־`NaN`, או מֵערכי `inf` שנמצאים במערך הנתונים. `inf` יכול להיגרם מחלוקה באפס, ו־`NaN` יכול להצביע על נתונים חסרים, או שאין נתונים זמינים לחישוב התוצאה (כמו בהתחלה מאוד של המסגרת שלנו, שבה חלון רולינג ברוחב 8 עדיין לא זמין). כדי להפוך את הגרף ליותר טוב, נצטרך למלא את הערכים האלה באמצעות הפונקציות `replace` ו־`fillna`.\n",
"תוכלו לראות שיש כמה פערים בגרף. הפערים יכולים להיגרם על ידי `NaN`, או אם יש ערכי `inf` שנמצאים במערכת הנתונים. ערכי `inf` יכולים להיגרם מחלוקה באפס, ו-`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,14 +2391,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Challenge\n",
"\n",
"עכשיו הגיע הזמן שתשחק יותר עם הקוד והנתונים! הנה כמה הצעות שאתה יכול לנסות:\n",
"* לראות את התפשטות המגפה במדינות שונות.\n",
"* לתכנן גרפים של $R_t$ למספר מדינות בגרף אחד להשוואה, או ליצור מספר גרפים אחד ליד השני\n",
"* לראות איך מספר המתים והנרפאים מתקשרים עם מספר המקרים הנדבקים.\n",
"* לנסות לגלות כמה זמן מחלה טיפוסית נמשכת על ידי השוואה ויזואלית בין קצב ההדבקה לקצב המוות ולחפש אנומליות כלשהן. ייתכן שתצטרך לבדוק מדינות שונות כדי לגלות זאת.\n",
"* לחשב את שיעור התמותה ואיך הוא משתנה לאורך זמן. ייתכן שתרצה לקחת בחשבון את משך המחלה בימים כדי להזיז סדרה אחת של זמן לפני ביצוע החישובים.\n"
"## אתגר\n",
"\n",
"עכשיו הזמן שלך לשחק יותר עם הקוד והנתונים! הנה כמה הצעות שאתה יכול להתנסות בהן:\n",
"* לראות את התפשטות המגיפה במדינות שונות.\n",
"* לשרטט גרפים של $R_t$ עבור מספר מדינות בגרף אחד להשוואה, או ליצור כמה גרפים צמודים זה לזה\n",
"* לראות כיצד מספר המתים ומספר המחלימים מתואמים עם מספר המקרים הנדבקים.\n",
"* לנסות לגלות כמה זמן מחלה טיפוסית נמשכת על ידי התאמה ויזואלית בין שיעור ההדבקה ושיעור המתים וחיפוש אנומליות. ייתכן שתצטרך לבדוק מדינות שונות כדי לגלות זאת.\n",
"* לחשב את שיעור התמותה וכיצד הוא משתנה עם הזמן. ייתכן שתרצה לקחת בחשבון את אורך המחלה בימים כדי להזיז סדרת זמן אחת לפני ביצוע החישובים\n"
]
},
{
@ -2406,10 +2408,10 @@
"source": [
"## הפניות\n",
"\n",
"אתה יכול לעיין במחקרים נוספים על התפשטות מגפת הקורונה בפרסומים הבאים:\n",
"* [מודל SIR מחליק לאמידת Rt במהלך מגפת הקורונה](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), פוסט בבלוג מאת [דמיטרי סושניקוב](http://soshnikov.com)\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [אמידת מספר רבייה תלוי זמן להתפרצות הקורונה העולמית](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"
"ניתן לעיין במחקרים נוספים על התפשטות מגפת הקורונה בפרסומים הבאים:\n",
"* [מודל SIR גלגל להערכת Rt במהלך מגפת הקורונה](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), פוסט בבלוג מאת [דמיטרי סושניקוב](http://soshnikov.com)\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [הערכת מספר השכפול תלוי הזמן להתפרצות העולמית של 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"
]
}
],

@ -1,31 +1,33 @@
# פרויקט ויזואליזציה של נתונים - Dangerous Liaisons
# פרויקט ויזואליזציית נתונים של Dangerous Liaisons
כדי להתחיל, יש לוודא ש-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
```
### התאמה אישית של ההגדרות
### התאמת תצורה
ראה [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). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. יש להחשיב את המסמך המקורי בשפתו הטבעית כמקור הסמכות. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אדם. אנו לא אחראים לכל אי-הבנה או פירוש שגוי הנובע מהשימוש בתרגום זה.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,31 +1,33 @@
# פרויקט ויזואליזציה של נתונים - Dangerous Liaisons
# פרויקט ויזואליזציית נתונים קשרים מסוכנים
כדי להתחיל, עליך לוודא ש-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
```
### התאמה אישית של ההגדרות
ראה [Configuration Reference](https://cli.vuejs.org/config/).
### התאם אישית את ההגדרות
עיין ב-[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). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. יש להחשיב את המסמך המקורי בשפתו הטבעית כמקור הסמכות. למידע קריטי מומלץ להשתמש בתרגום מקצועי על ידי מתרגם אדם. אנו לא אחראים לכל אי-הבנה או פירוש שגוי הנובע מהשימוש בתרגום זה.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -12,8 +12,8 @@
"language_code": "nl"
},
"1-Introduction/01-defining-data-science/notebook.ipynb": {
"original_hash": "8f5eb7b3f7cc89e6d98fb32e1de65dec",
"translation_date": "2026-02-27T11:49:40+00:00",
"original_hash": "8eb07e3d899aaba7ea9c9ec9b5aa2850",
"translation_date": "2026-07-17T23:10:02+00:00",
"source_file": "1-Introduction/01-defining-data-science/notebook.ipynb",
"language_code": "nl"
},
@ -42,8 +42,8 @@
"language_code": "nl"
},
"1-Introduction/03-defining-data/README.md": {
"original_hash": "12339119c0165da569a93ddba05f9339",
"translation_date": "2025-09-05T23:07:04+00:00",
"original_hash": "7217c6f9eb464d4ff4bae6c036ab53cb",
"translation_date": "2026-07-17T23:16:36+00:00",
"source_file": "1-Introduction/03-defining-data/README.md",
"language_code": "nl"
},
@ -65,6 +65,12 @@
"source_file": "1-Introduction/04-stats-and-probability/assignment.md",
"language_code": "nl"
},
"1-Introduction/04-stats-and-probability/notebook.ipynb": {
"original_hash": "0c77e104b29c723287bf11b773fcc5d5",
"translation_date": "2026-07-17T23:11:10+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "nl"
},
"1-Introduction/README.md": {
"original_hash": "696a8474a01054281704cbfb09148949",
"translation_date": "2025-08-28T15:45:21+00:00",
@ -108,8 +114,8 @@
"language_code": "nl"
},
"2-Working-With-Data/07-python/notebook-covidspread.ipynb": {
"original_hash": "6335cccba01dc6ad7b15aba7a8c73f38",
"translation_date": "2026-02-27T11:51:07+00:00",
"original_hash": "da97f98781c7cd271063f605fe8d71d0",
"translation_date": "2026-07-17T23:09:31+00:00",
"source_file": "2-Working-With-Data/07-python/notebook-covidspread.ipynb",
"language_code": "nl"
},
@ -192,14 +198,14 @@
"language_code": "nl"
},
"3-Data-Visualization/13-meaningful-visualizations/solution/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-28T15:41:42+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T23:16:43+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/solution/README.md",
"language_code": "nl"
},
"3-Data-Visualization/13-meaningful-visualizations/starter/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-28T15:41:57+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T23:16:39+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/starter/README.md",
"language_code": "nl"
},

File diff suppressed because one or more lines are too long

@ -1,47 +1,47 @@
# Definiëren van Data
# Data Definiëren
|![ Sketchnote door [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)|
|:---:|
|Definiëren van Data - _Sketchnote door [@nitya](https://twitter.com/nitya)_ |
|Data Definiëren - _Sketchnote door [@nitya](https://twitter.com/nitya)_ |
Data zijn feiten, informatie, observaties en metingen die worden gebruikt om ontdekkingen te doen en om onderbouwde beslissingen te nemen. Een datapunt is een enkele eenheid van data binnen een dataset, wat een verzameling van datapunten is. Datasets kunnen in verschillende formaten en structuren voorkomen en zijn meestal gebaseerd op de bron, oftewel waar de data vandaan komt. Bijvoorbeeld, de maandelijkse inkomsten van een bedrijf kunnen in een spreadsheet staan, terwijl hartslaggegevens per uur van een smartwatch in [JSON](https://stackoverflow.com/a/383699)-formaat kunnen zijn. Het is gebruikelijk dat datawetenschappers met verschillende soorten data binnen een dataset werken.
Data is feiten, informatie, observaties en metingen die worden gebruikt om ontdekkingen te doen en om geïnformeerde beslissingen te ondersteunen. Een datapunt is een enkele eenheid data binnen een dataset, wat een verzameling datapoints is. Datasets kunnen in verschillende formaten en structuren voorkomen en zullen meestal gebaseerd zijn op de bron, of waar de data vandaan komt. Bijvoorbeeld, de maandelijkse inkomsten van een bedrijf kunnen in een spreadsheet staan, maar uurlijkse hartslagdata van een smartwatch kunnen in [JSON](https://stackoverflow.com/a/383699) formaat zijn. Het is gebruikelijk dat datawetenschappers met verschillende soorten data binnen een dataset werken.
Deze les richt zich op het identificeren en classificeren van data op basis van de kenmerken en bronnen ervan.
Deze les richt zich op het identificeren en classificeren van data op basis van de kenmerken en de bronnen.
## [Pre-Lecture Quiz](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## Hoe Data wordt Beschreven
## [Pre-Lectuur Quiz](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## Hoe Data Wordt Beschreven
### Ruwe Data
Ruwe data is data die rechtstreeks van de bron komt in de oorspronkelijke staat en nog niet is geanalyseerd of georganiseerd. Om te begrijpen wat er met een dataset gebeurt, moet deze worden georganiseerd in een formaat dat begrijpelijk is voor zowel mensen als de technologie die ze gebruiken om het verder te analyseren. De structuur van een dataset beschrijft hoe deze is georganiseerd en kan worden geclassificeerd als gestructureerd, ongestructureerd of semi-gestructureerd. Deze structuren variëren afhankelijk van de bron, maar vallen uiteindelijk in een van deze drie categorieën.
Ruwe data is data die afkomstig is van de bron in de oorspronkelijke staat en niet is geanalyseerd of georganiseerd. Om te begrijpen wat er gebeurt met een dataset, moet deze worden georganiseerd in een formaat dat zowel door mensen als de technologie die ze mogelijk gebruiken om het verder te analyseren, begrepen kan worden. De structuur van een dataset beschrijft hoe het georganiseerd is en kan worden geclassificeerd als gestructureerd, ongestructureerd en semi-gestructureerd. Deze soorten structuren zullen variëren, afhankelijk van de bron maar zullen uiteindelijk in deze drie categorieën passen.
### Kwantitatieve Data
Kwantitatieve data zijn numerieke observaties binnen een dataset en kunnen doorgaans worden geanalyseerd, gemeten en wiskundig gebruikt. Enkele voorbeelden van kwantitatieve data zijn: de bevolking van een land, de lengte van een persoon of de kwartaalomzet van een bedrijf. Met aanvullende analyses kan kwantitatieve data worden gebruikt om seizoensgebonden trends in de luchtkwaliteitsindex (AQI) te ontdekken of de kans op spitsverkeer op een typische werkdag te schatten.
Kwantitatieve data zijn numerieke observaties binnen een dataset en kunnen typisch worden geanalyseerd, gemeten en wiskundig gebruikt. Enkele voorbeelden van kwantitatieve data zijn: de bevolking van een land, de lengte van een persoon of de kwartaalomzet van een bedrijf. Met wat extra analyse kan kwantitatieve data worden gebruikt om seizoensgebonden trends van de Luchtkwaliteitsindex (AQI) te ontdekken of de waarschijnlijkheid van spitsuurverkeer op een typische werkdag te schatten.
### Kwalitatieve Data
Kwalitatieve data, ook wel categorische data genoemd, is data die niet objectief kan worden gemeten zoals kwantitatieve data. Het is over het algemeen subjectieve data in verschillende formaten die de kwaliteit van iets vastleggen, zoals een product of proces. Soms is kwalitatieve data numeriek, maar wordt het niet wiskundig gebruikt, zoals telefoonnummers of tijdstempels. Voorbeelden van kwalitatieve data zijn: videocommentaren, het merk en model van een auto of de favoriete kleur van je beste vrienden. Kwalitatieve data kan worden gebruikt om te begrijpen welke producten consumenten het beste vinden of om populaire trefwoorden in sollicitaties te identificeren.
Kwalitatieve data, ook bekend als categorische data, zijn data die niet objectief kunnen worden gemeten zoals observaties van kwantitatieve data. Het is over het algemeen verschillende vormen van subjectieve data die de kwaliteit van iets vastleggen, zoals een product of proces. Soms is kwalitatieve data numeriek en wordt het normaal gesproken niet wiskundig gebruikt, zoals telefoonnummers of tijdstempels. Enkele voorbeelden van kwalitatieve data zijn: videocomentaren, het merk en model van een auto of de favoriete kleur van je beste vrienden. Kwalitatieve data kan worden gebruikt om te begrijpen welke producten consumenten het leukst vinden of het identificeren van populaire zoekwoorden in sollicitatieresumes.
### Gestructureerde Data
Gestructureerde data is data die is georganiseerd in rijen en kolommen, waarbij elke rij dezelfde set kolommen heeft. Kolommen vertegenwoordigen een waarde van een bepaald type en worden geïdentificeerd met een naam die beschrijft wat de waarde vertegenwoordigt, terwijl rijen de daadwerkelijke waarden bevatten. Kolommen hebben vaak een specifieke set regels of beperkingen voor de waarden om ervoor te zorgen dat de waarden de kolom nauwkeurig vertegenwoordigen. Stel je bijvoorbeeld een spreadsheet met klanten voor, waarbij elke rij een telefoonnummer moet hebben en telefoonnummers nooit alfabetische tekens bevatten. Er kunnen regels worden toegepast op de kolom met telefoonnummers om ervoor te zorgen dat deze nooit leeg is en alleen cijfers bevat.
Gestructureerde data is data die is georganiseerd in rijen en kolommen, waarbij elke rij dezelfde set kolommen heeft. Kolommen representeren een waarde van een bepaald type en worden geïdentificeerd met een naam die beschrijft wat de waarde vertegenwoordigt, terwijl rijen de daadwerkelijke waarden bevatten. Kolommen hebben vaak een specifiek stel regels of beperkingen op de waarden om ervoor te zorgen dat de waarden de kolom nauwkeurig vertegenwoordigen. Stel bijvoorbeeld een spreadsheet voor van klanten waar elke rij een telefoonnummer moet hebben en de telefoonnummers nooit alfabetische tekens bevatten. Er kunnen regels worden toegepast op de telefoonnummerkolom om ervoor te zorgen dat deze nooit leeg is en alleen nummers bevat.
Een voordeel van gestructureerde data is dat het zo kan worden georganiseerd dat het gerelateerd kan worden aan andere gestructureerde data. Omdat de data echter is ontworpen om op een specifieke manier te worden georganiseerd, kan het veel moeite kosten om wijzigingen aan te brengen in de algehele structuur. Stel bijvoorbeeld dat je een e-mailkolom wilt toevoegen aan de klanten-spreadsheet die niet leeg mag zijn; dan moet je bedenken hoe je deze waarden toevoegt aan de bestaande rijen klanten in de dataset.
Een voordeel van gestructureerde data is dat het zo georganiseerd kan worden dat het gerelateerd kan worden aan andere gestructureerde data. Echter, omdat de data is ontworpen om op een specifieke manier georganiseerd te worden, kan het veel moeite kosten om wijzigingen aan te brengen in de algemene structuur. Bijvoorbeeld, het toevoegen van een e-mailkolom aan de klantenspreadsheet die niet leeg mag zijn betekent dat je moet uitzoeken hoe je deze waarden aan de bestaande rijen van klanten in de dataset toevoegt.
Voorbeelden van gestructureerde data: spreadsheets, relationele databases, telefoonnummers, bankafschriften.
Voorbeelden van gestructureerde data: spreadsheets, relationele databases, telefoonnummers, bankafschriften
### Ongestructureerde Data
Ongestructureerde data kan meestal niet worden gecategoriseerd in rijen of kolommen en bevat geen formaat of set regels om te volgen. Omdat ongestructureerde data minder beperkingen heeft op de structuur, is het gemakkelijker om nieuwe informatie toe te voegen in vergelijking met een gestructureerde dataset. Als een sensor die elke 2 minuten gegevens over luchtdruk vastlegt een update ontvangt waarmee het nu ook temperatuur kan meten en registreren, hoeft de bestaande data niet te worden aangepast als deze ongestructureerd is. Dit kan echter betekenen dat het analyseren of onderzoeken van dit type data meer tijd kost. Stel bijvoorbeeld dat een wetenschapper de gemiddelde temperatuur van de vorige maand wil berekenen op basis van de gegevens van de sensor, maar ontdekt dat de sensor een "e" heeft geregistreerd in sommige gegevens om aan te geven dat deze defect was in plaats van een typisch getal. Dit betekent dat de data onvolledig is.
Ongestructureerde data kan meestal niet worden gecategoriseerd in rijen of kolommen en bevat geen formaat of reeks regels om te volgen. Omdat ongestructureerde data minder beperkingen heeft op zijn structuur, is het gemakkelijker om nieuwe informatie toe te voegen in vergelijking met een gestructureerde dataset. Als een sensor die data meet over barometrische druk elke 2 minuten een update ontvangt waardoor het nu temperatuur kan meten en registreren, is het niet nodig de bestaande data aan te passen als het ongestructureerd is. Dit kan er echter voor zorgen dat het analyseren of onderzoeken van dit type data langer duurt. Bijvoorbeeld, een wetenschapper die het gemiddelde van de temperatuur van de vorige maand wil vinden vanuit de sensordata, maar ontdekt dat de sensor een "e" heeft geregistreerd in sommige data om aan te geven dat hij stuk was in plaats van een typisch nummer, wat betekent dat de data incompleet is.
Voorbeelden van ongestructureerde data: tekstbestanden, tekstberichten, videobestanden.
Voorbeelden van ongestructureerde data: tekstbestanden, tekstberichten, videobestanden
### Semi-gestructureerde Data
Semi-gestructureerde data heeft kenmerken die het een combinatie maken van gestructureerde en ongestructureerde data. Het voldoet meestal niet aan een formaat van rijen en kolommen, maar is georganiseerd op een manier die als gestructureerd wordt beschouwd en kan een vast formaat of een set regels volgen. De structuur varieert per bron, van een goed gedefinieerde hiërarchie tot iets flexibelers dat eenvoudige integratie van nieuwe informatie mogelijk maakt. Metadata zijn indicatoren die helpen bepalen hoe de data is georganiseerd en opgeslagen en hebben verschillende namen, afhankelijk van het type data. Veelvoorkomende namen voor metadata zijn tags, elementen, entiteiten en attributen. Een typisch e-mailbericht heeft bijvoorbeeld een onderwerp, een hoofdtekst en een set ontvangers en kan worden georganiseerd op basis van wie het heeft verzonden of wanneer het is verzonden.
### Semi-gestructureerd
Semi-gestructureerde data heeft kenmerken die het een combinatie maken van gestructureerde en ongestructureerde data. Het voldoet meestal niet aan het formaat van rijen en kolommen, maar is georganiseerd op een manier die als gestructureerd wordt beschouwd en kan een vast formaat of reeks regels volgen. De structuur kan variëren tussen bronnen, van een goed gedefinieerde hiërarchie tot iets flexibels dat gemakkelijke integratie van nieuwe informatie toestaat. Metadata zijn indicatoren die helpen te bepalen hoe de data is georganiseerd en opgeslagen en zullen verschillende namen hebben, afhankelijk van het type data. Veelvoorkomende namen voor metadata zijn tags, elementen, entiteiten en attributen. Bijvoorbeeld, een typische e-mail heeft een onderwerp, inhoud en een set ontvangers en kan worden georganiseerd op wie of wanneer het is verzonden.
Voorbeelden van semi-gestructureerde data: HTML, CSV-bestanden, JavaScript Object Notation (JSON).
Voorbeelden van semi-gestructureerde data: HTML, CSV-bestanden, JavaScript Object Notation (JSON)
## Bronnen van Data
Een databron is de oorspronkelijke locatie waar de data is gegenereerd of waar het "leeft" en varieert afhankelijk van hoe en wanneer het is verzameld. Data die door gebruikers wordt gegenereerd, wordt primaire data genoemd, terwijl secundaire data afkomstig is van een bron die data heeft verzameld voor algemeen gebruik. Bijvoorbeeld, een groep wetenschappers die observaties in een regenwoud verzamelt, wordt als primair beschouwd, en als ze besluiten dit te delen met andere wetenschappers, wordt het als secundair beschouwd voor degenen die het gebruiken.
Een databron is de oorspronkelijke locatie waar de data is gegenereerd, of waar het "woont" en zal variëren afhankelijk van hoe en wanneer het werd verzameld. Data gegenereerd door de gebruiker(s) worden primaire data genoemd, terwijl secundaire data afkomstig is van een bron die gegevens heeft verzameld voor algemeen gebruik. Bijvoorbeeld, een groep wetenschappers die observaties verzamelt in een regenwoud wordt als primair beschouwd en als ze het met andere wetenschappers delen wordt het beschouwd als secundair voor degenen die het gebruiken.
Databases zijn een veelvoorkomende bron en vertrouwen op een databasebeheersysteem om de data te hosten en te onderhouden, waarbij gebruikers opdrachten, queries genoemd, gebruiken om de data te verkennen. Bestanden als databronnen kunnen audio-, beeld- en videobestanden zijn, evenals spreadsheets zoals Excel. Internetbronnen zijn een veelvoorkomende locatie voor het hosten van data, waar zowel databases als bestanden te vinden zijn. Application programming interfaces, ook wel API's genoemd, stellen programmeurs in staat om manieren te creëren om data te delen met externe gebruikers via het internet, terwijl het proces van webscraping data van een webpagina extraheert. De [lessen in Werken met Data](../../../../../../../../../2-Working-With-Data) richten zich op hoe je verschillende databronnen kunt gebruiken.
Databases zijn een veelvoorkomende bron en vertrouwen op een databasebeheersysteem om de data te hosten en te onderhouden waar gebruikers commando's genaamd queries gebruiken om de data te verkennen. Bestanden als databronnen kunnen audio-, beeld- en videobestanden zijn evenals spreadsheets zoals Excel. Internetbronnen zijn een veelvoorkomende locatie voor het hosten van data, waar databases en bestanden te vinden zijn. Application programming interfaces, ook wel API's genoemd, stellen programmeurs in staat manieren te creëren om data te delen met externe gebruikers via het internet, terwijl het proces van web scraping data van een webpagina extraheert. De [lessen in Werken met Data](../../../../../../../../../2-Working-With-Data) richten zich op hoe verschillende databronnen te gebruiken.
## Conclusie
@ -54,16 +54,18 @@ In deze les hebben we geleerd:
## 🚀 Uitdaging
Kaggle is een uitstekende bron voor open datasets. Gebruik de [dataset zoektool](https://www.kaggle.com/datasets) om enkele interessante datasets te vinden en classificeer 3-5 datasets volgens deze criteria:
Kaggle is een uitstekende bron van open datasets. Gebruik de [dataset zoektool](https://www.kaggle.com/datasets) om interessante datasets te vinden en classificeer 3-5 datasets volgens dit criterium:
- Is de data kwantitatief of kwalitatief?
- Is de data gestructureerd, ongestructureerd of semi-gestructureerd?
## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## [Post-lectuur quiz](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## Review & Zelfstudie
- Deze Microsoft Learn-eenheid, getiteld [Classificeer je Data](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data), biedt een gedetailleerd overzicht van gestructureerde, semi-gestructureerde en ongestructureerde data.
- Deze Microsoft Learn-unit, getiteld [Identificeer dataformaten](https://learn.microsoft.com/en-us/training/modules/explore-core-data-concepts/2-data-formats?pivots=text) heeft een gedetailleerde uiteenzetting van gestructureerde, semi-gestructureerde en ongestructureerde data.
## Opdracht
@ -71,5 +73,7 @@ Kaggle is een uitstekende bron voor open datasets. Gebruik de [dataset zoektool]
---
**Disclaimer**:
Dit document is vertaald met behulp van de AI-vertalingsservice [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u zich ervan bewust te zijn dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Disclaimer**:
Dit document is vertaald met behulp van de AI vertaaldienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,8 +4,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Inleiding tot Kansrekening en Statistiek\n",
"In dit notitieboek gaan we experimenteren met enkele van de concepten die we eerder hebben besproken. Veel concepten uit de kansrekening en statistiek zijn goed vertegenwoordigd in belangrijke bibliotheken voor gegevensverwerking in Python, zoals `numpy` en `pandas`.\n"
"# Introductie tot Kansrekening en Statistiek\n",
"In deze notitieboek gaan we experimenteren met enkele van de concepten die we eerder hebben besproken. Veel concepten uit de kansrekening en statistiek worden goed ondersteund in grote bibliotheken voor gegevensverwerking in Python, zoals `numpy` en `pandas`.\n"
]
},
{
@ -24,7 +24,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Willekeurige variabelen en verdelingen\n",
"## Willekeurige Variabelen en Verdelingen\n",
"Laten we beginnen met het trekken van een steekproef van 30 waarden uit een uniforme verdeling van 0 tot 9. We zullen ook het gemiddelde en de variantie berekenen.\n"
]
},
@ -61,9 +61,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Analyseren van echte gegevens\n",
"## Reële Gegevens Analyseren\n",
"\n",
"Gemiddelde en variantie zijn zeer belangrijk bij het analyseren van gegevens uit de echte wereld. Laten we de gegevens over honkbalspelers laden van [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
"Gemiddelde en variantie zijn erg belangrijk bij het analyseren van gegevens uit de echte wereld. Laten we de gegevens over honkbalspelers laden van [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": [
"> We gebruiken hier een package genaamd [**Pandas**](https://pandas.pydata.org/) voor data-analyse. We zullen later in deze cursus meer praten over Pandas en werken met data in Python.\n",
"> We gebruiken hier een pakket genaamd [**Pandas**](https://pandas.pydata.org/) voor data-analyse. We zullen later in deze cursus meer praten over Pandas en het werken met data in Python.\n",
"\n",
"Laten we gemiddelde waarden berekenen voor leeftijd, lengte en gewicht:\n"
"Laten we de gemiddelde waarden berekenen voor leeftijd, lengte en gewicht:\n"
]
},
{
@ -98,7 +98,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Laten we ons nu richten op de lengte, en standaarddeviatie en variantie berekenen:\n"
"Laten we ons nu concentreren op de lengte, en de standaardafwijking en variantie berekenen: \n"
]
},
{
@ -126,7 +126,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Naast het gemiddelde is het zinvol om ook naar de mediaan en kwartielen te kijken. Deze kunnen worden weergegeven met een **boxplot**:\n"
"Naast het gemiddelde is het zinvol om naar de mediaanwaarde en kwartielen te kijken. Deze kunnen worden weergegeven met een **boxplot**:\n"
]
},
{
@ -136,7 +136,7 @@
"outputs": [],
"source": [
"plt.figure(figsize=(10,2))\n",
"plt.boxplot(df['Height'].ffill(), vert=False, showmeans=True)\n",
"plt.boxplot(df['Height'].ffill(), orientation='horizontal', showmeans=True)\n",
"plt.grid(color='gray', linestyle='dotted')\n",
"plt.tight_layout()\n",
"plt.show()"
@ -165,9 +165,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Opmerking**: Dit diagram suggereert dat gemiddeld de lengtes van eerst base-spelers hoger zijn dan de lengtes van tweede base-spelers. Later zullen we leren hoe we deze hypothese formeler kunnen testen en hoe we kunnen aantonen dat onze gegevens statistisch significant zijn om dit te laten zien. \n",
"> **Opmerking**: Dit diagram suggereert dat de lengtes van eerst base spelers gemiddeld hoger zijn dan die van tweedebase spelers. Later zullen we leren hoe we deze hypothese formeler kunnen testen, en hoe we kunnen aantonen dat onze gegevens statistisch significant zijn om dat te laten zien. \n",
"\n",
"Leeftijd, lengte en gewicht zijn allemaal continue stochastische variabelen. Wat denk je dat hun verdeling is? Een goede manier om dat te achterhalen is het plotten van het histogram van de waarden: \n"
"Leeftijd, lengte en gewicht zijn allemaal continue toevalsvariabelen. Wat denk je dat hun verdeling is? Een goede manier om dat te ontdekken is door het histogram van waarden te plotten: \n"
]
},
{
@ -190,7 +190,7 @@
"source": [
"## Normale Verdeling\n",
"\n",
"Laten we een kunstmatige steekproef van gewichten maken die een normale verdeling volgt met dezelfde gemiddelde en variantie als onze echte gegevens:\n"
"Laten we een kunstmatige steekproef van gewichten maken die een normale verdeling volgt met dezelfde gemiddelde en variantie als onze echte data:\n"
]
},
{
@ -231,7 +231,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Aangezien de meeste waarden in het echte leven normaal verdeeld zijn, zouden we geen uniforme willekeurige getallengenerator moeten gebruiken om steekproefgegevens te genereren. Dit is wat er gebeurt als we proberen gewichten te genereren met een uniforme verdeling (gegenereerd door `np.random.rand`):\n"
"Aangezien de meeste waarden in het echte leven normaal verdeeld zijn, zouden we geen uniforme random number generator moeten gebruiken om steekproefgegevens te genereren. Dit is wat er gebeurt als we proberen gewichten te genereren met een uniforme verdeling (gegenereerd door `np.random.rand`):\n"
]
},
{
@ -253,7 +253,7 @@
"source": [
"## Betrouwbaarheidsintervallen\n",
"\n",
"Laten we nu betrouwbaarheidsintervallen berekenen voor het gewicht en de lengte van honkbalspelers. We zullen de code gebruiken [uit deze stackoverflow-discussie](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
"Laten we nu betrouwbaarheidsintervallen berekenen voor de gewichten en lengtes van honkbalspelers. We zullen de code [uit deze stackoverflow-discussie](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data) gebruiken:\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": [
"## Hypothesetoetsing\n",
"\n",
"Laten we verschillende posities in onze honkbalspelersdataset verkennen:\n"
"Laten we verschillende rollen in onze dataset van honkbalspelers verkennen:\n"
]
},
{
@ -298,7 +298,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Laten we de hypothese testen dat eerste honkmannen langer zijn dan tweede honkmannen. De eenvoudigste manier om dit te doen is door de betrouwbaarheidsintervallen te testen:\n"
"Laten we de hypothese testen dat Eerste Basisspelers langer zijn dan Tweede Basisspelers. De eenvoudigste manier om dit te doen is door de betrouwbaarheidsintervallen te testen:\n"
]
},
{
@ -338,18 +338,18 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"De twee waarden die worden geretourneerd door de `ttest_ind` functie zijn:\n",
"* p-waarde kan worden beschouwd als de waarschijnlijkheid dat twee verdelingen dezelfde gemiddelde waarde hebben. In ons geval is deze zeer laag, wat betekent dat er sterk bewijs is dat eerste honkverdedigers langer zijn.\n",
"* t-waarde is de tussenliggende waarde van genormaliseerd verschil tussen gemiddelden die wordt gebruikt in de t-toets, en deze wordt vergeleken met een drempelwaarde voor een gegeven betrouwbaarheidswaarde.\n"
"De twee waarden die door de functie `ttest_ind` worden geretourneerd zijn:\n",
"* p-waarde kan worden beschouwd als de kans dat twee distributies hetzelfde gemiddelde hebben. In ons geval is deze zeer laag, wat betekent dat er sterk bewijs is dat eerste honkmannen langer zijn.\n",
"* t-waarde is de tussentijdse waarde van genormaliseerd verschil in gemiddelden die wordt gebruikt in de t-toets, en deze wordt vergeleken met een drempelwaarde voor een gegeven betrouwbaarheidswaarde.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Een normale verdeling simuleren met de centrale limietstelling\n",
"## Het simuleren van een normale verdeling met de centrale limietstelling\n",
"\n",
"De pseudowillekeurige generator in Python is ontworpen om ons een uniforme verdeling te geven. Als we een generator voor een normale verdeling willen maken, kunnen we de centrale limietstelling gebruiken. Om een normaal verdeelde waarde te krijgen, berekenen we gewoon het gemiddelde van een uniform gegenereerde steekproef.\n"
"De pseudowillekeurige generator in Python is ontworpen om ons een uniforme verdeling te geven. Als we een generator voor een normale verdeling willen maken, kunnen we de centrale limietstelling gebruiken. Om een normaal verdeelde waarde te krijgen, berekenen we gewoon het gemiddelde van een steekproef die uniform gegenereerd is.\n"
]
},
{
@ -375,7 +375,7 @@
"source": [
"## Correlatie en Evil Baseball Corp\n",
"\n",
"Correlatie stelt ons in staat relaties tussen datareeksen te vinden. In ons voorbeeld met speelgoed doen we alsof er een boosaardige honkbalmaatschappij is die haar spelers betaalt op basis van hun lengte - hoe langer de speler is, hoe meer geld hij/zij krijgt. Stel dat er een basissalaris van $1000 is, en een extra bonus van $0 tot $100, afhankelijk van de lengte. We nemen de echte spelers van de MLB en berekenen hun denkbeeldige salarissen:\n"
"Correlatie stelt ons in staat relaties te vinden tussen gegevensreeksen. In ons voorbeeld doen we alsof er een kwade honkbalmaatschappij is die zijn spelers betaalt op basis van hun lengte - hoe langer de speler, hoe meer geld hij/zij krijgt. Stel dat er een basissalaris van $1000 is, en een extra bonus van $0 tot $100, afhankelijk van de lengte. We nemen de echte spelers van de MLB en berekenen hun denkbeeldige salarissen:\n"
]
},
{
@ -384,7 +384,7 @@
"metadata": {},
"outputs": [],
"source": [
"heights = df['Height'].fillna(method='pad')\n",
"heights = df['Height'].ffill()\n",
"salaries = 1000+(heights-heights.min())/(heights.max()-heights.mean())*100\n",
"print(list(zip(heights, salaries))[:10])"
]
@ -393,7 +393,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Laten we nu de covariantie en correlatie van die reeksen berekenen. `np.cov` geeft ons een zogenaamde **covariantiematrix**, wat een uitbreiding is van covariantie naar meerdere variabelen. Het element $M_{ij}$ van de covariantiematrix $M$ is een correlatie tussen invoervariabelen $X_i$ en $X_j$, en diagonale waarden $M_{ii}$ zijn de variantie van $X_{i}$. Op dezelfde manier geeft `np.corrcoef` ons de **correlatiematrix**.\n"
"Laten we nu de covariantie en correlatie van die reeksen berekenen. `np.cov` geeft ons een zogenaamde **covariantiematrix**, wat een uitbreiding is van covariantie naar meerdere variabelen. Het element $M_{ij}$ van de covariantiematrix $M$ is een correlatie tussen de inputvariabelen $X_i$ en $X_j$, en de diagonaalwaarden $M_{ii}$ zijn de variantie van $X_{i}$. Evenzo geeft `np.corrcoef` ons de **correlatiematrix**.\n"
]
},
{
@ -411,7 +411,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Een correlatie gelijk aan 1 betekent dat er een sterke **lineaire relatie** is tussen twee variabelen. We kunnen de lineaire relatie visueel zien door de ene waarde uit te zetten tegen de andere:\n"
"Een correlatie gelijk aan 1 betekent dat er een sterke **lineaire relatie** is tussen twee variabelen. We kunnen de lineaire relatie visueel zien door de ene waarde tegen de andere uit te zetten:\n"
]
},
{
@ -430,7 +430,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Laten we eens kijken wat er gebeurt als de relatie niet lineair is. Stel dat ons bedrijf heeft besloten de voor de hand liggende lineaire afhankelijkheid tussen lengtes en salarissen te verbergen, en wat niet-lineariteit in de formule heeft geïntroduceerd, zoals `sin`:\n"
"Laten we eens kijken wat er gebeurt als de relatie niet lineair is. Stel dat onze onderneming heeft besloten om de voor de hand liggende lineaire afhankelijkheid tussen lengtes en salarissen te verbergen, en wat non-lineariteit in de formule heeft geïntroduceerd, zoals `sin`:\n"
]
},
{
@ -447,7 +447,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"In dit geval is de correlatie iets kleiner, maar nog steeds behoorlijk hoog. Nu, om de relatie nog minder duidelijk te maken, willen we misschien wat extra willekeur toevoegen door een willekeurige variabele aan het salaris toe te voegen. Laten we eens kijken wat er gebeurt:\n"
"In dit geval is de correlatie iets kleiner, maar nog steeds vrij hoog. Nu, om de relatie nog minder duidelijk te maken, willen we misschien wat extra willekeur toevoegen door een willekeurige variabele aan het salaris toe te voegen. Laten we eens kijken wat er gebeurt:\n"
]
},
{
@ -476,7 +476,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> Kun je raden waarom de stippen zo recht onder elkaar komen te staan in verticale lijnen?\n",
"> Kun je raden waarom de stippen op deze manier in verticale lijnen uitlijnen?\n",
"\n",
"We hebben de correlatie waargenomen tussen een kunstmatig geconstrueerd concept zoals salaris en de waargenomen variabele *lengte*. Laten we ook kijken of de twee waargenomen variabelen, zoals lengte en gewicht, ook correleren:\n"
]
@ -494,11 +494,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Helaas hebben we geen resultaten gekregen - alleen enkele vreemde `nan` waarden. Dit komt doordat sommige van de waarden in onze reeks niet gedefinieerd zijn, weergegeven als `nan`, wat ertoe leidt dat het resultaat van de bewerking ook niet gedefinieerd is. Door naar de matrix te kijken, zien we dat `Weight` de problematische kolom is, omdat zelfcorrelatie tussen `Height` waarden is berekend.\n",
"Helaas kregen we geen resultaten - alleen enkele vreemde `nan` waarden. Dit komt doordat sommige waarden in onze reeks niet gedefinieerd zijn, weergegeven als `nan`, wat ertoe leidt dat het resultaat van de bewerking ook niet gedefinieerd is. Door naar de matrix te kijken zien we dat `Weight` de problematische kolom is, omdat zelf-correlatie tussen `Height` waarden is berekend.\n",
"\n",
"> Dit voorbeeld toont het belang aan van **gegevensvoorbereiding** en **schoonmaak**. Zonder juiste gegevens kunnen we niets berekenen.\n",
"> Dit voorbeeld toont het belang van **datavoorbereiding** en **schoonmaken**. Zonder goede data kunnen we niets berekenen.\n",
"\n",
"Laten we de methode `fillna` gebruiken om de ontbrekende waarden in te vullen, en de correlatie berekenen: \n"
"Laten we de `fillna`-methode gebruiken om de ontbrekende waarden in te vullen, en de correlatie berekenen:\n"
]
},
{
@ -507,14 +507,14 @@
"metadata": {},
"outputs": [],
"source": [
"np.corrcoef(df['Height'].fillna(method='pad'), df['Weight'])"
"np.corrcoef(df['Height'].ffill(), df['Weight'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Er is inderdaad een correlatie, maar niet zo sterk als in ons kunstmatige voorbeeld. Inderdaad, als we naar de spreidingsdiagram van de ene waarde tegen de andere kijken, zou de relatie veel minder duidelijk zijn:\n"
"Er is inderdaad een correlatie, maar niet zo sterk als in ons kunstmatige voorbeeld. Als we namelijk kijken naar de spreidingsgrafiek van de ene waarde tegen de andere, zou de relatie veel minder duidelijk zijn:\n"
]
},
{
@ -537,14 +537,14 @@
"source": [
"## Conclusie\n",
"\n",
"In dit notitieboek hebben we geleerd hoe we basisbewerkingen op gegevens kunnen uitvoeren om statistische functies te berekenen. We weten nu hoe we een degelijk apparaat van wiskunde en statistiek kunnen gebruiken om enkele hypotheses te bewijzen, en hoe we betrouwbaarheidsintervallen voor willekeurige variabelen kunnen berekenen op basis van een gegevensmonster.\n"
"In dit notitieboek hebben we geleerd hoe we basisbewerkingen op data kunnen uitvoeren om statistische functies te berekenen. We weten nu hoe we een degelijke set wiskunde en statistiek kunnen gebruiken om bepaalde hypothesen te bewijzen, en hoe we betrouwbaarheidsintervallen kunnen berekenen voor willekeurige variabelen gegeven een data sample. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Disclaimer**:\nDit document is vertaald met behulp van de AI-vertalingsservice [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het oorspronkelijke document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor belangrijke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerd geïnterpreteerde informatie die voortvloeit uit het gebruik van deze vertaling.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Disclaimer**:\nDit document is vertaald met behulp van de AI vertaaldienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -568,12 +568,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
},
"coopTranslator": {
"original_hash": "0f899e3c5019f948e7c787b22f3b2304",
"translation_date": "2026-01-16T16:42:54+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "nl"
}
},
"nbformat": 4,

@ -4,11 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Schatting van de COVID-19-pandemie\n",
"# Schatting van de COVID-19 Pandemie\n",
"\n",
"## Gegevens laden\n",
"\n",
"We zullen gegevens gebruiken over COVID-19-geïnfecteerde personen, verstrekt door het [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) van [Johns Hopkins University](https://jhu.edu/). Dataset is beschikbaar in [deze GitHub Repository](https://github.com/CSSEGISandData/COVID-19).\n"
"We zullen gegevens gebruiken over COVID-19 geïnfecteerde personen, geleverd door het [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) aan de [Johns Hopkins University](https://jhu.edu/). De dataset is beschikbaar in [deze GitHub Repository](https://github.com/CSSEGISandData/COVID-19).\n"
]
},
{
@ -27,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"We kunnen de meest recente gegevens rechtstreeks van GitHub laden met `pd.read_csv`. Als de gegevens om wat voor reden dan ook niet beschikbaar zijn, kunt u altijd de kopie gebruiken die lokaal beschikbaar is in de map `data` - verwijder gewoon het commentaar van de regel hieronder die `base_url` definieert:\n"
"We kunnen de meest recente gegevens rechtstreeks van GitHub laden met `pd.read_csv`. Als de gegevens om wat voor reden dan ook niet beschikbaar zijn, kun je altijd de lokaal beschikbare kopie in de map `data` gebruiken - haal gewoon de commentaar weg bij de regel hieronder die `base_url` definieert:\n"
]
},
{
@ -48,7 +48,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Laten we nu de gegevens van geïnfecteerde personen laden en bekijken hoe de gegevens eruitzien:\n"
"Laten we nu de gegevens voor geïnfecteerde personen laden en kijken hoe de gegevens eruitzien:\n"
]
},
{
@ -265,7 +265,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"We kunnen zien dat elke rij van de tabel het aantal besmette personen per land en/of provincie definieert, en de kolommen corresponderen met datums. Vergelijkbare tabellen kunnen worden geladen voor andere gegevens, zoals het aantal herstelde en het aantal doden.\n"
"We kunnen zien dat elke rij van de tabel het aantal geïnfecteerde personen voor elk land en/of provincie definieert, en de kolommen komen overeen met datums. Vergelijkbare tabellen kunnen worden geladen voor andere gegevens, zoals het aantal herstelde personen en het aantal sterfgevallen.\n"
]
},
{
@ -282,7 +282,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## De gegevens begrijpen\n",
"## Het begrijpen van de gegevens\n",
"\n",
"Uit de bovenstaande tabel is de rol van de kolom provincie niet duidelijk. Laten we de verschillende waarden bekijken die aanwezig zijn in de kolom `Province/State`:\n"
]
@ -322,7 +322,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Uit de namen kunnen we afleiden dat landen zoals Australië en China een meer gedetailleerde onderverdeling hebben per provincie. Laten we informatie zoeken over China om het voorbeeld te zien:\n"
"Uit de namen kunnen we afleiden dat landen zoals Australië en China een meer gedetailleerde onderverdeling per provincie hebben. Laten we op zoek gaan naar informatie over China om het voorbeeld te zien:\n"
]
},
{
@ -1321,9 +1321,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Voorbereiden van de gegevens\n",
"## Voorverwerking van de gegevens \n",
"\n",
"We zijn niet geïnteresseerd in het opsplitsen van landen in verdere gebieden, dus zouden we deze opsplitsing eerst verwijderen en informatie over alle gebieden samenvoegen, om informatie te krijgen voor het hele land. Dit kan worden gedaan met `groupby`:\n"
"We zijn niet geïnteresseerd in het verder opsplitsen van landen in gebieden, daarom zouden we eerst deze opsplitsing verwijderen en informatie over alle gebieden samenvoegen om gegevens voor het hele land te krijgen. Dit kan gedaan worden met `groupby`:\n"
]
},
{
@ -1578,7 +1578,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Je kunt zien dat door het gebruik van `groupby` alle DataFrames nu zijn geïndexeerd op Land/Regio. We kunnen dus de gegevens voor een specifiek land benaderen met `.loc`:|\n"
"Je kunt zien dat door het gebruik van `groupby` alle DataFrames nu geïndexeerd zijn op Land/Regio. We kunnen dus de gegevens voor een specifiek land opvragen met `.loc`:|\n"
]
},
{
@ -1607,7 +1607,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Opmerking** hoe we `[3:]` gebruiken om de eerste drie elementen van een reeks te verwijderen die niet-datum metadata bevatten (de kolommen Provincie/Staat en geolocatie). We kunnen die drie kolommen ook helemaal verwijderen:\n"
"> **Let op** hoe we `[3:]` gebruiken om de eerste drie elementen van een reeks te verwijderen die niet-datum metadata bevatten (de Provincie/Staat en geolocatie kolommen). We kunnen die drie kolommen ook helemaal verwijderen:\n"
]
},
{
@ -1625,9 +1625,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Gegevens onderzoeken\n",
"## Data onderzoeken\n",
"\n",
"Laten we nu overschakelen naar het onderzoeken van een specifiek land. Laten we een frame maken dat de gegevens over infecties bevat, geïndexeerd op datum:\n"
"Laten we nu overstappen op het onderzoeken van een specifiek land. Laten we een frame maken dat de gegevens over infecties bevat, geïndexeerd op datum:\n"
]
},
{
@ -1793,7 +1793,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Laten we nu het aantal nieuw geïnfecteerde mensen per dag berekenen. Dit stelt ons in staat om te zien hoe snel de pandemie zich voortbeweegt. De makkelijkste manier om dit te doen, is door `diff` te gebruiken:\n"
"Laten we nu het aantal nieuw geïnfecteerde mensen per dag berekenen. Dit stelt ons in staat om de snelheid te zien waarmee de pandemie zich voortzet. De gemakkelijkste manier om dit te doen is met behulp van `diff`:\n"
]
},
{
@ -1823,7 +1823,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"We kunnen grote schommelingen in de gegevens zien. Laten we een van de maanden nader bekijken:\n"
"We zien grote schommelingen in de gegevens. Laten we eens nader kijken naar een van de maanden:\n"
]
},
{
@ -1852,7 +1852,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Het lijkt duidelijk dat er wekelijkse schommelingen in de gegevens zijn. Omdat we de trends willen kunnen zien, is het logisch om de curve glad te strijken door het berekenen van een voortschrijdend gemiddelde (d.w.z. voor elke dag berekenen we de gemiddelde waarde van de voorgaande meerdere dagen):\n"
"Het lijkt duidelijk dat er wekelijkse schommelingen in de gegevens zijn. Omdat we de trends willen kunnen zien, is het logisch om de curve te verzachten door het berekenen van een voortschrijdend gemiddelde (d.w.z. voor elke dag berekenen we de gemiddelde waarde van de voorgaande dagen):\n"
]
},
{
@ -1882,7 +1882,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Om verschillende landen met elkaar te kunnen vergelijken, willen we mogelijk rekening houden met de bevolking van het land, en het percentage geïnfecteerde individuen ten opzichte van de bevolking van het land vergelijken. Om de bevolking van het land te verkrijgen, laten we de dataset van landen laden:\n"
"Om meerdere landen met elkaar te kunnen vergelijken, willen we misschien rekening houden met de bevolking van het land, en het percentage geïnfecteerde individuen met betrekking tot de bevolking van het land vergelijken. Om de bevolking van het land te verkrijgen, laden we de dataset van landen:\n"
]
},
{
@ -2153,7 +2153,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Omdat deze dataset informatie bevat over zowel landen als provincies, moeten we een beetje slim zijn om de bevolking van het hele land te krijgen:\n"
"Omdat deze dataset informatie bevat over zowel landen als provincies, moeten we een beetje slim zijn om de bevolking van het hele land te krijgen: \n"
]
},
{
@ -2261,14 +2261,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Berekenen van $R_t$\n",
"\n",
"Om te zien hoe besmettelijk de ziekte is, kijken we naar het **basisreproductiegetal** $R_0$, dat het aantal personen aangeeft dat een geïnfecteerd persoon verder zou besmetten. Wanneer $R_0$ meer dan 1 is, zal de epidemie zich waarschijnlijk verspreiden.\n",
"Om te zien hoe besmettelijk de ziekte is, kijken we naar het **basisreproductiegetal** $R_0$, dat het aantal mensen aangeeft die een geïnfecteerd persoon verder zou besmetten. Wanneer $R_0$ meer dan 1 is, zal de epidemie waarschijnlijk zich verspreiden.\n",
"\n",
"$R_0$ is een eigenschap van de ziekte zelf en houdt geen rekening met sommige beschermende maatregelen die mensen kunnen nemen om de pandemie te vertragen. Tijdens het verloop van de pandemie kunnen we het reproductiegetal $R_t$ op elk gegeven moment $t$ schatten. Er is aangetoond dat dit getal ruwweg kan worden geschat door een venster van 8 dagen te nemen en de volgende berekening uit te voeren: $$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",
"waarbij $I_t$ het aantal nieuw geïnfecteerde individuen op dag $t$ is.\n",
"$R_0$ is een eigenschap van de ziekte zelf en houdt geen rekening met beschermende maatregelen die mensen kunnen nemen om de pandemie af te remmen. Tijdens de voortgang van de pandemie kunnen we het reproductiegetal op een gegeven moment $t$ schatten, $R_t$. Er is aangetoond dat dit getal ruwweg kan worden geschat door een venster van 8 dagen te nemen en de volgende formule te berekenen: $$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",
"waarbij $I_t$ het aantal nieuw geïnfecteerde individuen is op dag $t$.\n",
"\n",
"Laten we $R_t$ berekenen voor onze pandemiegegevens. Hiervoor nemen we een rollend venster van 8 waarden `ninfected` en passen we de functie toe om bovenstaande verhouding te berekenen:\n"
"Laten we $R_t$ berekenen voor onze pandemiegegevens. Om dit te doen, nemen we een rollend venster van 8 `ninfected`-waarden en passen we de functie toe om bovenstaande verhouding te berekenen:\n"
]
},
{
@ -2298,9 +2299,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Je kunt zien dat er enkele gaten in de grafiek zijn. Deze kunnen worden veroorzaakt door `NaN`, of als `inf`-waarden aanwezig zijn in de dataset. `inf` kan veroorzaakt worden door deling door 0, en `NaN` kan duiden op ontbrekende data, of geen beschikbare data om het resultaat te berekenen (zoals aan het allereerste begin van ons frame, waar het rollende venster van breedte 8 nog niet beschikbaar is). Om de grafiek mooier te maken, moeten we die waarden opvullen met behulp van de functies `replace` en `fillna`.\n",
"Je kunt zien dat er enkele gaten in de grafiek zijn. Die kunnen worden veroorzaakt door `NaN` of als `inf` waarden aanwezig zijn in de dataset. `inf` kan veroorzaakt worden door deling door 0, en `NaN` kan wijzen op ontbrekende data, of geen data beschikbaar om het resultaat te berekenen (zoals helemaal in het begin van onze frame, waar het rollende venster van breedte 8 nog niet beschikbaar is). Om de grafiek mooier te maken, moeten we die waarden vullen met de functies `replace` en `fillna`.\n",
"\n",
"Laten we verder naar het begin van de pandemie kijken. We zullen ook de y-as waarden beperken tot alleen waarden onder 6, om het beter te kunnen zien, en een horizontale lijn trekken op 1.\n"
"Laten we verder kijken naar het begin van de pandemie. We zullen ook de waarden op de y-as beperken tot alleen waarden onder 6, om het beter te kunnen zien, en een horizontale lijn tekenen bij 1.\n"
]
},
{
@ -2331,7 +2332,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Een andere interessante indicator van de pandemie is de **afgeleide**, of **dagelijkse verschil** in nieuwe gevallen. Het stelt ons in staat om duidelijk te zien wanneer de pandemie toeneemt of afneemt.\n"
"Een andere interessante indicator van de pandemie is de **afgeleide**, of **dagelijks verschil** in nieuwe gevallen. Het stelt ons in staat om duidelijk te zien wanneer de pandemie toeneemt of afneemt. \n"
]
},
{
@ -2360,7 +2361,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Gezien het feit dat er veel schommelingen in de gegevens zijn veroorzaakt door rapportage, is het logisch om de curve te verzachten door een voortschrijdend gemiddelde te berekenen om het algemene beeld te krijgen. Laten we ons opnieuw richten op de eerste maanden van de pandemie:\n"
"Gezien het feit dat er veel schommelingen in de gegevens zijn veroorzaakt door rapportage, is het logisch om de curve te egaliseren door een voortschrijdend gemiddelde te berekenen om het algemene beeld te krijgen. Laten we ons opnieuw richten op de eerste maanden van de pandemie:\n"
]
},
{
@ -2390,14 +2391,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Uitdaging\n",
"\n",
"Nu is het tijd om meer te spelen met de code en data! Hier zijn een paar suggesties waarmee je kunt experimenteren:\n",
"Het is nu tijd om meer te spelen met de code en gegevens! Hier zijn een paar suggesties waarmee je kunt experimenteren:\n",
"* Bekijk de verspreiding van de pandemie in verschillende landen.\n",
"* Maak $R_t$ grafieken voor meerdere landen op één grafiek voor vergelijking, of maak meerdere grafieken naast elkaar.\n",
"* Bekijk hoe het aantal sterfgevallen en herstelingen correleert met het aantal geïnfecteerde gevallen.\n",
"* Probeer te achterhalen hoe lang een typische ziekte duurt door visueel de infectiesnelheid en sterftecijfers te correleren en te zoeken naar enkele afwijkingen. Je moet misschien naar verschillende landen kijken om dat uit te zoeken.\n",
"* Bereken het sterftecijfer en hoe het verandert in de loop van de tijd. Je wilt mogelijk rekening houden met de duur van de ziekte in dagen om één tijdreeks te verschuiven voordat je berekeningen uitvoert.\n"
"* Teken $R_t$ grafieken voor meerdere landen in één plot om te vergelijken, of maak meerdere plots naast elkaar\n",
"* Bekijk hoe het aantal sterfgevallen en herstelingen correleert met het aantal besmette gevallen.\n",
"* Probeer erachter te komen hoe lang een typische ziekte duurt door visueel de infectiesnelheid en de sterftecijfer te correleren en te zoeken naar afwijkingen. Je moet misschien verschillende landen bekijken om dat te ontdekken.\n",
"* Bereken het sterftecijfer en hoe dit in de loop van de tijd verandert. Je wilt mogelijk rekening houden met de duur van de ziekte in dagen om een tijdreeks te verschuiven voordat je berekeningen uitvoert\n"
]
},
{
@ -2406,9 +2408,9 @@
"source": [
"## Referenties\n",
"\n",
"Je kunt verdere studies over de verspreiding van de COVID-epidemie bekijken in de volgende publicaties:\n",
"U kunt naar verdere studies van de verspreiding van de COVID-epidemie kijken in de volgende publicaties:\n",
"* [Sliding SIR Model for Rt Estimation during COVID Pandemic](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), blogpost door [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",
"* T.Petrova, D.Soshnikov, A.Grunin. [Schatting van de tijdsafhankelijke reproductiegetal voor de wereldwijde COVID-19-uitbraak](https://www.preprints.org/manuscript/202006.0289/v1). *Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [Code voor het bovenstaande artikel op GitHub](https://github.com/shwars/SlidingSIR)\n"
]
},
@ -2423,7 +2425,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Disclaimer**: \nDit document is vertaald met behulp van de AI-vertalingsservice [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat automatische vertalingen fouten of onjuistheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor belangrijke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Disclaimer**:\nDit document is vertaald met behulp van de AI vertaaldienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],

@ -1,13 +1,13 @@
# Gevaarlijke Relaties data visualisatieproject
# Dangerous Liaisons gegevensvisualisatieproject
Om te beginnen moet je ervoor zorgen dat je NPM en Node op je machine hebt draaien. Installeer de afhankelijkheden (npm install) en voer vervolgens het project lokaal uit (npm run serve):
Om te beginnen moet je ervoor zorgen dat je NPM en Node **>=20.0.0** op je machine hebt draaien. Installeer de dependencies (npm install) en start het project lokaal (npm run serve):
## Projectinstelling
## Projectopzet
```
npm install
```
### Compileert en herlaadt automatisch voor ontwikkeling
### Compileert en herlaadt snel voor ontwikkeling
```
npm run serve
```
@ -17,15 +17,17 @@ npm run serve
npm run build
```
### Controleert en herstelt bestanden
### Lint en corrigeert bestanden
```
npm run lint
```
### Configuratie aanpassen
Zie [Configuratiereferentie](https://cli.vuejs.org/config/).
### Pas configuratie aan
Zie [Configuration Reference](https://cli.vuejs.org/config/).
---
**Disclaimer**:
Dit document is vertaald met behulp van de AI-vertalingsservice [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, willen we u erop wijzen dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Disclaimer**:
Dit document is vertaald met behulp van de AI vertaaldienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,8 +1,8 @@
# Gevaarlijke Relaties data visualisatieproject
# Dangerous Liaisons datavisualisatieproject
Om te beginnen moet je ervoor zorgen dat je NPM en Node op je machine hebt draaien. Installeer de afhankelijkheden (npm install) en voer vervolgens het project lokaal uit (npm run serve):
Om te beginnen moet je ervoor zorgen dat je NPM en Node **>=20.0.0** op je machine hebt draaien. Installeer de afhankelijkheden (npm install) en voer daarna het project lokaal uit (npm run serve):
## Projectinstelling
## Project setup
```
npm install
```
@ -17,15 +17,17 @@ npm run serve
npm run build
```
### Controleert en herstelt bestanden
### Controleert en repareert bestanden
```
npm run lint
```
### Configuratie aanpassen
Zie [Configuratiereferentie](https://cli.vuejs.org/config/).
### Pas de configuratie aan
Zie [Configuration Reference](https://cli.vuejs.org/config/).
---
**Disclaimer**:
Dit document is vertaald met behulp van de AI-vertalingsservice [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u zich ervan bewust te zijn dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Disclaimer**:
Dit document is vertaald met behulp van de AI vertaaldienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -12,8 +12,8 @@
"language_code": "vi"
},
"1-Introduction/01-defining-data-science/notebook.ipynb": {
"original_hash": "8f5eb7b3f7cc89e6d98fb32e1de65dec",
"translation_date": "2026-02-27T11:53:38+00:00",
"original_hash": "8eb07e3d899aaba7ea9c9ec9b5aa2850",
"translation_date": "2026-07-17T23:15:12+00:00",
"source_file": "1-Introduction/01-defining-data-science/notebook.ipynb",
"language_code": "vi"
},
@ -42,8 +42,8 @@
"language_code": "vi"
},
"1-Introduction/03-defining-data/README.md": {
"original_hash": "12339119c0165da569a93ddba05f9339",
"translation_date": "2025-09-05T23:44:22+00:00",
"original_hash": "7217c6f9eb464d4ff4bae6c036ab53cb",
"translation_date": "2026-07-17T23:17:35+00:00",
"source_file": "1-Introduction/03-defining-data/README.md",
"language_code": "vi"
},
@ -65,6 +65,12 @@
"source_file": "1-Introduction/04-stats-and-probability/assignment.md",
"language_code": "vi"
},
"1-Introduction/04-stats-and-probability/notebook.ipynb": {
"original_hash": "0c77e104b29c723287bf11b773fcc5d5",
"translation_date": "2026-07-17T23:16:16+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "vi"
},
"1-Introduction/README.md": {
"original_hash": "696a8474a01054281704cbfb09148949",
"translation_date": "2025-08-28T18:49:37+00:00",
@ -108,8 +114,8 @@
"language_code": "vi"
},
"2-Working-With-Data/07-python/notebook-covidspread.ipynb": {
"original_hash": "6335cccba01dc6ad7b15aba7a8c73f38",
"translation_date": "2026-02-27T11:55:04+00:00",
"original_hash": "da97f98781c7cd271063f605fe8d71d0",
"translation_date": "2026-07-17T23:14:40+00:00",
"source_file": "2-Working-With-Data/07-python/notebook-covidspread.ipynb",
"language_code": "vi"
},
@ -192,14 +198,14 @@
"language_code": "vi"
},
"3-Data-Visualization/13-meaningful-visualizations/solution/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-28T18:45:10+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T23:17:42+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/solution/README.md",
"language_code": "vi"
},
"3-Data-Visualization/13-meaningful-visualizations/starter/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-28T18:45:27+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T23:17:38+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/starter/README.md",
"language_code": "vi"
},

File diff suppressed because one or more lines are too long

@ -1,76 +1,79 @@
# Định nghĩa Dữ liệu
|![ Sketchnote của [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)|
|![ Sketchnote bởi [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)|
|:---:|
|Định nghĩa Dữ liệu - _Sketchnote của [@nitya](https://twitter.com/nitya)_ |
|Định nghĩa Dữ liệu - _Sketchnote bởi [@nitya](https://twitter.com/nitya)_ |
Dữ liệu là các sự kiện, thông tin, quan sát và đo lường được sử dụng để khám phá và hỗ trợ các quyết định có cơ sở. Một điểm dữ liệu là một đơn vị dữ liệu duy nhất trong một tập dữ liệu, là tập hợp các điểm dữ liệu. Các tập dữ liệu có thể có nhiều định dạng và cấu trúc khác nhau, thường dựa trên nguồn gốc của chúng hoặc nơi dữ liệu được thu thập. Ví dụ, thu nhập hàng tháng của một công ty có thể được lưu trong bảng tính, nhưng dữ liệu nhịp tim theo giờ từ một đồng hồ thông minh có thể ở định dạng [JSON](https://stackoverflow.com/a/383699). Các nhà khoa học dữ liệu thường làm việc với nhiều loại dữ liệu khác nhau trong một tập dữ liệu.
Dữ liệu là các sự kiện, thông tin, quan sát và đo lường được sử dụng để khám phá và hỗ trợ các quyết định có cơ sở. Một điểm dữ liệu là một đơn vị dữ liệu duy nhất trong một bộ dữ liệu, mà là tập hợp của các điểm dữ liệu. Bộ dữ liệu có thể có các định dạng và cấu trúc khác nhau, và thường dựa trên nguồn gốc hoặc nơi dữ liệu đến. Ví dụ, thu nhập hàng tháng của một công ty có thể ở dạng bảng tính nhưng dữ liệu nhịp tim mỗi giờ từ đồng hồ thông minh có thể ở định dạng [JSON](https://stackoverflow.com/a/383699). Các nhà khoa học dữ liệu thường làm việc với nhiều loại dữ liệu khác nhau trong cùng một bộ dữ liệu.
Bài học này tập trung vào việc xác định và phân loại dữ liệu dựa trên đặc điểm và nguồn gốc của chúng.
Bài học này tập trung vào việc nhận diện và phân loại dữ liệu dựa trên đặc điểm và nguồn gốc của nó.
## [Câu hỏi trước bài giảng](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## Cách mô tả dữ liệu
## [Bài kiểm tra trước bài giảng](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## Cách Mô tả Dữ liệu
### Dữ liệu thô
Dữ liệu thô là dữ liệu được lấy từ nguồn của nó ở trạng thái ban đầu và chưa được phân tích hay tổ chức. Để hiểu được điều gì đang xảy ra với một tập dữ liệu, nó cần được tổ chức thành một định dạng mà con người cũng như công nghệ họ sử dụng có thể hiểu và phân tích thêm. Cấu trúc của một tập dữ liệu mô tả cách nó được tổ chức và có thể được phân loại thành có cấu trúc, không có cấu trúc và bán cấu trúc. Các loại cấu trúc này sẽ khác nhau tùy thuộc vào nguồn gốc nhưng cuối cùng sẽ thuộc một trong ba loại này.
Dữ liệu thô là dữ liệu vừa lấy từ nguồn của nó ở trạng thái ban đầu và chưa được phân tích hay tổ chức. Để hiểu được những gì đang xảy ra với một bộ dữ liệu, nó cần được tổ chức theo một định dạng có thể được con người và công nghệ phân tích tiếp. Cấu trúc của một bộ dữ liệu mô tả cách nó được tổ chức và có thể được phân loại thành có cấu trúc, không cấu trúc và bán cấu trúc. Các loại cấu trúc này sẽ khác nhau tùy theo nguồn nhưng cuối cùng sẽ thuộc ba loại này.
### Dữ liệu định lượng
Dữ liệu định lượng là các quan sát số trong một tập dữ liệu và thường có thể được phân tích, đo lường và sử dụng trong các phép toán. Một số ví dụ về dữ liệu định lượng là: dân số của một quốc gia, chiều cao của một người hoặc thu nhập hàng quý của một công ty. Với một số phân tích bổ sung, dữ liệu định lượng có thể được sử dụng để khám phá các xu hướng theo mùa của Chỉ số Chất lượng Không khí (AQI) hoặc ước tính xác suất tắc đường vào giờ cao điểm trong một ngày làm việc điển hình.
Dữ liệu định lượng là những quan sát dạng số trong một bộ dữ liệu và thường có thể được phân tích, đo lường và sử dụng về mặt toán học. Một số ví dụ về dữ liệu định lượng là: dân số của một quốc gia, chiều cao của một người hoặc thu nhập hàng quý của một công ty. Với một số phân tích thêm, dữ liệu định lượng có thể được dùng để phát hiện các xu hướng theo mùa của Chỉ số Chất lượng Không khí (AQI) hoặc ước tính xác suất tắc đường giờ cao điểm trong một ngày làm việc bình thường.
### Dữ liệu định tính
Dữ liệu định tính, còn được gọi là dữ liệu phân loại, là dữ liệu không thể đo lường một cách khách quan như các quan sát của dữ liệu định lượng. Nó thường là các định dạng dữ liệu chủ quan khác nhau, ghi lại chất lượng của một sản phẩm hoặc quy trình. Đôi khi, dữ liệu định tính là số nhưng không được sử dụng trong các phép toán, như số điện thoại hoặc dấu thời gian. Một số ví dụ về dữ liệu định tính là: bình luận video, nhãn hiệu và mẫu mã của một chiếc xe hơi hoặc màu sắc yêu thích của những người bạn thân nhất của bạn. Dữ liệu định tính có thể được sử dụng để hiểu sản phẩm nào được người tiêu dùng yêu thích nhất hoặc xác định các từ khóa phổ biến trong hồ sơ xin việc.
Dữ liệu định tính, còn gọi là dữ liệu phân loại, là dữ liệu không thể đo lường chính xác như dữ liệu định lượng. Thường là các định dạng khác nhau của dữ liệu chủ quan, thể hiện chất lượng của một thứ gì đó, như sản phẩm hoặc quy trình. Đôi khi, dữ liệu định tính có thể là dạng số nhưng không được dùng cho các phép toán, ví dụ như số điện thoại hoặc dấu thời gian. Một số ví dụ về dữ liệu định tính là: bình luận video, hãng và mẫu xe ô tô hoặc màu sắc yêu thích của những người bạn thân của bạn. Dữ liệu định tính có thể được dùng để hiểu sản phẩm nào người tiêu dùng thích nhất hoặc xác định các từ khóa phổ biến trong hồ sơ xin việc.
### Dữ liệu có cấu trúc
Dữ liệu có cấu trúc là dữ liệu được tổ chức thành các hàng và cột, trong đó mỗi hàng sẽ có cùng một tập hợp các cột. Các cột đại diện cho một giá trị của một loại cụ thể và sẽ được xác định bằng một tên mô tả giá trị đó đại diện cho điều gì, trong khi các hàng chứa các giá trị thực tế. Các cột thường có một tập hợp các quy tắc hoặc hạn chế cụ thể về giá trị để đảm bảo rằng các giá trị chính xác đại diện cho cột. Ví dụ, hãy tưởng tượng một bảng tính khách hàng trong đó mỗi hàng phải có một số điện thoại và các số điện thoại không bao giờ chứa ký tự chữ cái. Có thể có các quy tắc áp dụng cho cột số điện thoại để đảm bảo nó không bao giờ trống và chỉ chứa số.
Dữ liệu có cấu trúc là dữ liệu được tổ chức theo hàng và cột, trong đó mỗi hàng sẽ có cùng bộ cột. Các cột đại diện cho giá trị của một loại dữ liệu cụ thể và sẽ được đặt tên mô tả giá trị đó, trong khi các hàng chứa các giá trị thực tế. Các cột thường có bộ quy tắc hoặc hạn chế cụ thể về giá trị để đảm bảo giá trị chính xác mô tả cột đó. Ví dụ, hãy tưởng tượng một bảng tính khách hàng mà mỗi hàng phải có số điện thoại và các số điện thoại không bao giờ chứa ký tự chữ cái. Có thể có các quy tắc áp dụng cho cột số điện thoại để đảm bảo nó không bao giờ trống và chỉ chứa số.
Một lợi ích của dữ liệu có cấu trúc là nó có thể được tổ chức theo cách mà nó có thể liên kết với các dữ liệu có cấu trúc khác. Tuy nhiên, vì dữ liệu được thiết kế để được tổ chức theo một cách cụ thể, việc thay đổi cấu trúc tổng thể của nó có thể tốn nhiều công sức. Ví dụ, thêm một cột email vào bảng tính khách hàng mà không được để trống có nghĩa là bạn sẽ cần tìm cách thêm các giá trị này vào các hàng khách hàng hiện có trong tập dữ liệu.
Một lợi ích của dữ liệu có cấu trúc là có thể được tổ chức sao cho liên quan đến các dữ liệu có cấu trúc khác. Tuy nhiên, vì dữ liệu được thiết kế để tổ chức theo một cách cụ thể, việc thay đổi cấu trúc tổng thể có thể tốn nhiều công sức. Ví dụ, thêm một cột email vào bảng khách hàng mà không được để trống thì bạn sẽ phải tìm cách thêm giá trị đó cho các hàng khách hàng hiện có trong bộ dữ liệu.
Ví dụ về dữ liệu có cấu trúc: bảng tính, cơ sở dữ liệu quan hệ, số điện thoại, sao kê ngân hàng.
Ví dụ về dữ liệu có cấu trúc: bảng tính, cơ sở dữ liệu quan hệ, số điện thoại, sao kê ngân hàng
### Dữ liệu không có cấu trúc
Dữ liệu không có cấu trúc thường không thể được phân loại thành các hàng hoặc cột và không chứa một định dạng hoặc tập hợp các quy tắc để tuân theo. Vì dữ liệu không có cấu trúc có ít hạn chế hơn về cấu trúc của nó, nên việc thêm thông tin mới dễ dàng hơn so với một tập dữ liệu có cấu trúc. Nếu một cảm biến ghi lại dữ liệu áp suất khí quyển mỗi 2 phút nhận được một bản cập nhật cho phép nó đo và ghi lại nhiệt độ, thì không cần phải thay đổi dữ liệu hiện có nếu nó không có cấu trúc. Tuy nhiên, điều này có thể khiến việc phân tích hoặc điều tra loại dữ liệu này mất nhiều thời gian hơn. Ví dụ, một nhà khoa học muốn tìm nhiệt độ trung bình của tháng trước từ dữ liệu của cảm biến, nhưng phát hiện rằng cảm biến đã ghi lại một "e" trong một số dữ liệu của nó để ghi chú rằng nó bị hỏng thay vì một con số thông thường, điều này có nghĩa là dữ liệu không đầy đủ.
Dữ liệu không có cấu trúc thường không thể phân loại thành hàng hoặc cột và không có định dạng hoặc bộ quy tắc nào để theo. Vì dữ liệu không có cấu trúc bị ít hạn chế hơn về cấu trúc nên dễ dàng bổ sung thông tin mới hơn so với bộ dữ liệu có cấu trúc. Nếu một cảm biến đo áp suất khí quyển mỗi 2 phút được cập nhật để đo và ghi lại nhiệt độ, nó không cần thay đổi dữ liệu hiện có nếu dữ liệu là không có cấu trúc. Tuy nhiên, điều này có thể làm cho việc phân tích hoặc kiểm tra loại dữ liệu này mất nhiều thời gian hơn. Ví dụ, một nhà khoa học muốn tìm nhiệt độ trung bình của tháng trước từ dữ liệu cảm biến, nhưng phát hiện cảm biến ghi lại một "e" trong một số dữ liệu để ghi chú rằng thiết bị bị hỏng thay vì số điển hình, điều này nghĩa là dữ liệu không đầy đủ.
Ví dụ về dữ liệu không có cấu trúc: tệp văn bản, tin nhắn văn bản, tệp video.
Ví dụ về dữ liệu không có cấu trúc: tập tin văn bản, tin nhắn văn bản, tập tin video
### Dữ liệu bán cấu trúc
Dữ liệu bán cấu trúc có các đặc điểm khiến nó là sự kết hợp giữa dữ liệu có cấu trúc và không có cấu trúc. Nó thường không tuân theo định dạng hàng và cột nhưng được tổ chức theo cách được coi là có cấu trúc và có thể tuân theo một định dạng cố định hoặc tập hợp các quy tắc. Cấu trúc sẽ khác nhau giữa các nguồn, chẳng hạn như một hệ thống phân cấp được xác định rõ ràng đến một thứ gì đó linh hoạt hơn cho phép tích hợp thông tin mới dễ dàng. Siêu dữ liệu là các chỉ số giúp quyết định cách dữ liệu được tổ chức và lưu trữ và sẽ có các tên khác nhau, dựa trên loại dữ liệu. Một số tên phổ biến cho siêu dữ liệu là thẻ, phần tử, thực thể và thuộc tính. Ví dụ, một tin nhắn email điển hình sẽ có chủ đề, nội dung và một tập hợp người nhận và có thể được tổ chức theo người gửi hoặc thời gian gửi.
Dữ liệu bán cấu trúc có các đặc điểm làm cho nó là sự kết hợp giữa dữ liệu có cấu trúc và không có cấu trúc. Nó thường không tuân theo định dạng hàng và cột nhưng được tổ chức theo cách được coi là có cấu trúc và có thể theo một định dạng cố định hoặc bộ quy tắc. Cấu trúc sẽ khác nhau giữa các nguồn, như một hệ thống phân cấp rõ ràng đến một thứ linh hoạt hơn cho phép tích hợp thông tin mới dễ dàng. Metadata là các chỉ báo giúp xác định cách dữ liệu được tổ chức và lưu trữ và sẽ có nhiều tên gọi khác nhau dựa trên loại dữ liệu. Một số tên phổ biến cho metadata là thẻ (tags), phần tử (elements), thực thể (entities) và thuộc tính (attributes). Ví dụ, một email điển hình sẽ có chủ đề, nội dung và danh sách người nhận, và có thể được tổ chức theo người gửi hoặc thời điểm gửi.
Ví dụ về dữ liệu bán cấu trúc: HTML, tệp CSV, JavaScript Object Notation (JSON).
Ví dụ về dữ liệu bán cấu trúc: HTML, tập tin CSV, JavaScript Object Notation (JSON)
## Nguồn dữ liệu
## Nguồn Dữ liệu
Nguồn dữ liệu là vị trí ban đầu nơi dữ liệu được tạo ra hoặc nơi nó "tồn tại" và sẽ khác nhau tùy thuộc vào cách và thời điểm nó được thu thập. Dữ liệu được tạo ra bởi người dùng của nó được gọi là dữ liệu sơ cấp, trong khi dữ liệu thứ cấp đến từ một nguồn đã thu thập dữ liệu để sử dụng chung. Ví dụ, một nhóm các nhà khoa học thu thập các quan sát trong một khu rừng nhiệt đới sẽ được coi là dữ liệu sơ cấp và nếu họ quyết định chia sẻ nó với các nhà khoa học khác, nó sẽ được coi là dữ liệu thứ cấp đối với những người sử dụng nó.
Nguồn dữ liệu là vị trí ban đầu nơi dữ liệu được tạo ra, hoặc nơi dữ liệu "sinh sống", và sẽ khác nhau tùy theo cách và thời điểm thu thập. Dữ liệu do người dùng tạo ra được gọi là dữ liệu sơ cấp trong khi dữ liệu thứ cấp đến từ nguồn đã thu thập dữ liệu để sử dụng chung. Ví dụ, một nhóm nhà khoa học thu thập quan sát trong rừng nhiệt đới được xem là sơ cấp, và nếu họ quyết định chia sẻ với các nhà khoa học khác thì nó sẽ là thứ cấp đối với những người sử dụng dữ liệu đó.
Cơ sở dữ liệu là một nguồn phổ biến và dựa vào hệ thống quản lý cơ sở dữ liệu để lưu trữ và duy trì dữ liệu, nơi người dùng sử dụng các lệnh gọi là truy vấn để khám phá dữ liệu. Các tệp như nguồn dữ liệu có thể là tệp âm thanh, hình ảnh và video cũng như bảng tính như Excel. Các nguồn internet là một vị trí phổ biến để lưu trữ dữ liệu, nơi có thể tìm thấy cả cơ sở dữ liệu và tệp. Các giao diện lập trình ứng dụng, còn được gọi là API, cho phép các lập trình viên tạo ra các cách để chia sẻ dữ liệu với người dùng bên ngoài thông qua internet, trong khi quá trình thu thập dữ liệu từ web trích xuất dữ liệu từ một trang web. [Các bài học trong Làm việc với Dữ liệu](../../../../../../../../../2-Working-With-Data) tập trung vào cách sử dụng các nguồn dữ liệu khác nhau.
Cơ sở dữ liệu là nguồn phổ biến và dựa trên hệ thống quản lý cơ sở dữ liệu để lưu trữ và duy trì dữ liệu, người dùng sử dụng các lệnh gọi là truy vấn để khám phá dữ liệu. Tập tin là nguồn dữ liệu có thể là tập tin âm thanh, hình ảnh, video cũng như bảng tính như Excel. Nguồn Internet là nơi phổ biến để lưu trữ dữ liệu, nơi có thể tìm thấy cả cơ sở dữ liệu và tập tin. Giao diện lập trình ứng dụng, còn được gọi là API, cho phép lập trình viên tạo cách chia sẻ dữ liệu với người dùng bên ngoài qua Internet, trong khi quy trình lấy dữ liệu từ trang web (web scraping) trích xuất dữ liệu từ một trang web. Các [bài học trong phần Làm việc với Dữ liệu](../../../../../../../../../2-Working-With-Data) tập trung vào cách sử dụng các nguồn dữ liệu khác nhau.
## Kết luận
Trong bài học này, chúng ta đã học:
Trong bài học này chúng ta đã học:
- Dữ liệu là gì
- Cách mô tả dữ liệu
- Cách phân loại và phân nhóm dữ liệu
- Cách phân loại và nhóm dữ liệu
- Nơi có thể tìm thấy dữ liệu
## 🚀 Thử thách
Kaggle là một nguồn tuyệt vời cho các tập dữ liệu mở. Sử dụng [công cụ tìm kiếm tập dữ liệu](https://www.kaggle.com/datasets) để tìm một số tập dữ liệu thú vị và phân loại 3-5 tập dữ liệu theo tiêu chí sau:
Kaggle là nguồn dữ liệu mở tuyệt vời. Sử dụng [công cụ tìm kiếm bộ dữ liệu](https://www.kaggle.com/datasets) để tìm các bộ dữ liệu thú vị và phân loại 3-5 bộ dữ liệu với các tiêu chí sau:
- Dữ liệu là định lượng hay định tính?
- Dữ liệu có cấu trúc, không có cấu trúc hay bán cấu trúc?
- Dữ liệu là có cấu trúc, không có cấu trúc hay bán cấu trúc?
## [Bài kiểm tra sau bài giảng](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## [Câu hỏi sau bài giảng](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## Ôn tập & Tự học
- Đơn vị Microsoft Learn này, có tiêu đề [Phân loại dữ liệu của bạn](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data), có một phân tích chi tiết về dữ liệu có cấu trúc, bán cấu trúc và không có cấu trúc.
- Đơn vị Microsoft Learn này, có tiêu đề [Xác định định dạng dữ liệu](https://learn.microsoft.com/en-us/training/modules/explore-core-data-concepts/2-data-formats?pivots=text) có phần phân tích chi tiết về dữ liệu có cấu trúc, bán cấu trúc và không có cấu trúc.
## Bài tập
[Phân loại Tập dữ liệu](assignment.md)
[Phân loại Bộ dữ liệu](assignment.md)
---
**Tuyên bố miễn trừ trách nhiệm**:
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn tham khảo chính thức. Đối với các thông tin quan trọng, chúng tôi khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp từ con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Tuyên bố miễn trừ trách nhiệm**:
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc sai sót. Tài liệu gốc bằng ngôn ngữ gốc nên được coi là nguồn tin chính thức. Đối với thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm về bất kỳ hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -5,7 +5,7 @@
"metadata": {},
"source": [
"# Giới thiệu về Xác suất và Thống kê\n",
"Trong sổ tay này, chúng ta sẽ thử chơi với một số khái niệm đã được thảo luận trước đây. Nhiều khái niệm từ xác suất và thống kê được thể hiện rất tốt trong các thư viện chính dùng để xử lý dữ liệu trong Python, chẳng hạn như `numpy` và `pandas`.\n"
"Trong sổ ghi chép này, chúng ta sẽ thử nghiệm với một số khái niệm đã bàn trước đó. Nhiều khái niệm từ xác suất và thống kê được đại diện rõ ràng trong các thư viện chính để xử lý dữ liệu trong Python, chẳng hạn như `numpy` và `pandas`.\n"
]
},
{
@ -24,8 +24,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Biến ngẫu nhiên và Phân phối\n",
"Hãy bắt đầu bằng cách lấy một mẫu gồm 30 giá trị từ phân phối đều từ 0 đến 9. Chúng ta cũng sẽ tính toán trung bình và phương sai.\n"
"## Biến Ngẫu Nhiên và Phân Phối\n",
"Hãy bắt đầu bằng cách lấy một mẫu gồm 30 giá trị từ phân phối đều từ 0 đến 9. Chúng ta cũng sẽ tính trung bình và phương sai.\n"
]
},
{
@ -44,7 +44,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Để ước tính bằng mắt có bao nhiêu giá trị khác nhau trong mẫu, chúng ta có thể vẽ **biểu đồ tần số**:\n"
"Để ước tính trực quan có bao nhiêu giá trị khác nhau trong mẫu, chúng ta có thể vẽ **biểu đồ tần số**:\n"
]
},
{
@ -63,7 +63,7 @@
"source": [
"## Phân tích Dữ liệu Thực tế\n",
"\n",
"Giá trị trung bình và phương sai rất quan trọng khi phân tích dữ liệu thực tế. Hãy tải dữ liệu về các cầu thủ bóng chày từ [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
"Trung bình và phương sai rất quan trọng khi phân tích dữ liệu thực tế. Hãy tải dữ liệu về cầu thủ bóng chày từ [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": [
"> Chúng ta đang sử dụng một gói có tên là [**Pandas**](https://pandas.pydata.org/) ở đây để phân tích dữ liệu. Chúng ta sẽ nói thêm về Pandas và làm việc với dữ liệu trong Python ở phần sau của khóa học này.\n",
"> Chúng ta đang sử dụng một gói gọi là [**Pandas**](https://pandas.pydata.org/) ở đây để phân tích dữ liệu. Chúng ta sẽ nói nhiều hơn về Pandas và làm việc với dữ liệu trong Python sau trong khóa học này.\n",
"\n",
"Hãy cùng tính giá trị trung bình cho tuổi, chiều cao và cân nặng:\n"
"Hãy tính giá trị trung bình cho tuổi, chiều cao và cân nặng:\n"
]
},
{
@ -98,7 +98,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Bây giờ hãy tập trung vào chiều cao và tính toán độ lệch chuẩn và phương sai:\n"
"Bây giờ hãy tập trung vào chiều cao, và tính độ lệch chuẩn cùng phương sai: \n"
]
},
{
@ -126,7 +126,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Ngoài giá trị trung bình, cũng nên xem xét giá trị trung vị và các phân vị. Chúng có thể được trực quan hóa bằng **biểu đồ hộp**:\n"
"Bên cạnh trung bình, cũng hợp lý khi xem xét giá trị trung vị và các tứ phân vị. Chúng có thể được trực quan hóa bằng cách sử dụng **biểu đồ hộp**:\n"
]
},
{
@ -136,7 +136,7 @@
"outputs": [],
"source": [
"plt.figure(figsize=(10,2))\n",
"plt.boxplot(df['Height'].ffill(), vert=False, showmeans=True)\n",
"plt.boxplot(df['Height'].ffill(), orientation='horizontal', showmeans=True)\n",
"plt.grid(color='gray', linestyle='dotted')\n",
"plt.tight_layout()\n",
"plt.show()"
@ -146,7 +146,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Chúng ta cũng có thể tạo biểu đồ hộp của các tập con trong bộ dữ liệu của mình, ví dụ, nhóm theo vai trò của người chơi.\n"
"Chúng ta cũng có thể tạo biểu đồ hộp cho các tập con của bộ dữ liệu, ví dụ, nhóm theo vai trò của người chơi.\n"
]
},
{
@ -165,9 +165,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Lưu ý**: Sơ đồ này cho thấy, trung bình, chiều cao của những người chơi ở vị trí chạy cơ sở đầu tiên cao hơn chiều cao của những người chơi ở vị trí chạy cơ sở thứ hai. Sau này chúng ta sẽ học cách kiểm tra giả thuyết này một cách chính thức hơn, và cách chứng minh rằng dữ liệu của chúng ta có ý nghĩa thống kê để xác nhận điều đó. \n",
"> **Lưu ý**: Sơ đồ này gợi ý rằng, trung bình, chiều cao của các cầu thủ ở vị trí cầu thủ một là cao hơn so với chiều cao của các cầu thủ ở vị trí cầu thủ hai. Sau này chúng ta sẽ tìm hiểu cách kiểm tra giả thuyết này một cách chính thức hơn, và cách chứng minh rằng dữ liệu của chúng ta có ý nghĩa thống kê để xác nhận điều đó. \n",
"\n",
"Tuổi, chiều cao và cân nặng đều là các biến ngẫu nhiên liên tục. Bạn nghĩ phân phối của chúng là gì? Một cách tốt để tìm hiểu là vẽ biểu đồ tần suất các giá trị: \n"
"Tuổi, chiều cao và cân nặng đều là các biến ngẫu nhiên liên tục. Bạn nghĩ phân phối của chúng như thế nào? Một cách tốt để tìm hiểu là vẽ biểu đồ histogram của các giá trị: \n"
]
},
{
@ -190,7 +190,7 @@
"source": [
"## Phân phối Chuẩn\n",
"\n",
"Hãy tạo một mẫu trọng lượng nhân tạo tuân theo phân phối chuẩn với trung bình và phương sai giống như dữ liệu thực của chúng ta:\n"
"Hãy tạo một mẫu trọng lượng nhân tạo theo phân phối chuẩn với trung bình và phương sai giống như dữ liệu thực của chúng ta:\n"
]
},
{
@ -231,7 +231,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Vì hầu hết các giá trị trong cuộc sống thực đều phân phối chuẩn, chúng ta không nên sử dụng bộ phát số ngẫu nhiên đều để tạo dữ liệu mẫu. Dưới đây là điều xảy ra nếu chúng ta cố gắng tạo trọng lượng với phân phối đều (được tạo bởi `np.random.rand`):\n"
"Vì hầu hết các giá trị trong cuộc sống thực thường tuân theo phân phối chuẩn, chúng ta không nên sử dụng bộ tạo số ngẫu nhiên đều để tạo dữ liệu mẫu. Đây là những gì xảy ra nếu chúng ta cố gắng tạo trọng lượng với phân phối đều (được tạo bởi `np.random.rand`):\n"
]
},
{
@ -253,7 +253,7 @@
"source": [
"## Khoảng tin cậy\n",
"\n",
"Bây giờ chúng ta hãy tính khoảng tin cậy cho cân nặng và chiều cao của các cầu thủ bóng chày. Chúng ta sẽ sử dụng mã [từ cuộc thảo luận stackoverflow này](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
"Bây giờ chúng ta sẽ tính khoảng tin cậy cho cân nặng và chiều cao của các cầu thủ bóng chày. Chúng ta sẽ sử dụng mã [từ cuộc thảo luận stackoverflow này](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": [
"## Kiểm định Giả thuyết\n",
"## Kiểm Định Giả Thuyết\n",
"\n",
"Hãy cùng khám phá các vai trò khác nhau trong bộ dữ liệu cầu thủ bóng chày của chúng ta:\n"
"Hãy khám phá các vai trò khác nhau trong bộ dữ liệu cầu thủ bóng chày của chúng ta:\n"
]
},
{
@ -298,7 +298,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Hãy kiểm tra giả thuyết rằng các cầu thủ chơi ở vị trí Chạy đế một cao hơn các cầu thủ chơi ở vị trí Chạy đế hai. Cách đơn giản nhất để làm điều này là kiểm tra các khoảng tin cậy:\n"
"Hãy kiểm tra giả thuyết rằng Cầu thủ Số Một cao hơn Cầu thủ Số Hai. Cách đơn giản nhất để làm việc này là kiểm tra các khoảng tin cậy:\n"
]
},
{
@ -317,9 +317,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Chúng ta có thể thấy rằng các khoảng không chồng lấp nhau.\n",
"Chúng ta có thể thấy rằng các khoảng không chồng lên nhau. \n",
"\n",
"Một cách thống kê chính xác hơn để kiểm tra giả thuyết là sử dụng **kiểm định t của Student**:\n"
"Một cách thống kê đúng hơn để chứng minh giả thuyết là sử dụng **kiểm định t của Student**: \n"
]
},
{
@ -338,18 +338,18 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Hai giá trị trả về bởi hàm `ttest_ind` là:\n",
"* p-value có thể được xem là xác suất hai phân phối có cùng trung bình. Trong trường hợp của chúng ta, giá trị này rất thấp, nghĩa là có bằng chứng mạnh mẽ ủng hộ việc các cầu thủ gắn bó vị trí baseman đầu tiên cao hơn.\n",
"* t-value là giá trị trung gian của sự khác biệt trung bình đã chuẩn hóa được sử dụng trong kiểm định t, và nó được so sánh với giá trị ngưỡng cho một mức độ tin cậy nhất định.\n"
"Hai giá trị được trả về bởi hàm `ttest_ind` là:\n",
"* p-value có thể được coi là xác suất hai phân phối có cùng trung bình. Trong trường hợp của chúng ta, nó rất thấp, có nghĩa là có bằng chứng mạnh mẽ hỗ trợ rằng các cầu thủ đá chính ở vị trí chặn bóng đầu tiên cao hơn.\n",
"* t-value là giá trị trung gian của sự khác biệt trung bình được chuẩn hóa được sử dụng trong kiểm định t, và nó được so sánh với một giá trị ngưỡng cho một giá trị độ tin cậy nhất định.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Mô phỏng phân phối chuẩn với Định lý Giới hạn Trung tâm\n",
"## Mô phỏng phân phối chuẩn với định lý giới hạn trung tâm\n",
"\n",
"Bộ tạo số giả ngẫu nhiên trong Python được thiết kế để cho chúng ta một phân phối đều. Nếu chúng ta muốn tạo một bộ tạo cho phân phối chuẩn, chúng ta có thể sử dụng định lý giới hạn trung tâm. Để có được một giá trị phân phối chuẩn, chúng ta chỉ cần tính trung bình của một mẫu được tạo ra từ phân phối đều.\n"
"Bộ sinh số giả ngẫu nhiên trong Python được thiết kế để cho ta một phân phối đều. Nếu ta muốn tạo một bộ sinh cho phân phối chuẩn, ta có thể sử dụng định lý giới hạn trung tâm. Để có được một giá trị phân phối chuẩn, ta chỉ cần tính trung bình mẫu được sinh ra từ phân phối đều.\n"
]
},
{
@ -375,7 +375,7 @@
"source": [
"## Tương quan và Evil Baseball Corp\n",
"\n",
"Tương quan cho phép chúng ta tìm mối quan hệ giữa các chuỗi dữ liệu. Trong ví dụ minh họa của chúng ta, hãy giả sử có một tập đoàn bóng chày ác độc trả lương cho các cầu thủ theo chiều cao - người chơi càng cao thì tiền lương nhận được càng nhiều. Giả sử có lương cơ bản là 1000 đô la, và thêm tiền thưởng từ 0 đến 100 đô la, tùy thuộc vào chiều cao. Chúng ta sẽ lấy các cầu thủ thật từ MLB và tính toán mức lương tưởng tượng của họ:\n"
"Tương quan cho phép chúng ta tìm thấy mối quan hệ giữa các dãy dữ liệu. Trong ví dụ đơn giản của chúng ta, hãy giả sử có một công ty bóng chày ác độc trả lương cho các cầu thủ của họ theo chiều cao - cầu thủ cao hơn sẽ nhận được nhiều tiền hơn. Giả sử có một mức lương cơ bản là 1000 đô la, và một khoản thưởng thêm từ 0 đến 100 đô la, tùy thuộc vào chiều cao. Chúng ta sẽ lấy các cầu thủ thật từ MLB và tính toán mức lương tưởng tượng của họ:\n"
]
},
{
@ -384,7 +384,7 @@
"metadata": {},
"outputs": [],
"source": [
"heights = df['Height'].fillna(method='pad')\n",
"heights = df['Height'].ffill()\n",
"salaries = 1000+(heights-heights.min())/(heights.max()-heights.mean())*100\n",
"print(list(zip(heights, salaries))[:10])"
]
@ -393,7 +393,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Bây giờ chúng ta sẽ tính hiệp phương sai và tương quan của các dãy số đó. `np.cov` sẽ cho chúng ta cái gọi là **ma trận hiệp phương sai**, là sự mở rộng của hiệp phương sai cho nhiều biến. Phần tử $M_{ij}$ của ma trận hiệp phương sai $M$ là tương quan giữa các biến đầu vào $X_i$ và $X_j$, và các giá trị trên đường chéo $M_{ii}$ là phương sai của $X_{i}$. Tương tự, `np.corrcoef` sẽ cho chúng ta **ma trận tương quan**.\n"
"Bây giờ chúng ta hãy tính hiệp phương sai và hệ số tương quan của những chuỗi đó. `np.cov` sẽ cho chúng ta một cái gọi là **ma trận hiệp phương sai**, là một phần mở rộng của hiệp phương sai cho nhiều biến. Phần tử $M_{ij}$ của ma trận hiệp phương sai $M$ là mối tương quan giữa các biến đầu vào $X_i$ và $X_j$, và các giá trị trên đường chéo $M_{ii}$ là phương sai của $X_{i}$. Tương tự, `np.corrcoef` sẽ cho chúng ta **ma trận tương quan**.\n"
]
},
{
@ -411,7 +411,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Một hệ số tương quan bằng 1 có nghĩa là có một **mối quan hệ tuyến tính** mạnh mẽ giữa hai biến. Chúng ta có thể nhìn thấy mối quan hệ tuyến tính này bằng cách vẽ một giá trị lên trục so với giá trị kia:\n"
"Một hệ số tương quan bằng 1 có nghĩa là có một **mối quan hệ tuyến tính** mạnh giữa hai biến. Chúng ta có thể nhìn thấy mối quan hệ tuyến tính bằng cách vẽ một giá trị so với giá trị kia:\n"
]
},
{
@ -430,7 +430,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Hãy xem điều gì xảy ra nếu mối quan hệ không phải là tuyến tính. Giả sử công ty của chúng ta quyết định ẩn đi sự phụ thuộc tuyến tính rõ ràng giữa chiều cao và mức lương, và đưa vào một số tính phi tuyến trong công thức, chẳng hạn như `sin`:\n"
"Hãy xem điều gì sẽ xảy ra nếu mối quan hệ không phải là tuyến tính. Giả sử công ty chúng ta quyết định ẩn đi sự phụ thuộc tuyến tính rõ ràng giữa chiều cao và mức lương, và giới thiệu một số phi tuyến tính vào công thức, chẳng hạn như `sin`:\n"
]
},
{
@ -447,7 +447,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Trong trường hợp này, hệ số tương quan hơi nhỏ hơn một chút, nhưng vẫn khá cao. Bây giờ, để làm cho mối quan hệ trở nên kém rõ ràng hơn, chúng ta có thể muốn thêm một số sự ngẫu nhiên bằng cách thêm một biến ngẫu nhiên vào lương. Hãy xem điều gì sẽ xảy ra:\n"
"Trong trường hợp này, sự tương quan nhỏ hơn một chút, nhưng vẫn khá cao. Bây giờ, để làm cho mối quan hệ trở nên kém rõ ràng hơn, chúng ta có thể muốn thêm một số ngẫu nhiên bổ sung bằng cách thêm một biến ngẫu nhiên vào tiền lương. Hãy xem điều gì sẽ xảy ra:\n"
]
},
{
@ -476,9 +476,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> Bạn có đoán được tại sao các dấu chấm lại xếp thành các đường thẳng đứng như thế này không?\n",
"> Bạn có đoán được tại sao các chấm lại xếp thành các đường thẳng đứng như thế này không?\n",
"\n",
"Chúng ta đã quan sát được mối tương quan giữa một khái niệm được thiết kế nhân tạo như lương và biến quan sát được *chiều cao*. Hãy cùng xem liệu hai biến quan sát được, chẳng hạn như chiều cao và cân nặng, cũng có tương quan không:\n"
"Chúng ta đã quan sát được sự tương quan giữa một khái niệm được tạo ra nhân tạo như lương và biến quan sát được *chiều cao*. Hãy cùng xem liệu hai biến quan sát được, chẳng hạn như chiều cao và cân nặng, có tương quan với nhau không:\n"
]
},
{
@ -494,11 +494,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Thật không may, chúng ta không thu được kết quả nào - chỉ có một số giá trị `nan` kỳ lạ. Điều này là do một số giá trị trong chuỗi của chúng ta không xác định, được biểu diễn dưới dạng `nan`, điều này khiến kết quả của phép toán cũng trở nên không xác định. Bằng cách xem ma trận, chúng ta có thể thấy rằng `Weight` là cột gây vấn đề, vì tự tương quan giữa các giá trị `Height` đã được tính toán.\n",
"Thật không may, chúng ta không thu được kết quả nào - chỉ có một vài giá trị `nan` kỳ lạ. Điều này là do một số giá trị trong chuỗi của chúng ta không xác định, được biểu diễn dưới dạng `nan`, điều này khiến kết quả của phép toán cũng không xác định. Bằng cách xem ma trận, chúng ta có thể thấy rằng `Weight` là cột gây ra vấn đề, vì đã tính toán sự tự tương quan giữa các giá trị `Height`.\n",
"\n",
"> Ví dụ này cho thấy tầm quan trọng của việc **chuẩn bị dữ liệu** và **làm sạch dữ liệu**. Nếu không có dữ liệu thích hợp, chúng ta không thể tính toán được gì.\n",
"> Ví dụ này cho thấy tầm quan trọng của việc **chuẩn bị dữ liệu** và **làm sạch**. Nếu không có dữ liệu đúng, chúng ta không thể tính toán được gì.\n",
"\n",
"Hãy sử dụng phương pháp `fillna` để điền các giá trị thiếu, và tính toán tương quan:\n"
"Hãy sử dụng phương pháp `fillna` để điền các giá trị bị thiếu, và tính toán sự tương quan:\n"
]
},
{
@ -507,14 +507,14 @@
"metadata": {},
"outputs": [],
"source": [
"np.corrcoef(df['Height'].fillna(method='pad'), df['Weight'])"
"np.corrcoef(df['Height'].ffill(), df['Weight'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Thực sự có sự tương quan, nhưng không mạnh như trong ví dụ nhân tạo của chúng ta. Thật vậy, nếu chúng ta nhìn vào biểu đồ phân tán của một giá trị so với giá trị kia, mối quan hệ sẽ ít rõ ràng hơn nhiều:\n"
"Thật vậy có một sự tương quan, nhưng không mạnh mẽ như trong ví dụ nhân tạo của chúng ta. Thực tế, nếu chúng ta nhìn vào đồ thị phân tán của một giá trị so với giá trị kia, mối quan hệ sẽ kém rõ ràng hơn nhiều:\n"
]
},
{
@ -537,14 +537,14 @@
"source": [
"## Kết luận\n",
"\n",
"Trong sổ tay này, chúng ta đã học cách thực hiện các phép toán cơ bản trên dữ liệu để tính các hàm thống kê. Giờ đây, chúng ta biết cách sử dụng một bộ công cụ toán học và thống kê vững chắc nhằm chứng minh một số giả thuyết, cũng như cách tính khoảng tin cậy cho các biến tùy ý dựa trên một mẫu dữ liệu.\n"
"Trong sổ tay này, chúng ta đã học cách thực hiện các phép toán cơ bản trên dữ liệu để tính các hàm thống kê. Bây giờ chúng ta biết cách sử dụng một bộ công cụ toán học và thống kê vững chắc nhằm chứng minh một số giả thuyết, cách tính khoảng tin cậy cho các biến tùy ý dựa trên mẫu dữ liệu.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Tuyên bố miễn trừ trách nhiệm**: \nTài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi nỗ lực đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ gốc nên được xem là nguồn thông tin chính xác và đáng tin cậy. Đối với các thông tin quan trọng, khuyến khích sử dụng dịch vụ dịch thuật chuyên nghiệp của con người. Chúng tôi không chịu trách nhiệm đối với bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Tuyên bố miễn trừ trách nhiệm**:\nTài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc sai sót. Tài liệu gốc bằng ngôn ngữ gốc nên được coi là nguồn tin chính thức. Đối với thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm về bất kỳ hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -568,12 +568,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
},
"coopTranslator": {
"original_hash": "0f899e3c5019f948e7c787b22f3b2304",
"translation_date": "2026-01-16T16:45:18+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "vi"
}
},
"nbformat": 4,

@ -4,11 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Ước tính Đại dịch COVID-19\n",
"# Ước tính đại dịch COVID-19\n",
"\n",
"## Tải Dữ liệu\n",
"## Tải dữ liệu\n",
"\n",
"Chúng ta sẽ sử dụng dữ liệu về các cá nhân nhiễm COVID-19, được cung cấp bởi [Trung tâm Khoa học và Kỹ thuật Hệ thống](https://systems.jhu.edu/) (CSSE) tại [Đại học Johns Hopkins](https://jhu.edu/). Bộ dữ liệu có sẵn trong [Kho GitHub này](https://github.com/CSSEGISandData/COVID-19).\n"
"Chúng ta sẽ sử dụng dữ liệu về những người nhiễm COVID-19, được cung cấp bởi [Trung tâm Khoa học và Kỹ thuật Hệ thống](https://systems.jhu.edu/) (CSSE) tại [Đại học Johns Hopkins](https://jhu.edu/). Bộ dữ liệu có sẵn trong [Kho lưu trữ GitHub này](https://github.com/CSSEGISandData/COVID-19).\n"
]
},
{
@ -27,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Chúng ta có thể tải dữ liệu mới nhất trực tiếp từ GitHub bằng cách sử dụng `pd.read_csv`. Nếu vì lý do nào đó dữ liệu không có sẵn, bạn luôn có thể sử dụng bản sao có sẵn cục bộ trong thư mục `data` - chỉ cần bỏ chú thích dòng dưới đây định nghĩa `base_url`:\n"
"Chúng ta có thể tải dữ liệu mới nhất trực tiếp từ GitHub bằng cách sử dụng `pd.read_csv`. Nếu vì lý do nào đó dữ liệu không có sẵn, bạn luôn có thể sử dụng bản sao có sẵn cục bộ trong thư mục `data` - chỉ cần bỏ chú thích dòng bên dưới định nghĩa `base_url`:\n"
]
},
{
@ -48,7 +48,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Bây giờ hãy tải dữ liệu cho các cá nhân bị nhiễm và xem dữ liệu trông như thế nào:\n"
"Bây giờ chúng ta hãy tải dữ liệu cho những người bị nhiễm và xem dữ liệu trông như thế nào:\n"
]
},
{
@ -265,7 +265,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Chúng ta có thể thấy rằng mỗi hàng trong bảng xác định số người nhiễm ở từng quốc gia và/hoặc tỉnh, và các cột tương ứng với các ngày. Các bảng tương tự có thể được tải cho các dữ liệu khác, chẳng hạn như số người hồi phục và số người chết.\n"
"Chúng ta có thể thấy rằng mỗi hàng của bảng định nghĩa số lượng cá nhân bị nhiễm cho mỗi quốc gia và/hoặc tỉnh, và các cột tương ứng với ngày tháng. Các bảng tương tự có thể được tải cho các dữ liệu khác, chẳng hạn như số người hồi phục và số ca tử vong.\n"
]
},
{
@ -282,9 +282,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Hiểu về Dữ liệu\n",
"## Hiểu Về Dữ Liệu\n",
"\n",
"Từ bảng trên cột province không rõ vai trò. Hãy xem các giá trị khác nhau có trong cột `Province/State`:\n"
"Từ bảng trên, vai trò của cột tỉnh/thành không rõ ràng. Hãy xem các giá trị khác nhau có trong cột `Province/State`:\n"
]
},
{
@ -322,7 +322,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Từ các tên gọi, chúng ta có thể suy ra rằng các quốc gia như Úc và Trung Quốc có phân loại chi tiết hơn theo từng tỉnh. Hãy cùng tìm thông tin về Trung Quốc để xem ví dụ:\n"
"Từ các tên gọi, chúng ta có thể suy ra rằng các quốc gia như Australia và Trung Quốc có phân chia chi tiết hơn theo các tỉnh. Hãy tìm thông tin về Trung Quốc để xem ví dụ:\n"
]
},
{
@ -1321,9 +1321,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Xử lý dữ liệu trước\n",
"## Tiền xử lý Dữ liệu \n",
"\n",
"Chúng tôi không quan tâm đến việc phân chia các quốc gia thành các khu vực nhỏ hơn, do đó trước tiên chúng tôi sẽ loại bỏ sự phân chia này và tổng hợp thông tin của tất cả các khu vực lại với nhau, để có được thông tin cho toàn bộ quốc gia. Điều này có thể được thực hiện bằng cách sử dụng `groupby`:\n"
"Chúng tôi không quan tâm đến việc phân ch các quốc gia thành các khu vực nhỏ hơn, do đó trước tiên chúng tôi sẽ loại bỏ phân tách này và cộng thông tin của tất cả các khu vực lại với nhau, để lấy thông tin cho toàn bộ quốc gia. Việc này có thể được thực hiện bằng cách sử dụng `groupby`:\n"
]
},
{
@ -1578,7 +1578,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Bạn có thể thấy rằng do sử dụng `groupby`, tất cả các DataFrame bây giờ đều được lập chỉ mục theo Quốc gia/Khu vực. Do đó, chúng ta có thể truy cập dữ liệu cho một quốc gia cụ thể bằng cách sử dụng `.loc`:|\n"
"Bạn có thể thấy rằng do sử dụng `groupby` tất cả các DataFrame bây giờ đều được đánh chỉ mục theo Quốc gia/Vùng. Do đó, chúng ta có thể truy cập dữ liệu cho một quốc gia cụ thể bằng cách sử dụng `.loc`:|\n"
]
},
{
@ -1607,7 +1607,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Lưu ý** cách chúng ta sử dụng `[3:]` để loại bỏ ba phần tử đầu tiên của một chuỗi chứa siêu dữ liệu không phải ngày tháng (các cột Tỉnh/Thành phố và vị trí địa lý). Chúng ta cũng có thể loại bỏ hoàn toàn ba cột đó:\n"
"> **Lưu ý** cách chúng ta sử dụng `[3:]` để loại bỏ ba phần tử đầu tiên của một chuỗi chứa siêu dữ liệu không phải ngày tháng (các cột Tỉnh/Bang và vị trí địa lý). Chúng ta cũng có thể bỏ hoàn toàn ba cột đó: \n"
]
},
{
@ -1625,9 +1625,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Điều tra dữ liệu\n",
"## Điều tra Dữ liệu\n",
"\n",
"Bây giờ hãy chuyển sang điều tra một quốc gia cụ thể. Hãy tạo một khung chứa dữ liệu về các ca nhiễm được lập chỉ mục theo ngày:\n"
"Bây giờ chúng ta hãy chuyển sang điều tra một quốc gia cụ thể. Hãy tạo một khung chứa dữ liệu về các ca nhiễm được đánh chỉ mục theo ngày:\n"
]
},
{
@ -1793,7 +1793,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Bây giờ hãy tính số người nhiễm mới mỗi ngày. Điều này sẽ cho phép chúng ta thấy tốc độ tiến triển của đại dịch. Cách dễ nhất để làm điều này là sử dụng `diff`:\n"
"Bây giờ hãy tính số người mới nhiễm mỗi ngày. Điều này sẽ cho chúng ta thấy tốc độ tiến triển của đại dịch. Cách dễ nhất để làm việc này là sử dụng `diff`:\n"
]
},
{
@ -1823,7 +1823,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Chúng ta có thể thấy sự dao động lớn trong dữ liệu. Hãy xem kỹ hơn một trong những tháng:\n"
"Chúng ta có thể thấy sự dao động lớn trong dữ liệu. Hãy xem kỹ hơn một trong những tháng: \n"
]
},
{
@ -1852,7 +1852,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Rõ ràng có sự dao động hàng tuần trong dữ liệu. Vì chúng ta muốn có thể nhìn thấy các xu hướng, nên hợp lý khi làm mượt đường cong bằng cách tính trung bình chạy (tức là đối với mỗi ngày chúng ta sẽ tính giá trị trung bình của vài ngày trước đó):\n"
"Rõ ràng có sự dao động hàng tuần trong dữ liệu. Bởi vì chúng ta muốn có thể nhìn thấy các xu hướng, nên việc làm mượt đường cong bằng cách tính trung bình chạy là hợp lý (tức là đối với mỗi ngày, chúng ta sẽ tính giá trị trung bình của vài ngày trước đó):\n"
]
},
{
@ -1882,7 +1882,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Để có thể so sánh một số quốc gia, chúng ta có thể muốn tính đến dân số của quốc gia đó và so sánh tỷ lệ phần trăm những người bị nhiễm so với dân số của quốc gia. Để lấy dân số của quốc gia, hãy tải bộ dữ liệu của các quốc gia:\n"
"Để có thể so sánh nhiều quốc gia, chúng ta có thể muốn xem xét đến dân số của quốc gia đó và so sánh tỷ lệ phần trăm người nhiễm so với dân số quốc gia. Để lấy dân số của các quốc gia, hãy tải bộ dữ liệu các quốc gia:\n"
]
},
{
@ -2153,7 +2153,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Vì bộ dữ liệu này chứa thông tin về cả quốc gia và tỉnh thành, để lấy dân số của toàn bộ quốc gia, chúng ta cần phải khéo léo một chút:\n"
"Vì bộ dữ liệu này chứa thông tin về cả các quốc gia và tỉnh thành, để lấy dân số của toàn bộ quốc gia, chúng ta cần phải khéo léo một chút: \n"
]
},
{
@ -2261,14 +2261,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Tính toán $R_t$\n",
"\n",
"Để xem bệnh có lây nhiễm như thế nào, chúng ta nhìn vào **số sinh sản cơ bản** $R_0$, biểu thị số người mà một người bị nhiễm sẽ lây nhiễm tiếp. Khi $R_0$ lớn hơn 1, dịch bệnh có khả năng lan rộng.\n",
"Để biết bệnh lây nhiễm đến mức nào, chúng ta xem **số tái sinh cơ bản** $R_0$, chỉ ra số người mà một người nhiễm bệnh sẽ lây nhiễm tiếp. Khi $R_0$ lớn hơn 1, dịch bệnh có khả năng lan rộng.\n",
"\n",
"$R_0$ là thuộc tính của chính căn bệnh, và không tính đến một số biện pháp bảo vệ mà mọi người có thể áp dụng để làm chậm đại dịch. Trong quá trình tiến triển của đại dịch, chúng ta có thể ước tính số sinh sản $R_t$ tại bất kỳ thời điểm $t$ nào. Người ta đã chứng minh rằng số này có thể được ước tính gần đúng bằng cách lấy cửa sổ 8 ngày, và tính $$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",
"trong đó $I_t$ là số cá thể mới nhiễm vào ngày thứ $t$.\n",
"$R_0$ là thuộc tính của bản thân bệnh, và không tính đến một số biện pháp bảo vệ mà con người có thể thực hiện để làm chậm đại dịch. Trong quá trình tiến triển dịch bệnh, chúng ta có thể ước tính số tái sinh $R_t$ tại bất kỳ thời điểm $t$ nào. Người ta đã chỉ ra rằng số này có thể được ước tính xấp xỉ bằng cách lấy cửa sổ 8 ngày, và tính toán $$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",
"trong đó $I_t$ là số cá thể mới nhiễm trong ngày $t$.\n",
"\n",
"Hãy tính $R_t$ cho dữ liệu đại dịch của chúng ta. Để làm điều này, ta sẽ lấy một cửa sổ lăn gồm 8 giá trị `ninfected`, và áp dụng hàm để tính tỉ lệ ở trên:\n"
"Hãy tính $R_t$ cho dữ liệu đại dịch của chúng ta. Để làm điều này, chúng ta sẽ lấy cửa sổ trượt gồm 8 giá trị `ninfected`, và áp dụng hàm để tính tỉ số trên:\n"
]
},
{
@ -2298,9 +2299,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Bạn có thể thấy có một số khoảng trống trong biểu đồ. Những khoảng trống đó có thể do `NaN`, hoặc nếu có giá trị `inf` xuất hiện trong bộ dữ liệu. `inf` có thể do chia cho 0, và `NaN` có thể biểu thị dữ liệu bị thiếu, hoặc không có dữ liệu để tính kết quả (như ở ngay phần đầu của khung dữ liệu của chúng ta, nơi cửa sổ trượt có độ rộng 8 chưa có sẵn). Để làm cho biểu đồ đẹp hơn, chúng ta cần điền các giá trị đó bằng cách sử dụng hàm `replace` và `fillna`.\n",
"Bạn có thể thấy rằng có một số khoảng trống trong đồ thị. Những khoảng trống đó có thể do `NaN`, hoặc do các giá trị `inf` xuất hiện trong tập dữ liệu. `inf` có thể do chia cho 0, và `NaN` có thể chỉ dữ liệu bị thiếu, hoặc không có dữ liệu để tính kết quả (như ở ngay đầu khung dữ liệu của chúng ta, khi cửa sổ lăn rộng 8 chưa có sẵn). Để làm cho đồ thị đẹp hơn, chúng ta cần điền những giá trị đó bằng cách sử dụng hàm `replace` và `fillna`.\n",
"\n",
"Hãy xem thêm phần đầu của đại dịch. Chúng ta cũng sẽ giới hạn giá trị trục y để chỉ hiển thị các giá trị dưới 6, nhằm nhìn rõ hơn, và vẽ đường ngang tại giá trị 1.\n"
"Hãy cùng nhìn sâu hơn vào thời điểm bắt đầu của đại dịch. Chúng ta cũng sẽ giới hạn giá trị trục y chỉ hiển thị các giá trị dưới 6, để nhìn rõ hơn, và vẽ một đường ngang tại 1.\n"
]
},
{
@ -2331,7 +2332,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Một chỉ số thú vị khác của đại dịch là **đạo hàm**, hay **sự khác biệt hàng ngày** trong số ca nhiễm mới. Nó cho phép chúng ta nhìn rõ khi đại dịch đang tăng lên hoặc giảm xuống.\n"
"Một chỉ số thú vị khác của đại dịch là **đạo hàm**, hay **sự khác biệt hàng ngày** trong các ca mới. Nó cho phép chúng ta nhìn rõ khi đại dịch đang tăng hay giảm. \n"
]
},
{
@ -2360,7 +2361,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Với thực tế có rất nhiều biến động trong dữ liệu do việc báo cáo, việc làm mượt đường cong bằng cách chạy trung bình trượt để có được bức tranh tổng thể là hợp lý. Hãy cùng tập trung lại vào những tháng đầu tiên của đại dịch:\n"
"Với thực tế có rất nhiều biến động trong dữ liệu do báo cáo, việc làm mượt đường cong bằng cách chạy trung bình trượt để có được bức tranh tổng thể là hợp lý. Hãy tiếp tục tập trung vào những tháng đầu tiên của đại dịch:\n"
]
},
{
@ -2390,25 +2391,26 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Thách thức\n",
"\n",
"Bây giờ là lúc bạn chơi nhiều hơn với mã và dữ liệu! Dưới đây là một vài gợi ý bạn có thể thử nghiệm:\n",
"## Thử thách\n",
"\n",
"Bây giờ là lúc bạn chơi với mã và dữ liệu nhiều hơn! Dưới đây là một vài gợi ý bạn có thể thử nghiệm:\n",
"* Xem sự lan rộng của đại dịch ở các quốc gia khác nhau.\n",
"* Vẽ đồ thị $R_t$ cho nhiều quốc gia trên cùng một biểu đồ để so sánh, hoặc tạo nhiều biểu đồ cạnh nhau.\n",
"* Xem số ca tử vong và hồi phục tương quan như thế nào với số ca nhiễm.\n",
"* Thử tìm hiểu xem một bệnh điển hình kéo dài bao lâu bằng cách so sánh trực quan tỉ lệ nhiễm và tỉ lệ tử vong và tìm kiếm một số điểm bất thường. Bạn có thể cần xem ở các quốc gia khác nhau để tìm ra điều đó.\n",
"* Tính t lệ tử vong và cách nó thay đổi theo thời gian. Bạn có thể muốn xem xét độ dài của bệnh tính theo ngày để dịch chuyển một chuỗi thời gian trước khi thực hiện các phép tính.\n"
"* Vẽ biểu đồ $R_t$ cho một số quốc gia trên cùng một biểu đồ để so sánh, hoặc tạo nhiều biểu đồ đặt cạnh nhau\n",
"* Xem số ca tử vong và phục hồi có liên quan như thế nào đến số ca nhiễm.\n",
"* Thử tìm ra thời gian trung bình của bệnh bằng cách đối chiếu trực quan giữa tỷ lệ nhiễm và tỷ lệ tử vong, và tìm một số bất thường. Bạn có thể cần xem xét các quốc gia khác nhau để tìm ra điều đó.\n",
"* Tính t lệ tử vong và cách nó thay đổi theo thời gian. Bạn có thể muốn xem xét độ dài của bệnh tính bằng ngày để dịch chuyển một chuỗi thời gian trước khi tính toán\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## References\n",
"## Tài liệu tham khảo\n",
"\n",
"Bạn có thể xem thêm các nghiên cứu về sự lây lan đại dịch COVID trong các ấn phẩm sau:\n",
"* [Mô hình SIR trượt để ước lượng Rt trong đại dịch COVID](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), bài viết blog của [Dmitry Soshnikov](http://soshnikov.com)\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [Ước lượng số sinh sản phụ thuộc thời gian cho đợt bùng phát COVID-19 toàn cầu](https://www.preprints.org/manuscript/202006.0289/v1). *Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"Bạn có thể xem thêm các nghiên cứu về sự lây lan dịch COVID trong các ấn phẩm sau:\n",
"* [Mô hình SIR trượt để Ước lượng Rt trong đại dịch COVID](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), bài viết trên blog của [Dmitry Soshnikov](http://soshnikov.com)\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [Ước lượng Số sinh sản phụ thuộc thời gian cho dịch COVID-19 toàn cầu](https://www.preprints.org/manuscript/202006.0289/v1). *Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [Mã nguồn cho bài báo trên trê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**Tuyên bố từ chối trách nhiệm**: \nTài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi nỗ lực đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ gốc của nó được xem là nguồn chính thức và có thẩm quyền. Đối với thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp do con người thực hiện. Chúng tôi không chịu trách nhiệm về bất kỳ sự hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Tuyên bố miễn trừ trách nhiệm**:\nTài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc sai sót. Tài liệu gốc bằng ngôn ngữ gốc nên được coi là nguồn tin chính thức. Đối với thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm về bất kỳ hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],

@ -1,8 +1,8 @@
# Dự án trực quan hóa dữ liệu Dangerous Liaisons
Để bắt đầu, bạn cần đảm bảo rằng bạn đã cài đặt NPM và Node trên máy của mình. Cài đặt các phụ thuộc (npm install) và sau đó chạy dự án cục bộ (npm run serve):
Để bắt đầu, bạn cần đảm bảo rằng bạn đã cài đặt NPM và Node **>=20.0.0** đang chạy trên máy của bạn. Cài đặt các phụ thuộc (npm install) và sau đó chạy dự án trên máy cục bộ (npm run serve):
## Cài đặt dự án
## Thiết lập dự án
```
npm install
```
@ -12,20 +12,22 @@ npm install
npm run serve
```
### Biên dịch và tối ưu hóa cho sản xuất
### Biên dịch và rút gọn cho sản xuất
```
npm run build
```
### Kiểm tra và sửa lỗi tệp
### Kiểm tra và sửa lỗi tập tin
```
npm run lint
```
### Tùy chỉnh cấu hình
Xem [Tài liệu tham khảo về cấu hình](https://cli.vuejs.org/config/).
Xem [Tham khảo Cấu hình](https://cli.vuejs.org/config/).
---
**Tuyên bố miễn trừ trách nhiệm**:
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn thông tin chính thức. Đối với các thông tin quan trọng, khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp từ con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Tuyên bố miễn trừ trách nhiệm**:
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc sai sót. Tài liệu gốc bằng ngôn ngữ gốc nên được coi là nguồn tin chính thức. Đối với thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm về bất kỳ hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,31 +1,33 @@
# Dự án trực quan hóa dữ liệu Dangerous Liaisons
Để bắt đầu, bạn cần đảm bảo rằng NPM và Node đang chạy trên máy của bạn. Cài đặt các gói phụ thuộc (npm install) và sau đó chạy dự án cục bộ (npm run serve):
Để bắt đầu, bạn cần đảm bảo rằng bạn có NPM và Node **>=20.0.0** đang chạy trên máy của bạn. Cài đặt các phụ thuộc (npm install) và sau đó chạy dự án cục bộ (npm run serve):
## Cài đặt dự án
## Thiết lập dự án
```
npm install
```
### Biên dịch và tải lại tự động cho phát triển
### Biên dịch và tải lại ng cho phát triển
```
npm run serve
```
### Biên dịch và tối ưu hóa cho sản xuất
### Biên dịch và nén cho sản xuất
```
npm run build
```
### Kiểm tra và sửa lỗi tệp
### Kiểm tra và sửa các tệp
```
npm run lint
```
### Tùy chỉnh cấu hình
Xem [Tham chiếu Cấu hình](https://cli.vuejs.org/config/).
Xem [Configuration Reference](https://cli.vuejs.org/config/).
---
**Tuyên bố miễn trừ trách nhiệm**:
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn thông tin chính thức. Đối với các thông tin quan trọng, khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Tuyên bố miễn trừ trách nhiệm**:
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc sai sót. Tài liệu gốc bằng ngôn ngữ gốc nên được coi là nguồn tin chính thức. Đối với thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm về bất kỳ hiểu lầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save