R-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.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 5.26
R-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.
Kiitos palautteestasi!