פתיחה ומנהלות
היום נלמד את הנושא האחרון בקורס שמכיל חומר חדש: רגרסיות. בשבוע הבא נערוך חזרה, תרגולים ומשחקים לקראת המבחן. החומר של שבוע הבא לא יהיה במבחן, אך יעזור לכם להבנה סטטיסטית ולהיות רופאים טובים יותר.
הודעות:
- נפתחה ההרשמה לקבוצות למטלה השנייה, שהיא מטלת מגן (הציון בה יכול רק לשפר).
- היום נתמקד ברגרסיה מרובה. ייתכן שלא נספיק להגיע לרגרסיה לוגיסטית.
חזרה: רגרסיה לינארית פשוטה
המשתנה המסביר (X) והמשתנה המוסבר (Y)
ברגרסיה לינארית פשוטה, אנחנו מנסים לחזות את התוצאה של משתנה $Y$ (התגובה, response) בהתאם למשתנה $X$ שאנחנו יודעים או שולטים בו.
- $X$ (המשתנה המסביר): נקרא גם משתנה בלתי תלוי, חשיפה (exposure), או covariate. דוגמאות: שעות שינה, גובה האב.
- $Y$ (המשתנה המוסבר): נקרא גם משתנה תלוי, תוצאה (outcome), או response.
הקשר הלינארי
ההנחה המרכזית היא שהקשר בין $X$ ל-$Y$ הוא לינארי (בקירוב). המשמעות היא ששינוי ביחידה אחת ב-$X$ גורם לשינוי קבוע בממוצע של $Y$.
לדוגמה, אם ננתח את הקשר בין גובה האב לגובה הבן, שינוי של 5 אינצ’ים בגובה האב יגרום לאותו שינוי ממוצע בגובה הבן, בין אם השינוי נמדד מאבות בגובה 65-60 אינץ’ או 75-70 אינץ’.
דוגמה: גובה אב וגובה בן
בניתוח רגרסיה על נתוני גובה, קיבלנו את הנוסחה:
\[\text{son height} = 0.5 \times \text{father height} + 34\]- פירוש: כל אינץ’ נוסף בגובה האב מוסיף, בממוצע, חצי אינץ’ לגובה הבן.
- ניבוי: עבור אב בגובה 72 אינץ’, הניבוי לגובה הבן הוא: $0.5 \times 72 + 34 = 70$ אינץ’.
- נסיגה לממוצע (Regression to the mean): זו התופעה שעל שמה נקראת הרגרסיה. בנים לאבות גבוהים מהממוצע נוטים להיות גבוהים, אך קרובים יותר לממוצע מאבותיהם.
פירוק השונות של Y
השונות הכוללת של $Y$ מתפרקת לשני מרכיבים:
- שונות מוסברת (Explained Variance): החלק בשונות של $Y$ שקו הרגרסיה מצליח להסביר.
- שונות לא מוסברת (Unexplained Variance) / שונות השאריות (Residual Variance): החלק בשונות שנותר לאחר התאמת המודל. זוהי השונות של המרחקים האנכיים בין נקודות הנתונים לקו הרגרסיה.
ככל ששונות השאריות קטנה יותר, כך המודל מתאים טוב יותר לנתונים.
מקדם ההסבר ($R^2$)
כדי להשוות בין מודלים שונים עם יחידות שונות, אנחנו משתמשים במדד יחסי שנקרא מקדם ההסבר, או $R^2$ (R-squared).
\[R^2 = \frac{\text{Explained Variance}}{\text{Total Variance of } Y} = 1 - \frac{\text{Residual Variance}}{\text{Total Variance of } Y}\]- $R^2$ הוא מספר בין 0 ל-1 (או 0% ל-100%).
- הוא מייצג את אחוז השונות במשתנה המוסבר ($Y$) שהמודל מצליח להסביר.
- ככל ש-$R^2$ קרוב יותר ל-1, כך המודל מספק התאמה טובה יותר לנתונים.
מניתוח חד-משתני לרגרסיה מרובה
- ניתוח חד-משתני: עוסק במשתנה בודד (למשל, רווח סמך לתוחלת).
- ניתוח דו-משתני: עוסק בקשר בין שני משתנים (למשל, מבחן חי-בריבוע, רגרסיה לינארית פשוטה).
- ניתוח רב-משתני: עוסק בקשר בין מספר משתנים. הכלי המרכזי שנלמד הוא רגרסיה מרובה.
רגרסיה לינארית מרובה
רגרסיה מרובה מנסה להסביר משתנה תלוי רציף ($Y$) באמצעות מספר משתנים מסבירים ($X_1, X_2, …, X_k$).
המודל המתמטי
ההנחה היא שהקשר האמיתי הוא לינארי:
\[Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_k X_k + \epsilon\]כאשר:
- $Y$ הוא המשתנה התלוי.
- $X_1, \dots, X_k$ הם המשתנים המסבירים.
- $\beta_0$ הוא החותך (intercept).
- $\beta_1, \dots, \beta_k$ הם מקדמי הרגרסיה.
- $\epsilon$ הוא רכיב הרעש (השגיאה).
מציאת המקדמים: שיטת הריבועים הפחותים (OLS)
בדומה לרגרסיה פשוטה, המטרה היא למצוא את המקדמים ($\beta_0, \dots, \beta_k$) שמביאים למינימום את סכום ריבועי השאריות (Sum of Squared Errors - SSE).
\[\text{SSE} = \sum (Y_i - \hat{Y}_i)^2\]כאשר $\hat{Y}_i$ הוא הערך המנובא על ידי המודל עבור התצפית ה-$i$. המחשב (למשל, Python) מוצא את הפתרון האופטימלי עבורנו.
פירוש המקדמים
- $\beta_0$ (החותך): הערך המנובא של $Y$ כאשר כל המשתנים המסבירים שווים לאפס. לעיתים קרובות, זהו ערך תיאורטי ללא משמעות מעשית (למשל, גובה של אדם בגיל 0).
- $\beta_i$ (מקדם של משתנה $X_i$): מייצג את השינוי הממוצע ב-$Y$ עבור עלייה של יחידה אחת ב-$X_i$, כאשר כל שאר המשתנים המסבירים מוחזקים קבועים. זהו האפקט “נטו” של המשתנה. רעיון זה דומה לנגזרת חלקית במתמטיקה.
דוגמה מעשית: ניבוי רמת גלוקוז בדם
נבנה מודל שמנבא רמת גלוקוז בדם אצל חולי סוכרת.
- משתנה מוסבר ($Y$):
glucose
(רמת גלוקוז בדם). - משתנים מסבירים ($X_i$):
age
(גיל בשנים).insulin
(רמת אינסולין בדם).gender
(מין, מקודד: 0=גבר, 1=אישה).
טעינת ובניית מודל ב-Python
ראשית, נטען את הנתונים וניצור את המודל באמצעות ספריית statsmodels
.
import pandas as pd
import statsmodels.formula.api as smf
# טעינת הנתונים
df = pd.read_csv('multiple_regression.csv')
# הגדרת המודל
# הנוסחה: הסבר את 'glucose' באמצעות 'age', 'insulin' ו-'gender'
model_formula = 'glucose ~ age + insulin + gender'
# בניית מודל OLS (Ordinary Least Squares)
model = smf.ols(formula=model_formula, data=df).fit()
# הצגת סיכום המודל
print(model.summary())
הסימן ~
מפריד בין המשתנה המוסבר (משמאל) למשתנים המסבירים (מימין).
פירוש פלט הרגרסיה
הפלט של model.summary()
מכיל מידע רב. נתמקד בטבלת המקדמים.
coef | std err | t | P> | t | [0.025 | 0.975] | ||
---|---|---|---|---|---|---|---|---|
Intercept | $79.1370$ | $ 11.083$ | $7.140 $ | $0.000 $ | $57.118 $ | $101.156$ | ||
age | $0.0492$ | $0.201 $ | $0.245 $ | $0.807 $ | $-0.350 $ | $0.448 $ | ||
insulin | $-2.0605$ | $ 0.582 $ | $-3.541$ | $ 0.001$ | $ -3.216$ | $ -0.905$ | ||
gender | $18.4400$ | $ 6.300 $ | $2.927 $ | $0.005 $ | $5.931 $ | $30.949 $ |
(הערה: הערכים בפלט שלכם עשויים להיות מעט שונים עקב גרסה אחרת של קובץ הנתונים, אך העקרונות זהים).
נוסחת הרגרסיה
לפי עמודת coef
(מקדמים), נוסחת הרגרסיה היא:
פירוש החותך (Intercept)
- ערך: $79.14$
- פירוש: רמת הגלוקוז המנובאת עבור אדם שגילו 0, רמת האינסולין שלו 0, והוא גבר (gender=0). זהו ערך אקסטרפולציה ללא משמעות קלינית ריאלית, אך הוא חיוני למבנה המתמטי של המודל.
פירוש מקדם רציף (אינסולין)
- ערך: $-2.06$
- פירוש: עלייה של יחידה אחת ברמת האינסולין בדם, תוך החזקת הגיל והמין קבועים, קשורה לירידה ממוצעת של 2.06 יחידות ברמת הגלוקוז.
הערכת מובהקות סטטיסטית של משתנה (גיל)
האם גיל הוא מנבא מובהק סטטיסטית לרמת הגלוקוז במודל זה? יש שלוש דרכים לבדוק זאת מהפלט:
דרך 1: רווח הסמך
- רווח הסמך למקדם של
age
הוא[-0.350, 0.448]
. - הכלל: אם רווח הסמך ברמת מובהקות 95% מכיל את הערך 0, המקדם אינו מובהק סטטיסטית ברמה של $\alpha=0.05$.
- מסקנה: מכיוון ש-0 נמצא בתוך הטווח, המשתנה
age
אינו מובהק.
דרך 2: יחס המקדם לשגיאת התקן
- המקדם (
coef
) שלage
הוא 0.0492. - שגיאת התקן (
std err
) שלו היא 0.201. - אינטואיציה: שגיאת התקן מייצגת את “סרגל הרעש” של המקדם. כאן, המקדם קטן בהרבה משגיאת התקן שלו. זה מרמז שהערך שקיבלנו יכול בקלות להיות תוצאה של רעש סטטיסטי סביב ערך אמיתי של 0.
- מסקנה: המקדם אינו מובהק.
דרך 3: ערך ה-p (P-value)
- עמודת
P>|t|
מציגה את ערך ה-p עבור השערת האפס שהמקדם שווה ל-0. - ערך ה-p עבור
age
הוא 0.807. - הכלל: אם $p > 0.05$, לא דוחים את השערת האפס.
- מסקנה: ערך ה-p גבוה מאוד, ולכן המקדם של
age
אינו מובהק סטטיסטית.
סיכום שלוש הדרכים: כולן מובילות לאותה מסקנה - במודל הנוכחי, לאחר שלוקחים בחשבון את רמת האינסולין והמין, לגיל אין השפעה מובהקת סטטיסטית על רמת הגלוקוז.
פירוש מקדם קטגורי (מין)
- ערך: $18.44$
- פירוש: המשתנה
gender
מקודד כ-0 (גבר) ו-1 (אישה). המקדם מייצג את ההבדל הממוצע ברמת הגלוקוז בין אישה (gender=1) לגבר (gender=0), תוך החזקת הגיל ורמת האינסולין קבועים. במקרה זה, רמת הגלוקוז המנובאת עבור אישה גבוהה בממוצע ב-18.44 יחידות מזו של גבר. - מובהקות: עם p-value של 0.005 (קטן מ-0.05) ורווח סמך
[5.931, 30.949]
(שאינו מכיל 0), המשתנהgender
הוא מנבא מובהק סטטיסטית במודל.
הערכת טיב המודל הכולל
בנוסף לבחינת כל מקדם בנפרד, אנחנו רוצים להעריך את ביצועי המודל כולו.
מקדם ההסבר ($R^2$)
- ערך: בפלט המודל (לא מוצג בטבלה זו) מופיע ערך $R^2$. בדוגמה שלנו, הוא 0.7.
- פירוש: המודל שלנו (הכולל גיל, אינסולין ומין) מצליח להסביר כ-70% מהשונות ברמת הגלוקוז בדם. זהו נתון יפה שמצביע על מודל עם כוח הסברי טוב.
מבחן F למובהקות המודל
- שאלה: האם המודל הלינארי שבנינו בכלל עדיף על מודל שלא מסביר כלום (כלומר, מנבא רק את הממוצע)?
-
השערת האפס ($H_0$): כל מקדמי הרגרסיה (פרט לחותך) שווים לאפס. כלומר, אין קשר לינארי בין אף אחד מהמשתנים המסבירים למשתנה המוסבר.
\[H_0: \beta_1 = \beta_2 = \dots = \beta_k = 0\] -
השערה אלטרנטיבית ($H_A$): לפחות אחד מהמקדמים שונה מאפס.
\[H_A: \text{at least one } \beta_i \neq 0\] - הסטטיסטי:
Prob (F-statistic)
בפלט הוא ה-p-value של מבחן זה. - מסקנה: אם ה-p-value קטן מ-0.05, אנחנו דוחים את השערת האפס ומסיקים שהמודל שלנו כמכלול הוא מובהק סטטיסטית. כלומר, יש לפחות משתנה אחד במודל שתורם באופן מובהק לניבוי $Y$.
סכנות במודלים מרובי משתנים: Overfitting
כאשר מוסיפים עוד ועוד משתנים למודל, ה-$R^2$ תמיד ישתפר או יישאר זהה, אך זה לא בהכרח אומר שהמודל טוב יותר. הוספת יותר מדי משתנים, במיוחד כאלה שאינם רלוונטיים, עלולה להוביל למצב שנקרא Overfitting (התאמת יתר).
- Overfitting: המודל “לומד” את הרעש הספציפי בנתוני האימון במקום את הקשר האמיתי. כתוצאה מכך, הוא יתפקד מצוין על הנתונים שעליהם הוא אומן, אך ייכשל בניבוי על נתונים חדשים.
- הכלל: יש לשאוף למודל פשוט ככל האפשר (פרסימוני) שמסביר את הנתונים היטב, ולהימנע מהוספת משתנים מיותרים.
סיכום וצעדים הבאים
- שיעור הבא: מפגש חזרה אינטראקטיבי בכיתה, בו נשחק עם נתונים ונראה כיצד הם יכולים לתעתע. המטרה היא לפתח הבנה אינטואיטיבית של עבודה עם דאטה, מיומנות חשובה לקריירה הרפואית.
- מטלה: יש להתחלק לקבוצות ולהירשם למטלה השנייה.