בזכות תרשימי עוגה תלת מימדיים

בלוג, הדמיית נתונים

מה קובע אם גרף מסויים טוב ואחר – רע?

באופן פשטני, אם גרף עוזר לי להבין את הנתונים מהר ובלי לעוות את המציאות, הוא גרף טוב. אם, לעומת זאת, הגרף גורם לי לטעות לגבי האופי האמיתי של הנתונים או מאלץ אותי לבלות זמן רב בניתוח, הוא גרף גרוע. 

מן העקרון הפשוט הזה נגזרות הרבה מאוד המלצות לגבי ה־״עשה״ ו־״אל תעשה״. ככה, למשל, גרף עוגה תלת מימדי היה בעניי החטא הגדול ביותר שאפשר לעשות בהדמיית נתונים. למה? כי העוגה מקשה על הצופה בהשוואת גדלים קרובים, ואם מוסיפים לה עיוותים של תלת מימד, אז בכלל….

שמחתי לראות שבמשאל שפרסמתי מוקדם יותר היום, לא מעט אנשים בחרו בעוגות התלת מימדיות כחטא הגדול ביותר. אבל, ייתכן שכולנו קצת טועים. כי הקריטריונים שרשמתי בתחילת הפוסט ניתנים למדידה. וכשיש נתונים אמפיריים, השיקולים התיאורטיים מקבלים משקל נמוך יותר. אתמול נתקלתי במאמר די מעניין. במאמר, החוקרים חשפו את הנסיינים לשלושה סוגי גרפים ובדקו את הזמן הדרוש לניתוח הגרף ואת גודל הטעויות במהלך הניתוח. שלושת סוגי הגרפים היו: תרשים עוגה ״רגיל״, תרשים עמודות ותרשים עוגה תלת מימדי.

לפי התיאוריה שלי, הסוג האחרון של הגרפים היה צריך להוביל לזמן קריאה הארוך ביותר ולטעויות הגדולות ביותר. ולא כן! ביצועי הנסיינים בכל הגרפים היו זהים.

מה ניתן ללמוד מזה? שיקולים עקרוניים זה טוב, אבל כדאי לבדוק אותם מדי פעם בעזרת ניסויים.

האם מעכשיו אתחיל ליצור עוגות תלת מימדיות? ממש ממש לא! אני כבר זקן מדי כדי לשנות את דרכי. האם אני אנזוף בסטודנטים שלי שייצרו עוגות תלת מימדיות בתרגילים? עדיין כן,  אני כבר זקן מדי כדי לשנות גם את זה. האם אני אראה לסטודנטים את המחקר הזה ואחפש מחקרים דומים אחרים? כן וכן.

הדמיית נתונים – מוסיפים תובנות על ידי הורדת פרטים

בלוג, הדמיית נתונים

היום ראיתי פוסט שניסה להראות את ההתאוששות של שוק המכוניות בישראל באמצעות גרף. לצערי, איבדתי את הפוסט המקורי, אבל הגרף נראה בערך כך

מה רואים? נתוני מכירות של מכוניות חדשות בארך מאז קדמת דנא, גרף מגמה עולה (טוב, תמיד נחמד לראות גרף מגמה עולה) ובערך זהו.

על השפה הקריפטית של הגרף (מה זה car_num) ועל כמות הנתונים הלא נחוצים (תאריכים, יותר מדי שנתות על שני הצירים) אני כבר לא מדבר. 

אז מה עושים?

קודם כל, מוסיפים כותרת (אני לא אתעייף להגיד עד כמה הכותרת היא כלי חשוב בעבודה של יוצר גרפים). הכותרת תהיה ״Post COVID purchase recovery״. אז עוד לפני שממשיכים, אפשר להבין שאין טעם להסתכל על שנת 2010, מהיכן שהנתונים שלנו מתחילים. עוד ברור שצריך לסמן את ״שנת הקורונה״ ואת ״שנת ההתאוששות״. אז הנה מה שיצא לי: פחות רעש חזותי, פחות נתונים וכבר יותר ברור.

