36
Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje Analiza i prognozowanie szeregów czasowych w R Adam Zagdański Instytut Matematyki i Informatyki, Politechnika Wroclawska QuantUp (quantup.pl), Wroclaw Polski Akademicki Zlot Użytkowników R 16-17 X 2014, Poznań Analiza i prognozowanie szeregów czasowych w R 1/36

Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Embed Size (px)

Citation preview

Page 1: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Analiza i prognozowanieszeregów czasowych w R

Adam Zagdański

Instytut Matematyki i Informatyki, Politechnika Wrocławska

QuantUp (quantup.pl), Wrocław

Polski Akademicki Zlot Użytkowników R16-17 X 2014, Poznań

Analiza i prognozowanie szeregów czasowych w R 1/36

Page 2: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Plan prezentacji

1 Wprowadzenie

2 Reprezentacja szeregów w R

3 Klasyczne modele i metody

4 Wybrane niestandardowe metody

5 Referencje

Analiza i prognozowanie szeregów czasowych w R 2/36

Page 3: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Czym jest szereg czasowy?

Szereg czasowy to obserwacje interesującej nas wielkości,zarejestrowane w kolejnych odstępach czasu (np. dniach,miesiącach lub kwartałach).Możliwe obszary zastosowań

DemografiaSocjologiaEkonomiaMedycynaPrzemysł

Z szeregami czasowymi często spotykamy się także wtedy, gdyzachodzi konieczność podejmowania ważnych decyzjibiznesowych, np. dotyczących kupna/sprzedaży, produkcji,zatrudnienia czy logistyki

Analiza i prognozowanie szeregów czasowych w R 3/36

Page 4: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Przykłady szeregów

liczba pasazerów

Time

2002 2008 2014

4500

070

000 stopa bezrobocia

Timebe

zrob

ocie

1990 2000 2010

010

20

cena benzyny

Time

cena

.ben

zyny

2006 2010

3.5

5.0

sty 02 2013 lip 01 2013

4.10

4.25

kurs EUR/PLN kwartalne PKB

PK

B

2000 2010

100

104

populacja Polski

popu

lacj

a

1995 20053810

0000

Rysunek : Przykłady szeregów

Analiza i prognozowanie szeregów czasowych w R 4/36

Page 5: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Przykłady analiz

Prognozowanie cen akcji danej spółki w kolejnym rokuPrzewidywanie zmian cen paliw w kolejnych miesiącachAnaliza sytuacji na rynku pracy (np. przewidujemy wzrostkonkurencji w danej branży, który spowoduje istotną redukcjęzatrudnienia)Analiza zmian demograficznych, socjologicznych,klimatycznych i ich wpływu na koniunkturę w określonejgałęzi przemysłu

Analiza i prognozowanie szeregów czasowych w R 5/36

Page 6: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Typowe cele analizy szeregów czasowych

Badanie występujących w danych: regularnych cykli, wzorców,trendówPrognozowanie wartości szeregów dla przyszłych okresów, napodstawie obserwacji historycznychZnalezienie modelu dobrze opisującego przebieg danegozjawiska w czasie

Analiza i prognozowanie szeregów czasowych w R 6/36

Page 7: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Dlaczego warto analizować szeregi czasowe w R?

Podstawowe modele i metody dostępne w wersji bazowej R’a.Rosnąca liczba pakietów, w tym najnowsze warianty metod!Rosnąca liczba publikacji:

Introductory Time Series with R (Use R!) by Paul S.P.Cowpertwait and Andrew V. Metcalfe (Jun 9, 2009).Time Series Analysis: With Applications in R by Jonathan D.Cryer and Kung-Sik Chan (Oct 14, 2009)Forecasting: principles and practice, Rob J Hyndman, GeorgeAthanasopoulos, 2013Time Series Analysis and Its Applications: With R Examples byRobert H. Shumway and David S. Stoffer (Nov 25, 2010)Basic Data Analysis for Time Series with R by DeWayne R.Derryberry (Jul 8, 2014)Time Series: Applications to Finance with R and S-Plus byNgai Hang Chan (Oct 5, 2010)Multivariate Time Series Analysis: With R and FinancialApplications by Ruey S. Tsay (Dec 9,2013)

Analiza i prognozowanie szeregów czasowych w R 7/36

Page 8: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Reprezentacja szeregów w R: klasa ts

Przykład: stopa bezrobocia w Polsce w latach 1990-2013,dane miesięczne.

> print(bezrobocie)

## Jan Feb Mar Apr May Jun Jul Aug Sep OctNov Dec

