Ohjelmointi ja numeeriset menetelmät, luento 12, 19.4.

Aikasarjat

Tilastotieteessä aikasarja tarkoittaa yleensä sarjaa, jossa peräkkäisten havaintojen aikaväli on aina sama.

Aikasarja on laajassa mielessä stationäärinen (wide sense stationary, WSS), jos odotusarvo on riippumaton origon valinnasta:

E(t) = E(t+\tau).

Aikasarja on tiukasti stationäärinen (strict sense stationary, SSS), jos mitattavan suureen todennäköisyysjakauma on riippumaton origon valinnasta.

Aikasarja-analyysin perusvaiheet:

Aineiston tasoittaminen

Samantapaisia suotimia kuin kuvankäsittelyssä.

Esimerkiksi mediaanisuodin poistaa yksittäiset piikit.

Yksinkertainen keino, rekursiivinen suodin: havaittu arvo korvataan painotetulla keskiarvolla

gi = \alpha fi + (1-\alpha) gi-1,

missä fi on uusi havaittu arvo, gi-1 viimeisin jo muunnettu arvo ja \alpha jokin vakio 0 < \alpha < 1. (Oheisessa kuvassa \alpha=0.25.)



Mitä lähempänä ykköstä \alpha on, sitä tarkemmin lopputulos seuraa alkuperäistä käyrää. Kun painoa pienennetään, saadaan tasaisempi käyrä, mutta samalla amplitudi pienenee ja vaihteluissa tapahtuu vaihesiirto.

Sopii myös reaaliaikaisiin sovelluksiin, koska tasoitukseen käytetään kullakin hetkellä vain jo havaittuja arvoja. Tehokas ja säästää tilaa, koska alkuperäistä dataa ei tarvitse tallettaa.

Liukuva keskiarvo vastaa ei-rekursiivista alipäästösuodinta:

gi = \sumk=-KK wk fi+k,

missä painojen summa \sum wk=1.

Ei aiheuta vaiheen muuttumista. Jotta saataisiin samantasoinen tasoitus kuin edellisellä menetelmällä, tarvitaan yleensä enemmän pisteitä. Tasoitettuja arvoja ei voi tallettaa alkuperäisten päälle.


Kuvassa tasoitus seitsemän pisteen (K=3) liukuvalla keskiarvolla, kun kaikki painot ovat yhtä suuria:

gi = 1/7 (fi-3+fi-2+fi-1+fi+fi+1+fi+2+fi+3).


Koska tarvitaan sekä menneitä että tulevia arvoja, ei sovellu ennustamiseen.

Liukuva keskiarvo voidaan laskea myös pelkästään aikaisemmista arvoista

gi = \sumk=02K+1 wk fi-k,

jolloin mukaan tulee taas vaihesiirto.

Trendin poistaminen

Vähennetään aineistosta esimerkiksi pienimmän neliösumman suora:



Ilmiön jaksollisuus tulee selvemmin esille.

Poistetaan tunnettu jaksollinen vaihtelu

Esimerkin aineistossa suunnilleen sinimuotoista vaihtelua. Jos jakso tunnetaan, aineistoon voidaan sovittaa malli

y(t) = c0 + c1t + c2 sin (2\pi t /P).

Vähennetään tämä alkuperäisestä aineistosta:



Jäljellä lähinnä kohinaa.

Jos sovitukseen lisätään termejä, myös alkupään kertoimet voivat muuttua.

Regressio- ja autoregressiomalli

Systemaattista vaihtelua voidaan kuvata mallilla, jossa muuttujana on pelkästään aika.

Malli voidaan yleistää myös muotoon

f(t) = \sumi ai \phii(t, x),

missä kantafunktiot \phii ovat täysin mielivaltaisia funktioita. Ne voivat riippua paitsi ajasta myös mistä tahansa muista suureista x.

Kantafunktioiden argumentit voivat olla peräisin myös muista aikasarjoista. Silloin kysymyksessä on regressiomalli.

Regressiomalli soveltuu, jos ilmiöiden välillä on todella jokin muukin syy-yhteys kuin pelkästään tilastollinen. (Vrt. jäätelönmyynnin ja hukkumisonnettomuuksien korrelaatio.)

