1 Opakovanie z prednášky

Prvá otázka na zopakovanie: Čo je biely šum (teda, aké vlastnosti musí mať proces, aby bol bielym šumom)?

1.1 Generovanie dát

N <- 250                     # pocet dat
set.seed(12345)              # aby sme mali rovnake vysledky
x <- rnorm(N, mean=10, sd=1) # nezavisle N(10,1)

Budeme testovať, či sú bielym šumom.

Úloha: Zobrazte priebeh vygenerovaných dát.

Výstup:

1.2 Intervaly spoľahlivosti pre odhadnuté autokorelácie

Úloha: Zobrazte (postup bol na prednáške) odhadnutú autokorelačnú funkciu.

Výstup:

Otázky (zo slajdu 29 z prednášky):

  • Akú hypotézu vieme pomocou tohto výstupu testovať pre každú autokoreláciu?

  • Kedy sa táto nulová hypotéza zamieta?

  • Čo dostávame v našom prípade?

1.3 Ljung-Boxov test

Úloha: Ljung-Boxovým testom testujte hypotézu (postup bol na prednáške), že autokorelácie pre lagy 1, 2 a 3 sú nulové.

Výstup:

## 
##  Box-Ljung test
## 
## data:  x
## X-squared = 0.93263, df = 3, p-value = 0.8175

Otázky (zo slajdu 30 z prednášky):

  • Ako sa vypočíta testovacia štatistika?

  • Aké je pravdepodobnostné rozdelenie štatistiky za platnosti nulovej hypotézy?

  • Pre aké hodnoty štatistiky sa hypotéza zamieta?

  • Ako sa vypočíta p-hodnota?

  • Čo dostávame v našom prípade?

V cykle vypocítajte p-hodnoty zodpovedajúce testovaniu hypotézy, že prvých k autokorelácií je súcasne nulových, pre k od 1 do 20.

# Postup:
k.max <- 20
p.hodnoty <- rep(NA, k.max)
for (i in 1:k.max) {
  # doplnte priradenie do vektora p.hodnoty
}
# doplnte kreslenie grafu

Výstup:

2 Modelovanie výnosov akcií

Pomocou knižnice quantmod načítame priamo do R-ka ceny akcií a zistíme, či sa ich výnosy dajú modelovať ako biely šum.

2.1 Načítanie dát o cenách akcií pomocou quantmod

Načítajte (ak treba, aj nainštalujte) knižnicu quantmod.

library(quantmod)

Na získanie cien akcií sa použije funkcia getSymbols, napríklad:

getSymbols("AMZN", from="2014-01-01", to="2014-12-31")
## [1] "AMZN"

Pozrime sa, ako vyzerajú naše dáta, ktoré sú uložené v premennej AMZN, zobrazíme ich začiatok:

head(AMZN)
##            AMZN.Open AMZN.High AMZN.Low AMZN.Close AMZN.Volume
## 2014-01-02    398.80    399.36   394.02     397.97     2137800
## 2014-01-03    398.29    402.71   396.22     396.44     2210200
## 2014-01-06    395.85    397.00   388.42     393.63     3170600
## 2014-01-07    395.04    398.47   394.29     398.03     1916000
## 2014-01-08    398.47    403.00   396.04     401.92     2316500
## 2014-01-09    403.71    406.89   398.44     401.01     2103000
##            AMZN.Adjusted
## 2014-01-02        397.97
## 2014-01-03        396.44
## 2014-01-06        393.63
## 2014-01-07        398.03
## 2014-01-08        401.92
## 2014-01-09        401.01

2.2 Grafy pomocou quantmod

Napríklad:

chartSeries(AMZN)

Skúste aj:

# od januara do marca
chartSeries(AMZN, subset="2014-01::2014-03")
# mesacne data
AMZN.mesacne <- to.monthly(AMZN)
AMZN.mesacne # vypiseme
chartSeries(AMZN.mesacne) # graf

2.3 Výnosy akcií

Z týchto dát AMZN budeme potrebovať posledný stĺpec (AMZN.Adjusted), z ktorého vypočítame výnosy. Budeme pracovať zo spojitými výnosmi, teda denné výnosy sa budú počítať ako logaritmus podielu cien v dvoch po sebe idúcich dňoch. Ekvivalentne:

ceny <- AMZN$AMZN.Adjusted
vynosy <- diff(log(ceny))

Priebeh výnosov:

chartSeries(vynosy, theme="white")

2.4 Testovanie výnosov akcií

Úloha: Zistite, či výnosy firmy AMZN môžeme považovat za biely šum. Použite výberovú autokorelačnú funkciu a Ljung-Boxov test.

3 Nepovinné dodatky

3.1 Quantmod

Knižnica quantmod má veľa rôznych funkcií, môžete sa o nich dočítať na https://www.quantmod.com/

Napríklad ak poznáte Moving Average Convergence/Divergence Oscillator (MACD) (http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_average_convergence_divergence_macd), dá sa to aj v R-ku. Použijeme už načítané dáta, ktoré sú uložené v premennej AMZN:

chartSeries(AMZN)

addMACD()

3.2 R markdown

R markdown bol použitý aj na vytvorenie tejto stránky priamo v R-ku.