## 1990 0.3 0.8 1.5 1.9 2.4 3.1 3.8 4.5 5.0 5.5 5.9 6.5

## 1991 6.6 6.8 7.1 7.3 7.7 8.4 9.4 9.8 10.5 10.8 11.1 12.2

## 1992 12.1 12.4 12.1 12.2 12.3 12.6 13.1 13.4 13.6 13.5 13.5 14.3

> class(bezrobocie)

## [1] "ts"

> # konstruktor klasy ’ts’> # ts(data = NA, start = 1, end = numeric (), frequency = 1,

deltat = 1,... )

Analiza i prognozowanie szeregów czasowych w R 8/36

Page 9: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Reprezentacja szeregów w R: klasa ts

> # data pierwszej i ostatniej obserwacji> start(bezrobocie)

## [1] 1990 1

> end(bezrobocie)

## [1] 2013 6

> # liczba obserwacji na jednostke czasu> frequency(bezrobocie)

## [1] 12

Analiza i prognozowanie szeregów czasowych w R 9/36

Page 10: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Reprezentacja szeregów w R: pozostałe klasy

xts – extensible time series,mts – multiple time series,msts – multi-seasonal time series,its – irregularly spaced time series,. . .

Analiza i prognozowanie szeregów czasowych w R 10/36

Page 11: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Klasyczne modele i metody analizy szeregów

Pakiet stats

wykresy i podstawowe narzędzia: window, plot.ts, monthplot,acf, pacf, ccf,. . .wygładzanie i dekompozycja: filter, decompose, stl,. . .modele i algorytmy: ar, arima, arima.sim, HoltWinters,. . .

Pakiet forecast

wykresy i podstawowe narzędzia: tsdisplay, seasonplot,BoxCox, nsdiffs, monthdays, bizdays, seasadj,. . .prognozowanie: meanf, snaive, rwf, tslm, ses, holt, hw,auto.arima, arfima, ets, splinef, forecast, nnetar, tbats,accuracy,. . .

Analiza i prognozowanie szeregów czasowych w R 11/36

Page 12: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Klasyczne modele i metody: wykres szeregu

> plot(bezrobocie , main="stopa bezrobocia w Polsce")

stopa bezrobocia w Polsce

Time

bezr

oboc

ie

1990 1995 2000 2005 2010

05

1015

20

Rysunek : Wykres szereguAnaliza i prognozowanie szeregów czasowych w R 12/36

Page 13: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Klasyczne modele i metody: wykres sezonowy

> seasonplot(bezrobocie , col=rainbow (23), year.labels=TRUE)

05

1015

20

Seasonal plot: bezrobocie

Month

●●

●●

●●

●●

●●

●●● ● ● ●

●●

●●

● ● ●

●● ● ● ● ● ●● ● ● ● ●

●● ● ● ● ●●

● ● ● ● ●

●● ● ● ● ●● ● ● ● ● ● ●● ●

● ●●

● ● ● ● ● ● ●● ● ● ●

●● ● ● ● ● ● ●● ●

●●

● ● ● ●● ● ● ●

● ● ●● ● ● ● ● ● ● ●

●● ● ● ● ● ● ● ● ● ●

●● ● ● ● ● ● ● ● ● ●

●●

● ● ● ● ● ● ● ● ● ●●

● ● ● ●● ● ● ● ● ● ● ●

● ● ● ●● ● ● ● ● ● ●

●● ● ●

●● ● ● ● ● ● ● ●

● ● ●●

● ● ● ● ● ● ● ●● ● ●

●●

● ● ● ● ● ● ●● ●●

●●

● ● ● ● ● ● ●● ●●

●●

● ● ● ● ● ●●

●● ● ● ● ● ● ● ● ● ●

●● ● ●

● ●● ● ● ● ● ●

●● ● ●

●●

● ● ● ● ● ●●

● ● ●● ● ● ● ● ● ●

●●

● ● ● ●● ●

1990

1991

1992

199319941995

1996

19971998

1999

2000

2001

2002200320042005

2006

2007

2008

2009201020112012

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

Rysunek : Wykres sezonowyAnaliza i prognozowanie szeregów czasowych w R 13/36

Page 14: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Klasyczne modele i metody: ACF (funkcja autokorelacji)

> acf(bezrobocie ,main="Stopa bezrobocia")

0.0 0.5 1.0 1.5 2.0

0.0

0.2

0.4

0.6

0.8

1.0

Lag

AC

F

Stopa bezrobocia

Rysunek : Funkcja autokorelacji (ACF)Analiza i prognozowanie szeregów czasowych w R 14/36