Jos jokin kantafunktio riippuu toisen aikasarjan arvosta samalla hetkellä (tai tulevaisuudessa), sen laskemiseksi on pystyttävä ennustamaan toisenkin aikasarjan kehitys. (Jotta jäätelökioskin pitäjä osaisi tilata sopivan jäätelövaraston huomista varten, hänen pitäisi ennustaa ensin, kuinka monta henkeä huomenna tulee hukkumaan.)

Jos kantafunktiot riippuvat ennustettavan muuttujan aikaisemmista arvoista, kyseessä on autoregressiomalli, esimerkiksi

f(t+1) = 2f(t)-f(t-1),

Jos aineistossa esiintyy jakso T, voitaisiin kaikkein yksinkertaisemmassa tapauksessa käyttää mallia

f(t+1) = f(t+1-T).

Jos systemaattinen vaihtelu ei ole sinimuotoista, sitä voi olla vaikea esittää muutamalla Fourier'n sarjan termillä. Sen sijaan autoregressiomallin mukainen ennuste voidaan laskea samalla tavoin, olipa vaihtelu minkä muotoista tahansa.

Periodin määrittäminen

Ongelmia, erityisesti tähtitieteessä:

Fourier'n muunnos

Muunnos esittää aineiston eri taajuuskomponentteja, joten maksimi jonkin taajuuden kohdalla on osoitus vastaavasta jaksollisuudesta.

Jos vaihtelu noudattaa sinikäyrää, Fourier'n muunnoksessa näkyy vain yksi maksimi. Jos muoto poikkeaa sinikäyrästä, aineiston kuvaamiseen tarvitaan myös korkeampia taajuuksia ja muunnokseen ilmestyy piikkejä myös perustaajuuden monikertojen kohdalle.

Äärelisen pulssin muunnoksessa esiintyy kaikkia taajuuksia, myös Nyquistin taajuutta suurempia. Niiden teho "laskostuu" muunnoksen reunoille.

Joissakin tilanteissa saatetaan saada virheellisiä jaksoja, jos aineistossa esiintyy kaksi tai useampia lähekkäisiä jaksoja.


Aikasarja, jossa esiintyy kaksi miltei yhtä pitkää jaksoa: y=sin(2\pi t/20)+sin(2\pi t/24).



Fourier'n muunnos. Koska aineistossa oli 128 pistettä, piikit vastaavat jaksoja 128/5=25.6 ja 128/7=18.3. Koska todelliset jaksot ovat 20 ja 24, jälkimmäisen huipun pitäisi olla 6:n kohdalla.


Äärellinen ja ei-tasavälinen aineisto

Äärellisen aineiston muunnos

FT(u) = \int-T/2T/2 f(t)e-2i\pi ut dt

voidaan kirjoittaa muotoon

FT(u) = \int-\infty\infty wTf(t)e-2i\pi ut dt = F(wTf),

missä wT on dataikkuna

wT(t) = 1, kun -T/2 < t < +T/2, 0 muuten

Diskreetti muunnos saadaan käyttämällä ikkunaa

wN(t) = \sumn=0N-1 \delta(t-tn),

jolloin

  FN(u) = \int-\infty\infty  \sumn \delta(t-tn) f(t) e-2i\pi  ut dt
    = \sumn f(tn)e-2i\pi utn.

Tähtitieteessä havainnot eivät juuri koskaan ole tasavälisiä (esim. tähden valokäyrä). Ikkunan wN lausekkeessa ajat tk voivat olla mielivaltaisia, joten diskreetti muunnos voidaan laskea oleellisesti samalla tavalla myös ei-tasaväliselle aineistolle.

Autokorrelaatio

Nykyisen havainnon ja k aika-askelta myöhemmän havainnon välistä riippuvuutta kuvaa autokovarianssi

R(k) = 1/(N-k-1) \sumi=1N-k fi fi+k,

missä N on havaintojen määrä. Kun tämä lasketaan viiveen k eri arvoilla, k=1,..., N-2, saadaan autokorrelaatiofunktio. Jotta tämä olisi mielekästä, aikasarjan on oltava ainakin laajassa mielessä stationäärinen.

Ennen autokorrelaatiofunktion laskemista aineistosta kannattaa vähentää trendi.

Etsityn jakson monikerrat näkyvät aina autokorrelaatiofunktiossa.



