חיפוש באתר

קישורים

RSS סטטיסטיקה ברשת

עמודים

קטגוריות

תגיות

ארכיב עבור תגית סטטיסטיקה

מודלים ואלגוריתמים: מה ההבדל ומה הבעיה

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

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

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

מהו מודל?

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

מהו אלגוריתם?

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

מהו מודל סטטיסטי?

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

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

 

מה רואים כאן?

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

נמשיך בהסבר: בנוסחאות יש גם אותיות יווניות קטנות: אלפא, ביתא, וגם סיגמה. אלה הם הפרמטרים של המודל. הם מתארים את הקשר בין המשתנים X ו-Y.

בעולם מושלם, אלפא וביתא לבדם היו מספיקים לתאר את הקשר בין X ל-Y. קח את המשקל של אדם בקילוגרמים (X), תכפיל אותו ב-0.5, תוסיף 136, ותקבל את הגובה שלו בסנטימטרים.[1] קשר כזה בין המשתנים נקרא "קשר לינארי". זוהי ההנחה השניה של המודל: בעולם מושלם, הקשר בין X ל-Y הוא לינארי.

אבל העולם אינו מושלם. בעולם מושלם הייתי צריך להתנשא לגובה של 188 ס"מ, אבל גובהי רק 180. האות e מבטאת את ההבדל בין העולם המושלם והעולם האמיתי – במקרה שלי 8 ס"מ.

אם יש לכם קובץ עם הרבה נתונים של משקל וגובה, יהיו לכם גם הרבה ערכים של e. המודל מניח כי אם תציירו גרף של כל הערכים של e תקבלו צורת פעמון – התפלגות הערכים של e היא נורמלית. ההנחה הזו – השלישית במודל שלנו, מתוארת בשורה השניה על ידי הסימן ~ והאות N. המודל מניח עוד הנחה על הפעמון: המרכז שלו, הממוצע של כל הערכים של e, נמצא ב-0. יהיו ערכים חיוביים של e, יהיו גם ערכים שליליים, והם יקזזו אחד את השני. הפרמטר סיגמה מבטא את צורת הפעמון. אם לסיגמה יש ערך גבוה יחסית, נקבל פעמון נמוך ורחב. זה אומר שיש הרבה ערכים של סיגמה שרחוקים מאפס. יש הרבה טעויות גדולות, לשני הכיוונים. אם לסיגמה יש ערך נמוך, הפעמון הוא גבוה וצר, כלומר רוב הטעויות הן קטנות וקרובות יחסית לאפס. ככל שסיגמה קרוב יותר לאפס, העולם "יותר מושלם". אם סיגמה שווה לאפס – זה אומר שאנחנו באמת בעולם מושלם (לא יקרה).

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

עד כאן תיאור המודל.

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

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

