ביום רביעי האחרון נתתי הרצאה של 50 דקות בסדנת ויזואליזציה מטעם האיגוד הישראלי לסטטיסטיקה על סוגי הפעולות האפשריות ("היסודות") אשר אפשריים כאשר מבצעים אינטראקציה עם היצגים גרפיים של נתונים (או בלעז: Interactive Data Visualization). בפוסט הנוכחי בכוונתי:
- להסביר מה זה אינטראקציה עם היצגי נתונים ולתת את המוטיבציה הסטטיסטית עבורה
- לפרט ולהסביר את 20 היסודות לאינטראקציה עם היצגי נתונים
- לדבר על ההזדמנויות והאתגרים שמציבים בפנינו היכולת לאינטראקציה עם היצגי נתונים
כל הדוגמאות שיוצגו בפוסט זה יושמו באמצעות התוכנה GGobi (תוכנה חופשית/קוד-פתוח). בפוסט הנוכחי אני לא אדון בתוכנות שמיישמות את העקרונות שיתוארו. אני מקווה לעשות זאת באחד הפוסטים העתידיים. לבינתיים, הנה דמו של 5 דקות על השימוש ב- GGobi (אפשר לקרוא את המשך הפוסט גם מבלי לצפות בו) :
brutally short intro to ggobi from Mat Kelcey on Vimeo.
לפני שאגש לנושא הפוסט, ברצוני להודות ליונתן רוזנבלט על הפידבק שהוא הציע בשלבים הראשונים של הכנת ההרצאה, ובעיקר להודות לפרופסור יואב בנימיני על שעות רבות של עזרה ואינספור עצות מועילות אשר גם עזרו למקד את ההרצאה וגם ליטשו אותה לכדי תוצר הרבה יותר מוצלח משהייתי מסוגל להפיק בכוחות עצמי.
מבוא: מה זה אינטראקציה עם היצגי נתונים?
נתחיל בכמה הגדרות.
היצג נתונים זה תרשים שמטרתו להציג נתונים. דוגמאות מקובלות הן תרשימי עמודה, הסטוגרמה, תרשימי עוגה, תרשימי פיזור, מפות תמתיות וכן הלאה.
היצג נתונים אינטראקטיבי – הוא תרשים שאיננו סטטי, דהיינו שניתן לבצע בו שינוי כלשהו.
אינטראקציה עם היצג נתונים – זה סוג הפעולות שהמשתמש יכול לבצע על היצג נתונים.
במהלך הכנת ההרצאה, הצלחנו (יואב ואנוכי) לאתר כעשרים יסודות המשמשים לאינטראקציות שאפשר לבצע על היצג נתונים אותם אתאר מיד. אך לפני כן אני רוצה להסביר את המוטיבציה הסטטיסטית לעבודה עם גרפים דינאמיים.
סטטיסטיקאים נוהגים לבצע שתי פעולות (משלימות) בעבודתם: ניתוח נתונים מאשש, וניתוח נתונים בלשי. מבלי להעמיק בנושא יותר מידי (כי הוא עולם ומלואו), ברצוני לסכם את שני הסוגים בקצרה:
- ניתוח נתונים מאשש (Confirmatory Data Analysis) – הוא כאשר לוקחים קובץ נתונים עם שאלה מוגדרת היטב מראש ומבצעים מבחן סטטיסטי שמטרתו לבחון את ההשערה. לדוגמא – כל המבחנים הסטטיסטיים שמלמדים בקורסי מבוא לסטטיסטיקה (מבחן Z, מבחן t, מבחני חי-בריבוע וכדומה) הם דוגמאות לניתוח נתונים מאשש. דהיינו, כזה שמתחיל בהשערת 0 ובא לבחון אותה באמצעות ביצוע חישוב על הנתונים.
- ניתוח נתונים בלשי (Exploratory data analysis) – הוא כאשר אנו באים להתבונן בקובץ נתונים מבלי שיש לנו "השערות מוקדמות" שאנו בוחנים, אלא במקום זאת נותנים לקובץ הנתונים לספר לנו את סיפורו. זה מה שאנו מבצעים כאשר אנו באים להסתכל על תרשימי היסטוגרמה/מקלות של משתנים מסויימים. פעמים רבות אנו מגיעים לתרשים מבלי שיש לנו שאלה מסויימת, אלא מתוך רצון לראות איזה התנהגות הנתונים מציגים. כמו – האם הנתונים מתפלגים עם דבשת (מיקום מרכזי) יחיד או יותר, האם ההתפלגות סימטרית והאם ההתפלגות דומה להתפלגות מוכרת (על כל אחת מהשאלות הללו אפשר לבצע מבחן השערות סטטיסטי, אך בשלב של ניתוח נתונים בלשי, איננו יודעים עדיין איזה מהמבחנים הללו נרצה לבצע).
התחום של אינטראקציה עם היצגי נתונים משוייך באופן מובהק לניתוח נתונים בלשי. ולוקה בכל הייתרונות והחסרונות של שיטה זו (אליהם לא אכנס בפוסט זה).
20 היסודות לאינטראקציה עם היצגי נתונים
את היסודות אירגנתי לפי קבוצות ותתי קבוצות (איכשהו ספרתי וזה יצא 20, למרות שהמספר הזה יכול להיות נתון למחלוקת). אני אציג כאן את כולם עם הסבר קצר ובסוף הרשימה מצורפת פרזנטציה עם צילומי מסך שמדגימים חלק מהעקרונות.
אחת המגבלות בפורמט הכתוב הוא הקושי להעביר מוטיבציה של פעולה זריזה על גרפים. אני מקווה שאת זה יספקו (גם אם באופן חלקי) הסרטונים/מצגת שאצרף בהמשך הפוסט, אשר ידגימו את העקרונות שאתאר.
- הצגת נתונים
- נקודת מבט:
- יחס הצירים (scaling) -היכולת לשנות את יחס הגובה\רוחב של הגרף
- זום (zooming) – היכולת להגדיל/להקטין חלקים של הגרף
- מעבר בין גרפים (cycling) – היכולת להישאר באותו התרשים אבל להחליף את המשתנה אותו התרשים מציג
- סיבוב (rotating) – היכולת לסובב את ההיצג הדו-ממדי של ענן נקודות תלת מימדי. זה כולל גם את היכולת לתת "טפיחה" לענן שימשיך להסתובב (באנימציה) גם לאחר הטפיחה.
- טיול בהטלות שונות של משתנים ממימד גבוה (Grand tour). כאן מדובר ביכולת להתבונן בתרשים של ענן נקודות רב-ממדי אשר מוטלות על ההיצג הדו ממדי. וכמובן, היכולת לסובב את הנקודות הללו (בציר של אחד מהמשתנים שמרכיבים את הענן)
- נקודת מבט:
- איתור נתונים
- זיהוי תצפית בודדת:
- תיוג (labeling) – מסמנים נקודה בגרף ורואים איפה היא מופיעה (באיזו שורה) בקובץ הנתונים
- איתור (locating) – מסמנים שורה בקובץ הנתונים ורואים איפה הנקודה מופיעה בגרף
- זיהוי טווח תצפיות – הברשה (brushing) – בחירה דינמית של נתונים המשנה את תצוגתם. מדובר לרוב בריבוע אשר ניתן להעביר אותו מעל ("להבריש") ענן של נקודות. כל הנקודות הללו מקבלות (לדוגמא) צבע שונה. ובכך "הוברשו". יש כמה תכונות שניתן לשנות במברשת נתונים –
- משך הזמן שההברשה נשארת:
- זמני (Transient) – ההברשה נשארת רק כל עוד ריבוע המברשת נמצא מעל הנקודות.
- תמידי (Persistent) – מרגע שהיברשנו נקודות, הם ישתנו (על ידי צבע, או דברים אחרים), גם לאחר שנסיר את המברשת מעליהם
- השינוי: צבעים, סוג הסימן (נקודה/מלבן/משולש . מלא/ריק/מקווקו – glyph) סוג ההברשה (צבע, או "צל". כלומר, קבוצת נקודות שנרצה להתעלם מהם או להסירם מהתרשים לחלוטין).
- המשלים (toggle) -לקבל את הנתונים שהם המשלים לבחירה שבוצעה
- מודלים – קבלת התוצאה של חישוב על הנתונים שנבחרו (מספר תצפיות, ממוצע, קו רגרסיה וכו').
- משך הזמן שההברשה נשארת:
- קישור גרפים שונים (linking) – זהו עיקרון מאד יסודי בגרפיקה האינטראקטיבית. מדובר ביכולת להשפיע על נתונים בגרף אחד (לדוגמא, להבריש נקודות) ולראות את ההשפעה בכל שאר הגרפים (הנקודות בשאר הגרפים יוברשו גם הם).
- זיהוי תצפית בודדת:
- שינוי נתונים מוצגים
- מחיקה (deleting) – של נתונים
- הוספה (insert) – הוספה של נתונים חדשים
- הזזה (moving) – של נתונים קיימים
- הרעדה (jitter) – של נתונים. יכול להיות שימושי כאשר נתונים מסתירים האחד את השני
- החלקה (Smoothing) – שינוי מדד ההחלקה של הגרף. טוב כדי להסתכל ולראות איזה מדד החלקה מתאים להתפלגות שלנו (לפי כללי אצבע).
- טרנספורמציה (Transformation) – של הנתונים או של מערכת הצירים (לוג, שורש וכדומה. טוב במקרה שרוצים להציג את הנתונים באופן שמתפלג, לדוגמא, נורמאלי)
- שליטה בהיצג הנתונים – שימו לב שישנם שני סוגים של היצגים דינמאיים של נתונים:
- אינטראקציה – היצגים שמאפשרים למשתמש לשלוטט בגרף
- אנימציה (animation) – היצגים שעוברים שינוי (מתוכנן מראש) אך ללא תגובה לאדם
מצגת וסרטונים להדגמת עקרונות
שקופיות מהמצגת שהוצגה בכנס:
ניתן לצפות בסרטונים על הברשה, וטיולים רב מימדיים בתוך אתר הבית של GGobi (הסרטונים לא הועלו ליוטיוב, אלא מופיעים כקטעי MOV קצרים, ולכן לא יכולתי לשלב אותם בפוסט הנוכחי)
לסיום: הזדמנויות ואתגרים בעבודה אינטראקטיבית עם היצגי נתונים
- הזדמנויות –
- בהירות – עבודה אינטראקטיבית עם נתונים מאפשר להבין קשרים מורכבים בין נתונים שאחרת אולי לא היינו מבינים. על היכולת הזו נשענים בעיקר בדיסציפלינות בהם נתוני ההתחלה הם רב ממדיים – לדוגמא גיאוסטטיסטיקאים שחוקרים תכונות שמתרחשות על יריעה דו-ממדית או חוקרי מוח שעובדים על פרוסות של מוח כאשר כל פרוסה מציגה מדידות מסוגים שונים.
- מספיקים יותר – אפשר להגיע ולחקור דברים שאחרת לא היינו מספיקים להגיע ולהסתכל עליהם באמצעים "ישנים" בשל מוגבלות של זמן שמוקצה לניתוח הנתונים.
- קל להדגים דברים על הנתונים. מה שמאפשר
- הסבר ל"לקוח" – קל יותר להעביר תוצאות סטטיסטיות מורכבות באמצעים חזותיים שיש בהם אינטראקציה. בהרחבה לזה, זה גם משפר את ה
- עבודה עם החוקר – מה שמאפשר לבצע את התהליך הזה ביחד עם החוקר. החוקר מבין יותר בקלות את מה שהסטטיסטיקאי עושה. יכול להרגיש מעורב יותר (מה שיכול לשפר את התוצר הסופי).
- אתגרים –
- איכות הגרף – כשמבצעים הרבה בדיקות ומשנים הרבה דברים בגרף, אז לא פעם קורה שבשביל להגיע לתוצאות אנחנו מוותרים על זה שהגרף יראה יפה. לא מקפידים על צבעים, על טקסט מתאים וכן הלאה. במצב כזה קורה שאנו מגיעים לכל מיני תוצאות מעניינות. אבל כדי להכין אותם להצגה אח"כ במאמר או מצגת, צריך לקחת את כל התגליות ולהכין את הגרפים מחדש כדי שיהיו "מקצועיים". מעבר לכך, עבור גרפים מורכבים (לדוגמא – גרפים רב מימדיים), יש לרוב התפשרות על איכות הגרף כדי לאפשר עבודה מהירה איתו. מה שאומר שבשלב שבו רוצים להעביר את הגרף הזה ללקוח, צריך לעבור ולהסתכל על גרף באיכות גבוהה יותר.
- תיעוד (והשוואות מרובות). כלל עקרוני כשעושים סטטיסטיקה הוא שכאשר ממהרים אז לא מתעדים. במצב של חקר שכולל עבודה אינטראקטיבית עם גרף זה נהפך להיות בעיה אפילו יותר גדולה, כי זה מאד קל להגיע למצב שבו מוצאים עוד משהו ועוד משהו, אבל לא רושמים זאת בשום מקום. זו בעיה לגבי כל הדברים ה"מעניינים" שאנחנו שכחנו לרשום אבל מה שאפילו יותר גרוע מזה הוא שבסוג כזה של חקירה אנחנו גם לא רושמים את כל הדברים שבדקנו ולא מצאנו בהם כלום. למה זה בעייתי? כי הדבר הזה גורם לקושי עצום בלדעת מהו "מספר ההשערות הסטטיסטיות" שביצענו. כך שכאשר אנו מקבלים P value – זה איננו טריוויאלי לדעת איך לתקנן אותו ולהבין במדויק מהי משמעותו.
- והערת סיום לגבי ה"כיף בעבודה עם הלקוח" – זה משהו שיכול להסיח בקלות את הדעת (מצד החוקר או מצד הסטטיסטיקאי). ובמצבים כאלה חשוב לשמור על מיקוד של מהן המטרות/שאלות העיקריות שמענייניות אותנו ואיך אנו מגיעים אליהם.
רגע, אז באיזה תוכנה להשתמש?
את העקרונות שתיארתי אפשר לראות מיושמים בתוכנות שמיועדות לעבודה סטטיסטית כמו GGobi או Mondrian (שתיהן בקוד פתוח), וגם בתוכנות בתשלום כמו JMP ואחרות. מעבר לזה, ניתן לראות שימוש בהרבה מהעקרונות הללו באפליקציות רשת מפורסמות שמאפשרות עבודה דינאמית עם נתונים. הדוגמא הכי מפורסמת לכך הוא האתר גאפמינדר של הנס רוסלינג.
לצערי הרב שתי התוכנות שיש כרגע בקוד פתוח ( GGobi ו- Mondrian), שתיהן בעיני מאד (איך ננסח זאת בעדינות) דלות. כדי להגיע לכלי שהוא באמת מעניין מבחינת תהליך עבודה שוטף, הכלי חייב (לדעתי) להיות קשור אדוקות לכלי העבודה המרכזי שבו אנו משתמשים לניתוח סטטיסטי.
במקרה שלי זה R. ובמקרה של R יקח עוד קצת זמן עד שהחבר'ה בקהילה יתכנתו כזה כלי (יש כרגע 2 נסיונות משמעותיים. הראשון הוא iPlots extreme שהוא דור המשך ל- iPlots והשני הוא איזשהו ממשק ל- Qt על ידי היוצרים של GGobi). כשיהיו לי עוד חדשות מלהיבות, אני אשמח לדווח.
יש לכם דוגמאות נוספות לאינטראקציה עם היצגים גראפיים של נתונים? שאלות או פירגון על הנושא? אתם מוזמנים לשתף אותי בהם בתגובות…
נושא מאוד מעניין.. בהחלט משהו שאנסה ללמוד יותר לעומק.
תודה על הפוסט המעולה!