Jos havainnot ovat puhdasta valkoista kohinaa, peräkkäiset arvot eivät ole lainkaan korreloituneita. Jos aineistossa esiintyy ajan suhteen jatkuvaa vaihtelua, peräkkäiset arvot ovat lähellä toisiaan, ja voimakkain korrelaatio vallitsee peräkkäisten pisteiden (k=1) välillä. Pieniä k:n arvoja vastaavat suuret korrelaatiot eivät kuitenkaan johdu mistään jaksollisuudesta. Vasta seuraava paikallinen maksimi on osoitus ilmiön jaksollisuudesta.


Autokorrelaatiofunktioita.



Kohinaisen aineiston autokorrelaatiofunktioita.


Spektraalitiheys (tehospektri) on autokorrelaatiofunktion

Rff(x) = \int-\infty\infty f(a) f(x+a) da

Fourier-muunnos. Se saadaan alkuperäisen funktion Fourier'n muunnoksen avulla:

F Rff = F(u) F(u)*.

Ei-tasaväliselle aineistolle Scarglen ja Lombin tehospektri: Scargle, Ap.J., 263, 835, 1982; Lomb, Ap.\ Space Sci., 39, L147, 1976.

  P(\omega) = (1/2) [ (\sum xi cos(\omega(ti-t0)))2 /
                       \sum cos2(\omega(ti-t0)) +
                      (\sum xi sin(\omega(ti-t0)))2) /
                       \sum sin2(\omega(ti-t0)) ]
  \right),

missä

t0 = (1/2\omega) arctan ((\sum sin 2\omega ti) / (\sum cos 2\omega ti)).


   program lomb
     implicit none
     integer, parameter :: n=100
     real, parameter :: pi=3.141592654
     real, dimension(n) :: t, x, noise, f, P
     real :: w, k=4.0
     integer i
     read (*,*) w
     call random_number(t)
     call random_number(noise)
     x=sin(k*2*pi*t)+w*noise
     do i=1,n
       f(i)=0.1*i
       P(i)=period(t, x, n, f(i))
       write(*,*) f(i),P(i)
     end do
   contains

   real function period(t, x, n, f)
   ! Lombin periodogrammi taajuudella f
   ! t(1:n)=aika, x(1:n)=havaitut arvot
     integer, intent(in) :: n
     real, dimension(n), intent(in) :: t, x
     real, intent(in) :: f 
     real, parameter :: pi=3.141592654
     real s1, s2, s3, s4, mean, var, tau, omega
     integer i

     omega=2*pi*f
     ! x:n keskiarvo ja varianssi
     mean = sum(x)/n
     var= sum((x-mean)**2)/(n-1)
     ! tau
     tau = sum(sin(2*omega*t))/sum(cos(2*omega*t))
     tau = atan(tau)/(2*omega)
     ! P(omega)
     s1 = sum((x-mean)*cos(omega*(t-tau)))
     s2 = sum(cos(omega*(t-tau))**2)
     s3 = sum((x-mean)*sin(omega*(t-tau)))
     s4 = sum(sin(omega*(t-tau))**2)
     period = (s1**2/s2 + s3**2/s4)/(2*var)
   end function
   end program


Periodogrammeja.



Asteroidi Psychen valokäyrä ja periodogrammi.


Vaihedispersiomenetelmä

verrataan oletetun jakson T päässä olevia arvoja toisiinsa. Jos ne ovat lähellä toisiaan, saadaan pieni arvo poikkeamaa kuvaavalle mitalle

d(T) = (1/S) \sumi\sumj w(ti, tj) | yi-yj |2,

missä

S= \sumi\sumj w(ti, tj)

Funktio w valitaan siten, että se on likimain nolla muualla paitsi aikaeron ollessa lähellä jakson pituutta tai sen monikertaa, ts. w(ti, tj) on selvästi positiivinen vain, kun | ti-tj | ~ kT, k=0, 1, 2, .... Kun dispersio d piirretään jakson T funktiona, saadaan käyrä, jonka minimit vastaavat aikasarjan jaksoja.

Rakennefunktiot

Autokorrelaatio mittaa suureiden x(t+\tau) ja x(t) välistä riippuvuutta niiden tulon odotusarvon avulla. Tulojen sijasta vodaan tutkia erotusta x(t+\tau)-x(t).

Ensimmäisen asteen rakennefunktio (structure function) on

D(\tau) = (1/N) \sum (x(t+\tau)-x(t))2.

tai