Page 15: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Klasyczne modele i metody: Dekompozycja i wygładzanie

> bezrobocie.dekomp <- decompose(bezrobocie)> plot(bezrobocie.dekomp)

05

1020

obse

rved

510

1520

tren

d

−0.

40.

00.

4

seas

onal

−0.

50.

5

1990 1995 2000 2005 2010

rand

om

Time

Decomposition of additive time series

Rysunek : Dekompozycja klasycznaAnaliza i prognozowanie szeregów czasowych w R 15/36

Page 16: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Prognozowanie: Narzędzia dostępne w pakiecie forecast

Pakiet forecast pozwala na automatyczne prognozowanie zwykorzystaniem dwóch najbardziej popularnych metod:

modele ARIMAmodele ETS (ExponenTialSmoothing lub ErrorTrendSeason)

Optymalne modele dla poszczególnych szeregów wybierane sącałkowicie automatycznie, z wykorzystaniem kryteriówstatystycznych oceniających dokładność dopasowania.Oprócz prognoz punktowych otrzymujemy także przedziałypredykcyjne (domyślnie, dla dwóch poziomów ufności: 80% i95%).Case study: Adam Zagdański, Jak zautomatyzowaćprognozowanie szeregów wykorzystując R?,http://quantup.pl/wp-content/uploads/2014/03/AutomatyzacjaKonstrukcjiPrognoz.pdf

Analiza i prognozowanie szeregów czasowych w R 16/36

Page 17: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Prognozowanie: ARIMA

> library(forecast)> bezrobocie.arima <- auto.arima(bezrobocie.learn)> bezrobocie.arima.forecast <- forecast(bezrobocie.arima , h=

length(bezrobocie.test))

Forecasts from ARIMA(1,2,2)(2,0,1)[12]

bezr

oboc

ie

1990 1995 2000 2005 2010

05

1015

20

Rysunek : Prognozy na bazie modeli ARIMA

Analiza i prognozowanie szeregów czasowych w R 17/36

Page 18: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Prognozowanie: ETS

> library(forecast)> bezrobocie.ets <- ets(bezrobocie.learn)> bezrobocie.ets.forecast <- forecast(bezrobocie.ets , h=

length(bezrobocie.test))

Forecasts from ETS(A,Ad,A)

bezr

oboc

ie

1990 1995 2000 2005 2010

05

1015

20

Rysunek : Prognozy na bazie modeli ETS

Analiza i prognozowanie szeregów czasowych w R 18/36

Page 19: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Prognozowanie: ARIMA vs ETS

> accuracy(bezrobocie.arima.forecast , bezrobocie.test)[,2:6]

## RMSE MAE MPE MAPE MASE## Training set 0.2267 0.1416 0.07223 1.123 0.06979## Test set 0.6721 0.5569 4.14115 4.141 0.27447

> accuracy(bezrobocie.ets.forecast , bezrobocie.test)[,2:6]

## RMSE MAE MPE MAPE MASE## Training set 0.2450 0.1606 -0 .1228 1.949 0.07915## Test set 0.6769 0.5444 3.9909 4.002 0.26829

Analiza i prognozowanie szeregów czasowych w R 19/36

Page 20: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Wybrane zaawansowane i niestandardowe metody

Modelowanie szeregów o złożonej sezonowościNarzędzia dla traderówAnaliza eksploracyjna szeregówPozostałe zagadnienia

Analiza i prognozowanie szeregów czasowych w R 20/36

Page 21: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Modelowanie szeregów o złożonej sezonowości

Wiele szeregów cechuje występowanie niestandardowychzachowań sezonowych.Przykłady: szeregi o ułamkowym (niecałkowitym) okresie,szeregi o dużej częstotliwości i wielookresowej sezonowości.Większość standardowych metod opracowano z myślą oprostych wzorcach wahań sezonowych (np.: s=12, s=4).Istnieją również specjalistyczne modele i metody dedykowaneszeregom o skomplikowanych wzorcach sezonowości.Kilka najnowszych propozycji: De Livera, A.M., Hyndman,R.J., Snyder, R. D. (2011), Forecasting time series withcomplex seasonal patterns using exponential smoothing,JASA, 106(496), 1513-1527.Implementacja w R: algorytmy bats i tbats (pakiet forecast)

Analiza i prognozowanie szeregów czasowych w R 21/36

Page 22: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Modelowanie szeregów o złożonej sezonowości

Rysunek : Zapotrzebowanie mocy KSE