זה אכן יותר טוב, אבל ממש לא מצויין. שימו לב עד כמה הכותרת לא באמת תואמת את הגרף! צריך קצת מאמץ מטלי כדי להבין שמה שאנחנו רואים מצביע על התאוששות. אחרי הכל, צורת הקו די דומה משנה לשנה. אולי מה שחשוב זה ההשוואה בין כל חודש לחודש מקביל אשתקד. בואו ננסה

הו! הרבה יותר טוב

ניתוח הפעילות של קבוצת ווטסאפ. גישת העצלנים

בלוג

לפני זמן מה הצטרפתי לקבוצת ווטסאפ ״301 העולם הערבי״. זאת קהילה מנוהלת (moderated) של אנשים שמתעניינים בנעשה במזרח התיכון ושעיסוקם נוגע בו. באיזשהו שלב רציתי להבין את הדינמיקה של הקבוצה: כמות ההודעות, כמות המשתתפים וכו׳. מאז, בכל יום ראשון, אני מפרסם כמה גרפים נחמדים לקבוצה כדי אנשיה יידעו מה קורה. מאחר ונשאלתי כמה פעמים איך אני עושה את הניתוח הזה, החלטתי לכתוב פוסט.

בעיקרון, יש שתי דרכים לאסוף נתונים מדיוני ווטסאפ. הדרך הנכונה והדרך הלא נכונה. אתאר קודם את הדרך הלא נכונה.

איך לא צריך לאסוף את פרטי ההשתתפות של קבוצת ווטסאפ

הדרך הלא נכונה לאסוף את פרטי ההשתתפות של קבוצת ווטסאפ זה ללכת לקבוצה עצמה, להקיש על שלוש נקודות למעלה, להמשיך ל־more ומשם ל־export chat. אחרי זה אפשר, כביכול, לשמור את תוכן הצ׳אט בדרופבוקס ואז לנתח את התוכן באמצעות סקריפט של פייתון.

למה זאת לא הדרך הנכונה?

הדרך הזאת מאוד בעייתית מכמה סיבות. קודם כל, בכל פעם אנחנו רוצים לעדכן את הנתונים, אנחנו מורידים את כל ההסטוריה. כולה. בקבוצות מאוד פעילות, גודל ההסטוריה עלול להיות כבד ומשמעותי. דבר שני, תוכן ההודעות יורד כקובץ טקסט בלי שדות מוגדרים, מה שמצריך כתיבה של האוריסטיקות די מגעילות. התוצאה לא לגמרי יציבה ומועדת לפורענות, במיוחד עם הטקסט משלב עברית. 

בעיה נוספת היא הצורך בהתערבות ידנית. במילים אחרות הפתרון הזה לא מאפשר בניית כלי אוטומטי. בקיצור, אל תעשו את זה.

איך צריך לאסוף פרטי השתתפות של קבוצת ווטסאפ?

קיימים מספר פתרונות api שמאפשרים קריאה מסודרת הרבה יותר של יציבה, כולל נותני מטה של ההודעות. שיטות אלו עדיפות בהרבה.

מה אני עשיתי?

כמובן, שהלכתי על הדרך המהירה והלא נכונה. אני מוריד את תוכן הצ׳אט לדרופבוקס, מחכה כמה שניות ומריץ סקריפט של פייתון שמייצר את הגרפים. אני יודע שלפעמים אני מפרסס את ההודעות בצורה לא נכונה, אבל מאחר ואף אחד לא מקבל החלטות הרות גורל על בסיס המספרים שלי, אני חי עם זה בשלום. אני גם יודע שאני מבזבז רוחב פס וזמן מעבד על תהליך תת־מיטבי וגם כאן, לא כל כך איכפת לי כי אני עושה את הניתוח הזה רק עבור קבוצה אחד ורק כשמתחשק לי.