D(\tau) = (1/T) \int-T/2T/2 (x(t+\tau)-x(t))2 dt.

Korkeamman asteen rakennefunktiot:

Dn(\tau) = (1/T) \int-T/2T/2 [\sumk=1n(-1)k (n \atop k) x(t+k\tau) ]2 dt,

missä (n \atop k) on binomikerroin.

Toisen asteen rakennefunktio tunnetaan Allanin varianssina, ja sitä käytetään laajalti kuvaamaan systeemien stabiilisuutta.

Riittää, että erotukset ovat stationäärisiä. Rakennefunktio voidaan laskea, vaikka autokorrelaatiofunktio viiveen funktiona ei olisi mielekäs. Rakennefunktio on määritelty aikasarjalle myös, jos keskiarvo ja varianssi eivät ole määriteltyjä. Rakennefunktioita voidaan siis soveltaa useampaan aikasarjaan kuin autokorrelaatiofunktioita.


Rakennefunktioita.



Kohinaisen aineiston rakennefunktioita.


Epätasavälisyys

Tähtitieteessä havainnot eivät yleensä ole tasavälisiä.

Mikäli kyseessä on vain muutama puuttuva piste ja muutokset eivät ole suuria, puuttuvat pisteet voidaan interpoloida. Yleisemmässä tapauksessa tämä ei useinkaan ole järkevää.

Mikäli datassa olevat aukot ovat pitkiä, lyhyitä ja pitkiä aikaskaaloja voi joutua analysoimaan erikseen tasaväliseen dataan soveltuvin menetelmin. Havaintotiheyttä voi pyrkiä tasoittamaan luokittelemalla mittaukset sopivan mittaisiin aikaväleihin ja laskemalla ko.\ aikavälin mittaiset keskiarvot kuten allaolevista esimerkeistä ilmenee.

Autokorrelaatiofunktio: (Edelson ja Krolik, Ap.J., 333, 646, 1988). Jokaiselle havaitulle aikaviiveelle on vain yksi mittaus, joten autokorrelaatiofunktiolle ei saada kunnon arviota. Muodostetaan sopivan mittaisia aikaluokkia, ja kunkin aikaluokan korrelaatiofunktion arvo on tämän luokan keskimääräinen korrelaatio ja luokan sisäisestä hajonnasta saadaan virhearvio.

Rakennefunktioiden laskemista epätasavälisessä datassa ei ole paljoa tutkittu. Periaatteessa rakennefunktioille voidaan käyttää samanlaista luokittelua kuin käytettiin autokorrelaatiofunktioille Edelsonin ja Krolikin menetelmässä.

Fourier'n muunnos:

Deeming: Fourier analysis with unequally-spaced data, Astrophysics and Space Science 36, 137--158 (1975).

Dutt, Rokhlin: Fast Fourier transforms for nonequispaced data, SIAM J. Sci. Comput. 14, No 6, 1368--1393 (1993).

Aallokkeet

Fourier'n muunnos ei ajallisesti lokalisoitu.

Jos halutaan tietää taajuudet tietyllä hetkellä, dataikkunaa on kavennettava, jolloin muunnos leviää. Vrt. Heisenbergin epätarkkuusperiaate.

Aallokemuunnoksessa dataikkunaa siirretään eri paikkoihin ja sama toistetaan käyttämällä eri levyisiä ikkunoita.

Jatkuva aallokemuunnos

\gamma(s,\tau) = \int-\infty\infty  \psis,\tau*(t) f(t) dt.

Käänteinen muunnos

f(t) = \int \int \gamma(s,\tau)\psis,\tau(t) d\tau ds.

Aallokkeet \psi,\tau voidaan valita äärettömän monella eri tavalla.

Aallokkeet muodostavat kaksiparametrisen funktiojoukon

\psis,\tau (t) = (1/\sqrt|s|) \psi((t-\tau)/s),

missä \psi on aallokkeiden äitifunktio. Aallokkeet saadaan siis äitifunktiosta skaalaauksilla ja siirroilla.

Äitifunktion oltava absoluuttisesti ja neliöllisesti integroituva:

\int-\infty\infty | \psi(t) | dt < \infty,
\int-\infty\infty | \psi(t) |sup>2 dt < \infty

Tällöin voidaan asettaa vaatimukset

\int-\infty\infty \psi(t) dt = 0,
\int-\infty\infty | \psi(t) |2 dt = 1.

