Lineáris modell determinációs együttható — statisztika alapok

A mai bejegyzésben körbejárjuk, hogyan tudjuk eldönteni két lineáris modell közül melyik a jobb.


A Loss fügvényről szóló bejegyzésben már megemlítettük, hogy készítünk egyetlen lineáris modellt: Kipróbálunk egy rakás lineáris modellt, és a végén az kerül kiválasztásra, aminél a loss függvény eredménye a legkisebb. Ez a modell lesz az adott függő és független változók esetén a legjobb. De mit tegyünk, ha több lehetséges független változónk van. Használjuk mindet, vagy csak egyet-egyet, esetleg néhány kombinációját. Melyik fogja legjobban magyarázni a függő változónkat? Ennek eldöntésére használhatjuk a (Korrigált) Determinációs Együtthatót. Mielőtt részletesebben megtárgyalnánk mi is ez, készítsünk egy egyszerű lineáris modellt.

Példa lineáris modell

A példa modellünk a Légnedvességet szeretné előrejelezni a Szélerősség segítségével, és a tanításra a következő adatokat fogjuk használni:

SorszámLégnedvesség (%)Szélerősség (km/óra)
15,13,5
24,73,2
34,61,5
453,6
53,40,2
61,50,1
71,60,2
81,50,4
93,90,4
101,50,2
Teszt adatok
import statsmodels.api as sm
import matplotlib.pyplot as plt

adatok = np.array([
              [5.1, 3.5],
              [4.7, 3.2],
              [4.6, 1.5],
              [5.0, 3.6],
              [3.4, 0.2],
              [1.5, 0.1],
              [1.6, 0.2],
              [1.5, 0.4],
              [3.9, 0.4],
              [1.5, 0.2]
           ])

# Légnedvesség 
y = adatok[:,0]
# egy Konstans + Szélerősség 
X = np.array([ [1,x] for x in adatok[:, 1] ])
# model
illesztett_model = sm.OLS(y,X).fit()
print(illesztett_model.summary())

Ami eredménye:

Tehát a legjobban illeszkedő modell:

y_{\text{legnedvesseg}} = 2{,}1245 + 0{,}8688 \cdot x_{\text{szelerosseg}}

Ábrázolva:

Most, hogy kész a példa modellünk, nézzük meg mi is az Determinációs együttható.

Determinációs együttható

Az Determinációs együttható (angolul: „coefficient of determination” vagy „R-Squared”) számszerűsíti, hogy mennyire szoros a kapcsolat a lineáris modellünk és a független változó között. A legrosszabb esetben egyáltalán nincs kapcsolat a függő változó és a független között. Ekkor teljesen mindegy mi a független változó értéke, mindig ugyanazt az eredményt fogjuk kapni. Nevezzük ezt az esetet „legrosszabb modellnek”. A legrosszabb modell a függő változó átlaga lesz. A fenti példában ez Szélerősség átlaga, vagyis 3,28:

Két modell összehasonlításának legkézenfekvőbb módja a Loss függvényeik eredményének összehasonlítása. Az R² számítás során négyzetes hibát használunk, vagyis megnézzük az egyes megfigyelések milyen távol helyezkednek el a modelltől és négyzetre emeljük ezt a távolságot. Számítsuk is ki ezeket:

SorszámLégnedvesség (%)Szélerősség (km/óra)Lineáris modell négyzetes hibaLegroszabb modell négyzetes hiba
15,13,50,00425641 3,3124
24,73,20,041864752,0164
34,61,51,374306741,7424
453,60,063563822,9584
53,40,21,213776950,0144
61,50,10,506100023,1684
71,60,20,48760132,8224
81,50,40,944860773,1684
93,90,42,039071220,3844
101,50,20,637258213,1684
Négyzetösszeg (SS)≈ 7,312≈ 22,756
Modellek loss eredménye

A Determinációs együttható ezeknek a négyzetes hibáknak az összegének az aránya lesz:

R^2 = \frac{SS_{\text{legrosszabb}}-SS_{\text{linearis}}}{SS_{\text{legrosszabb}}}

Ahol:

  • R^2 — a Determinációs Együttható
  • SS_{\text{legrosszabb}} — a legrosszabb modell négyzetösszege, az angol „Sum of Squares” kifejezés után SS-el jelölve.
  • SS_{\text{linearis}} — a lineáris modell négyzetösszege

A fenti példa modell esetén a konkrét érték:

R^2 \approx \frac{22{,}756-7{,}312}{22{,}756} \approx 0{,}679

Vegyünk észre valamit a fenti R² kifejezésnél: ez egy határértékkel rendelkező kifejezés. Ha a modell egyáltalán nem illeszkedik, akkor 0, mivel a lineáris és a legrosszabb modell ugyanaz lesz. Ezzel szemben, ha a lineáris modell teljesen illeszkedik az R² értéke 1, ilyenkor az SS_{\text{linearis}} értéke nulla. Ebből egyértelmű, hogy minél jobb a modellünk annál nagyobb az R² értéke.

Rendben, de mire jó ez? Ez így egymagában nem túl sokra, csak egy számod add. Amire igazán alkalmazható, hogy más modellekkel hasonlítsuk össze az eredményt. Tegyük fel, hogy van még egy független változónk, mondjuk „Hőmérséklet”. Ebben az esetben egyből három lehetséges lineáris modellt készíthetünk a Légnedvesség-re: egyet a Szélerősséggel, egyet a Hőmérséklettel, és egyet mindkettővel. Mind a három modellnek lesz egy Determinációs együtthatója. Ideális esetben ezek közül a legjobb modell az, aminek az értéke a legnagyobb. Sajnos van itt egy probléma. Nézzük mi is ez.

Korrigált Determinációs Együttható

A Determinációs Együttható majdnem mindig nagyobb amikor új független változót adunk a modellhez. Ez abból következik, hogy szinte mindig felfedezhető valamilyen szintű együttmozgás két tulajdonság között. Ennek szemléltetésére adjunk egy véletlenszerű független változót a korábbi X értékeinkhez, és készítsünk egy új modellt:

# egy Konstans + Szélerősség + Véletlenszerű szám
X = np.array([ [1,x,np.random.uniform(0,3.5)] for x in adatok[:, 1] ])
# model
illesztett_model = sm.OLS(y,X).fit()
print(illesztett_model.summary())

Ami eredménye:

Mint látható a Determinációs együttható 0,689-re nőt, pedig az új független változó igazából nem magyarázza egyáltalán a Légnedvességet. Ennek a problémának a kezelésére használhatjuk az Korrigált Determinációs Együtthatót (angolul: Adjusted R-Squared). A számítása a következő:

\bar R^2 = 1-(1-R^2)\left({n-1 \over n-p-1}\right)

Ahol:

  • \bar R^2 — a Korrigált Determinációs Együttható
  • R^2 — a korábban megismert Determinációs Együttható
  • n — mintanagyság
  • p — független változok száma

Ez az fenti két példa esetén:

\bar R^2_{\text{szelerosseg}} \approx 1-(1-0{,}679) \left({10-1 \over 10-1-1}\right) \approx 0{,}6385

\bar R^2_{\text{szelerosseg+veletlen}} \approx 1-(1-0{,}689) \left({10-1 \over 10-2-1}\right) \approx 0{,}6003

Mint látható a Korrigált Determinációs Együttható értékét a magyarázó erővel nem bíró független változó csökkentette, így ennek segítségével már különböző számú független változóból készített modelleket is össze tudunk hasonlítani.

Hírdetés

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés /  Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés /  Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés /  Módosítás )

Kapcsolódás: %s