האם אפשר לקבל את הקוד?

נו בוודאי!  הקוד זמין בגיטהאב כגיסט.

בלוג, הדמיית נתונים

תראו איזה יופי. שני גלי קורונה בבריטניה בהשוואה ישירה.

לקחתי את הגרף הזה מכאן

רואים איך הזן הנוכחי מדביק יותר (החלק העליון של הגרף), אבל מסב פחות נזק ועומס על מע׳ הבריאות. האם זה תכונה של הזן החדש או האפקט המגן של החיסון – לא ברור. הניחוש שלי – החיסון.

זהו אחד הגרפים הטובים והברורים ביותר שראיתי זה זמן רב. אני מוריד את הכובע בפני מי שהצליח ליצר גרף עם כל כך הרבה פרטים מועילים ואפס שטויות. אני גם מקנא כי אני יודע שלא הייתי מצליח לעשות גרף טוב כל כך.

לפני ואחרי בהדמיית נתונים. תרשים רדאר (תרשים עכביש)

בלוג, הדמיית נתונים

תרשים רדאר, או תרשים עכביש הוא סוג התרשימים שנראים, אל פניו, מגניבים, אך למעשה כמעט תמיד הם בחירה ממש גרועה. בואו נבחן את הסיבות לכך ונחשוב על אלטרנטיבה טובה יותר. 

לפני: הבעיות של תרשים עכביש 

הנה השחזור שלי של תרשים רדאר שראיתי באחת הקבוצות בפייסבוק. 

מה הבעיות שלו? 

הבעיה הראשונה היא הקריאוּת (readability באנגלית): הגרף הזה לא קריא. האם אתם יכולים להזות בצורה מהירה את הערך של הסדרה האדומה עבור ״substance abuse״? לדעתי, לא.

אבל בעיה גדולה יותר נעוצה בכך שמאחר ואין סדר מובנה לקטגוריות, כל אחד חופשי למיין את הקטגוריות של הגרף איך שבא לו. התוצאה של זה היא אסופה של גרפים שנראים ממש ממש שונה אחד מהשני, למרות שהם מכילים את אותם הנתונים

אחרי: בחירת גרף מבוססת מסקנה

מה האלטרנטיבה?

