R-squared
Pyyhkäise näyttääksesi valikon
Mikä on R-squared
Olemme jo käsitelleet MSE-, RMSE- ja MAE-mittarit. Ne auttavat mallien vertailussa, mutta yksittäistä arvoa on vaikea arvioida ilman kontekstia. Et välttämättä tiedä, onko arvo "riittävän hyvä" omalle aineistollesi.
R-squared ratkaisee tämän mittaamalla, kuinka suuren osan kohteen vaihtelusta 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:
Kokonaisvarianssi
Kokonaisvarianssi on vain kohteen varianssi, ja kohteen varianssi voidaan laskea tilastotieteen otosvarianssikaavalla (ȳ on kohteen keskiarvo):
Esimerkissä todellisten arvojen ja tavoitekeskiarvon (oranssit viivat) erot korotetaan toiseen potenssiin ja summataan, minkä jälkeen ne jaetaan luvulla m−1, jolloin kokonaisvaihteluksi saadaan 11,07.
Selittämätön varianssi
Seuraavaksi lasketaan varianssi, 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ä 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 on matalampi, koska malli alisovittaa dataa hieman.
R-squared Pythonissa
sm.OLS-luokka laskee R-squared-arvon puolestamme. Löydämme sen summary()-taulukosta täällä.
R-squared-arvo vaihtelee välillä 0–1, ja suurempi arvo on parempi (ellei malli yliopeta). 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
R-squared
Mikä on R-squared
Olemme jo käsitelleet MSE-, RMSE- ja MAE-mittarit. Ne auttavat mallien vertailussa, mutta yksittäistä arvoa on vaikea arvioida ilman kontekstia. Et välttämättä tiedä, onko arvo "riittävän hyvä" omalle aineistollesi.
R-squared ratkaisee tämän mittaamalla, kuinka suuren osan kohteen vaihtelusta 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:
Kokonaisvarianssi
Kokonaisvarianssi on vain kohteen varianssi, ja kohteen varianssi voidaan laskea tilastotieteen otosvarianssikaavalla (ȳ on kohteen keskiarvo):
Esimerkissä todellisten arvojen ja tavoitekeskiarvon (oranssit viivat) erot korotetaan toiseen potenssiin ja summataan, minkä jälkeen ne jaetaan luvulla m−1, jolloin kokonaisvaihteluksi saadaan 11,07.
Selittämätön varianssi
Seuraavaksi lasketaan varianssi, 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ä 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 on matalampi, koska malli alisovittaa dataa hieman.
R-squared Pythonissa
sm.OLS-luokka laskee R-squared-arvon puolestamme. Löydämme sen summary()-taulukosta täällä.
R-squared-arvo vaihtelee välillä 0–1, ja suurempi arvo on parempi (ellei malli yliopeta). summary()-luokan sm.OLS-tuloste sisältää R-squared-pistemäärän.
Kiitos palautteestasi!