Case study: Adam Zagdański, Prognozowaniezapotrzebowania mocy Krajowego Systemu Energetycznego(KSE). http://quantup.pl/wp-content/uploads/2014/03/CaseStudyZapotrzebowanieMocyKSE.pdf

Analiza i prognozowanie szeregów czasowych w R 22/36

Page 23: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Modelowanie szeregów o złożonej sezonowości

Funkcja autokorelacji (ACF)

Rysunek : ACF dla szeregu KSE. Widoczna sezonowość dobowa (s=24)oraz tygodniowa (s=168).

Analiza i prognozowanie szeregów czasowych w R 23/36

Page 24: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Modelowanie szeregów o złożonej sezonowości

> library(forecast)> # konwersja na obiekt msts (Multi -Seasonal Time Series)> moc.1h <- msts( moc.1h, seasonal.periods=c(24, 168), ts.

frequency =24 )>> # podzial danych na czesc uczaca i testowa> # ......................>> # dopasowanie modelu TBATS> moc.1h.tbats.fit <- tbats(moc.1h.train , seasonal.periods=c

(24 ,168))

> # parametry algorytmu TBATS (Trigonometric Exponentialsmoothing state space model with Box -Cox transformation ,ARMA errors , Trend and Seasonal components)

> #> # tbats(y, use.box.cox=NULL , use.trend=NULL ,> # use.damped.trend=NULL , seasonal.periods=NULL ,> # use.arma.errors=TRUE , use.parallel=TRUE ,> # num.cores=NULL , bc.lower=0, bc.upper =1 ,...)

Analiza i prognozowanie szeregów czasowych w R 24/36

Page 25: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Modelowanie szeregów o złożonej sezonowości

Rysunek : Dekompozycja szeregu KSE

Analiza i prognozowanie szeregów czasowych w R 25/36

Page 26: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Modelowanie szeregów o złożonej sezonowości

> # prognozy> moc.1h.tbats.forecast <-forecast(moc.1h.tbats.fit , h=n.test

)

Rysunek : Prognozy dla danych KSE

Analiza i prognozowanie szeregów czasowych w R 26/36

Page 27: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Narzędzia dla traderów

Pakiet quantmod (Quantitative Financial ModellingFramework)

> library(quantmod)>> # pobranie notowan z ustalonego okresu> getSymbols( Symbols="FB", from="2014 -05 -01", src="yahoo")>> # wykres swiecowy> chartSeries(FB, type = "candlesticks", up.col=’green’,dn.

col=’red’)

Analiza i prognozowanie szeregów czasowych w R 27/36

Page 28: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Narzędzia dla traderów (pakiet quantmod)

65

70

75

80

FB [2014−06−02/2014−10−14]

Last 73.59

Volume (millions):50,255,300

20406080

100120

cze 02 2014 cze 30 2014 lip 28 2014 sie 18 2014 wrz 15 2014 paz 13 2014

Rysunek : Notowania giełdowe

Analiza i prognozowanie szeregów czasowych w R 28/36

Page 29: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Narzędzia dla traderów (pakiet quantmod)

> # wykres liniowy> chartSeries(FB, type="line")>> # Bollinger Bands> addBBands ()>> # MACD == Moving Average Convergence Divergence> addMACD ()>> # STS == Stochastic Oscillator / Stochastic Momentum Index> addSMI ()

Analiza i prognozowanie szeregów czasowych w R 29/36

Page 30: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Narzędzia dla traderów (pakiet quantmod)

65

70

75

80

FB [2014−06−02/2014−10−14]

Last 73.59Bollinger Bands (20,2) [Upper/Lower]: 79.962/73.755

Moving Average Convergence Divergence (12,26,9):MACD: −0.608Signal: 0.263

−4

−2

0

2

4

Stochastic Momentum Index (13,2,25,9):SMI: 2.664Signal: 27.237

−60−40−20

0204060

cze 02 2014 cze 16 2014 cze 30 2014 lip 21 2014 sie 04 2014 sie 18 2014 wrz 02 2014 wrz 22 2014 paz 06 2014

Rysunek : Analiza techniczna

Analiza i prognozowanie szeregów czasowych w R 30/36

Page 31: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Analiza eksploracyjna szeregów

Przykład: grupowanie kart kontrolnychMamy 6 różnych klas (typów) kart kontrolnych, związanych zróżnymi sytuacjami, jakie mogą wystąpić w pracy maszyn:

A - zachowanie normalne,B - zmiany cykliczne,C - rosnący trend,D - malejący trend,E - przesunięcie w górę,F - przesunięcie w dół.

