Päivitetty 29.12.2020
Aikasarjaennustamisessa oletan että toteutuneiden havaintojen muodostama aikasarja sisältää informaatiota, joka auttaa tulevien havaintojen ennustamisessa. Ennustusmenetelmä riippuu siitä, minkälaista systemaattista vaihtelua aikasarjassa esiintyy. Eksponentiaalisia tasoitusmenetelmiä käytettäessä on kolme päävaihtoehtoa:
- Yksinkertainen eksponentiaalinen tasoitus aikasarjoille, joissa ei ole trendiä eikä kausivaihtelua.
- Kaksinkertainen eksponentiaalinen tasoitus eli Holtin menetelmä aikasarjoille, joissa on trendi, mutta ei kausivaihtelua.
- Kolminkertainen eksponentiaalinen tasoitus eli Holt-Winterin menetelmä aikasarjoille, joissa on sekä trendi että kausivaihtelu.
Tämä artikkeli käsittelee yksinkertaista eksponentiaalista tasoitusta. Yksinkertaisessa eksponentiaalisessa tasoituksessa ennuste lasketaan seuraavasti:
alfa*edellinen havainto + (1 – alfa)*edellinen ennuste
Ennuste saadaan viimeisimmän havainnon ja siihen liittyneen ennusteen painotettuna summana. Painokerroin alfa on välillä 0 – 1 oleva luku, joka ilmaisee, kuinka suurella painolla edellistä havaintoa painotetaan ennustetta laskettaessa:
-
- Jos alfa on 0, niin ennuste on sama kuin edellinen ennuste.
- Jos alfa on 1, niin ennuste on sama kuin edellinen havainto.
- Suuret alfan arvot antavat ennusteita, jotka reagoivat herkästi aikasarjassa esiintyvään vaihteluun, koska viimeisimmillä havainnoilla on suuri paino.
- Pienet alfan arvot tasoittavat voimakkaasti aikasarjan vaihtelua.
Alfan arvo valitaan yleensä siten että ennustevirheiden neliöiden keskiarvo saadaan mahdollisimman pieneksi. Voin kirjoittaa ennusteen laskentakaavan myös muotoon
edellinen ennuste + alfa*(edellinen havainto – edellinen ennuste)
Ennustetta siis korjataan jokaisen toteutuneen havainnon jälkeen korjaustermillä alfa*edellisen ennusteen virhe.
Python toteutus
Esimerkkikoodin yksinkertaisen eksponentiaalisen tasoituksen käyttöön löydät GitHubista:
https://nbviewer.jupyter.org/github/taanila/aikasarjat/blob/main/forecast1.ipynb
Seuraavaksi
Esimerkkinä käyttämässäni aikasarjassa on melko helppo erottaa alkupään laskeva trendi ja loppupään nouseva trendi. Seuraavassa artikkelissani Aikasarjaennustaminen 2 yritän sovittaa aikasarjaan mallin, joka huomioi trendin.