Tavallisesti vaaditaan, että (admissibility condition, luvallisuusehto??)

\int | F\psi(\omega) |2 / |\omega| d\omega < \infty,

missä F\psi on funktion \psi Fourier'n muunnos. Tästä seuraa, että

| F\psi(0) |2 = 0

ja

\int \psi(t) dt = 0.

Usein vaaditaan myös, että korkeammat momentit ovat nollia

\int tp \psi(t) dt = 0,

kun p=0,...,N.

Tällöin aalloke lähestyy nollaa mentäessä ääretöntä kohti. Kyseessä on aaltopaketti, joka on selvästi nollasta poikkeava vain äärellisellä välillä.

Aallokejoukko on ortonormaali, jos

\int \psii,j(t) \psim,n*(t) dt = \deltaim\deltajn.

Diskreetti muunnos

Tarkastellaan seuraavaksi vain diskreettejä aallokkeita, joissa analysoitavana on tasavälinen havaintopisteistö, ja oletetaan, että havaintopisteitä Xi on 2N verran, missä N on kokonaisluku.

Nyt voidaan määritellä diskreetti aallokemuunnnos

Wxs,l = \sumi=1N \psis,l(i)Xi,

Wxs,l mittaa muutoksien suuruutta skaalalla s kohdassa l. Indeksin s=0 voidaan ajatella viittaavan suurimpaan tai pienimpään skaalaan. Jos valitsemme sen viittaavan pienimpään mitattavaan skaalaan, niin silloin kasvavia skaaloja merkitään suurenevin positiivisin indeksein.

Jos valitut aallokkeet muodostavat ortonormaalin joukon, voimassa on myös käänteisoperaatio

Xi = \sums,l\psis,l(i) Wxs,l.

Aallokkeiden paikallisuuden vuoksi ne ovat tehokkaita löytämään m.m. teräviä epäjatkuvuuskohtia ja singulariteettejä (Haarin allokkeet) tai lyhytkestoisia oskillaatioita (Moreletin aallokkeet).

Haarin aalloke

Haarin allokkeen äiti on

             1,   0 <= t < t0/2
  \psi(t)=  -1,   t0/2 <= t < t0
             0,   muualla.  

Itse aalloke on pienimmällä mittakaavalla muotoa

       h0,  n=1
  hn=  -h0,  n=2
        0.

Kerroin h0=1/ \sqrt(2) on normitusvakio. Seuraavan skaalan aalloke on kaksi kertaa pidempi ja amplitudiltaan 1/\sqrt(2) -kertainen. Näin kunkin aallokkeen ``teho'' on yhtäsuuri.

Haarin allokkeet muodostavat ortonormaalin joukon.


Haarin aallokkeita ja Daubechies'n aalloke.


Daubechies'n aallokeet

Daubechies'n aalloke D4 on

\psis,l(x) = (1/2s/2) \psi(x/2s - l),

missä \psi(x) on D4:n äiti

\psi(x)=c1\phi(2x)-c0\phi(2x-1)-c2\phi(2x+1)-c3\phi(2x+2),

ja \phi(x), D4 aallokkeen isä, joka on määritelty

\phi(x)=c0\phi(2x)+c1\phi(2x-1)+c2\phi(2x-2)+c3\phi(2x-3).

Kertoimet ci ovat:

  c0 = (1+\sqrt(3))/4, 
  c1 = (3+\sqrt(3))/4,
  c2 = (3-\sqrt(3))/4, 
  c3 = (1-\sqrt(3))/4.

Moreletin aalloke

\psis,l = \exp (-ic (x-l)/s - ((x-l)/s)2/2 ).

Jos c on pieni, aaltopaketti on leveä, mutta vähemmän herkkä kohinalle. Kompromissina voidaan pitää c=2\pi. Jos merkitään s=1/\nu, huomataan samankaltaisuus Fourier'n muunnoksen kanssa:

\psis,l = e-2i\pi\nu(t-t0) e-(\nu/2)(t-t0)2.

Meksikolainen hattu

\psi(x) = (1-x2) e-x2/2.

Meksikolaishatut eivät muodosta ortonormaalia joukkoa, eikä niillä näinollen ole varsinaista äitiaalloketta. Ne ovat kuitenkin matemaattisen yksinkertaisuutensa vuoksi olleet suosittuja.