Źródło: Alcock R.J. and Manolopoulos Y. Time-SeriesSimilarity Queries Employing a Feature-Based Approach. 7thHellenic Conference on Informatics. August 27-29.Ioannina,Greece 1999.

Analiza i prognozowanie szeregów czasowych w R 31/36

Page 32: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Analiza eksploracyjna szeregów

klasa A

Time

0 10 20 30 40 50 60

2428

3236

klasa B

Time

116

0 10 20 30 40 50 60

1525

3545

klasa C

Time

0 10 20 30 40 50 60

3040

50

klasa D

Time

380

0 10 20 30 40 50 60

515

25

klasa E

0 10 20 30 40 50 60

2535

45

klasa F

522

0 10 20 30 40 50 60

510

2030

Rysunek : Przykładowe karty kontrolne

Analiza i prognozowanie szeregów czasowych w R 32/36

Page 33: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Odległości na bazie DTW (Dynamic Time Warping)

> library(TSclust)> karty.odl.DTW <- proxy::dist(karty , method="DTW", by_rows=

TRUE)

16 31 44 48 67 73 75 86 87 91 101

104

116

117

137

138

144

173

187

196

221

233

238

245

246

251

262

266

269

295

301

313

319

335

336

357

367

380

382

385

405

406

425

431

443

457

476

479

491

494

508

521

522

531

541

548

569

571

582

597

59758257156954854153152252150849449147947645744343142540640538538238036735733633531931330129526926626225124624523823322119618717314413813711711610410191878675736748443116

macierz odleglosci DTW

0 0.2 0.6 1

Value

0

Color Keyand Histogram

Cou

nt

A (normalna)B (zmiany cykliczne)C (rosnacy trend)D (malejacy trend)E (przesuniecie w góre)F (przesuniecie w dól)

Rysunek : Odległości pomiędzy szeregami kart kontrolnychAnaliza i prognozowanie szeregów czasowych w R 33/36

Page 34: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Klastrowanie hierarchiczne na bazie odległości DTW

> hc.DTW <- hclust( karty.odl.DTW , method=linkage.method)

C C C C C C C C C C E E E E E E E E E E D D D D D D D D D D F F F F F F F F F F A A A A A A A A A A B B B B B B B B B B

050

0010

000

1500

020

000

Klasteryzacja hierarchiczna −− odleglosc DTW

hclust (*, "ward.D")karty.odl.DTW

Hei

ght

Rysunek : DendrogramAnaliza i prognozowanie szeregów czasowych w R 34/36

Page 35: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Pozostałe zagadnienia

Modele wektorowe szeregów czasowychDynamiczne modele regresyjne (transfer function models)Nieliniowe szeregi czasowePrognozowanie szeregów na bazie sieci neuronowychIdentyfikacja obserwacji odstających (ang. outliers)Wykrywanie punktów zmiany i segmentacja szeregówAnaliza finansowych szeregów czasowychTesty pierwiastków jednostkowych (unit roots) i testykointegracjiAnaliza w dziedzinie częstotliwości (analiza spektralna). . .CRAN Task View: Time Series Analysishttp://cran.r-project.org/web/views/TimeSeries.htmlMcLeod, Yu, Mahdi, Time Series Analysis with R, Handbookof Statistics, Volume 30, 2012, 661-712.

Analiza i prognozowanie szeregów czasowych w R 35/36

Page 36: Analiza i prognozowanie szeregów czasowych w Rquantup.pl/wp-content/uploads/2014/10/AZagdanski_PAZUR2014.pdf · Analiza i prognozowanie szeregów czasowych w R Adam Zagdański

Wprowadzenie Reprezentacja szeregów w R Klasyczne modele i metody Wybrane niestandardowe metody Referencje

Referencje

[1] Rob J. Hyndman & Yeasmin Khandakar (2008),Automatic Time Series Forecasting: The forecast Package forR, Journal of Statistical Software, American StatisticalAssociation, vol.27(i03).[2] CRAN Task View: Time Series Analysis http://cran.r-project.org/web/views/TimeSeries.html[3] Adam Zagdański, Jak zautomatyzować prognozowanieszeregów wykorzystując R?http://quantup.pl/wp-content/uploads/2014/03/AutomatyzacjaKonstrukcjiPrognoz.pdf[4] Adam Zagdański, Case study: Prognozowaniezapotrzebowania mocy Krajowego Systemu Energetycznego(KSE). http://quantup.pl/wp-content/uploads/2014/03/CaseStudyZapotrzebowanieMocyKSE.pdf

Analiza i prognozowanie szeregów czasowych w R 36/36