למודל. (כשהייתי בשנה ב', כתבתי בעצמי תכנית מחשב כזו, בשפת פורטרן).

 

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

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

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

אז מה הבעיה?

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

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

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

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


הערות
  1. את הערכים המספריים שנתתי כאן לאלפא וביתא חישבתי על פי קובץ הנתונים body, בו השתמשתי גם ברשימה על ה-PCA []

חמש דרכים לתקן את הסטטיסטיקה

ב-28.11.2017 הופיע בכתב העת Nature מאמר שנשא את הכותרת הפרובוקטיבית Five ways to fix statistics.

המאמר נכתב לאור "משבר השחזוריות" (reproducibility crisis) בו חשים היום חוקרים מתחומים רבים, כלומר הקושי ההולך וגובר לשחזר תוצאות מחקריות במחקר נוסף בלתי תלוי. יש הטוענים כי אחת הסיבות למשבר הזה הוא שימוש לא נכון בסטטיסטיקה. עורכי Nature פנו לחמישה סטטיסטיקאים מובילים[1] וביקשו מכל אחד מהם להמליץ של שינוי אחד בפרקטיקה הסטטיסטית שיוכל לשפר את המחקר המדעי. באופן לא מפתיע, הייתה הסכמה בין כולם כי הבעיה אינה בסטטיסטיקה עצמה, אלא באופן השימוש בה.

ברשימה זו אסקור את ההצעות שהועלו, ואביע את דעתי בנוגע לדברים שנאמרו.

ג'ף ליק מאוניברסיטת ג'ונס הופקינס טוען כי "יש להתאים את הידע האנושי" (Adjust for human cognition). כדי להשתמש היטב בסטטיסטיקה, אומר ליק, החוקרים צריכים ללמוד אי לנתח נתונים ולפרש אותם, וליישם את השיטות הסטטיסטיות תוך כדי הימנעות מהטיות קוגניטיביות. אם בעבר היה קשה לאסוף נתונים וכמות הנתונים הייתה מועטה, בימינו אין כל בעיה לאסוף כמויות ענקיות של נתונים. שיטות סטטיסטיות לניתוח נתונים בעידן החדש אכן פותחו, אבל רוב החוקרים עדיין משתמשים בשיטות ישנות (outdated), משתמשים באופן לא נכון במבחנים סטטיסטיים, ונכשלים בביאור התוצאות שקיבלו. האופן שבו משתמשים ב-p-values כדי לקבוע האם תוצאה מחקרית היא "מעניינת" הוא רק דוגמא אחת לשימוש לא נכון בסטטיסטיקה.

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

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

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

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

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

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

השניים מסכמים את דעתם באמירה שאין הם רוצים לאסור את ה-p-value, אלא מציעים שהוא יהווה רק ראיה אחת בין ראיות נוספות כגון ידע מוקדם, תכנון הניסוי, איכות הנתונים וכדומה. הם מסכמים ואומרים כי הגיע העת "להשאיר את האלכימיה של החלטות בינאריות כגון יש אפקט/אין אפקט מאחורינו"

אני מתנגד לדעתם של גלמן ומקשיין מכל וכל. אימוץ הצעתם יוביל מייד להגדלה של שיעור התוצאות החיוביות-שגויות (False positive). אני לא מתנגד להצעה לקחת בחשבון את משמעות האפקט הנצפה, תכנון הניסוי, איכות הנתונים ופרמטרים נוספים. להיפך. אולם ביטול הדרישה לתוצאה מובהקת רק יוביל ליצירת מגוון של קריטריונים שרירותיים אחרים. לדוגמא, במאמר הזה, שיש בו הרבה דוגמאות לסטטיסטיקה רעה, החוקרים מחשבים את גודל האפקט בעזרת מדד Hedges’ g, ומחליטים כי אפקט ייחשב כמשמעותי אם האפקט לפי מדד זה גדול מ-1.3. מדוע 1.3? ההסבר לכך קלוש ולא מספק. בכל מקרה, לקריטריון כזה ולדומיו אין בסיס תיאורטי מוצק, בניגוד לתיאוריה של בדיקת ההשערות, המתבססת על הלמה של ניימן ופירסון.

דויד קולקיוהון מיוניברסיטי קולג' בלונדון מציע כי בנוסף ל-p-value ומדדים נוספים, יפורסם גם הסיכון לתוצאה חיובית שגויה (False positive risk או FPR .(FPR, לדבריו, תמיד גדול בערכו מה-p-value. החישוב של FPR הוא בייסיאני במהותו ומתבסס על ההסתברות האפריורית לאפקט אמיתי. על פי חישוביו, אם ההסתברות האפריורית הנ"ל היא 10%, וה-p-value קרוב ל-0.05, אז ה-FPR הוא 76%. עם זאת, הוא מודה שאין דרך לדעת מה היא ההסתברות האפריורית לאפקט אמיתי. פתרון אפשרי: להניח כי ההסתברות האפריורית היא 0.5 ולחשב את ה-FPR המינימלי עבור ה-p-value הנצפה.

אני בהחלט בעד הרעיון לפרסם את ה-FPR, אולם הבעיה היא שאין שום דרך נכונה לחשב אותו. יש כמה בעיות בהצעה של קולקיוהון. ראשית, הוא שוכח שה-p-value פותח כקריטריון לקביעת מובהקות (יותר קל לבדוק אם הוא קטן או גדול מ-5%, מאשר ללכת לחפש בטבלת התפלגות t את הערך הקריטי). אמנם יש אינטרפרטציה לערכו המספרי של ה-p-value, אך אין להסיק ממנו כי המובהקות היא מושג רציף, כפי שלמעשה עולה מדבריו. לאמירה כי ה-FPR גדול תמיד בערכו מה-p-value אין משמעות, זו השוואת תפוחים לתפוזים. אמירה בעלת משמעות תהיה אם קולקיוהון יוכל להשוות בין ה-False Positive Risk ובין ה-False Positive Rate. ההצעה להניח כי ההסתברות האפריורית לאפקט אמיתי היא 50% תמוהה בעיני. זהו פתרון של "חצי קפה חצי תה", ולדעתי ההנחה לא מציאותית. אני סבור כי חוקרים לא ישקיעו את משאביהם במחקר אם הם לא סבורים בביטחון גבוה כי המחקר יוביל לתוצאה משמעותית, זאת מכיוון שכל הצעת מחקר[3] , (רשמית או לא)  לוקחת בחשבון את הידע הקודם שנצבר אודות נושא המחקר, ואת התיאוריה המצדיקה את קיום המחקר הבא. לכן, ההסתברות האפריורית לאפקט אמיתי גבוהה בהרבה מ-50%, ולדעתי היא בדרך כלל לפחות 80%, אם לא יותר.

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

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

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

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

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

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

ואני מסכים עם כל מילה של גודמן.


הערות
  1. למעשה שישה []
  2. כן, יש הרבה מחקרים כאלה []
  3. כמעט []
  4. למעשה נויטן אומרת במילים יפות כי "אם תענה את הנתונים מספיק זמן הם יודו לבסוף" []
  5. לא מפתיע, נכון? []

ניתוח מרכיבים ראשיים (PCA) – למה, איך ואיך לא

ברשימה זאת אתן הסבר אינטואיטיבי ולא מתמטי אודות שיטת ה-PCA, ואסביר כיצד להשתמש בה בצורה נכונה.

למה להשתמש ב-PCA?

PCA, או בעברית ניתוח מרכיבים ראשיים, היא שיטה סטטיסטית פופולרית בקרב Data Scientists. כאשר יש קובץ נתונים ובו מספר גדול של משתנים, מעוניינים לצמצם את מספר המשתנים כדי להקל על החישובים. יש מספר דרכים לעשות זאת, ו-PCA היא אחת הדרכים האלה. ה-PCA יכול להחליף קבוצה של משתנים בקבוצת משתנים אחרת, קטנה יותר.

איך להשתמש ב-PCA

לצורך ההדגמה אשתמש בקובץ נתונים body, המכיל נתונים אודות מימדי הגוף של 507 נבדקים. הקובץ זמין לציבור בארכיון הנתונים של ה-Journal of Statistical Education. הקובץ נמצא כאן, והסבר על הנתונים שבקובץ תוכלו למצוא כאן. אני אתרכז בשלושה משתנים בקובץ, המודדים שלושה אספקטים של היקף החזה: ,Chest_depth  Chest_diameter ו- Chest_girth.

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

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

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

האינפורמציה שבנתונים מתבטאת בשוניות שבין המשתנים ובשונויות המשותפות שבינהם. לכן הציע פירסון הציע להסתכל על טבלת השונויות המשותפות המשתנים[1] .[2]

Chest_depth Chest_girth Chest_diameter
20.35 4.59 6.33 Chest_diameter
23.93 7.59 4.59 Chest_girth
100.555 23.99 20.35 Chest_depth

בטבלה שמוצגת כאן אנו רואים, למשל, כי השונות המשותפת של המשתנים Chest_diameter ו-Chest_girth היא 23.93. גם מקדם המתאם בין שני המשתנים גבוה, וערכו הוא 0.87. גם המתאמים האחרים גבוהים. ככל שהמתאמים בין המשתנים גבוהים יותר, כך ה-PCA יביא יותר תועלת. לכן מומלץ לבדוק את מקדמי המתאם בין המשתנים לפני הפעלת ה-PCA.

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

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

בדוגמה שלנו הערכים העצמיים של המטריצה הם 110.52, 2.33 ו-1.55. הערך העצמי הגדול ביותר הוא, לכן, 110.52. הוקטור העצמי המתאים לערך עצמי זה הוא: (0.953, 0.230, 0.197 ).   לכן השקלול האופטימלי הוא להכפיל את Chest_depth ב-0.197, להכפיל את Chest_diameter ב-0.230, ולהכפיל את Chest_girth ב-0.953, ולבסוף לחבר הכל. המשתנה המתקבל כך נקרא "המרכיב הראשי הראשון". כמה אינפורמציה נשמרת? ובכן, סכום הערכים העצמיים הוא 114.4. 110.52 חלקי 114.4 זה 0.966. המרכיב הראשי הראשון שומר 96.6% מהאינפורמציה.

באופן דומה אפשר להגדיר את המרכיב הראשי השני והשלישי. בדוגמא שלנו אפשר להסתפק במרכיב הראשי הראשון.

מבחינה גיאומטרית השיטה מתאימה לנתונים מערכת צירים חדשה, על ידי "סיבוב" של ערכי המשתנים. בדוגמה המלאכותית הבאה רואים שני משתנים, X ו-Y, כמו שהם (לפני הפעלת ה-PCA) ואת שני הרכיבים הראשיים (אחרי הפעלת ה-PCA). ניתן לראות כי הנתונים "הסתובבו", וכעת השונות בין המשתנים מתבטאת בעיקר לאורך הציר האופקי.

 

איך לא להשתמש ב-PCA

מי שטרח להסתכל בקובץ הנתונים ראה שיש בו 25 משתנים. מדוע, אפשר לשאול, לא ניקח את כל המשתנים ונפעיל עליהם את פרוצדורת ה-PCA? זה אפשרי מבחינה מתמטית. אם תכניסו את כל הנתונים לתוכנה שמחשבת PCA תקבלו משהו. אבל יש כאן כמה בעיות[4] .

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

שנית, אם תבחנו היטב את רשימת המשתנים, תראו שבקובץ יש משתנה המתאר את מינו של כל אחד מהאנשים שנמדדו. 1 מציין זכר, 0 מציין נקבה. הבחירה של 0 ו-1 היא שרירותית. זהו משתנה שמי. אין כלל משמעות לשונות של המשתנה הזה, או לשונות המשותפת שלו עם משתנים אחרים. הכלל השני: PCA נועד למשתנים כמותיים, כלומר, למשתנים שנמדדים בסולם מנה או סולם רווח. מה לגבי משתנים שנמדדים בסולם סודר? למשל, שביעות הרצון בסולם 1-5? גם כאן בחירת המספרים היא שרירותית. מי שמכניס משתנה כזה לתוך PCA מניח כי שביעות הרצון הזאת היא משתנה כמותי, כלומר ההפרש בין 1 ל-2, למשל, שווה להפרש בין 4 ל-5. הנחה כזו צריך להצדיק. ההצדקה היחידה שראיתי לגבי התייחסות למשתנה כזה כאל משתנה כמותי היא שכנוע עצמי.

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

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


הערות
  1. שונות משותפת בין שני משתנים דומה בתכונותיה למקדם המתאם בין המשתנים למעשה, מקדם המתאם מחושב על ידי שקלול של השונות המשותפת. []
  2. כן, אני יודע על  centering ו-scaling ודברים כאלה []
  3. ואפשר להוכיח כי הם יהיו ממשיים וחיוביים []
  4. הניתוח מכאן והלאה תקף גם לשיטות אחרות להקטנת מימדי הנתונים, כגון SVD, MDS וכדומה []
  5. איך מתרגמים את זה לעברית? []

כמה הערות על AB testing

בהרבה הצעות עבודה למשרות בתחום הטכנולוגיה (בעיקר למשרות Data Scientist, אך לא רק) נדרש ידע ו/או נסיון ב-"AB testing".

מה זה AB testing? עיון קצר בויקיפדיה (הסבר נרחב באנגלית או הסבר מצומצם יותר בעברית) עולה כי זו שיטה להערכת ההשפעה של שינוי מסויים שיתבצע, למשל בדף אינטרנט (שאלות כמו האם הוספת תמונה לדף תגדיל את מספר הקליקים, וכדומה), כאשר A ו-B הם המצב שלפני השינוי, והמצב שאחריו. לפי ויקיפדיה (האנגלית),הגישה הזו החלה להתפשט בעולם הטכנולוגיה לפני כשבע שנים. כן מצויין שם, בצדק, כי זו בעצם גישה לתכנון ניסויים שגוסט (ראו גם כאן) פיתח עוד ב-1908.

למרות שזו התקדמות מתודולוגית משמעותית בחברות הטכנולוגיה, אני חושב שזו גישה נאיבית, בייחוד לאור ההתקדמות הרבה שחלה בתחום מאז 1908. הבעיה העיקרית במתודולוגיה הזו שהיא מיושמת בשיטת one factor at a time דבר שמתעלם מיחסי גומלין (אינטראקציות) בין מספר משתנים. על בעיה זו עמד פישר כבר בשנות העשרים של המאה הקודמת ואף הציע פתרון ראשוני (ניתוח שונות דו כיווני: two-way ANOVA) וכמובן יש פתרונות מתקדמים יותר שהציעו ממשיכי דרכו.

בעיות נוספות יכולות לצוץ בתכנון הניסוי עצמו: איך נקבע גודל המדגם?[1] איך בוחרים את המדגם כך שלא יהיו בו הטיות?[2] איך מנתחים את התוצאות, כלומר האם משתמשים בשיטה הסטטיסטית המתאימה, אם בכלל?[3] האם יש מודעות לטעויות האפשריות ולהסתברויות שבהן הן יקרו? ואם יש מודעות, מה עושים כדי לשלוט בגדלי ההסתברויות האלה? האם יש הבחנה בין אפקט מובהק לאפקט משמעותי?[4]

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

אפשר לומר: "מה אתה רוצה, עובדה שהם מצליחים גם ככה", אבל האמת היא שהם הצליחו למרות הבעייתיות במתודולוגיה שלהם, בייחוד כאשר לב האלגוריתם שלהם מבוסס על הסתברות וסטטיסטיקה.

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

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

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

סופר המדע הבדיוני ה. ג'. וולס כתב כי "Statistical thinking will one day be as necessary for efficient citizenship as the ability to read and write."

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

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


הערות
  1. מישהו שלח לי לינק לסרטון הרצאה ביוטיוב בו המרצה נותן חסם לגודל המדגם הדרוש לאמידת התוחלת באוכלוסיה בעזרת אי שוויון גאוס-מרקוב, דבר שלומדים בשנה א סטטיסטיקה. את גודל המדגם הדרוש אפשר לחשב במדוייק – גם את זה לומדים בשנה א. []
  2. דוגמאות מפורסמות – הבחירות של 1936 ו-1948 בארצות הברית []
  3. למשל, משתמשים במבחן סטטיסטי שמניח שקבוצת הניסוי וקבוצת הביקורת בלתי תלויות, למרות שבפועל הן תלויות זו בזו []
  4. בפסקה האחרונה של רשימה זו יש דיון בנושא בהקשר של ניסויים קליניים []
  5. עוד יותר עצובה העובדה כי בצוות היו שני סטטיסטיקאים, אחד מהם בעל תואר שני []

מתאם כן מעיד על סיבתיות

לא, לא, אל תדאגו, אני בסדר.

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

בכל קורס מבוא לסטטיסטיקה משננים את המנטרה: מתאם לא מעיד על סיבתיות. מתאם לא מעיד על סיבתיות. מתאם לא מעיד על סיבתיות. מתאם לא מעיד על סיבתיות. מתאם לא מעיד על סיבתיות.

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

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

אנשים כמוכם אמורים לזהות שתי תופעות שנראה שיש קשר/מתאם בינן, ואז להכנס לעובי הקורה ולנסות לבדוק מה מקור הקשר והאם יש סיבתיות כלשהי. לפעמים תגלו שלמרות המתאם אין שום סיבתיות. לפעמים תגלו מבנה קשר כלשהו: A גורם את B, או אולי B גורם את A, או אולי C גורם גם את A וגם את B, ויש גם מבני קשר מסובכים יותר.

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

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

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