כיצד למצוא פתרונות בריבועים קטנים ביותר באמצעות אלגברה לינארית?

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

בשנת ניתוח נתונים, היא לעתים קרובות מטרה למצוא מתאמים עבור הנתונים שנצפו, קווי מגמה שנקרא. עם זאת, תצפיות בחיים האמיתיים כמעט תמיד להניב פתרונות עקביים המשוואה מטריקס Xβ = y, {\ displaystyle X {\ boldsymbol {\ beta}} = \ mathbf {y},} שבו y {\ displaystyle \ mathbf {y}} הוא נקרא וקטור התצפית, X {\ displaystyle X} נקרא מטריקס העיצוב m × n {\ displaystyle m \ times n} , ואנחנו מחפשים ערכים של β, {\ displaystyle {\ boldsymbol {\ beta}},} וקטור הפרמטר. באופן אינטואיטיבי קל לראות את זה - שום קו מגמה, למעט מקרים מיוחדים מאוד, אינו יכול לחתוך כל נקודה בנתונים.

קשר את פתרון הריבועים הקטנים למטריצת העיצוב ולווקטור התצפית
קשר את פתרון הריבועים הקטנים למטריצת העיצוב ולווקטור התצפית.

עבור יישומים רבים, הפיתרון לכך הוא למצוא β ^ {\ displaystyle {\ hat {\ boldsymbol {\ beta}}}} המתקרב בצורה הטובה ביותר למשוואה הנ"ל. ניתן לכתוב זאת במונחים של אי שוויון || y − Xβ ^ || 2 ≤ || y − Xβ || 2, {\ displaystyle || \ mathbf {y} -X {\ hat {\ boldsymbol {\ beta} }} || ^ {2} \ leq || \ mathbf {y} -X {\ boldsymbol {\ beta}} || ^ {2},} שם אנו ממזערים את המרחק בין y {\ displaystyle \ mathbf {y }} ו- Xβ. {\ displaystyle X {\ boldsymbol {\ beta }}.} מכיוון שהכמות || y − Xβ || 2 {\ displaystyle || \ mathbf {y} -X {\ boldsymbol {\ beta}} || ^ {2}} הוא סכום ריבועים, הבעיה במציאת β ^ {\ displaystyle {\ hat {\ boldsymbol {\ beta}}}} מכונה בעיה של פחות ריבועים.

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

מומלץ שיהיה לך רקע כלשהו באלגברה לינארית כדי להבין את הגזירה.

