Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele R-kertoimen Neliö | Parhaan Mallin Valitseminen
Lineaarinen Regressio Pythonilla

bookR-kertoimen Neliö

Mikä on R-squared

Olemme jo käsitelleet MSE-, RMSE- ja MAE-mittarit. Ne auttavat vertailemaan malleja, mutta yksittäistä arvoa on vaikea arvioida ilman kontekstia. Et välttämättä tiedä, onko arvo "riittävän hyvä" aineistosi kannalta.

R-squared ratkaisee tämän mittaamalla, kuinka suuren osan kohteen varianssista malli selittää. Sen arvo vaihtelee välillä 0–1, mikä tekee tulkinnasta yksinkertaista.

Ongelma on, että selitettyä varianssia ei voida laskea suoraan. Selittämätön varianssi voidaan kuitenkin laskea, joten muunnamme yllä olevan yhtälön seuraavasti:

Kokonaisvaihtelu

Kokonaisvaihtelu tarkoittaa kohdemuuttujan varianssia, ja sen voi laskea tilastotieteestä tutulla otosvarianssin kaavalla ( on kohdemuuttujan keskiarvo):

Esimerkissä todellisten arvojen ja kohteen keskiarvon erotukset (oranssit viivat) korotetaan toiseen potenssiin ja summataan, minkä jälkeen tulos jaetaan luvulla m−1, jolloin kokonaisvaihteluksi saadaan 11.07.

Selittämätön vaihtelu

Seuraavaksi lasketaan se vaihtelu, jota malli ei selitä. Jos ennusteet olisivat täydellisiä, kaikki pisteet olisivat täsmälleen regressiosuoralla. Käytetään samaa varianssikaavaa, mutta korvataan ennustetuilla arvoilla.

Tässä on esimerkki visualisoinnin kanssa:

Nyt tiedämme kaiken tarvittavan R-squared-arvon laskemiseen:

Saimme R-squared-arvoksi 0.92, mikä on lähellä arvoa 1, joten mallimme on erinomainen. Lasketaan R-squared myös yhdelle toiselle mallille.

R-squared-arvo on matalampi, koska malli alisovittaa dataa hieman.

R-squared Pythonissa

sm.OLS-luokka laskee R-squared-arvon automaattisesti. Löydämme sen summary()-taulukosta täällä.

R-squared-arvo vaihtelee välillä 0–1, ja suurempi arvo on parempi (ellei malli ylisopeudu). summary()-luokan sm.OLS-tuloste sisältää R-squared-pistemäärän.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

bookR-kertoimen Neliö

Pyyhkäise näyttääksesi valikon

Mikä on R-squared

Olemme jo käsitelleet MSE-, RMSE- ja MAE-mittarit. Ne auttavat vertailemaan malleja, mutta yksittäistä arvoa on vaikea arvioida ilman kontekstia. Et välttämättä tiedä, onko arvo "riittävän hyvä" aineistosi kannalta.

R-squared ratkaisee tämän mittaamalla, kuinka suuren osan kohteen varianssista malli selittää. Sen arvo vaihtelee välillä 0–1, mikä tekee tulkinnasta yksinkertaista.

Ongelma on, että selitettyä varianssia ei voida laskea suoraan. Selittämätön varianssi voidaan kuitenkin laskea, joten muunnamme yllä olevan yhtälön seuraavasti:

Kokonaisvaihtelu

Kokonaisvaihtelu tarkoittaa kohdemuuttujan varianssia, ja sen voi laskea tilastotieteestä tutulla otosvarianssin kaavalla ( on kohdemuuttujan keskiarvo):

Esimerkissä todellisten arvojen ja kohteen keskiarvon erotukset (oranssit viivat) korotetaan toiseen potenssiin ja summataan, minkä jälkeen tulos jaetaan luvulla m−1, jolloin kokonaisvaihteluksi saadaan 11.07.

Selittämätön vaihtelu

Seuraavaksi lasketaan se vaihtelu, jota malli ei selitä. Jos ennusteet olisivat täydellisiä, kaikki pisteet olisivat täsmälleen regressiosuoralla. Käytetään samaa varianssikaavaa, mutta korvataan ennustetuilla arvoilla.

Tässä on esimerkki visualisoinnin kanssa:

Nyt tiedämme kaiken tarvittavan R-squared-arvon laskemiseen:

Saimme R-squared-arvoksi 0.92, mikä on lähellä arvoa 1, joten mallimme on erinomainen. Lasketaan R-squared myös yhdelle toiselle mallille.

R-squared-arvo on matalampi, koska malli alisovittaa dataa hieman.

R-squared Pythonissa

sm.OLS-luokka laskee R-squared-arvon automaattisesti. Löydämme sen summary()-taulukosta täällä.

R-squared-arvo vaihtelee välillä 0–1, ja suurempi arvo on parempi (ellei malli ylisopeudu). summary()-luokan sm.OLS-tuloste sisältää R-squared-pistemäärän.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3
some-alt