קודם כל, צריך להחליט מה המסקנה של הגרף. לא רק לחשוב, אלא לכתובת את המסקנה ככותרת של הגרף. זה יאלץ אותך להחליט מה המסקנה וידריך אותך במאמצים לשיפור. (אני מאוד ממליץ לקרוא את הפוסט הזה https://gorelik.net/…/how-to-suck-less-in-data…/ או לראות את ההקלטה של ההרצאה שלי כאן: https://youtu.be/xGfaFdoQVHM

חזרה לדוגמה שלנו. אם המטרה את הקורלציה בין שתי קבוצות, אז אפשר ליצור גרף עמודות, כאשר אחד התת־גרפים ממויין. וזאת התוצאה

ומה אם המסקנה שלנו נוגעת לתובנה מעניינת לגבי ההפרשים בין הסדרות? במקרה כזה, צריך לחשב את ההפרשים ולהראות אותם, בנוסף לערכים עצמם, או במקומם.

(שימו לב שגם כאן מיינתי את העמודות. הדרך הקלה ביותר לשפר את הקריאוּת של גרף עמודות זה למיין אותם לפי הערך.


קוד פייתון שהשתמשתי בו כדי ליצור את הגרפים כאן נמצא כאן: https://gist.github.com/bgbg/db833db723998cd244b5049bfe01f5ac

קורס מצולם בהדמיית נתונים

בלוג

הקלטתי קורס מבוא בסיסי להדמיית נתונים עבור מערכת השידורים הלאומית. הקורס מיועד לתלמידי תיכון ולא מתבסס על ידע מוקדם כלשהו. הוא יהיה מועיל במיוחד עבור אנשים שלא מתעסקים בניתוח הנתונים בחיי היום־יום המקצועיים שלהם. לצערי, המערכת של משרד החינוך לא תומכת ברשימות playlist.
הטבלה הבאה מסדרת את כל הסרטונים בסדר הנכון

כותרתמספריחידה
מבוא 1-1מבוא
שלוש טעויות נפוצות. טעות ראשונה1-2
שלוש טעויות נפוצות. טעות שניה חלק א1-3 
שלוש טעויות נפוצות. טעות שניה חלק ב1-4
טעות שלוש טעויות נפוצות. שלישית1-5 
אבני בניין של תרשים. סוגי נתונים2-1אבני הבניין
אבני בניין של תרשים. צירים2-3 
אבני בניין של תרשים. אלמנטים גרפיים2-4
גרפים בסיסיים. מבוא3-1גרפים בסיסיים
גרפים בסיסיים. גרף נקודה וקו3-2
גרפים בסיסיים. גרף עמודות3-3 
גרפים בסיסיים. תרשים עוגה3-4 

מהי ההזדמנות המפוספסת ביותר בהצגה גרפית של נתונים ואיך אפשר להשתפר את האימפקט של המצגת שלכם ב-94% תוך דקה?

הדמיית נתונים

בתקשורת מקצועית בכלל ובהדמיית נתונים בפרט הדבר החשוב ביותר הוא שהדבר החשוב ביותר יהיה הדבר החשוב ביותר. ישנן דרכים רבות להבטית את העקרון הזה. שיפורים וליטושים של תרשימים, בחירה קפדנית של צבעים, סוגי קו וגודל הנקודה יכולים להבטיח את קיום עקרון זה, אך דורשים ניסיון ומיומנות ולוקחים המון זמן. 

בהרצאה זו אציג דרך נוספת לשיפור כמעט כל תרשים תוך פחות מדקה. איך? באמצעות כותרות. תוכלו לראות איך ועד כמה כותרת התרשים יכולה לשפר יעילות של כל גרף ולשמש כלי עבודה עוצמתי במהלך יצירת ההדמיה.

מתי: יום רביעי, ה־21 באוקטובר בשעה 20:00

איפה: בזום, כמובן

בעלי חשבון פייסבוק יכולים להרשם כאן.

אפשר להגיע ישירות דרך הקישור לזום.

(הקישור לזום יהיה פעיל רבע שעה לפנית תחילת הוובינר)

https://jce-ac-il.zoom.us/j/92147623684

בואו, יהיה כיף. גם אם אתם לא בתחום הדאטה. בעיקר אם אתם לא

חשדות טובות. חרא של גרפים

בלוג, הדמיית נתונים

אני מתנצל על השפה הבוטה, אני פשוט נסער (טוב, לא באמת, סתם עושה את עצמי). 

יש אתר שנקרה information is beautiful שמוקדש ל־ (איך לא) הדמיית נתונים. הרבה אנשים הולכים לשם כדי לקבל השראה לגרפים טובים ולכן זה מרתיח את דמי (טוב, לא באמת, סתם עושה את עצמי) כשאני רואה גרפים כל כך גרועים. על מה אנחנו מדברים?

הנה גרף שראיתי בקבוצת הפייסבוק https://www.facebook.com/groups/DataVisualizationIsrael

(אני לא נותן לינק לגרף המקורי בכוונה, כדי לא לעודד את גוגל לשלוח לשם מבקרים)

הגרפים אמורים להציג תמונה יפה של כמה החיים שלנו היום טובים יותר מהחיים פעם. מטרה נעלה. אז מה עשו הגאונים? אספו קצת סטטיסטיקות של ״לא מזמן״ ו־״פעם״, בחרו צבעים מגניבים וציירו ציורים מאירי עיניים. כמה נחמד! בואו נתלה את זה על מקרר כדי שכולם יראו!

מה רע בגרפים האלה?

מה רע בגרפים האלה? מה לא טוב בהם? שום דבר לא טוב!

קודם כל, מה משותף בין כל המדדים האלה? שום דבר. ניחוש שלי, שהחברים באתר בחרו מדדים באקראי ומתוכם בחרו כאלה שיראו תמונה טובה יותר. יותר חשוב מזה, שימו לב שהשנים לשוואה משתנים בין גרף לגרף. למה? אני מנחש שמי שיצר את יצירת המופת הזאת התעצל לחפש שנים בהתאמה או, שוב, בחר בפינצטה שנים שיציגו משהו דרמטי. 

ועכשיו בואו נחזור להדמיית נתונים. תראו את הגרף הזה

איזה גרף יפה! אילו קווים חלקים ונעימים. אלא מה? 

הפעם היחידש שאנחנו משתמשים בקווים האלה היא כאשר אנחנו רוצים להציג חוסר וודאות. במקרים האלה, המדד אותו אנחנו מציגים נמצא על ציר ה־x וציר ה־y מראה את רמת הבטחון שלנו בערך הספציפי. במקרים האלה, המרחק בין ה־״פעמונים״, כמו גם העובי שלהם, וגם השטח שמשוטף לשתי העקומות – כולם בעלי משמעות. הנה דוגמה לשימוש נכון בעקומות מסוג זה. כאן הציר האופקי מראה את הסיכוי של אתר אינטרנט מסויים למכור מוצר, שלוש העקומות השונות מייצגים שלוש גרסאות של אותו האתר, וכך ניתן לקבל החלטה מושכלת איזו גרסה עדיפה ומה הסיכוי שההחלטה תתברר כנכונה

(מקור התמונה – כאן)

ובחזרה לגועל הנפש שלנו (באמת, אני לא מגזים). בגרף ה־״חמוד״ הזה, אין למיקום הפעמון, העובי שלו ומידת החפיפה שום משמעות! כל מה מעניין זה הגובה של הצורה. אז למה לא קיבלנו גרף עמודות? באמת שאין לי מושג. הנה, הפכתי את הגרף המקורי לעמודות. עכשיו, כל נהיה בסדר.

למה זה חשוב?

כשאני מלמד הדמיית נתונים, אנשים אומרים לי שהערות מסוג זה מעצבנות ושמדובר בטהרנות לשמה. אז ככה, הדמיית נתוים זאת שפה. וכמו בכל שפה, גם בשפה הזאת יש כללי דיקדוק. ואם יש כללים חייבים להקפיד עליהם. לעתים רחוקות, חירות הסופרים מאפשרת הפרת כללים, אבל זה בתנאי שמי שמפר את הכלל מודע אליו, מכיר אותו, עושה זאת במכוון ולכולם ברור שזה נעשה במכוןן. גם בשפה העברית יש כללים. גם בעברית, אם אגיד לכם ״שלוש גרפים עם שני טעויות״ אתם תבינו למה אני מתכוון, אבל מיד תשפטו אותי על העברית העילגת שלי. כמו בשפה המדוברת, גם בשפה הגרפית צריך להקפיד על הכללים. זה חשוב.

לפעמים, צבע זה דבר טוב. רק לפעמים

בלוג

כל מי שמתחיל ללמוד הדמיית נתונים יודע שברוב המקרים שימוש בצבע מיותר. אני כבר כתבתי בבלוג שלי באנגלית בנושא [לינק] ואני, כמובן, לא היחיד.

אבל לפעמים, צבע שנראה מיותר בהתחלה יכול להיות מועיל, אם רואים תמונה גדולה יותר. 

תסתכלו על הגרף הזה, למשל. כשהוא עומד בפני עצמו, הצבעים של המודות מיותרות לחלוטין – כל צבע מייצג קבוצה נפרדת, אך גם כל שורה. זוהי כפילות מזיקה.

הגרסה של אותו הגרף בשחור-לבן עובדת הרבה יותר טוב, כי היא מקטינה את כמות ה״רעש״ החזותי שנשפח על הצופה

אבל, וכאן יש אבל גדול. הגרף הזה מופיע בדשבור (לא מוצלח במיוחד) של משרד הבריאות שמפלח את סיבות המוות בישראל בשנת 2016 [לינק]. והדשבורד הזה מראה פילוח של סיבות המוות לפי מגדרים. את הפילוח הזה מראים לנו בצורה הבאה

עכשיו, כששני הגרפים עומדים אחד ליד השני, פתאום לצבע יש משמעות! הצבע מקל מאוד על איתור קבוצה מגרף מסויים בתוך גרף אחר, מה שמכניס עניין, דינמיקה ועוזר לעשות השוואות. וכאשר הצבעים האלה שמורים בין כל הגרפים באותו המסמך, הצופה מקבל כלי יעיל לנווט בתוך הנתונים.

זה מה הייתם רוצים לחשוב, נכון? אז זהו, רוב הבעים בגרפים העליונים מתאימים לרוב הצבעים בגרפים התחתונים. אבל חלק מהצבעים – לא. ואז, במקום כלי יעיל לניווט קיבלנו כלי יעיל לבילבול. עבודה יפה!

חבית של דבש עם כפית של חרא?

בלוג, הדמיית נתונים

תארו לעצמכם שהייתם רואים ספר דקדוק עברי עם הכותרת ״חמש חוקי הדקדוק״. האם הייתם טורחים לקרוא את  הספר הזה? אני מקווה שלא. זה, פחות או יותר מה שעשתה חברת IBM כשהיא פרסמה את 

המדריך שלה להדמיית נתונים (אני בכוונה לא שם לינק, כדי לא להעלות את ה־rank של העמוד הזה). 

שימו לב איך נראה הגרף שמופיע על עמוד הבית של המדריך 

כדי להבין מה הבעיה, צריך לשאול את השאלה איך תרשימי עוגה מעבירים מידע? איך בני אדם משווים בין המספרים השונים שמיוצגים על ידי הפלחים השונים של העוגה? האם זו הזווית?  השטח? אולי היקף הקשת? התשובה, ככל הנראה: גם, וגם, וגם (מוזמנים לקרוא את העבודות של רוברט קוסרה כאן). עכשיו, בתרשים עוגה תקני, שלושת הגדלים האלה קשורים קשר לינארי ולכן הם תורמים להבנה נכונה של המספרים אותם הם מייצגים.

מה קורה כאן? כאן, החברים שלנו ב־IBM החליטו לתת לכל פלח רדיוס משלו. ככה יותר חמוד! רק מה הבעיה? עכשיו כל הקשרים בין הגדלים משתבשים. לא התעצלתי ומדדתי את הזוית של הפלח הסגול והשחור בתרשים של IBM, מדדתי גם את הרדיוס וחישבתי את השטח ואת היקף הקשת. ומה קיבלנו?

זוויות הפלחים הן 182 ו־75 מעלות, בהתאמה, יחס של 2.42:1. הרדיוס של המקטעים הם 135 ו־110פיקסלים. עם קצת מתמטיקה, אחנו מקבלים שאורך הקשתות של שני הפלחים הם 426 ו־144פיקסלים, יחס של 2.96:1. ומה עם השטחים: כאן, בגלל התלות הריבועית היחס עוד יותר גדול: 28,930 פיקסלים, לעומת 7,915 שנותנים יחס של 3.66:1. 

אז נכון, הצבעים יפים, אבל אילו יחסים הגרף הזה מייצג?

חברת IBM אולי עושה מחשבים טובים, אבל אל תלמדו מהם איך עושים הדמיית נתונים!