הבלוג של גרי רשף

31/10/2011

רגרסיה לינארית – שיטת הריבועים הפחותים

שייך לקטגוריה: Uncategorized — גרי רשף @ 21:33

אי שם בימי נעורינו למדנו בתיכון שכל ישר במישור ניתן לתיאור בתור Y=aX+b,
כאשר X המשתנה הבלתי תלוי ו-Y המשתנה התלוי (כלומר- X קובע את Y); ובנוסף a הוא השיפוע ו-b החיתוך עם ציר Y.
רגרסיה לינארית מטפלת בתופעות בהן יש שני משתנים שאת הקשר בינהם רוצים לתאר באופן לינארי,
כאשר כל מה שמחפשים הוא את a ואת b הנ"ל שיאפשרו לנסח במפורש את המשוואה Y=aX+b,
והיא מחשבת אותם כך שהסטיות של הנתונים האמיתיים מהקו התיאורטי יהיו מינימליות (ליתר דיוק- סכום ריבועי הסטיות מכיוון שהסטיות עצמן מתקזזות).
את הרקע המתמטי אינני זוכר (לדאבוני ולשמחתכם) ולכן נקבל את הנוסחאות שבספרים כמובנות מאליהן.
השיפוע a מחושב בשיטת הריבועים הפחותים כך:

clip_image002

ולמי שנבהל- נתרגם את הנוסחה ל-SQL-ית מדוברת:

clip_image004

החישוב של b פשוט- לאחר שחישבנו את a:
clip_image006

בפוסט הקודם יצרנו טבלת תושבים של מדינת ישראל לפי שנים, וכעת נעשה בה שימוש כדי לחזות את מספר תושבי המדינה בשנת 2030.
T – הגדרנו מיהו X ומיהו Y.
T1- חישבנו את הערכים השונים עבור הנוסחה.
T2- חישוב a.
T3- חישוב b,
ולסיום- חישוב התחזית (כלומר- להציב במשוואה Y=aX+b את ערכי a,b המחושבים ואת X=2030 ולחשב את Y):

With T As
(Select Cast(Shana As Float) X,
        Cast(Toshavim As Float) Y
From    T_Toshavim),
T1 As
(Select Avg(X) AvgX,
        Avg(Y) AvgY,
        Count(X) N,
        Sum(X*Y) SumXY,
        Sum(X*X) SumXX
From    T),
T2 As
(Select (SumXY-N*AvgX*AvgY)/(SumXX-N*AvgX*AvgX) a,
        AvgX,
        AvgY
From    T1),
T3 As
(Select a,
        AvgY-a*AvgX b
From    T2)
Select  a,
        b,
        a*2030+b Toshavim
From    T3;

clip_image008

כלומר- התחזית של המודל (המעט תמים) שלנו הוא שבעוד 19 שנים אוכלוסיית מדינת ישראל תהיה כ-9.3 מיליון תושבים.

עד כמה זה מופרך? הלשכה המרכזית לסטטיסטיקה מעריכה שיהיו 9.6-10.6 מיליון תושבים.

ליתר בטחון- אוסיף לקלנדר שלי תזכורת ל-01/01/2030 לבדוק מי צדק..

רשומות ישנות יותר «

ערכת עיצוב: Shocking Blue Green. בלוג בוורדפרס.קום.

Follow

Get every new post delivered to your Inbox.

הצטרפו אל 25 שכבר עוקבים אחריו