Vettä laskemassa...

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"
3430
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Eikun virheen suuruus on V/eK?

Äänestä
  • "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...

    Äänestä

  • Typerys... kirjoitti:

    "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ä.

    Äänestä

Kommentoi aloitusta


Typerys... kirjoitti:

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"

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu