Kurssisisältö
Lineaarinen Regressio Pythonilla
Lineaarinen Regressio Pythonilla
R-kertoimen Neliö
Mikä on R-squared
Olemme käsitelleet joitakin yleisimmin käytetyistä regressiomittareista Metrics-luvussa. Näitä ovat MSE, RMSE ja MAE. Ne soveltuvat mallien vertailuun, mutta kun rakennat yhden mallin, et aina tiedä, onko tulos hyvä juuri sinun aineistossasi vai pitäisikö kokeilla muita malleja.
Onneksi on olemassa mittari nimeltä R-squared, joka mittaa mallin suorituskykyä asteikolla 0:sta 1:een. R-squared laskee, kuinka suuren osan kohteen varianssista malli selittää.
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):
Tässä on esimerkki visualisoinnin kanssa. Erot todellisten kohdearvojen ja kohteen keskiarvon välillä on merkitty oranssilla. Kuten SSR:n laskennassa, otetaan jokaisen oranssin viivan pituus, korotetaan se toiseen potenssiin ja lisätään summaan, mutta nyt jaetaan tulos myös m-1:llä. Tässä kokonaisvaihteluksi saatiin 11,07.
Selittämätön vaihtelu
Nyt meidän täytyy laskea se osa vaihtelusta, jota malli ei selitä. Jos malli selittäisi koko vaihtelun, kaikki pisteet olisivat rakennetulla regressiosuoralla. Näin ei kuitenkaan yleensä ole, joten haluamme laskea kohteen varianssin, mutta nyt suhteessa regressiosuoraan eikä keskiarvoon. Käytämme samaa kaavaa, mutta korvaamme ȳ mallin ennusteilla.
Tässä on esimerkki visualisoinnilla:
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 alhaisempi, koska malli alisovittaa dataa hieman.
R-squared Pythonissa
sm.OLS
-luokka laskee R-squared-arvon puolestamme. Löydämme sen summary()
-taulukosta täältä.
Yhteenvetona, R-squared on regressiomittari. Sen arvo voi olla välillä 0–1. Toisin kuin muissa mittareissa, kuten MSE/MAE, suurempi arvo on parempi (ellei malli ylisopeudu). Löydät R-squared-arvon summary()
-luokan sm.OLS
-taulukosta.
Kiitos palautteestasi!