regresija - math.rs2).pdf · univerzitet u beogradu a a Č fakultet regresija - seminarski rad iz...
TRANSCRIPT
UNIVERZITET U BEOGRADU
MATEMATIČKI FAKULTET
REGRESIJA
- Seminarski rad iz Vremenskih serija i primena u finansijama -
Studenti: Anica Kostić 64/2011 Mila Vukmirović 39/2011
Asistent: Bojana Milošević
MAJ 2015.
1
Sadržaj
1. Svrha regresije ................................................................................................................................................................................ 2
2. Linearni modeli ............................................................................................................................................................................... 3
2.1 Definicija ............................................................................................................................................................................. 3
2.2 Stacionarnost ...................................................................................................................................................................... 4
2.3 Simulacije ............................................................................................................................................................................ 4
3. Fitovani modeli ............................................................................................................................................................................... 5
3.1 Fitovanje modela simuliranim podacima ............................................................................................................................ 5
3.2 Primer – indeksi potrošačkih cena ...................................................................................................................................... 7
3.3 Autokorelacija i ocenivanje uzoračkih statistika ............................................................................................................... 10
4. Uopšteni metod najmanjih kvadrata ............................................................................................................................................ 12
4.1 Fitovanje modela simuliranoj seriji pomodu funkcije GLS ................................................................................................. 12
4.2 Interval poverenja za indekse potrošačkih cena ............................................................................................................... 13
5. Linearni modeli sa sezonskim komponentama ............................................................................................................................. 14
5.1 Uvod .................................................................................................................................................................................. 14
5.2 Aditivne sezonske indikatorske slučajne veličine .............................................................................................................. 14
5.3 Primer – nezaposlenost žena ............................................................................................................................................ 15
6. Prognoziranje pomodu regresije ................................................................................................................................................... 17
6.1 Uvod .................................................................................................................................................................................. 17
6.2 Predviđanje u R-u .............................................................................................................................................................. 17
7. Harmonijski sezonski modeli ........................................................................................................................................................ 19
7.1 Simulacije .......................................................................................................................................................................... 20
7.2 Fitovanje modela simuliranoj seriji .................................................................................................................................. 21
7.3 Primer – globalne prosečne temperature ......................................................................................................................... 23
8. Logaritamske transformacije ........................................................................................................................................................ 28
8.1 Uvod .................................................................................................................................................................................. 28
8.2 Primer – vrednost izvezenih proizvoda iz SAD-a u Kinu .................................................................................................... 29
9. Nelinearni modeli ......................................................................................................................................................................... 33
9.1 Uvod .................................................................................................................................................................................. 33
9.2 Primer simulacije i fitovanja nelinearnog modela ............................................................................................................. 34
10. Inverzna transformacija i korekcija pristrasnosti ........................................................................................................................ 35
10.1 Log-normalni reziduali .................................................................................................................................................... 35
10.2 Empirijsko određivanje faktora korekcije za predviđanje srednjih vrednosti ................................................................. 36
Literatura .......................................................................................................................................................................................... 37
2
1. SVRHA REGRESIJE
Trendovi u vremenskim serijama mogu biti stohastički ili deterministički. Možemo smatrati da je trend
stohastički ako na njemu vidimo promene u kretanju koje se ne mogu objasniti nekom pogodnom
funkcijom vremena, a uočljive prolazne trendove pripisujemo jakoj serijskoj korelaciji sa slučajnom
greškom. Trendovi ovog tipa su česti u serijama vezanim za finansije i mogu biti simulirani u R-u koristedi
modele kao što su slučajno lutanje ili autoregresivni proces. S druge strane, kada imamo neko razumno
fizičko objašnjenje trenda, to želimo i da iskoristimo i objasnimo trend deterministički. Na primer,
deterministički rastudi trend može biti posledica porasta populacije, a neke promene koje se ciklično
ponavljaju mogu nastati zbog određene sezonske komponente. Deterministički trendovi i sezonske
varijacije mogu se modelovati pomodu regresije.
Praktična razlika između stohastičkih i determinističkih trendova je da determinističke možemo
ekstrapolirati radi prognoziranja bududeg ponašanja serije. Opravdavamo kratkoročnu ekstrapolaciju
time da se trend ne može značajno promeniti u toku vremenskog intervala za koji pravimo predviđanje.
Iz istog razloga, za kratkoročnu ekstrapolaciju trenda više se preporučuje aproksimacija pravom nego
nekim polinomom višeg reda, i to ponekad uzimajudi u obzir samo podatke iz bliske prošlosti.
U ovom radu bavimo se različitim regresionim modelima pogodnim za analizu vremenskih serija koje
sadrže deterministički trend i regularne sezonske promene. Počinjemo posmatrajudi linearne modele
trendova, a kasnije se upoznajemo sa regresionim modelima kojima se mogu objasniti sezonske varijacije
koristedi indikatorske i harmonijske promenljive. Regresioni modeli takođe mogu uključivati i promenljive
objašnjenja. Logaritamske transformacije, koje se često koriste radi stabilizacije disperzije, su takođe
razmatrane.
Regresija kod vremenskih serija se najčešde razlikuje od standardne regresione analize jer su reziduali,
koji takođe čine jednu vremensku seriju, najčešde serijski korelisani. Kada je serijska korelacija pozitivna,
ocene standardnih grešaka ocenjenih parametara, koje u R-u dobijamo primenjujudi standardni postupak
za regresionu analizu, teže da budu manje od njihovih stvarnih vrednosti. Zbog toga se statističkim
testovima dodeljuje veda značajnost nego što bi trebalo (p-vrednosti testova su manje nego što treba da
budu) u standardnom izlazu koji se dobija u R-u. Prilikom statističke obrade podataka, važno je
predstaviti ispravne statističke dokaze izvedenih zaključaka. Na primer, neka organizacija za ekološku
zaštitu bi mogla biti optužena za objavljivanje trendova koji su lažno statistički značajni. U ovom radu,
koristi se uopšteni metod najmanjih kvadrata kako bi se dobile popravljene ocene standardnih grešaka i
kako bi se objasnila autokorelacija u vremenskoj seriji reziduala.
3
2. LINEARNI MODELI
2.1 Definicija
Kažemo da je model vremenske serije {𝑥𝑡 ∶ 𝑡 = 1,… ,𝑛} linearan ako se može napisati u obliku
𝑥𝑡 = 𝛼0 + 𝛼1𝑢1,𝑡 + 𝛼2𝑢2,𝑡 +⋯+ 𝛼𝑚𝑢𝑚 ,𝑡 + 𝑧𝑡
(1)
gde je 𝑢𝑖,𝑡 vrednost 𝑖-te promenljive objašnjenja u trenutku 𝑡 (𝑖 = 1,… ,𝑚; 𝑡 = 1,… ,𝑛), 𝑧𝑡 greška u
trenutku 𝑡, a 𝛼0 ,𝛼1 ,… ,𝛼𝑚 su prametri modela, koji mogu biti ocenjeni metodom najmanjih kvadrata.
Greške formiraju vremensku seriju 𝑧𝑡 , sa funkcijom srednje vrednosti koja je identički jednaka nuli,
koja ne mora da bude Gausova niti beli šum. Primer linearnog modela je polinom 𝑝-tog stepena u funkciji
od 𝑡.
𝑥𝑡 = 𝛼0 + 𝛼1𝑡 + 𝛼2𝑡2 +⋯+ 𝛼𝑝𝑡
𝑝 + 𝑧𝑡
(2)
Promenljive objašnjenja u ovom slučaju su 𝑢𝑖,𝑡 = 𝑡𝑖 (𝑖 = 1,… ,𝑝). Izraz “linearan” ovde se odnosi na
linearnost u odnosu na parametre, a ne prediktore.
Jednostavan primer linearnog modela je prava, čija se jednačina dobija zamenom 𝑝 = 1 u jednačini (2):
𝑥𝑡 = 𝛼0 + 𝛼1𝑡 + 𝑧𝑡 . U ovom slučaju, vrednost trenda u trenutku 𝑡, je tačka sa prave, tj. 𝑚𝑡 = 𝛼0 + 𝛼1𝑡 .
Za polinome višeg reda, vrednost trenda u trenutku 𝑡 je vrednost polinoma iz jednačine (2) u tački 𝑡, tj.
𝑚𝑡 = 𝛼0 + 𝛼1𝑡 + 𝛼2𝑡2 +⋯+ 𝛼𝑝𝑡
𝑝 .
Mnogi nelinearni modeli mogu biti transformisani u linearne. Na primer model 𝑥𝑡 = 𝑒𝛼0+𝛼1𝑡+𝑧𝑡
vremenske serije {𝑥𝑡} može biti transormisan u linearni logaritmovanjem.
𝑦𝑡 = log𝑥𝑡 =𝛼0 + 𝛼1𝑡 + 𝑧𝑡
(3)
U jednačini 3 , standardnom metodom najmanjih kvadrata možemo oceniti vrednosti parametara 𝛼0 i
𝛼1 i napraviti predviđanja za 𝑦𝑡 . Da bismo dobili prognozu za 𝑥𝑡 , potrebno je inverzno transformisati 𝑦𝑡 , u
ovom slučaju ta transformacija je exp(𝑦𝑡). Međutim, ovaj metod često ima za posledicu pogrešno
predviđanje srednjih vrednosti, i u odeljku 10 razmatramo mogude korekcije.
Od prirodnih procesa koji generišu vremenske serije se ne očekuje da budu baš linearni, ali linearne
aproksimacije su često adekvatne. Ipak nismo ograničeni samo linearnim modelima; primer nelinearnog
modela bi bio tzv. Basov model koji se može dodeliti korišdenjem funkcije nls.
4
2.2 Stacionarnost
Linearni model vremenske serije bide nestacionaran ako sadrži neke funkcije koje zavise od vremena.
Diferenciranje često može transformisati nestacionarnu seriju sa determinističkim trendom u
stacionarnu. Na primer, ako je 𝑥𝑡 vremenska serija koje se modeluje linijskim trendom na koji je dodat
beli šum, 𝑥𝑡 = 𝛼0 + 𝛼1𝑡 + 𝑧𝑡 , onda je jednom diferencirana serija zadata sa:
∇𝑥𝑡 = 𝑥𝑡 − 𝑥𝑡−1 = 𝑧𝑡 − 𝑧𝑡−1 + 𝛼1
(4)
Ako važi da je serija grešaka 𝑧𝑡 stacionarna, onda je i serija {∇𝑥𝑡} stacionarna, jer je funkcija srednje
vrednosti konstantna i korelaciona funkcija zavisi samo od dužine vremenskog intervala. Diferenciranje
može da transformiše nestacionarnu seriju sa stohastičkim trendom u stacionarnu (primer je slučajno
lutanje), što znači da diferenciranje može ukloniti i stohastički i deterministički trend iz serije. Ako je
trend polinom stepena 𝑚, početnu seriju treba diferencirati 𝑚 puta da bi se uklonio trend.
Primetimo da diferenciranjem serije predstavljene kao zbir linearnog trenda i belog šuma dobijamo
drugačiju seriju od one koju bismo dobili da smo samo oduzeli trend. U ovom drugom slučaju ostaje nam
samo beli šum, dok diferenciranje daje priraštaje belog šuma (što je primer MA procesa).
2.3 Simulacije
Uobičajeno je da vremenska serija grešaka 𝑧𝑡 , iz jednačine (1), bude autokorelisana. Navodimo kod
kojim se simulira i grafički predstavlja vremenska serija sa rastudim linearnim trendom 𝑚𝑡 = 50 + 3t i
autokorelisanim rezidualima.
set.seed(1)
z <- w <- rnorm(100, sd = 20)
for (t in 2:100)
z[t] <- 0.8 * z[t-1] + w[t]
t <- 1:100
x <- 50 + 3 * t + z
plot(x, xlab = "vreme", type = "l")
Model koji odgovara navedenom kodu se može izraziti kao 𝑥𝑡 = 50 + 3t + 𝑧𝑡 , gde je 𝑧𝑡 jedan AR(1) process
zadat sa 𝑧𝑡 = 0.8 𝑧𝑡−1 +𝑤𝑡 , pri čemu je 𝑤𝑡 Gausovski beli šum sa standardnim odstupanjem 𝜍 = 20.
Grafik dobijene vremenske serije (u zavisnosti od vremena) prikazan je na slededoj slici:
5
3. FITOVANI MODELI
3.1 Fitovanje modela simuliranim podacima
Linearni modeli se najčešde formiraju minimiziranjem sume kvadrata reziduala
𝑧𝑡2 = (𝑥𝑡 − 𝛼0 − 𝛼1𝑢1,𝑡 − 𝛼2𝑢2,𝑡 −⋯− 𝛼𝑚𝑢𝑚 ,𝑡)
2𝑛𝑖=1
𝑛𝑖=1 ,
što se u R-u postiže primenom funkcije lm, na slededi način:
> x.lm <- lm(x ~ t)
> coef(x.lm)
(Intercept) t
58.551218 3.063275
> vcov(x.lm)
(Intercept) t
(Intercept) 23.815013 -0.355447951
t -0.355448 0.007038573
> sqrt(diag(vcov(x.lm)))
(Intercept) t
4.88006278 0.08389621
Ocene parametara linearnog modela se mogu izdvojiti ekstraktorskom funkcijom coef. Primetimo da su,
kao što je i očekivano, ocene bliske vrednostima parametara koje smo zadali prilikom simulacije:
ocenjena vrednost za intercept (presek sa 𝑥-osom) je 58.55, što je relativno blisko broju 50, a nagib
6
prave (koeficijent uz 𝑡) je 3.06 ≈ 3. Standardne greške se mogu dobiti kao kvadratni koreni elemenata na
glavnoj dijagonali matrice koju čine ocenjene kovarijacije između ocenjenih parametara linearnog
modela. Ugrađena funkcija u R-u koja daje tu matricu je vcov, a kao argument joj se prosleđuje
posmatrani linearni ili nelinearni model. Međutim, ovako dobijene vrednosti standardnih grešaka su
često potcenjene zbog autokorelacije reziduala. Može se koristiti i funkcija summary za dobijanje
informacija o modelu, s tim što ona vrada i dodatne informacije, npr. o t-testovima, koje mogu biti
netačne za potrebe regresione analize vremenske serije, takođe zbog autokorelacije reziduala.
Nakon fitovanja odgovarajudeg modela, možemo razmotriti razne dijagnostičke grafike. U slučaju
regresije vremenskih serija, jedan od veoma bitnih dijagnostičkih grafika je korelogram reziduala.
Autokorelacija (serijska korelacija) je korelacija između vrednosti vremenske serije u različitim
vremenskim trenucima. Parcijalna autokorelacija sa kašnjenjem 𝑘 je korelacija između 𝑥𝑡 i 𝑥𝑡−𝑘 nakon
što je eliminisan uticaj svih elemenata između. Grafik autokorelacione funkcije naziva se korelogram, a
grafik parcijalne autokorelacione funkcije – parcijalni korelogram. U R-u, funkcije acf i pacf redom
računaju ocenjenu (na osnovu realizovane vremenske serije) autokorelacionu, odnosno parcijalnu
autokorelacionu funkciju i po default-u crtaju odgovarajude korelograme. Kao argument tim funkcijama
prosleđujemo seriju reziduala, koja se iz modela izdvaja pomodu funkcije resid.
acf(resid(x.lm))
pacf(resid(x.lm))
7
Kao što je očekivano, sa prvog grafika vidimo da je serija reziduala autokorelisana, zato što više od 5%
vrednosti izlazi van segmenta ograničenog plavim isprekidanim linijama. Drugi grafik ukazuje na to da je
samo parcijalna autokorelacija sa kašnjenjem 1 značajna, što implicira da serija reziduala predstavlja
AR(1) proces. Ovakav rezultat je očekivan, s obzirom da smo prilikom simulacije reziduala koristili upravo
AR(1) proces. Uzgred, primetimo da acf računa korelacije za kašnjenja počevši od nule, dok pacf
računa počevši od jedinice.
3.2 Primer – indeksi potrošačkih cena
Navešdemo primer linearog regresionog modela koji odgovara podacima o indeksima potrošačkih cena u
Sjedinjenim Američkim Državama. Indeksi potrošačkih cena (Consumer Price Indexes (CPI)) definišu se
kao mera prosečne promene maloprodajnih cena robe i usluga koje se koriste za ličnu potrošnju tipičnog
potrošača. Koristi se za pradenje promena troškova života u vremenu. Kada CPI raste, tipično
domadinstvo troši više novca da bi se održao isti nivo potrošnje, tj. životnog standarda. Pomodu CPI mogu
se prepoznati periodi inflacije i deflacije. Inflacija je stanje u privredi kada opšti nivo cena raste, a stopa
inflacije je procentualna promena CPI u odnosu na neki raniji period. Nagli porast vrednosti CPI u
kratkom vremenskom periodu može ukazati na period inflacije, dok nagli pad ukazuje na period deflacije.
Baza podataka je preuzeta sa linka koji je naveden pod rednim brojem [3] u literaturi. Sadrži vrednosti
indeksa potrošačkih cena u periodu od januara 1947. do marta 2015. godine. Nakon učitavanja baze,
koristimo funkciju ts koja kreira objekat klase vremenske serije i zadajemo početni i krajnji trenutak, kao
i frekvenciju (frequency=12, s obzirom da su mesečni podaci u pitanju).
8
baza <- read.table("c:/Users/Mila/Documents/Radno/VS/seminarski/cp.txt", header=F)
serija <- ts(baza, start=c(1947, 1), end=c(2015,3), frequency=12)
plot(serija, xlab="vreme", ylab="CPI", main="Consumer Price Index for All Urban Consumers")
Sa grafika se jasno vidi da postoji rastudi deterministički trend, koji je u periodu od 1947. do oko 1975.
godine rastao sporijim tempom u odnosu na naredne godine u kojima je rast bio brži, sve do današnjeg
dana. Takođe, možemo uočiti skok i odmah zatim pad nivoa u 2009. godini, što je verovatno bila
posledica svetske ekonomske krize.
Izdvojidemo podatke od 1980. do 2007. godine kako bismo im pridružili odgovarajudi linearni model, s
obzirom da su indeksi potrošačkih cena u tom periodu pratili približno linearni trend. Vreme je jedini
prediktor modela, pa demp funkcijom time izdvojiti vremenske trenutke iz ts objekta.
cpi <- window(serija, start=c(1980,1), end=c(2007,12))
cpi.lm <- lm(cpi ~ time(cpi))
plot(cpi, xlab="vreme", ylab="CPI", main="Consumer Price Index (1980 - 2007)")
abline(cpi.lm, lty=2, lwd=2, col='goldenrod1')
9
> summary(cpi.lm)
Call:
lm(formula = cpi ~ time(cpi))
Residuals:
Min 1Q Median 3Q Max
-5.4168 -1.9114 0.2692 1.4515 5.4432
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -8.611e+03 2.617e+01 -329.0 <2e-16 ***
time(cpi) 4.391e+00 1.313e-02 334.5 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.945 on 334 degrees of freedom
Multiple R-squared: 0.997, Adjusted R-squared: 0.997
F-statistic: 1.119e+05 on 1 and 334 DF, p-value: < 2.2e-16
Kako je Adjusted R-squared: 0.997, možemo zaključiti da model gotovo savršeno odgovara podacima.
> confint(cpi.lm)
2.5 % 97.5 %
(Intercept) -8662.458216 -8559.487895
time(cpi) 4.365286 4.416926
10
> acf(resid(cpi.lm))
Funkcijom confint određujemo 95%-tni interval poverenja za parametre modela. Interval poverenja za nagib prave ne sadrži nulu, što predstavlja statističko objašnjenje za postojanje trenda, u slučaju da je autokorelacija reziduala zanemarljiva. Međutim, serija reziduala je pozitivno autokorelisana, što dovodi do toga su vrednosti standardnih grešaka ocenjenih parametara manje nego što bi trebalo da budu, a samim tim su i intervali poverenja uži. Ukoliko u vremenskoj seriji postoji izraženi trend, onda autokorelaciona funkcija opada od jedinice skoro linearno, kao što je slučaj u ovom primeru.
U narednom odeljku je matematički objašnjeno kako pozitivna autokorelacija između uzastopnih vrednosti (koja nastaje zato što se slične vrednosti javljaju jedna za drugom) utiče na ocene standardnih grešaka u modelu.
3.3 Autokorelacija i ocenivanje uzoračkih statistika
Da bismo ilustrovali uticaj autokorelacije na ocenjivanje, koristidemo uzoračku sredinu, s obzirom da se
ona jednostavno određuje i analizira, a i koristi se u izračunavanjima drugih statističkih osobina.
Pretpostavimo da je {𝑥𝑡 : 𝑡 = 1,… ,𝑛} vremenska serija nezavisnih slučajnih veličina sa srednjom
vrednošdu 𝐸𝑥𝑡 = 𝜇 i disperzijom 𝐷𝑥𝑡 = 𝜍2. Poznato je da tada uzoračka sredina 𝑥 =1
𝑛 𝑥𝑖
𝑛𝑖=1 ima
matematičko očekivanje 𝐸𝑥 = 𝜇 i disperziju 𝐷𝑥 =𝜍2
𝑛, odnosno standardno odstupanje
𝜍
𝑛.
11
Sada pretpostavimo da je {𝑥𝑡 : 𝑡 = 1,… ,𝑛} stacionarna vremenska serija sa srednjom vrednošdu 𝐸𝑥𝑡 = 𝜇
i disperzijom 𝐷𝑥𝑡 = 𝜍2, i autokorelacionom funkcijom 𝑐𝑜𝑟 𝑥𝑡 ,𝑥𝑡+𝑘 = 𝜌𝑘 . Odredimo disperziju uzoračke
srednje vrednosti u tom slučaju.
𝐷𝑥 = 𝐷 1
𝑛 𝑥𝑡
𝑛
𝑖=1
=1
𝑛2 𝐷 𝑥𝑡
𝑛
𝑖=1
=1
𝑛2 𝑐𝑜𝑟 𝑥𝑖
𝑛
𝑖=1
, 𝑥𝑗
𝑛
𝑗=1
Koristedi jednakost
𝑐𝑜𝑟 𝑥𝑖
𝑛
𝑖=1
, 𝑥𝑗
𝑛
𝑗=1
= 𝑐𝑜𝑣 𝑥𝑖 , 𝑥𝑗
𝑛
𝑖=1
𝑛
𝑖=1
,
dalje dobijamo
𝐷𝑥 =1
𝑛2 𝑐𝑜𝑣 𝑥𝑖 , 𝑥𝑗
𝑛
𝑖=1
𝑛
𝑖=1
=1
𝑛2
𝛾0 + 𝛾1 +⋯+ 𝛾𝑛−2 + 𝛾𝑛−1 + 𝛾1 + 𝛾0 +⋯+ 𝛾𝑛−3 + 𝛾𝑛−2 +
⋮ ⋮𝛾𝑛−2 + 𝛾𝑛−3 +⋯+ 𝛾2 + 𝛾1 + 𝛾𝑛−1+ 𝛾𝑛−2 +⋯+ 𝛾1 + 𝛾0
=1
𝑛2 𝑛𝛾0 + 2 (𝑛 − 𝑘)𝛾𝑘
𝑛−1
𝑘=1
Pritom, koristili smo uobičajene oznake za autokovarijacionu, odnosno autokorelacionu funkciju:
𝛾𝑘 = 𝐸 (𝑥𝑡 − 𝜇)(𝑥𝑡+𝑘 − 𝜇) , 𝜌𝑘 =𝛾𝑘𝜍2
Kada uvrstimo 𝛾0 = 𝜍2 i 𝜌𝑘 =𝛾𝑘
𝜍2 , konačno se dobija
𝐷𝑥 =
𝜍2
𝑛 1 + 2 1 −
𝑘
𝑛
𝑛−1
𝑘=1
𝜌𝑘
(5)
U jednačini (5), disperzija koja je jednaka 𝜍2
𝑛 i koja odgovara prostom slučajnom uzorku, dobija se kao
specijalni slučaj kada važi 𝜌𝑘 = 0 za svako 𝑘 ≥ 1. Ukoliko je 𝜌𝑘 > 0, onda važi 𝐷𝑥 >𝜍2
𝑛, što znači da de
ocena za 𝜇 biti manje precizna od ocene koja se dobija na osnovu prostog slučajnog uzorka istog obima.
U usprotnom, ukoliko je 𝜌𝑘 < 0, disperzija ocene zapravo može biti manja od disperzije koja se dobija pri
prostom slučajnom uzorku istog obima. To se dešava zbog toga što postoji tendencija da se nakon
vrednosti koja je iznad uzoračke sredine pojavi vrednost koja je ispod uzoračke sredine (zbog negativne
korelacije), čime se obezbeđuje povedanje efikasnosti ocene uzoračke srednje vrednosti. Kod pozitivne
korelacije je verovatnije da de vrednosti u kontinuitetu biti iznad, odnosno ispod uzoračke sredine, što
kao posledicu ima smanjenje efikasnosti ocena uzoračke sredine. Dakle, u slučaju pozitivne korelacije,
12
potreban je uzorak vedeg obima kako bi se postigao podjednak nivo preciznosti ocene za 𝜇 u poređenju
sa preciznošdu ocene kada je vremenska serija negativno korelisana ili nije uopšte korelisana.
4. UOPŠTENI METOD NAJMANJIH KVADRATA
U regresiji vremenskih serija uobičajeno je i očekivano da serija reziduala bude autokorelisana. Kao što je
ved rečeno, u slučaju pozitivne serijske korelacije u seriji reziduala, standardne greške ocenjenih
parametara imaju tendenciju da budu potcenjene, na osnovu jednakosti (5), pa bi stoga trebalo izvršiti
korekciju.
Uopšteni metod najmanjih kvadrata (generalised least squares (GLS)) se može koristiti za dobijanje boljih
ocena standardnih grešaka parametara regresije, tako da te ocene objašnjavaju autokorelaciju reziduala.
Ovaj metod se bazira na maksimiziranju verodostojnosti ukoliko je data autokorelacija podataka.
Odgovarajuda funkcija u R-u se naziva gls i nalazi se u paketu nlme.
4.1 Fitovanje modela simuliranoj seriji pomoću funkcije GLS
Naredni primer ilustruje upotrebu funkcije gls kojom se fituje model vremenskoj seriji simuliranoj u
odeljku 2.3.
> library(nlme)
> x.gls <- gls(x ~ t, cor = corAR1(0.8))
> summary(x.gls)
Generalized least squares fit by REML
Model: x ~ t
Data: NULL
AIC BIC logLik
862.8866 873.2265 -427.4433
Correlation Structure: AR(1)
Formula: ~1
Parameter estimate(s):
Phi
0.7161368
Coefficients:
Value Std.Error t-value p-value
(Intercept) 58.23302 11.924568 4.883449 0
t 3.04225 0.202445 15.027538 0
13
Correlation:
(Intr)
t -0.857
Standardized residuals:
Min Q1 Med Q3 Max
-1.6171329 -0.6195428 0.0353972 0.5836326 2.3184155
Residual standard error: 25.58595
Degrees of freedom: 100 total; 98 residual
> sqrt(diag(vcov(x.gls))) # možemo i ovako da odredimo std. greške
(Intercept) t
11.9245679 0.2024447
Argumentom cor = corAR1(0.8) precizira se da je autokorelacija sa kašnjenjem 1 jednaka 0.8 (zato
što je ta vrednost korišdena prilikom simulacije podataka u odeljku 2.3). U slučaju realnih podataka, tj.
neke vremenske serije koja je nastala na osnovu podataka iz prošlosti, autokorelacija sa kašnjenjem 1 se
procenjuje na osnovu korelograma reziduala fitovanog linearnog modela. To znači da prvo mora da se
napravi linearni model običnom metodom najmanjih kvadrata i da se, zatim, iz korelograma reziduala tog
modela očita vrednost autokorelacije sa kašnjenjem 1.
U navedenom primeru, standardne greške parametara modela su 11.925 za presek sa 𝑥-osom i 0.202 za
nagib prave, tj. znatno su vede od standardnih grešaka dobijenih primenom obične metode najmanjih
kvadrata (u poglavlju 3), koje su iznosile 4.88 za presek sa 𝑥-osom i 0.084 za nagib. Ocene standardnih
grešaka koje su dobijene pomodu gls su tačnije, zato što uzimaju u obzir serijsku korelaciju reziduala.
Mogu se pročitati iz izlaza koji daje funkcija summary ili se mogu “ručno” odrediti naredbom
sqrt(diag(vcov(x.gls))).
Takođe, možemo primetiti da se ocene samih parametara dva posmatrana modela malo razlikuju, zbog
ponderisanja. Na primer, nagib prave iznosi 3.06 prema lm modelu, odnosno 3.04 prema gls modelu.
4.2 Interval poverenja za indekse potrošačkih cena
Da bismo odredili 95%-tni interval poverenja za trend u seriji sa indeksima potrošačkih cena, tako da
serijska korelacija u seriji reziduala bude uzeta u obzir, koristimo funkciju gls. Kao argument funkcije
gls navodimo da serija reziduala otprilike prati AR(1) proces sa autokorelacijom sa kašnjenjem 1 koja
iznosi 0.959, što se može očitati sa korelograma iz odeljka 3.2.
> acf(resid(cpi.lm))[1] # autokorelacija sa kašnjenjem 1
14
Autocorrelations of series ‘resid(cpi.lm)’, by lag
1
0.959
> cpi.gls <- gls(cpi ~ time(cpi), cor = corAR1(0.959))
> confint(cpi.gls)
2.5 % 97.5 %
(Intercept) -10352.056812 -8421.215908
time(cpi) 4.318123 5.242116
Iako su intervali poverenja sada širi nego u odeljku 3.2, nula i dalje nije sadržana u intervalima, što znači
da su ocene parametara statistički značajne. Stoga, postoji statistički dokaz rastudeg trenda za vrednosti
CPI u periodu od 1980. do 2007. godine, i očekuje se da se takav trend nastavi u narednim godinama.
5. LINEARNI MODELI SA SEZONSKIM KOMPONENTAMA
5.1 Uvod
Kako vremenske serije predstavljaju opservacije merene u toku vremena, sezonske komponente se često
javljaju u podacima, posebno godišnje ciklične promene koje su direktna ili indirektna posledica kretanja
Zemlje oko Sunca. U ovom odeljku demo razmatrati linearne regresione modele sa prediktorima koji
opisuju efekat sezonskih promena.
5.2 Aditivne sezonske indikatorske slučajne veličine
Neka vremenska serija sadrži 𝑠 sezona. Na primer, kod vremenskih serija gde se podaci beleže svakog
kalendarskog meseca, 𝑠 = 12, odnosno kod serija kod kojih su kvartalni podaci, 𝑠 = 4. Sezonski
indikatorski model za seriju {𝑥𝑡 ∶ 𝑡 = 1, . . . ,𝑛} koja ima 𝑠 sezona i trend 𝑚𝑡 , zadat je sa:
𝑥𝑡 = 𝑚𝑡 + 𝑠𝑡 + 𝑧𝑡 (6)
gde je 𝑠𝑡 = 𝛽𝑖 ukoliko se trenutak 𝑡 javlja u 𝑖-toj sezoni (𝑡 = 1, . . . ,𝑛; 𝑖 = 1, . . . , 𝑠) , a 𝑧𝑡 serija
reziduala, koja može biti autokorelisana. Ovaj model ima isti oblik kao aditivna dekompozicija modela, ali
se razlikuje u parametrima koji definišu trend. U jednakosti (6), 𝑚𝑡 nema slobodan član (intercept),
npr. 𝑚𝑡 bi mogao da bude polinom stepena 𝑝 sa koeficijentima 𝛼1 ,𝛼2 ,… ,𝛼𝑝 . Dakle, jednakost (6) je
ekvivalentna polinomijalnom trendu u kom slobodan član zavisi od sezone, tako da sezonskim
15
parametrima 𝛽1 ,𝛽2 ,… ,𝛽𝑠 odgovara 𝑠 mogudih slobodnih članova iz jednakosti (2). Jednakost (6) se
drugačije može zapisati:
𝑥𝑡 = 𝑚𝑡 + 𝛽1+( 𝑡−1 𝑚𝑜𝑑 𝑠) + 𝑧𝑡 (7)
Na primer, za vremensku seriju 𝑥𝑡 čije su vrednosti beležene svakog meseca počevši sa 𝑡 = 1 u januaru, sezonski indikatorski model sa linearnim trendom zadat je na slededi način:
𝑥𝑡 = 𝛼1 𝑡 + 𝑠𝑡 + 𝑧𝑡 =
𝛼1 𝑡 + 𝛽1 + 𝑧𝑡 , 𝑡 = 1,13,…𝛼1 𝑡 + 𝛽2 + 𝑧𝑡 , 𝑡 = 2,14,…
⋮ 𝛼1 𝑡 + 𝛽12 + 𝑧𝑡 , 𝑡 = 12,24,…
(8)
Parametri modela (8) mogu se oceniti običnom ili uopštenom metodom najmanjih kvadrata, tretirajudi
sezonsku komponentu kao faktor. U R-u se funkcija factor može primeniti na sezonske indekse koji iz
vremenske serije mogu izdvojiti funkcijom cycle.
5.3 Primer – nezaposlenost žena
Ilustrovademo opisani model na primeru vremenske serije koja beleži broj nezaposlenih žena u
Sjedinjenim Američkim Državama u periodu od januara 1948. do aprila 2015. godine. Baza podataka je
preuzeta sa linka koji je naveden pod rednim brojem [4] u literaturi.
women <- read.table("c:/Users/Mila/Documents/Radno/VS/seminarski/LNU03000002. txt", header=T)
wmn <- ts(women, start=c(1948, 1), end=c(2015,4), frequency=12)
plot(wmn, xlab="vreme", ylab="hiljada osoba", main="Nezaposlenost žena")
Na 𝑦-osi je naznačeno da ova vremenska serija prati koliko hiljada žena je nezaposleno u određenom
vremenskom trenutku. Kao što možemo videti sa grafika, gledano na duže staze, deluje kao da postoji
izvestan rastudi trend, što je verovatno posledica porasta broja stanovnika u SAD-u u poslednjih
šezdesetak godina (s obzirom da se posmatra broj, a ne procenat, nezaposlenih). Takođe, uočava se i
nagli skok u broju nezapolenih u 2009. i 2010. godini, zbog svetske ekonomske krize.
Ukoliko se nacrta grafik za kradi vremenski interval, postojanje sezonske komponente je sasvim uočljivo.
U okviru jedne godine, najviši je nivo nezapolenosti u letnjim mesecima (jul i avgust), a najmanji u
periodu pre Nove godine (novembar i decembar) i u aprilu.
16
17
Napravidemo model (8), čiji je trend prava linija, a sezonske komponente predstavljene indikatorskim
slučajnim veličinama. Potrebno je eksplicitno navesti nulu u formulaciji modela: lm(wmn ~ 0 + vreme +
factor(sezone), data=wmn), da u modelu ne bi postojao slobodan član. Ukoliko bi se izostavila nula,
dobijeni model bi imao slobodan član i jedan sezonski parametar manje. Parametre smo mogli da
ocenimo i pomodu funkcije gls, umesto ovde korišdene lm.
> sezone <- cycle(wmn)
> vreme <- time(wmn)
> wmn.lm <- lm(wmn ~ 0 + vreme + factor(sezone), data=wmn)
> coef(wmn.lm)
vreme factor(sezone)1 factor(sezone)2 factor(sezone)3
62.19358 -120360.01227 -120406.41566 -120497.89257
factor(sezone)4 factor(sezone)5 factor(sezone)6 factor(sezone)7
-120628.86949 -120541.10102 -120121.88084 -120134.09348
factor(sezone)8 factor(sezone)9 factor(sezone)10 factor(sezone)11
-120244.96285 -120351.71281 -120477.16427 -120507.73512
factor(sezone)12
-120709.24628
6. PROGNOZIRANJE POMOĆU REGRESIJE
6.1 Uvod
Bitna stavka u regresionoj analizi vremenskih serija je predviđanje bududnosti na osnovu podataka iz
prošlosti. Pritom se koristi ekstrapolacija odabranog modela, tj. nalaze se vrednosti u bududim
trenucima. Glavni problem ovakvog pristupa je u tome što se trend može promeniti u bududnosti. Zbog
toga je bolje gledati na predviđanje, koje se bazira na regresionom modelu, kao na očekivanu vrednost
pod uslovom da se trend iz prošlosti nastavlja i u bududnosti.
6.2 Predviđanje u R-u
Sada demo odrediti dvadesetomesečnu prognozu bududeg broja nezposlenih žena iz primera 5.3,
pomodu napravljenog modela. U narednom kodu, prvo kreiramo vremenske trenutke koji odgovaraju
mesecima počev od januara 2015. do decembra 2016. a zatim odstranjujemo prva 4 meseca, zato što ved
18
imamo realizovane vrednosti zaključno sa aprilom 2015. i time dobijamo vektor new.t sa bududim
vremenskim trenucima.
Prvo navodimo “ručno izračunatu” prognozu: nagib prave koja predstavlja trend je alpha, dok beta čine
sezonski parametri, pa su tada prognozirane vrednosti (alpha * new.t + beta).
> new.t <- seq(2015, len = 2 * 12, by = 1/12)[5:24]
> new.t
[1] 2015.333 2015.417 2015.500 2015.583 2015.667 2015.750 2015.833
[8] 2015.917 2016.000 2016.083 2016.167 2016.250 2016.333 2016.417
[15] 2016.500 2016.583 2016.667 2016.750 2016.833 2016.917
> alpha <- coef(wmn.lm)[1]
> beta <- rep(coef(wmn.lm)[2:13], 2)[5:24]
> (alpha * new.t + beta)
factor(sezone)5 factor(sezone)6 factor(sezone)7 factor(sezone)8
4799.686 5224.089 5217.059 5111.373
factor(sezone)9 factor(sezone)10 factor(sezone)11 factor(sezone)12
5009.805 4889.537 4864.149 4667.820
factor(sezone)1 factor(sezone)2 factor(sezone)3 factor(sezone)4
5022.237 4981.017 4894.722 4768.928
factor(sezone)5 factor(sezone)6 factor(sezone)7 factor(sezone)8
4861.880 5286.283 5279.253 5173.566
factor(sezone)9 factor(sezone)10 factor(sezone)11 factor(sezone)12
5071.999 4951.730 4926.342 4730.014
Alternativno, može se koristiti generička funkcija za predviđanje u R-u, koja se naziva predict. Kao
parametri joj se prosleđuju fitovani model i novi podaci (novi vremenski trenuci, u slučaju analize
vremenskih serija) u kojima želimo da odredimo prognozirane vrednosti. Posebno treba obratiti pažnju
na to da novi podaci budu adekvatno definisani i imenovani u okviru objekta klase data.frame.
Neophodno je da kolone budu imenovane isto kao prediktori modela (vreme i sezone, u ovom
primeru). U suprotnom, R de javiti grešku.
> new.dat <- data.frame(vreme = new.t, sezone = c(5:12, 1:12))
> predict(wmn.lm, new.dat)
1 2 3 4 5 6 7 8
4799.686 5224.089 5217.059 5111.373 5009.805 4889.537 4864.149 4667.820
9 10 11 12 13 14 15 16
5022.237 4981.017 4894.722 4768.928 4861.880 5286.283 5279.253 5173.566
17 18 19 20
5071.999 4951.730 4926.342 4730.014
Na oba načina dobijaju se iste vrednosti.
19
7. HARMONIJSKI SEZONSKI MODELI
U prethodnim odeljcima za svaku sezonu ocenjivali smo po jedan parametar. Ipak, sezonski efekat često
varira tokom sezona glatko, pa bi bilo efikasnije, što se tiče broja parametara za ocenjivanje, posmatrati
neke glatke funkcije sa manje parametara koje bi odjednom ocenile sezonski efekat za sve sezone.
Sinusna i kosinusna funkcija mogu biti korišdene kao glatke ocene sezonske varijacije. Sinusni talas
frekvencije 𝑓, amplitude 𝐴, i faze 𝜙 može biti, korišdenjem adicionih formula, zapisan na slededi način:
𝐴 sin 2𝜋𝑓𝑡 + 𝜙 = 𝛼𝑠 sin 2𝜋𝑓𝑡 + 𝛼𝑐sin 2𝜋𝑓𝑡 (9)
gde su 𝛼𝑠 = 𝐴 cos 𝜙 i 𝛼𝑐 = 𝐴 sin 𝜙 . Izraz sa desne strane jednakosti je linearan po parametrima 𝛼𝑠 i
𝛼𝑐 , dok leva strana nije linearna jer se 𝜙 nalazi unutar sinusne funkcije. Iz tog razloga izraz sa desne
strane je poželjan za definisanje regresionog modela sezonske komponente, a parametre 𝛼𝑠 i 𝛼𝑐
ocenjujemo metodom najmanjih kvadrata. Za vremensku seriju {𝑥𝑡} sa 𝑠 sezona postoji [𝑠/2] mogudih
ciklusa. Harmonijski sezonski model definišemo sa:
𝑥𝑡 = 𝑚𝑡 + {𝑠𝑖 sin 2𝜋𝑖𝑡/𝑠 + 𝑐𝑖sin 2𝜋𝑖𝑡/𝑠 }
[𝑠/2]
𝑖=1
(10)
gde je 𝑚𝑡 trend koji uključuje slobodan član, a 𝑐𝑖 i 𝑠𝑖 su takođe nepoznati parametri. Trend možemo
oceniti polinomom kao u jednačini (2). Ako je 𝑠 paran broj, vrednost sinusne funkcije za frekvenciju 1/2
(kada je 𝑖 = 𝑠/2 u sumi u jednačini (10)) de biti nula za sve vrednosti 𝑡, pa taj sabirak nestaje. Dakle,
maksimalni broj parametara harmonijskog sezonskog modela koje treba oceniti je jednak broju
parametara za sezonski model iz jednačine (6).
Na prvi pogled može biti čudno kako harmonijski model ima cikluse frekvencije vede u odnosu na
sezonsku koja je 1/𝑠. Dodavanje dodatnih harmonika ima ulogu da izmeni talas kako bismo imali
realističniji model u odnosu na običan sinusni talas perioda 𝑠. Svakako, komponenta perioda 𝑠 bi trebalo
da bude dominantna. Neka je, na primer, data mesečna vremenska serija. Nacrtademo dva grafika; na
prvom je sezonska komponenta sinusni talas perioda 12, a na drugom smo u skladu sa prethodnim
razmatranjem sinusnom talasu perioda 12 koji je u osnovi, dodali još dva harmonika, frekvencija 2 /12 i
4/12. Navedeni kod ilustruje jednu od bezbroj mogudnosti kombinovanja harmonika, koje može da
posluži za modelovanje širokog spektra mogudih sezonskih pravilnosti.
TIME <- seq(1, 12, len = 1000)
plot(TIME, sin(2 * pi * TIME/12), type = "l")
plot(TIME, sin(2 * pi * TIME/12) + 0.2 * sin(2 * pi * 2 * TIME/12)
+ 0.1 * sin(2 * pi * 4 * TIME/12)
+ 0.1 * cos(2 * pi * 4 * TIME/12), type = "l")
20
7.1 Simulacije
U skladu sa modelom datim u jednačini (10) navodimo jedan konkretan primer vremenske serije
𝑥𝑡 = 0.1 + 0.005𝑡 + 0.001𝑡2 + sin 2𝜋𝑡/12 + 0.2 sin 4𝜋𝑡/12 + 0.1 sin 8𝜋𝑡/12 + 0.1 cos 8𝜋𝑡/12 +𝑤𝑡
(11)
gde je {𝑤𝑡} Gausov beli šum sa standardnom devijacijom 0.5. Ovaj harmonijski model ima sezonsku
komponentu koja je ved grafički prikazana na prethodnoj slici, a za trend smo izabrali kvadratnu funkciju.
Ovu seriju demo sada simulirati i nacrtati grafik.
set.seed(1)
TIME <- 1:(10 * 12)
w <- rnorm(10 * 12, sd = 0.5)
21
Trend <- 0.1 + 0.005 * TIME + 0.001 * TIME^2
Seasonal <- sin(2*pi*TIME/12) + 0.2*sin(2*pi*2*TIME/12) +
0.1*sin(2*pi*4*TIME/12) + 0.1*cos(2*pi*4*TIME/12)
x <- Trend + Seasonal + w
plot(x, type = "l", xlab="Time")
7.2 Fitovanje modela simuliranoj seriji
Radi preglednosti, sve mogude harmonike iz jednačine (10) možemo staviti da budu komponente
matrice.
SIN <- COS <- matrix(nr = length(TIME), nc = 6) for (i in 1:6) { COS[, i] <- cos(2 * pi * i * TIME/12) SIN[, i] <- sin(2 * pi * i * TIME/12) }
U vedini slučajeva red harmonika i polinomijalni trend su nepoznati. Pretpostavljamo da su koeficijenti harmonika nezavisne slučajne veličine, tako da u slučaju da dobijemo vrednosti koeficijenata koje nisu statistički značajne, te prediktore, možemo isključiti iz linearnog modela.
x.lm1 <- lm(x ~ TIME + I(TIME^2) + COS[, 1] + SIN[, 1] + + COS[, 2] + SIN[, 2] + COS[, 3] + SIN[, 3] + COS[, 4] +
22
+ SIN[, 4] + COS[, 5] + SIN[, 5] + COS[, 6] + SIN[, 6]) > summary(x.lm1) Call: lm(formula = x ~ TIME + I(TIME^2) + COS[, 1] + SIN[, 1] + COS[, 2] + SIN[, 2] + COS[, 3] + SIN[, 3] + COS[, 4] + SIN[, 4] + COS[, 5] + SIN[, 5] + COS[, 6] + SIN[, 6]) Residuals: Min 1Q Median 3Q Max -1.0782 -0.2871 0.0045 0.2547 1.1128 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.558e-01 1.258e-01 1.239 0.218080 TIME 5.392e-03 4.793e-03 1.125 0.263112 I(TIME^2) 9.951e-04 3.837e-05 25.933 < 2e-16 *** COS[, 1] 1.908e-02 5.822e-02 0.328 0.743761 SIN[, 1] 9.015e-01 5.838e-02 15.442 < 2e-16 *** COS[, 2] -3.008e-02 5.845e-02 -0.515 0.607890 SIN[, 2] 2.025e-01 5.875e-02 3.447 0.000817 *** COS[, 3] 1.350e-02 5.826e-02 0.232 0.817146 SIN[, 3] -4.102e-02 5.837e-02 -0.703 0.483775 COS[, 4] 1.328e-02 5.835e-02 0.228 0.820379 SIN[, 4] 6.131e-02 5.825e-02 1.053 0.294982 COS[, 5] -6.785e-02 5.900e-02 -1.150 0.252712 SIN[, 5] 5.063e-02 5.906e-02 0.857 0.393199 COS[, 6] -1.473e-02 4.753e-02 -0.310 0.757165 SIN[, 6] 1.080e+12 2.823e+12 0.382 0.702943 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.4509 on 105 degrees of freedom Multiple R-squared: 0.9912, Adjusted R-squared: 0.99 F-statistic: 846.7 on 14 and 105 DF, p-value: < 2.2e-16
Na osnovu izlaza funkcije summary vidimo da su jedino statistički značajni parametri uz prediktore TIME^2, SIN[, 1] i SIN[, 2]. Ovi parametri korišdeni su za slededi model.
> x.lm2 <- lm(x ~ I(TIME^2) + SIN[, 1] + SIN[, 2]) > coef(x.lm2)/sqrt(diag(vcov(x.lm2))) (Intercept) I(TIME^2) SIN[, 1] SIN[, 2] 4.627904 111.143693 15.786425 3.494708
Sada su svi parametri statistički značajni. Model koji smo dobili je slededi:
𝑥 𝑡 = 0.280 + 0.00104𝑡2 + 0.900 sin 2𝜋𝑡/12 + 0.199 sin 4𝜋𝑡/12 (12)
Za poređenje ova dva modela možemo koristitii AIC (Akaike Information Criterion).
23
> AIC(x.lm1) [1] 165.3526 > AIC(x.lm2) [1] 149.7256
Kao što je očekivano, drugi model ima manju vrednost AIC, i zato predstavlja bolji model za našu seriju. Zbog komponente greške, stvarni model na osnovu kog je simulirana serija nede biti najbolji mogudi model u smislu vrednosti AIC, što se lako može proveriti nalaženjem AIC vrednosti simuliranog modela, za koju se ispostavlja da je ≈ 153, što je vede od malopre dobijenog ≈ 149.7.
> AIC(lm(x ~ TIME +I(TIME^2) +SIN[,1] +SIN[,2] +SIN[,4] +COS[,4])) [1] 153.0309
U R-u postoji algoritam step koji automatski pravi izbor najboljeg mogudeg modela u smislu vrednosti AIC tako što od početnog modela postepeno pravi najbolji model izbacivanjem po jednog (najmanje značajnog) prediktora u svakom koraku. Za navedeni primer, odgovarajuda komanda bi bila step(x.lm1), tj. kao prvi model treba proslediti onaj model koji sadrži sve prediktore.
7.3 Primer – globalne prosečne temperature
Baza podataka je preuzeta sa linka koji je naveden pod rednim brojem [5] u literaturi. Podaci
predstavljaju globalne prosečne mesečne temperature u periodu od januara 1856. do decembra 2005.
godine. Ova vremenska serija se koristi za proučavanje globalnog zagrevanja čije su posledice na naš svet
ogromne. Najizraženiji je rast u periodu od 1970. do 2000. godine, pa demo izdvojiti seriju u tom
vremenskom periodu radi daljeg proučavanja. Nakon učitavanja baze, koristimo funkciju ts koja kreira
objekat klase vremenske serije i zadajemo početni i krajnji trenutak, kao i frekvenciju.
Kako je vreme (niz svih trenutaka u kojima su vršena merenja) dato u godinama, pri formiranju matrice
sa vrednostima sinusa i kosinusa nije potrebno deliti sa 12. Nakon formiranja te matrice standardizovali
smo vreme da bismo smanjili greške izračunavanja u linearnom modelu koje su posledica velikih
vrednosti te promenljive.
www<-"http://staff.elena.aut.ac.nz/Paul-Cowpertwait/ts/global.dat" Global<-scan(www) Global.ts<-ts(Global,start=c(1856,1),end=c(2005,12),fr=12) time(Global.ts) plot(Global.ts)
24
temp<-window(Global.ts, start=c(1970,1),end=c(2005,12)) plot(temp)
> SIN <- COS <- matrix(nr = length(temp), nc = 6) > for (i in 1:6) { + COS[, i] <- cos(2 * pi * i * time(temp)) + SIN[, i] <- sin(2 * pi * i * time(temp)) + } > TIME <- (time(temp) - mean(time(temp)))/sd(time(temp)) > mean(time(temp)) [1] 1987.958 > sd(time(temp)) [1] 10.40433 > temp.lm1 <- lm(temp ~ TIME + I(TIME^2) + + COS[,1] + SIN[,1] + COS[,2] + SIN[,2] + + COS[,3] + SIN[,3] + COS[,4] + SIN[,4] +
25
+ COS[,5] + SIN[,5] + COS[,6] + SIN[,6]) > summary(temp.lm1) Call: lm(formula = temp ~ TIME + I(TIME^2) + COS[, 1] + SIN[, 1] + COS[, 2] + SIN[, 2] + COS[, 3] + SIN[, 3] + COS[, 4] + SIN[, 4] + COS[, 5] + SIN[, 5] + COS[, 6] + SIN[, 6]) Residuals: Min 1Q Median 3Q Max -0.37106 -0.07893 -0.00509 0.07682 0.43212 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.664e-01 9.117e-03 18.257 <2e-16 *** TIME 1.843e-01 6.087e-03 30.280 <2e-16 *** I(TIME^2) 8.673e-03 6.810e-03 1.274 0.2035 COS[, 1] 6.402e-03 8.595e-03 0.745 0.4568 SIN[, 1] 2.050e-02 8.596e-03 2.385 0.0175 * COS[, 2] 1.065e-02 8.810e-03 1.209 0.2275 SIN[, 2] 1.667e-02 8.633e-03 1.931 0.0541 . COS[, 3] 5.541e-03 8.593e-03 0.645 0.5194 SIN[, 3] 3.413e-03 8.594e-03 0.397 0.6914 COS[, 4] 4.699e-03 8.593e-03 0.547 0.5848 SIN[, 4] 1.445e-03 8.593e-03 0.168 0.8665 COS[, 5] 2.724e-03 8.593e-03 0.317 0.7514 SIN[, 5] 3.012e-03 8.593e-03 0.350 0.7262 COS[, 6] -2.858e-03 6.354e-03 -0.450 0.6530 SIN[, 6] -7.821e+08 1.258e+09 -0.622 0.5345 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.1263 on 417 degrees of freedom Multiple R-squared: 0.6896, Adjusted R-squared: 0.6792 F-statistic: 66.18 on 14 and 417 DF, p-value: < 2.2e-16
Na osnovu izlaza funkcije summary vidimo koji su prediktori značajni, a zatim pravimo drugi model koji uključuje samo one statistički značajne promenljive iz prvog modela.
> temp.lm2 <- lm(temp ~ TIME + SIN[, 1] + SIN[, 2]) > summary(temp.lm2) Call: lm(formula = temp ~ TIME + SIN[, 1] + SIN[, 2]) Residuals: Min 1Q Median 3Q Max -0.38904 -0.08341 -0.00240 0.07654 0.44564 Coefficients:
26
Estimate Std. Error t value Pr(>|t|) (Intercept) 0.175012 0.006039 28.982 <2e-16 *** TIME 0.184096 0.006047 30.443 <2e-16 *** SIN[, 1] 0.020418 0.008542 2.390 0.0173 * SIN[, 2] 0.016154 0.008540 1.891 0.0592 . --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.1255 on 428 degrees of freedom Multiple R-squared: 0.6854, Adjusted R-squared: 0.6832 F-statistic: 310.8 on 3 and 428 DF, p-value: < 2.2e-16
Funkcijom AIC poredimo dva dobijena modela.
> AIC(temp.lm1) [1] -545.0491 > AIC(temp.lm2) [1] -561.1779
Još jedan način da se proveri adekvatnost drugog modela je ispitivanjem serije reziduala. Ako je potreban polinom višeg stepena za ocenu trenda, grafik serije reziduala de imati krivolinijski oblik. Na osnovu korelograma serije reziduala možemo da ocenimo da li je ta serija autokorelisana.
plot(time(temp), resid(temp.lm2), type = "l") abline(0, 0, col = "red") acf(resid(temp.lm2)) pacf(resid(temp.lm2))
Sa grafika serije reziduala možemo da zaključimo da se oni ponašaju slučajno, pa je linearni model trenda
odgovarajudi. Ako primetimo da serija reziduala ima tendenciju da se zadržava ispod ili iznad 𝑥-ose, to je
znak pozitivne autokorelisanosti serije. Na osnovu korelograma zaključujemo da je serija reziduala
autokorelisana.
27
Vrednosti funkcije parcijalne autokorelacije sa kašnjenjem 1 i 2 su statistički značajne što upuduje na to
da je odgovarajudi model za seriju reziduala AR(2) model. Primenom funkcije ar, kojom fitujemo AR
model, došli smo do istog zaključka i pritom ocenili parametre ovog modela.
> res.ar <- ar(resid(temp.lm2), method = "mle")
> res.ar$ar
[1] 0.4938189 0.3071598
> acf(res.ar$res[-(1:2)])
> sd(res.ar$res[-(1:2)])
[1] 0.08373324
Korelogram reziduala fitovanog AR(2) modela dat je na slededoj slici, odakle je jasno da oni približno čine
beli šum.
28
Ovaj krajnji model ima slededi oblik
𝑥𝑡 = 0.175 +0.184 𝑡 − 1988
10.4+ 0.0204 sin 2𝜋𝑡 + 0.0162 sin 4𝜋𝑡 + 0.1 sin 8𝜋𝑡/12 + 𝑧𝑡
(13)
gde je 𝑡 vreme mereno u godinama, a {𝑧𝑡} serija reziduala koju smo objasili AR(2) modelom
𝑧𝑡 = 0.494𝑧𝑡−1 + 0.307𝑧𝑡−2 +𝑤𝑡
(14)
i {𝑤𝑡} je beli šum sa srednjom vrednosti 0 i standardnom devijacijom 0.0837.
Radi tačnijih ocena standardne greške potrebno je koristiti funkciju gls i pretpostaviti AR(2) strukturu
serije reziduala pošto su pretpostavke o nekorelisanosti reziduala kod linearnog modela narušene.
8. LOGARITAMSKE TRANSFORMACIJE
8.1 Uvod
Model vremenske serije {𝑥𝑡} koji ima oblik
𝑥𝑡 = 𝑚𝑡′ 𝑠𝑡′𝑧𝑡 ′ (15)
gde je 𝑚𝑡′ trend, 𝑠𝑡
′ sezonska komponenta, a 𝑧𝑡′ serija greške, je multiplikativni model. Logaritmovanjem
ove jednačine multiplikativni model svodimo na aditivni za novu seriju {𝑦𝑡}
29
𝑦𝑡 = log𝑥𝑡 = log𝑚𝑡′ + log 𝑠𝑡
′ + log 𝑧𝑡 ′ = 𝑚𝑡 + 𝑠𝑡 + 𝑧𝑡
(16)
Ako su još 𝑚𝑡 i 𝑠𝑡 linearne funkcije, parametri u jednačini (16) mogu biti ocenjeni metodom najmanjih
kvadrata. Logaritmovanje je mogude izvršiti samo ako su sve vrednosti serije {𝑥𝑡} pozitivne.
8.2 Primer – vrednost izvezenih proizvoda iz SAD-a u Kinu
Baza podataka je preuzeta sa linka koji je naveden pod rednim brojem [6] u literaturi. Podaci
predstavljaju ukupnu vrednost (u američkim dolarima) dobara koja se izvoze u Kinu na mesečnom nivou,
od januara 1992. do aprila 2015. godine.
VGC<-read.table("C:/Users/Anica/Desktop/vs/VGC.txt",header=TRUE)
VGC.ts<-ts(VGC, start=c(1992,1),end=c(2015,3),freq=12)
plot(VGC.ts,ylab="")
plot(log(VGC.ts))
30
Na osnovu prvog grafika možemo da pretpostavimo da serija ima približno eksponencijalni trend. Na
kraju 2008. i početku 2009. godine vidimo veliki pad u količini izvoza, što je posledica svetske ekonomske
krize. Takođe primedujemo da i varijabilnost podataka raste sa vremenom. U ovakvim situacijama
pogodno je nastaviti ispitivanje na logaritmovanoj seriji, jer kao što vidimo na drugom grafiku,
logaritmovanje je stabilizovalo disperziju za koju sada možemo da pretpostavimo da je konstantna tokom
vremena. Ovoj seriji demo sada dodeliti harmonijski sezonski model i polinomijalni trend.
SIN <- COS <- matrix(nr = length(VGC.ts), nc = 6)
for (i in 1:6) {
COS[, i] <- cos(2 * pi * i * time(VGC.ts))
SIN[, i] <- sin(2 * pi * i * time(VGC.ts))
}
TIME <- (time(VGC.ts) - mean(time(VGC.ts)))/sd(time(VGC.ts))
VGC.lm1 <- lm(log(VGC.ts) ~ TIME + I(TIME^2) + I(TIME^3) + I(TIME^4) +
SIN[,1] + COS[,1] + SIN[,2] + COS[,2] + SIN[,3] + COS[,3] +
SIN[,4] + COS[,4] + SIN[,5] + COS[,5] + SIN[,6] + COS[,6])
> summary(VGC.lm1)
Call:
lm(formula = log(VGC.ts) ~ TIME + I(TIME^2) + I(TIME^3) + I(TIME^4) +
SIN[, 1] + COS[, 1] + SIN[, 2] + COS[, 2] + SIN[, 3] +
COS[, 3] + SIN[, 4] + COS[, 4] + SIN[, 5] + COS[, 5] +
SIN[, 6] + COS[, 6])
Residuals:
Min 1Q Median 3Q Max
-0.63927 -0.08984 -0.00509 0.09574 0.46553
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.437e+01 1.642e-02 1484.022 < 2e-16 ***
TIME 1.337e+00 2.196e-02 60.877 < 2e-16 ***
I(TIME^2) 1.733e-01 3.442e-02 5.036 8.85e-07 ***
I(TIME^3) -1.285e-01 1.122e-02 -11.455 < 2e-16 ***
I(TIME^4) -7.424e-02 1.288e-02 -5.763 2.31e-08 ***
SIN[, 1] -7.367e-02 1.242e-02 -5.934 9.35e-09 ***
COS[, 1] -6.474e-02 1.238e-02 -5.231 3.45e-07 ***
SIN[, 2] -6.477e-02 1.242e-02 -5.216 3.71e-07 ***
COS[, 2] -3.404e-02 1.273e-02 -2.673 0.0080 **
SIN[, 3] -7.586e-02 1.241e-02 -6.111 3.56e-09 ***
COS[, 3] -3.086e-02 1.236e-02 -2.497 0.0132 *
SIN[, 4] -5.828e-02 1.238e-02 -4.707 4.07e-06 ***
COS[, 4] -1.885e-02 1.238e-02 -1.522 0.1292
SIN[, 5] -2.003e-02 1.240e-02 -1.615 0.1076
31
COS[, 5] -9.510e-03 1.237e-02 -0.769 0.4426
SIN[, 6] 3.443e+08 1.802e+09 0.191 0.8486
COS[, 6] -1.877e-03 9.160e-03 -0.205 0.8378
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.1462 on 262 degrees of freedom
Multiple R-squared: 0.9842, Adjusted R-squared: 0.9832
F-statistic: 1018 on 16 and 262 DF, p-value: < 2.2e-16
Na osnovu izlaza funkcije summary vidimo koji su prediktori značajni, a zatim pravimo drugi model koji uključuje samo one statistički značajne promenljive iz prvog modela.
VGC.lm2<-lm(log(VGC.ts) ~ TIME + I(TIME^2) + I(TIME^3) + I(TIME^4) + SIN[,1] + COS[,1] + SIN[,2] + COS[,2] + SIN[,3] + COS[,3] + SIN[,4] ) > summary(VGC.lm2) Call: lm(formula = log(VGC.ts) ~ TIME + I(TIME^2) + I(TIME^3) + I(TIME^4) + SIN[, 1] + COS[, 1] + SIN[, 2] + COS[, 2] + SIN[, 3] + COS[, 3] + SIN[, 4]) Residuals: Min 1Q Median 3Q Max -0.67075 -0.09765 -0.00355 0.09694 0.49522 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 24.36594 0.01644 1482.520 < 2e-16 *** TIME 1.33591 0.02196 60.845 < 2e-16 *** I(TIME^2) 0.17326 0.03445 5.029 9.06e-07 *** I(TIME^3) -0.12802 0.01122 -11.406 < 2e-16 *** I(TIME^4) -0.07424 0.01290 -5.757 2.34e-08 *** SIN[, 1] -0.07349 0.01243 -5.912 1.03e-08 *** COS[, 1] -0.06487 0.01239 -5.235 3.34e-07 *** SIN[, 2] -0.06442 0.01240 -5.194 4.08e-07 *** COS[, 2] -0.03485 0.01240 -2.811 0.0053 ** SIN[, 3] -0.07570 0.01242 -6.095 3.81e-09 *** COS[, 3] -0.03119 0.01237 -2.520 0.0123 * SIN[, 4] -0.05836 0.01239 -4.709 4.01e-06 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.1464 on 267 degrees of freedom Multiple R-squared: 0.9838, Adjusted R-squared: 0.9832 F-statistic: 1477 on 11 and 267 DF, p-value: < 2.2e-16
Funkcijom AIC poredimo dva dobijena modela.
32
> AIC(VGC.lm2) [1] -266.7157 > AIC(VGC.lm1) [1] -262.672
Dakle, drugi model je bolji. Proveravamo njegovu adekvatnost.
> acf(resid(VGC.lm2))
Korelogram reziduala ukazuje na postojanje pozitivne autokorelacije. Zbog toga pravimo odgovarajudi AR
model za seriju reziduala.
> ar(resid(VGC.lm2))$ar
[1] 0.24423685 0.32857813 0.15194788 0.10644370 0.12114045 0.07261867
[7] -0.04523650 -0.06391561 -0.04723421 -0.09945263 -0.21087808 0.52397223
[13] -0.07390691 -0.17893865
> VGC.ar=ar(resid(VGC.lm2))
> acf(VGC.ar$res[-(1:14)])
33
Ukoliko bi na korelogramu reziduala fitovanog AR(14) modela samo autokorelacija sa kašnjenjem 1 bila
značajna, onda bismo mogli da smatramo da novodobijeni reziduali čine beli šum. Ipak, uočavamo da su i
autokorelacije sa kašnjenjem 11, odnosno 12, statistički značajne, što znači da ovaj model nije uspeo da
u potpunosti objasni sezonske varijacije u podacima. To može zvučati čudno, s obzirom da smo fitovali
potpuni harmonijski sezonski model. Međutim, sezonski efekti mogu biti stohastički, baš kao i trend, a
harmonijski model koji smo upravo koristili je deterministički.
9. NELINEARNI MODELI
9.1 Uvod
Kao što je ved rečeno u odeljku 2, linearni modeli se mogu primeniti na širok spektar vremenskih serija.
Međutim, za neke serije je zgodno direktno odrediti nelinearni model, umesto korišdenja logaritamskih
transformacija ili aproksimiranja polinomom. Na primer, ako je poznato da je serija nastala kao realizacija
nelinearnog procesa, koji se bazira na nekom determinističkom naučnom zakonu, onda bi bilo bolje
koristiti tu informaciju za pri formulaciji modela i podacima direktno fitovati nealinearni model.
Nelinearni model se u R-u može fitovati pomodu funkcije nls, koja se zasniva na metodi najmanjih
kvadrata.
U prethodnom odeljku smo zaključili da prirodni logaritam serije može da stabilizuje disperziju. Sa druge
strane, korišdenje logaritama može napraviti komplikacije kada serija sadrži negativne vrednosti, zato što
34
logaritam nije definisan za negativne vrednosti. Jedan način za prevazilaženje ovog problema je dodati
neku pozitivnu konstantu svim članovima serije. Dakle, ako 𝑥𝑡 sadrži negativne vrednosti, dodavanjem
konstante 𝑐𝑜 za koju je 𝑐0 > max{−𝑥𝑡} sve vrednosti postaju pozitivne, pa je logaritmovana serija
{log(𝑥𝑡 + 𝑐0)} dobro definisana. Linearni model (npr. sa pravolinijskim trendom) bi onda mogao da se
dodeli transformisanoj seriji i time bismo dobili model
𝑥𝑡 = −𝑐0 + 𝑒𝛼0+𝛼1𝑡+𝑧𝑡 (17) gde su 𝛼0 i 𝛼1 parametri linearnog modela, a {𝑧𝑡} serija reziduala grešaka koja može biti autokorelisana.
Glavni problem ovog pristupa koji vodi do modela opisanog jednačinom (17) je to što bi 𝑐0 trebalo da
bude ocenjeno kao bilo koji drugi parametar modela, dok se u praksi ta konstanta često bira proizvoljno
tako da zadovoljava uslov 𝑐0 > max {−𝑥𝑡}. Ako postoji sumnja da neka serija odgovara modelu (17) , a
nema dokaza o tome da je komponenta greške multiplikativni faktor, onda bi konstanta 𝑐0 trebalo da
bude ocenjena zajedno sa drugim parametrima koristedi nelinearnu metodu najmanjih kvadrata, to jest
fitujemo slededi model
𝑥𝑡 = −𝑐0 + 𝑒𝛼0+𝛼1𝑡 + 𝑧𝑡 (18)
9.2 Primer simulacije i fitovanja nelinearnog modela
Kako se nelinearni modeli koriste uglavnom kada je pomenuta nelinearna funkcija poznata, simulirademo
nelinearnu seriju baziranu na jednačini (18) gde je 𝑐0 = 0, i uporedidemo stvarne vrednosti parametara
sa njihovim ocenama dobijenim funkcijom nls.
U narednim redovima simuliramo pomenutu seriju 𝑠 tim što seriju grešaka opisujemo AR(1) modelom, a
odgovarajudi grafik dat je na slici.
set.seed(1)
w <- rnorm(100, sd = 10)
z <- rep(0, 100)
for (t in 2:100) z[t] <- 0.7 * z[t - 1] + w[t]
Time <- 1:100
f <- function(x) exp(1 + 0.05 * x)
x <- f(Time) + z
plot(x, type = "l")
abline(0, 0)
35
Kao što vidimo na slici, serija eksponencijalno raste, tako da je logaritmovanje dobar izbor, ali pošto serija
sadrži negativne vrednosti to ne možemo odmah da uradimo pa je potrebno fitovati nelinearni model dat
jednačinom (18). U R-u se kao argument funkcije nls zadaje poznati oblik nelinearne funkcije u
zavisnosti od parametara. Početne vrednosti parametara se moraju precizirati i navode se u okviru liste.
> x.nls <- nls(x ~ exp(alp0 + alp1 * Time), start = list(alp0 = 0.1,
alp1 = 0.5))
> summary(x.nls)$parameters
Estimate Std. Error t value Pr(>|t|)
alp0 1.17640120 0.0742954447 15.83410 9.204055e-29
alp1 0.04828424 0.0008188462 58.96619 2.347543e-78
Dobijene vrednosti parametara 𝛼0 i 𝛼1 su bliske stvarnim vrednostima koje su korišdene za simuliranje
serije, ali treba imati u vidu da su standardne greške njihovih ocena potcenjene zbog postojanja
autokorelacije u seriji reziduala.
10. INVERZNA TRANSFORMACIJA I KOREKCIJA PRISTRASNOSTI
10.1 Log-normalni reziduali
Kao što je ved najavljeno u odeljku 2.1, predviđanja koja se dobijaju primenjivanjem eksponencijalne
funkcije na predviđanja logaritmovane serije kojoj smo dodelili odgovarajudi model, često dovodi do
pogrešno ocenjenih srednjih vrednosti.
36
Na primer, ako pretpostavimo da je serija reziduala log-regresionog modela Gausov beli šum {𝑤𝑡} sa
srednjom vrednošdu 0 i standardnom devijacijom 𝜍, onda je raspodela slučajnih veličina u vremenskoj
seriji {𝑒𝑤t } log-normalna sa srednjom vrednošdu 𝑒1
2𝜍2
. Dakle, za seriju reziduala koja je Gausov beli šum
nakon logaritamske i inverzne transformacije potrebno je pomnožiti predviđene vrednosti faktorom
korekcije. Uticaj faktora korekcije zavisi od vrednosti 𝜍2. Ako je 𝜍2 malo, faktor korecije nede uticati na
predviđene vrednosti i može biti isključen iz razmatranja.
10.2 Empirijsko određivanje faktora korekcije za predviđanje srednjih vrednosti
Faktor korekcije 𝑒1
2𝜍2
koristimo kada je serija reziduala fitovanog log-regresionog modela Gausov beli
šum. U opštem slučaju serija reziduala 𝑧𝑡 log-regresionog modela često ima negativan koeficijent
asimetrije i u tom slučaju koeficijent korekcije se ocenjuje empirijski srednjom vrednošdu serije {𝑒zt } .
Predviđanja početne serije tada su data sa
𝑥 ′𝑡 = 𝑒log 𝑥𝑡
𝑒𝑧𝑡/𝑛
𝑛
𝑡=1
(19)
gde je {log𝑥𝑡 : 𝑡 = 1,… ,𝑛} serija vrednosti predviđenih linearnim modelom.
37
Literatura
[1] Paul Cowpertwait, Andrew Metcalfe: “Introductory Time Series with R”, Springer, 2009.
[2] Robert Shumway, David Stoffer: “Time Series Analysis and Its Applications: With R Examples”, 3rd
edition, Springer, 2011.
[3] US. Bureau of Labor Statistics, Consumer Price Index for All Urban Consumers: All Items, FRED,
http://research.stlouisfed.org/fred2/series/CPIAUCSL
[4] US. Bureau of Labor Statistics, Unemployment Level – Women, FRED,
http://research.stlouisfed.org/fred2/series/LNU03000002
[5] http://staff.elena.aut.ac.nz/Paul-Cowpertwait/ts/global.dat
[6] Organisation for Economic Co-operation and Development, Exports: Value Goods for China,
FRED, http://research.stlouisfed.org/fred2/series/XTEXVA01CNM667N
[6] Zorica Mladenovid, Aleksandra Nojkovid: “Primenjena analiza vremenskih serija”, Centar za
izdavačku delatnost Ekonomskog fakulteta u Beogradu, 2012.