חלק 1 מתוך 2: גזירת הפתרון הכללי בריבועים קטנים ביותר

  1. 1
    זוכר את ההגדרה של השלכה. שקול מרחב וקטורי המשתרע על ידי שטח העמודה של X {\ displaystyle X} (Col⁡X∈Rm) {\ displaystyle (\ operatorname {Col} X \ in \ mathbb {R} ^ {m})} ו- y נצפה . {\ displaystyle \ mathbf {y}.} מכיוון ש y {\ displaystyle \ mathbf {y}} באופן כללי אינו נמצא ב- Col⁡X, {\ displaystyle \ operatorname {Col} X,} אנו רוצים למצוא את הקירוב הטוב ביותר y ^ {\ displaystyle {\ כובע {\ mathbf {y}}}} כדי y, {\ displaystyle \ mathbf {y},} אשר הוא ב Col⁡X, {\ displaystyle \ operatorname {Col} X,} נקרא השלכה של y. {\ Displaystyle \ mathbf {y}. במילים אחרות, אנו רוצים למצוא y ^ {\ displaystyle {\ hat {\ mathbf {y}}}} כי ממזער את המרחק בין וקטור במרחב Span⁡ {Col⁡X} {\ displaystyle \ operatorname {Span} \ {\ operatorname {Col} X \}} ו y. {\ displaystyle \ mathbf {y}.}
    • y ^ = ProjCol⁡X⁡y {\ displaystyle {\ hat {\ mathbf {y}}} = \ operatorname {Proj} _ {\ operatorname {Col} X} \ mathbf {y}}
    • אם נאפשר ל- X = (x1x2.. 0,10), {\ displaystyle X = {\ להתחיל {pmatrix} \ mathbf {x} _ {1} & \ mathbf {x} _ {2} &... & \ mathbf {x} _ {p} \ end {pmatrix}},} נוכל לכתוב את ההשלכה באופן הבא, כאשר הסוגריים הזוויתיים מסמנים את המוצר הפנימי.
      • ProjCol⁡X⁡y = ⟨y, x1⟩⟨x1, x1⟩x1 +... + ⟨y, 10⟩⟨10, xp⟩10 {\ displaystyle \ operatorname {Proj} _ {\ operatorname {Col} X} \ mathbf {y} = {\ frac {\ langle \ mathbf {y}, \ mathbf {x} _ {1} \ rangle} {\ langle \ mathbf {x} _ {1}, \ mathbf {x} _ {1 } \ rangle}} \ mathbf {x} _ {1} + \,... \, + {\ frac {\ langle \ mathbf {y}, \ mathbf {x} _ {p} \ rangle} {\ langle \ mathbf {x} _ {p}, \ mathbf {x} _ {p} \ rangle}} \ mathbf {x} _ {p}}
    • ברור שזה לא משהו שאנחנו רוצים להעריך.
  2. 2
    כתוב את משוואת המטריצה בתחזיות. עכשיו שיש לנו וקטור שנמצא ב- Col⁡X, {\ displaystyle \ operatorname {Col} X,} אנחנו יכולים להתחיל למצוא β ^ {\ displaystyle {\ hat {\ boldsymbol {\ beta}}}} שמניב פתרון עקבי למשוואת המטריצה שלמטה, כאשר β ^ ∈Rn. {\ displaystyle {\ hat {\ boldsymbol {\ beta}}} \ in \ mathbb {R} ^ {n}.}
    • Xβ ^ = y ^ {\ displaystyle X {\ hat {\ boldsymbol {\ beta}}} = {\ hat {\ mathbf {y}}}}
  3. 3
    התייחס למרחב האפס של x {\ displaystyle x} עם y ^ {\ displaystyle {\ hat {\ mathbf {y}}}} . אנו יכולים לקשר את y {\ displaystyle \ mathbf {y}} ואת הקרנתו באמצעות z = y − y ^, {\ displaystyle \ mathbf {z} = \ mathbf {y} - {\ hat {\ mathbf {y}}},} כאשר z {\ displaystyle \ mathbf {z}} הוא המרכיב של y {\ displaystyle \ mathbf {y}} אורתוגונלי ל- Col⁡X. {\ displaystyle \ operatorname {Col} X.}
    • y − y ^ = Col⁡ (X) ⊥ {\ displaystyle \ mathbf {y} - {\ hat {\ mathbf {y}}} = \ operatorname {Col} (X) ^ {\ perp}}
    • משפט באלגברה לינארית הוא שאם β {\ displaystyle {\ boldsymbol {\ beta}}} נמצא במרחב האפס של X, {\ displaystyle X,} אז β {\ displaystyle {\ boldsymbol {\ beta}}} הוא אורתוגונלי למרחב השורה של X. {\ displaystyle X.} זה הגיוני, משום שביצוע הכפל של המטריצה עבור כל שורה צריך לשלוח את התוצאה ל- 0, כנדרש מווקטור במרחב האפס של X. {\ displaystyle X. }
      • שורה⁡ (X) ⊥ = Nul⁡X {\ displaystyle \ operatorname {Row} (X) ^ {\ perp} = \ operatorname {Nul} X}
    • מכיוון שנוכל בקלות להעביר X, {\ displaystyle X,} אנו יכולים לומר כי Col⁡ (X) ⊥ = Nul⁡XT. {\ Displaystyle \ operatorname {Col} (X) ^ {\ perp} = \ operatorname {Nul} X ^ {T}.} לכן, y − y ^ = Nul⁡XT, {\ displaystyle \ mathbf {y} - {\ hat {\ mathbf {y}}} = \ operatorname {Nul} X ^ {T}, } מוביל אותנו למסקנה שלהלן.
      • XT (y − y ^) = 0 {\ displaystyle X ^ {T} (\ mathbf {y} - {\ hat {\ mathbf {y}}}) = 0}
  4. 4
    החלף את xβ ^ {\ displaystyle x {\ hat {\ boldsymbol {\ beta}}}} עבור y ^ {\ displaystyle {\ hat {\ mathbf {y}}}} ופשט. מכיוון שאנחנו לא מחפשים y ^, {\ displaystyle {\ hat {\ mathbf {y}}},} אלא β ^, {\ displaystyle {\ hat {\ boldsymbol {\ beta}}},} אנו מחליפים זאת ל המשוואה ההומוגנית.
    • XT (y − Xβ ^) = 0XTy − XTXβ ^ = 0 {\ displaystyle {\ התחל {מיושר} X ^ {T} (\ mathbf {y} -X {\ hat {\ boldsymbol {\ beta}}}) & = 0 \\ X ^ {T} \ mathbf {y} -X ^ {T} X {\ hat {\ boldsymbol {\ beta}}} & = 0 \ end {align}}}
  5. 5
    פתר עבור β ^ {\ displaystyle {\ hat {\ boldsymbol {\ beta}}}} . כעת, לאחר שביטאנו את β ^ {\ displaystyle {\ hat {\ boldsymbol {\ beta}}} בכמויות הרצויות לנו, אנו יכולים להעריך משוואה זו.
    • β ^ = (XTX) −1XTy {\ displaystyle {\ hat {\ boldsymbol {\ beta}}} = (X ^ {T} X) ^ {- 1} X ^ {T} \ mathbf {y}}
    • היזהר שכדי שמשוואה זו תהיה תקפה, XTX {\ displaystyle X ^ {T} X} חייב להיות הפיך. אם ישנם משתנים חופשיים בביטוי זה, יהיה מספר אינסופי של קווי מגמה תקפים.
אנו יכולים להתאים לקווי מגמה בריבועים קטנים ביותר שניתן לתאר באמצעות שילובים לינאריים של פונקציות ידועות
בהינתן סט נתונים, אנו יכולים להתאים לקווי מגמה בריבועים קטנים ביותר שניתן לתאר באמצעות שילובים לינאריים של פונקציות ידועות.

חלק 2 מתוך 2: דוגמה לנתונים נתונים

  1. 1
    שקול את נקודות הנתונים הבאות. אנו רוצים להתאים אליהם קו מגמה לינארי של ריבועים קטנים = y = β0x + β1 {\ displaystyle y = \ beta _ {0} x + \ beta _ {1}} .
    • (03), (14), (25), (37) {\ displaystyle (03), \, (14), \, (25), \, (37)}
    • מכיוון שאנו מתאימים קו מגמה ליניארי, אנו יכולים להשתמש בנקודות הנתונים כדי לכתוב מערכת משוואות.
      • 3 = β14 = β0 + β15 = 2β0 + β17 = 3β0 + β1 {\ displaystyle {\ התחל {מיושר} 3 & = \ \ \ \ \ \ \ \ \ beta _ {1} \\ 4 & = \ beta _ {0 } + \ beta _ {1} \\ 5 & = 2 \ beta _ {0} + \ beta _ {1} \\ 7 & = 3 \ beta _ {0} + \ beta _ {1} \ end {align}} }
  2. 2
    הגדר את וקטור התצפית ואת מטריצת העיצוב. וקטור התצפית הוא פשוט וקטור עמוד המורכב מהתצפיות, או מערכי ה- y. האלמנטים במטריצה העיצובית מסתמכים על מקדמי המשוואה של קו המגמה כפי שהיא נוגעת לכל נקודה. במקרה שלנו, העמודה הראשונה כוללת מקדמי β0, {\ displaystyle \ beta _ {0}, ואילו העמודה השנייה מורכבת ממקדמי β1. {\ Displaystyle \ beta _ {1}.}
    • X = (01112131), y = (3457) {\ displaystyle X = {\ begin {pmatrix} 0 & 1 \\ 1 & 1 \\ 2 & 1 \\ 3 & 1 \ end {pmatrix}}, \ \ mathbf {y} = {\ begin { pmatrix} 3 \\ 4 \\ 5 \\ 7 \ end {pmatrix}}}
  3. 3
    קשר את פתרון הריבועים הקטנים למטריצת העיצוב ולווקטור התצפית.
    • β ^ = (XTX) −1XTy {\ displaystyle {\ hat {\ boldsymbol {\ beta}}} = (X ^ {T} X) ^ {- 1} X ^ {T} \ mathbf {y}}
  4. 4
    הערך את הצד הימני בכל אמצעי אפשרי.
    • XTX = (14664) (XTX) -1 = 110 (2−3-37) XTy = (3519) (XTX) -1XTy = 110 (1328) {\ displaystyle {\ התחל {מיושר} X ^ {T} X & = {\ begin {pmatrix} 14 & 6 \\ 6 & 4 \ end {pmatrix}} \\ (X ^ {T} X) ^ {- 1} & = {\ frac {1} {10}} {\ begin {pmatrix} 2 & -3 \\ - 3 ו- 7 \ end {pmatrix}} \\ X ^ {T} \ mathbf {y} & = {\ begin {pmatrix} 35 \\ 19 \ end {pmatrix}} \\ (X ^ {T} X) ^ {- 1} X ^ {T} \ mathbf {y} & = {\ frac {1} {10}} {\ begin {pmatrix} 13 \\ 28 \ end {pmatrix}} \ end {align} }}
  5. 5
    כתוב את קו המגמה בצורה סטנדרטית. זהו השורה המתאימה ביותר לנקודות הנתונים שנצפו. האינטואיציה שלנו בודקת שזו התשובה הנכונה, מכיוון שציפינו שהשיפוע יהיה מעט גדול מ -1 ויירוט ה- y יהיה מעט פחות מ -3, בגלל החריגה (37). {\ Displaystyle (37).}
    • y = 1310x + 2810 {\ displaystyle y = {\ frac {13} {10}} x + {\ frac {28} {10}}}

טיפים

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

FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail