בפרק הזה
הפתיחה
דירת 80 מ"ר בתל-אביב לא שווה אותו דבר כמו דירת 80 מ"ר באילת. ודירת 80 מ"ר עם 4 חדרים בת"א לא שווה כמו 80 מ"ר עם 3 חדרים. מחיר-דירה תלוי בכמה גורמים בו-זמנית. כשאנחנו אומדים רגרסיה עם X אחד, אנחנו מחזיקים "כל השאר קבוע" — אבל "השאר" משתנה במציאות ומשפיע.
רגרסיה מרובה (Multiple Regression) מאפשרת לכלול כמה משתנים-מסבירים בו-זמנית: שטח, מיקום, חדרים — ולאמוד את ההשפעה של כל אחד בהינתן שהאחרים קבועים.
המשוואה
עם שני משתנים מסבירים (X) ו-(Z):
[Y = alpha + beta X + gamma Z + u]
שלושה פרמטרים לאמוד: (alpha), (beta), (gamma).
פרשנות מהותית: (beta) מודד את השפעת (X) על (Y) כאשר (Z) מוחזק קבוע. זה שינוי-גדול מהרגרסיה-הפשוטה: עכשיו אנחנו יכולים להפריד בין "השפעת השטח" לבין "השפעת המיקום".
הדוגמה הישראלית: מחיר-דירה
נניח שאספנו נתונים על 10 דירות (נתוני-המחשה):
| שטח (מ"ר) | חדרים | עיר | מחיר (₪ אלפים) |
|---|---|---|---|
| 60 | 2 | פריפריה | 750 |
| 65 | 2.5 | פריפריה | 800 |
| 70 | 3 | מרכז | 1,400 |
| 75 | 3 | מרכז | 1,500 |
| 80 | 3.5 | מרכז | 1,700 |
| 80 | 4 | ת"א | 2,200 |
| 90 | 4 | ת"א | 2,600 |
| 100 | 4.5 | ת"א | 3,000 |
| 110 | 5 | ת"א | 3,400 |
| 120 | 5 | ת"א | 3,800 |
נגדיר (Y) = מחיר, (X) = שטח (מ"ר), (Z) = חדרים. (מיקום — בהרחבה ניתן להכניס כ-Dummy variable.)
אמידה בExcel
=LINEST(D2:D11, B2:C11, 1, 1)
שים לב: (B2:C11) — שתי עמודות (שטח + חדרים). פלט 2×3 (שתי שורות, שלושה עמודות: (hatgamma), (hatbeta), (hatalpha)).
אמידה בPython
import pandas as pd
import statsmodels.api as sm
data = {
'price': [750, 800, 1400, 1500, 1700, 2200, 2600, 3000, 3400, 3800],
'area': [60, 65, 70, 75, 80, 80, 90, 100, 110, 120],
'rooms': [2, 2.5, 3, 3, 3.5, 4, 4, 4.5, 5, 5]
}
df = pd.DataFrame(data)
X = sm.add_constant(df[['area', 'rooms']])
results = sm.OLS(df['price'], X).fit()
print(results.summary())
אמידה בR
price <- c(750, 800, 1400, 1500, 1700, 2200, 2600, 3000, 3400, 3800)
area <- c(60, 65, 70, 75, 80, 80, 90, 100, 110, 120)
rooms <- c(2, 2.5, 3, 3, 3.5, 4, 4, 4.5, 5, 5)
model <- lm(price ~ area + rooms)
summary(model)
קריאת הפלט (ערכי-דוגמה)
(hatalpha approx -900), (hatbeta approx 18) (מ"ר → ₪18K), (hatgamma approx 150) (חדר → ₪150K).
[hat Y = -900 + 18 times X + 150 times Z]
דוגמת-חיזוי: דירה בת 80 מ"ר ו-4 חדרים:
[hat Y = -900 + 18 times 80 + 150 times 4 = -900 + 1440 + 600 = 1140 text{ אלפי-₪}]
(בנתוני-הדוגמה שלנו הנתון הוא 2,200 — הדירה בת"א. הפרש גדול = מיקום חסר במודל. זה בדיוק הנקודה.)
מה "בהינתן" אומר בפועל
אם אמדנו (hatbeta = 18) — "כל מ"ר נוסף מוסיף ₪18K כשמספר-החדרים קבוע". זה שונה מ"כל מ"ר נוסף מוסיף ₪X" ברגרסיה-פשוטה — כי ברגרסיה-פשוטה, דירה גדולה יותר בדרך-כלל גם יש לה יותר חדרים, ולכן (hatbeta) הפשוט "ספג" גם את השפעת-החדרים.
זה הכוח של הרגרסיה המרובה: הפרדה בין גורמים שבמציאות קשורים זה לזה.
מה זה אומר עבורכם. כלל-הזהב: אל תאמינו לרגרסיה עם משתנה-אחד כשיש חשד שגורמים אחרים תלויים בו. "כל שנת-לימוד מוסיפה ₪1,100" — אמד רק את (X)=שכלה ובלי לשלוט על ניסיון, גיל, או מקצוע? אולי ה-₪1,100 מייצג גם שנות-ניסיון שקשורות להשכלה. רגרסיה מרובה מאפשרת לאמוד את ה"תוספת-הנקייה" של ההשכלה בהינתן שהאחרים קבועים.
סיכום
רגרסיה מרובה (Y = alpha + beta X + gamma Z + u) מאמדת את השפעת כל משתנה "בהינתן" שהאחרים קבועים. LINEST, statsmodels.OLS ו-lm() מטפלים ברגרסיה-מרובה בדיוק כמו בפשוטה — רק מעבירים כמה עמודות. בפרק הבא: כיצד בודקים השערות על יותר מפרמטר אחד בו-זמנית — מבחן Wald.
פרק זה הוא חינוך פיננסי-כלכלי — הסבר של מנגנונים, לא ייעוץ. נתוני-הדוגמה הם להמחשה בלבד.