Tuossa omaksi huvikseni koodailin ohjelmaa, mikä laskee vesimittarin lukemien ja päivämäärien perusteella kulutuksen päivässä, ja vieläpä "ennustaa" seuraavan kuukauden lukeman...
Siihen asti homma oli aika helppo, mutta sitten ajattelin, että olisi hyvä jos ohjelma osaisi laskea jälkikäteen, että kuinka lähellä totuutta "ennustus" oli... Pitäisi siis jotenkin verrata toteutunutta kulutusta ennustettuun kulutukseen...
Olen miettinyt sellaista, että jos ennustus olisi täsmälleen oikea, niin tuloksen pitäisi olla 100 %, tai 1.
Tämän toteuttaisi seuraava kaava:
K / K = 1, olettaen tietysti ettei K = 0.
Mutta saisiko sillä laskettua virheen suuruutta, jos lisäisi virheen itseisarvon jakajaan? Eli näin:
K / K |V| ?
V = K - eK
K = kulutus
eK = ennustettu kulutus
V = "virhe"
Siihen asti homma oli aika helppo, mutta sitten ajattelin, että olisi hyvä jos ohjelma osaisi laskea jälkikäteen, että kuinka lähellä totuutta "ennustus" oli... Pitäisi siis jotenkin verrata toteutunutta kulutusta ennustettuun kulutukseen...
Olen miettinyt sellaista, että jos ennustus olisi täsmälleen oikea, niin tuloksen pitäisi olla 100 %, tai 1.
Tämän toteuttaisi seuraava kaava:
K / K = 1, olettaen tietysti ettei K = 0.
Mutta saisiko sillä laskettua virheen suuruutta, jos lisäisi virheen itseisarvon jakajaan? Eli näin:
K / K |V| ?
V = K - eK
K = kulutus
eK = ennustettu kulutus
V = "virhe"
Vastaukset 3
Vanhimmat
Eikun virheen suuruus on V/eK?
"Eikun virheen suuruus on V/eK?"
No tavallaan joo, ja sanoinkin sen todella huonosti, mutta se mitä haetaan on oikeastaan se miten oikeassa se ennuste on ollut... Virheen suhteellista suuruutta on toki helppo laskea...
Ajatus on siinä, että täysin oikeaan osunut ennuste tuottaa tuloksen 100 %, tai 1... Ja mitä enemmän virhettä sitä pienempi tulos... Sillä virheetön ennuste olisi 100 % oikeassa...
Jos merkataan yleisesti (kyseessä voi siis olla lähes mikä tahansa ilmiö), että
E = ennuste
T = toteutunut
, niin absoluuttinen virhe on tällöin
V = |T - E|
ja suhteellinen virhe
w = V / T
"Ajatus on siinä, että täysin oikeaan osunut ennuste tuottaa tuloksen 100 %, tai 1... Ja mitä enemmän virhettä sitä pienempi tulos..."
Oikea ennuste saadaan helposti antamaan arvo 1, mutta ongelma on, että ei tiedetä, miten paljon ennusteet voivat olla pielessä.
Jos siis haluaisit skaalata ennusteen paikkansapitävyyden välille [0,1], pitäisi ilmeisesti olettaa, että vain äärettömän huono ennuste (V = ∞) tuottaisi arvon 0. Heitetään nyt hatusta esim. Möbius-kuvaus, joka kuvaa suhteellisen virheen absoluuttiset arvot seuraavasti:
M(0) = 1
M(0.5) = 0.5
M(∞) = 0
Tällöin saadaan Möbius-kuvaukseksi M funktio
M(x) = 1 / (1 + 2x)
Ennuste ja toteutunut voidaan tietysti sijoittaa ym. funktioon, jolloin saadaan:
M(T,E) = T / (1 + 2|E-T|)
Ja testataan vielä:
E = 15, T = 15
M(15,15) = 1
E = 20, T = 10
M(10,20) = 1/3 = 0.3333
E = 10, T = 20
M(20,10) = 1/2 = 0.5
Eri asia sitten on, onko näistä arvoista mitään hyötyä.