uvod u r - unizg.hruvod u r funkcijesdeufault-nimargumentima...

75
UVOD U R FINANCIJSKI PRAKTIKUM 1. VJEŽBE FINANCIJSKI PRAKTIKUM UVOD U R

Upload: others

Post on 22-Jan-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

UVOD U R

FINANCIJSKI PRAKTIKUM

1. VJEŽBE

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 2: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Kratka povijest R-a

I S statistički programerski jezik razvijen u Bell Laboratories 1975. -1976.

I razvoj S-a doveo do današnje dvije implementacije S-PLUS i RI S-PLUS komercijalna verzija S-aI R open-source verzija S-a

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 3: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Zašto R?

Široka upotrebaI R je postao standard za statistički softwareI koristi se razvoj statističkog software-a i analizu podataka

Svojstva S-aI objektno orijentiranI interaktivan

Svojstva R-aI ima gotove funkcije za izvođenje netrivijalnih statističkih operacijaI open-source program, besplatanI radi na raznim platformama (Unix/Linux, Windows)

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 4: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Mane R-a

Mane R-aI PROBLEMI S BRZINOM: Kao svi interpretirani jezici u R lakše i

jednostavnije pišemo kodove, ali je zato izvođenje programakompliciranije. No ako se ne bavimo nekim prevelikim skupompodataka, poput milijardi financijskih transakcija u svijetu, R bitrebao biti dovoljan za naše potrebe.

I PROBLEMI S MEMORIJOM: R upisuje skoro sve podatke umemoriju. I to može biti problem. Za velike skupove podataka(poput onih u genetici) R može biti beskorisan (kao i drugi sličniprogrami), pa se u tim situacijama razvijaju posebni programi zaobradu podataka, a u R-u se razvijaju prototipovi programa. Dioproblema se može riješiti korištenjem baza podatka, jer R možepristupiti skoro svim bazama. Podatke možemo pohraniti u bazamapodatka i povući ih kad nam trebaju. Inače, Windowsi stavljajudodatno ograničenje na memoriju, pa problemi s memorijom se češćedogađaju korisnicima tog OS-a.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 5: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Mane R-a

Mane R-aI PROBLEMI S BRZINOM: Kao svi interpretirani jezici u R lakše i

jednostavnije pišemo kodove, ali je zato izvođenje programakompliciranije. No ako se ne bavimo nekim prevelikim skupompodataka, poput milijardi financijskih transakcija u svijetu, R bitrebao biti dovoljan za naše potrebe.

I PROBLEMI S MEMORIJOM: R upisuje skoro sve podatke umemoriju. I to može biti problem. Za velike skupove podataka(poput onih u genetici) R može biti beskorisan (kao i drugi sličniprogrami), pa se u tim situacijama razvijaju posebni programi zaobradu podataka, a u R-u se razvijaju prototipovi programa. Dioproblema se može riješiti korištenjem baza podatka, jer R možepristupiti skoro svim bazama. Podatke možemo pohraniti u bazamapodatka i povući ih kad nam trebaju. Inače, Windowsi stavljajudodatno ograničenje na memoriju, pa problemi s memorijom se češćedogađaju korisnicima tog OS-a.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 6: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Zašto ne nešto drugo?

Postoje brojni (besplatni i komercijalni) software-i za numeričko računanjekoji imaju implementirane statističke funkcije (Matlab, Octave, Scilab).

R, za razliku od njih, je statistički software i s te strane je bitnorazvijeniji.

Naravno, ako su nam potrebni neki numerički alati iz obrade signala(poput Fourrierove transformacije, transformacije valića . . . ), Scilab iliMatlab bit će bolji izbor.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 7: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Vodeći statistički software

Na tržištu postoji mnogo statističkog software-a, kako komercijalnog,tako i besplatnog. Vodeći u ove dvije kategorije su SAS i R.

Brojne financijske institucije, auto industrija, naftne kompanije,. . . ukupno preko 45000 kompanija koristi SAS (u Hrvatskoj primjericeINA i Zagrebačka banka). Godišnja licenca za SAS na osobnom računalustoji 6000 $. (Ukupni prihodi proizvođača prelaze 2 milijarde $.)

Kako je R program otvorenog koda, kojeg se stalno dorađuje odpripadnika akademske zajednice i drugih, on je prema mišljenjima mnogihpo svojim mogućnostima bitno napredniji od SAS-a. Navodno, SASzaostaje 11 godina za R-om (u nekim bitnim svojstvima).

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 8: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

R ima sve više komercijalnih korisnika

R se većinom smatrao akademskim programom, no u posljednje vrijemeima sve više komercijalnih korisnika.

Postoje tvrtke koje pružaju podršku komercijalnim korisnicima, štoomogućava bezbrižnije korištenje ovog software-a.

Neki od korisnika R-a:I GoogleI PfizerI MerckI Bank of AmericaI InterContinental Hotels GroupI ShellI . . .

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 9: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

R okruženje

R je integrirani skup software-skih alata za manipuliranje podacima,računanje i grafičko prikazivanje.

R omogućujeI efektno rukovanje i spremanje podatakaI skup operatora za računanje po tablicama, osobito za računanje s

matricamaI veliku zbirku alata za analizu podatakaI velike grafičke mogućnosti, osobito za prikazivanje podataka na

ekranu i na papiruI jednostavan, dobro razvijen i efektan programski jezik

Mnoge slične naredbe iz programskog jezika C koristite se u R-u. Takođermože se lako proširiti korištenjem C/C++-a.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 10: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Početak rada u R-u I

Kao što je već navedeno R je besplatan i može se skinuti s web-stranice

http://r-project.org

Mi radimo pod Linux/Unix operativnim sustavom. (Za Windowsoperativni sustav situacija je gotovo ista.)

Kako bi pokrenuli R pokrećemo terminal.Sav rad koji ćemo napraviti na kolegiju bilo bi dobro spremiti u neki za toposebno stvoren direktorij. Stoga napravimo direktorij fp i uđimo u njega:

$ mkdir fp$ cd fp

R pokrećemo tako da upišemo:

$ R

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 11: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Početak rada u R-u II

Sada na komandnu liniju možemo upisivati naredbe (o kojima ćemo neštoviše malo kasnije).Iz R okruženja izlazimo:

> q()

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 12: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Elementarni tipovi podataka

I Numerički tipovi:> 42> 1.7+2.1> (3.7-85/7)*6+91.2222

I Tekstualni tipovi:> "a"> "duzi tekst"> "posebni znakovi \n \t \\ "

I Logički tipovi:> TRUE> FALSE> 2 < 7> (1 < 9) & ("a"=="b")

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 13: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Jednostavne funkcije

Funkcije mogu imati razne tipove argumenata:

> sqrt(45)[1] 6.708204> exp(3)[1] 20.08554> nchar("sp2")[1] 3

Funkcije se mogu koristiti u raznim izrazima:

> nchar("stat") + 15 > sqrt(265)[1] TRUE

Pomoć o korištenju funkcija je lako dostupna:

> help("sqrt")> ?sqrt

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 14: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Funkcije s više argumenata

Funkcije mogu imati više argumenata. Primjerice funkcija substr kojaispisuje pod-string prima argumente x (string), start (odakle počinepod-string) i stop (gdje završava pod-string). Realizacija može izgledatiovako:

> substr("abdce", 1, 3)[1] "abd"

No isti rezultat možemo dobiti i na ove načine:

> substr(x="abdce", start=1, stop=3)> substr("abdce", start=1, stop=3)> substr("abdce", sto=3, sta=1)> substr(sto=3, sta=1, x="abdce")> substr(3, sta=1, x="abdce")

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 15: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Funkcije s deufault-nim argumentima

Neke funkcije, ako im se ne kaže drukčije, mogu imati argumente koji podefiniciji imaju neku razumnu vrijednost. Primjerice funkcija log jetakva, ona ima argumente x (broj koji želim logaritmirat) i base (bazupo kojoj ćemo logaritmirat).

Tako log(10) daje vrijednost ln 10, dok log(100,10) daje vrijednostlog10 100 = 2.

> log(100)[1] 4.60517> log(100,10)[1] 2> log(base=2,x=32)[1] 5> log(exp(1))[1] 1

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 16: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Pohranjivanje vrijednosti u objekte

Izrazi se mogu dodijeliti slobodno imenovanim objektima.

> x <- sqrt(34)-3> tekst <- "nesto"> uvjet <- TRUE

Objekti vrednuju izraze koji su im dodijeljeni.

> x[1] 2.830952> tekst[1] "nesto"> uvjet[1] TRUE

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 17: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Korištenje objekata

Objekti se mogu, na očekivani način, koristiti u izrazima.

> abs(x/7 - 1)[1] 0.5955783> uvjet & (2 < 3)[1] TRUE> substr(tekst,2,4)[1] "est"

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 18: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Objekti i radni prostor

Svako dodjeljivanje vrijednosti nekom novom objektu stvara objekt uR-ovom radnom prostoru. Funkcija ls ispisuje popis svih (aktivnih)objekata.

> ls()[1] "tekst" "uvjet" "x"

Funkcija rm uklanja (briše) objekte iz radnog prostora.

> rm(uvjet)> ls()[1] "tekst" "x"> uvjetError: object "uvjet" not found

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 19: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Nizovi podataka iste vrste

Konačan niz podataka istog tipa najjednostavnije zapisujemo u vektor.

> c(4, 5, 12, 8, 9, 12)[1] 4 5 12 8 9 12> c("Rudi", "Kristina", "Ivana")[1] "Rudi" "Kristina" "Ivana"> c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE)[1] TRUE FALSE TRUE FALSE TRUE FALSE

Kao i sve ostalo i vektori se mogu pohraniti kao objekti.

> tezine = c(67, 75, 81, 62, 65, 72, 73, 65, 87, 69)> tezine[1] 67 75 81 62 65 72 73 65 87 69

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 20: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Svaki vektor ima svoju duljinu i možemo odabrati element na k-tommjestu.

> length(tezine)[1] 10> tezine[4][1] 62

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 21: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Korisne funkcije

Vektor je elementarna struktura podataka, pa možemo koristiti funkcijeza rad s vektorima.

> sum(tezine)[1] 716> sum(tezine)/length(tezine)[1] 71.6

Još neke korisne funkcije:

> sort(tezine)[1] 62 65 65 67 69 72 73 75 81 87> min(tezine)[1] 62

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 22: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Statističke funkcije

Neke česte statističke funkcije:

> mean(tezine)[1] 71.6> sd(tezine)[1] 7.791734> range(tezine)[1] 62 87> summary(tezine)

Min. 1st Qu. Median Mean 3rd Qu. Max.62.0 65.5 70.5 71.6 74.5 87.0

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 23: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Kraći načini kreiranja vektora

Slično kao u Matlab-u:

> 1:8[1] 1 2 3 4 5 6 7 8

Pravilni nizovi brojeva upisani u vektor:

> seq(1,10,by=2)[1] 1 3 5 7 9> seq(1,100, length=10)[1] 1 12 23 34 45 56 67 78 89 100

Ponavljanje vektora i dijelova vektora:

> rep(c(1,2,3), 4)[1] 1 2 3 1 2 3 1 2 3 1 2 3> rep(c(1,2,3), c(2,4,8))[1] 1 1 2 2 2 2 3 3 3 3 3 3 3 3

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 24: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Dijelovi vektora 1

Možemo pojedini član vektora izvući.

> tezine[1][1] 67> tezine[length(tezine)][1] 69

Negativni indeks izbacuje članove vektora.

> a=1:8> a[-4][1] 1 2 3 5 6 7 8

Ispišimo dijelove ili izbacimo neke članove vektora tezine:

> tezine[3:7][1] 81 62 65 72 73> tezine[-c(1,8)][1] 75 81 62 65 72 73 87 69

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 25: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Dijelovi vektora 2

Možemo koristiti logički vektor.

> log=tezine > 70> log[1] FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE TRUE FALSE> tezine[log][1] 75 81 72 73 87

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 26: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Promjena vrijednosti u vektoru

Vrijednost pojedinog elementa mijenjamo na sljedeći način:

> x=1:10> x[1]=-1> x[1] -1 2 3 4 5 6 7 8 9 10

Slično radimo za vektore:

> x[1:5] = -x[1:5]> odd = 1:10 %% 2> odd[1] 1 0 1 0 1 0 1 0 1 0> x[odd==1] = x[odd==1] * 100

Isto se može napraviti za vektore s negativnim cijelim brojevima:

> x[-(1:5)] = rep(13, 5)

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 27: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Vektorska aritmetika

Funkcije se primjenjuju na svaki pojedini element.

> visine = c(1.65, 1.56, 1.9, 1.32, 1.54,+ 1.78, 1.65, 1.5, 1.65, 2.03)> bmi = tezine/visine^2> round(bmi,1)[1] 24.6 30.8 22.4 35.6 27.4 22.7 26.8 28.9 32.0 16.7

Ako je jedan od vektora u binarnoj operaciji kraći, on će se ponovitionoliko puta koliko je manji (recycling).

> x=seq(100,600, by=100)> y=1:2> x+y[1] 101 202 301 402 501 602

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 28: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Ovo se čak može napraviti za vektore koji čije dužine nisu višekratnicimanjeg (makar nema smisla to radit).

> z=1:3> y+z[1] 2 4 4Warning message:In y + z : longer object length is not a multipleof shorter object length

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 29: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Nedostupne vrijednosti I

U nekim slučajevima vrijednosti elemenata vektora ne moraju bitipoznate. (Npr. za neke davne godine podaci su izgubljeni, a za tekućugodinu se još ne znaju.) U takvim slučajevima na mjesto rezervirano zanepoznatu vrijednost upisujemo posebnu vrijednost NA (marker) (NotAvailable).

Postoji još jedna vrsta brojeva koji su nedostupni. To brojevi nastaliizvođenjem (inače) nedefiniranih aritmetičkih operacija NaN (Not aNumber). (Kao rezultat 0/0 ili Inf-Inf dobivamo NaN-ove.)Funkcija is.na(x) ispituje koje vrijednosti u vektoru nisu poznate, ais.nan(x) gdje se nalaze NaN-ovi.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 30: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Nedostupne vrijednosti II

> x=c(1,2,3,NA,0/0)> x[1] 1 2 3 NA NaN> is.na(x)[1] FALSE FALSE FALSE TRUE TRUE> is.nan(x)[1] FALSE FALSE FALSE FALSE TRUE

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 31: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Faktori za kategorizirane podatke

Kategorizirani podaci mogu se kodirati kao brojevi i stringovi.

> spol = rep(1:2, c(5,5))> tretman = rep(c("kontrola", "operacija"), c(5,5))

Općenito, bolje je te podatke pretvoriti u faktore.

> spol=factor(spol, level=c(1,2), labels=c("m","f"))> spol[1] m m m m m f f f f fLevels: m f

Za vektore stringova faktorizacija je još lakša.

> tretman=factor(tretman)> tretman[1] kontrola kontrola kontrola kontrola kontrola operacija operacija[8] operacija operacija operacijaLevels: kontrola operacija

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 32: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Korisne stvari za rad s faktorima

Stavljanje podataka u tablicu:

> table(spol)spolm f5 5

Računanje po grupama s funkcijom tapply:

> prihod = c(12,13,14,12,9,11,23,6,11,17)> length(prihod)[1] 10> tapply(prihod,spol,mean)

m f12.0 13.6> tapply(prihod,spol,sd)

m f1.870829 6.542171

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 33: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Matrice

Osnovne podatke možemo svrstati u matricu.

> matrix(1:9, nrow=3, ncol=3)[,1] [,2] [,3]

[1,] 1 4 7[2,] 2 5 8[3,] 3 6 9

Dovoljno je navesti samo broj stupaca ili sam broj redaka za formiranjematrice.

> matrix(c("a", "b", "c", "d"), nrow=2, byrow=TRUE)[,1] [,2]

[1,] "a" "b"[2,] "c" "d"

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 34: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Matrice kao kombinacije vektora

Matrice se mogu sastaviti po stupcima.

> mat1=cbind(visine, tezine, bmi)> mat1

visine tezine bmi[1,] 1.65 67 24.60973[2,] 1.56 75 30.81854[3,] 1.90 81 22.43767[4,] 1.32 62 35.58310[5,] 1.54 65 27.40766[6,] 1.78 72 22.72440[7,] 1.65 73 26.81359[8,] 1.50 65 28.88889[9,] 1.65 87 31.95592

[10,] 2.03 69 16.74392

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 35: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Indeksiranje matrica

Pojedini elementi iz matrice se mogu izvući korištenjem [] i brojeva kojioznačavaju mjesto u matrici.

> mat1[3,3]bmi

22.43767

2. red matrice dobivamo ovako:

> mat1[2,]visine tezine bmi

1.56000 75.00000 30.81854

3. stupac ovako:

> mat1[,3][1] 24.60973 30.81854 22.43767 35.58310 27.40766 22.7244026.81359 28.88889[9] 31.95592 16.74392

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 36: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Indeksiranje matrica - imena redaka i stupaca

Tamo gdje je definirano možemo služiti imenima redaka i stupaca.

> mat1[,"tezine"][1] 67 75 81 62 65 72 73 65 87 69

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 37: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Aritmetika matrica

Slično kao kod vektora:

> mat2 = matrix(1:9, nrow=3)> mat3 = matrix(1, nrow=3, ncol=3)> mat2 + mat3> mat2 + 10

Funkcije se mogu izvoditi po retcima i stupcima.

> apply(mat2, 1, min) # minimum elemenata po recima> apply(mat2, 2, mean) # art. sred. elem. po stupcima

Standardne matrične operacije se mogu izvoditi.

> t(mat2)> mat2 %*% mat3

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 38: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Okviri podataka : kombiniranje različitih tipova podataka

Vektore svih tipova podataka možemo kombinirati.

> pred = bmi > 25> pusaci = factor(c(1,2,1,2,3,3,1,1,2,3), levels=1:3,+ labels=c("da","ne","nekoc"))> df1 = data.frame(tezine, visine, pred, pusaci)> df1[1:7,]

tezine visine pred pusaci1 67 1.65 FALSE da2 75 1.56 TRUE ne3 81 1.90 FALSE da4 62 1.32 TRUE ne5 65 1.54 TRUE nekoc6 72 1.78 FALSE nekoc7 73 1.65 TRUE da

Okviri podataka (data frame) su osnovna struktura podataka za svakusloženiju analizu podataka.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 39: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Okviri podataka : indeksiranje

Svako indeksiranje koje je vrijedilo za matrice vrijedi i za okvire podataka:

I vektori cijelih brojevaI logički vektoriI imena stupaca

Posebno stupci/varijable mogu se doseći korištenjem znaka $:

> df1$tezine[1] 67 75 81 62 65 72 73 65 87 69

Ime ne mora biti do kraja napisano.

> df1$tez[1] 67 75 81 62 65 72 73 65 87 69

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 40: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Funkcije su također objekti

Definiciju svake funkcije dobivamo tako da napišemo njezino ime.

> logfunction (x, base = exp(1)) .Primitive("log")

Funkcije se jednostavno definiraju.

> moja_sredina = function(x) sum(x)/(length(x)+1)> moja_sredina(tezine)[1] 65.09091

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 41: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Klase, objekti, metode

Iste funkcije mogu imati različite vrste rezultata ovisno o podacima.

> summary(tezine)Min. 1st Qu. Median Mean 3rd Qu. Max.62.0 65.5 70.5 71.6 74.5 87.0

> summary(pusaci)da ne nekoc4 3 3

Ovisi o klasi (class) objekta:

> class(tezine)[1] "numeric"> class(pusaci)[1] "factor"

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 42: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Klase, objekti, metode

summary je generička metoda koja ima različite metode za različiteobjekte.

> summaryfunction (object, ...)UseMethod("summary")<environment: namespace:base>

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 43: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Pohranjivanje radnog prostora

Kako bi pohranili sve objekte u radnom prostoru to radimo naredbom

> save.image()

koja pohranjuje radni prostor u datoteku .RData. (Može se izabrati idrugo ime i lokacija.)Učitavanje pohranjenog prostora u tekući radni prostor radimo naredbom

> load(".RData")

Tekući direktorij i njegov sadržaj dobivamo sljedećim naredbama.

> getwd()> dir(getwd())

A direktorij mijenjamo ovako:

> setwd("~")

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 44: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Čitanje datoteka u R-u

Podaci su često pohranjeni u raznim datotekama, pa kako ne bi ručnounosili podatke, učitat ćemo ih iz datoteke.Za tekstualne datoteke imamo sljedeće mogućnosti

I Fleksibilna naredba read.table.I Za velike količine podataka scan.

Mnogi podaci se nalaze u Excel datotekama. Za takve na raspolaganju sunam sljedeće mogućnosti.

I izvoz u format tab-delimited/csv text filesI korištenje paketa xlsReadWrite (Windows)I paket gdata (traži Perl - lako pod Unix-om)

Postoje još paketi unošenje podataka iz baza podataka (MySQL) idrugog statističkog software-a (Matlab, Ocatve, SAS,. . . ).

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 45: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Primjer unošenja podataka iz Excel datoteke

Prvo treba podatke izvesti u csv-format (File → Save As →. . . ). (Ovomožemo napraviti i pod Linux-om putem Open Office-a.)Sada podatke unosimo na sljedeći način:

podaci <- read.csv("podaci.csv", header=T, dec=",", sep=";")

(Uočimo da Excel koristi decimalni zarez umjesto točke, pa smo to inaznačili. Podaci su prilikom izvoza u csv-datoteku (ako drukčije nespecificiramo) razdvojeni s ’;’, pa je i to spomenuto.)

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 46: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Spremanje rezultata

Cut & paste za manje stvari.save i load za spremanje pojedinih objekata.

> save(df1,file="df1.RData")> load("df1.RData")

Preusmjeravanje numeričkih rezultata u datoteku.

> sink("rezultati.txt")> summary(tezine)> sink()> file.show("rezultati.txt")

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 47: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Spremanje koda

Naredba history ispisuje zadnje naredbe, a pomoću savehistoryspremamo te naredbe.

> history()> savehistory()> load(".Rhistory")

Ime datoteke se može promijeniti.Ako imamo datoteku s naredbama koje želimo izvršiti to radimo putemnaredbe source.

> source("naredbe.txt")

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 48: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Grafički prikazi - uvod

Grafika je vrlo značajan dio R okruženja.

Moguće je koristiti brojne vrste statističkih grafova kao i napravitipotpuno nove tipove grafova.

R omogućava interaktivno korištenje grafike.

R prilikom pokretanja ima spreman grafički device driver, koji će prilikomizdavanja naredbe pokrenuti poseban grafički prozor. Makar se to radiautomatski, dobro je znati da se pritom koristi naredba X11() (podUNIX-om) ili windows() (pod Windows-om).

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 49: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Grafički prikazi - tipovi naredbi

Naredbe se dijele u tri tipa:I Funkcije za crtanje visokog nivoa (high-level) crtaju grafove, po

mogućnosti s osima, oznakama, nazivima . . .I Funkcije za crtanje niskog nivoa (low-level) dodaju na postojeći

graf dodatne informacije poput novih točaka, linija i oznaka.I Interaktivne grafičke funkcije koje omogućavaju dodavanje i

uzimanje podataka na grafu.Bez dodatnih paketa u R-u koristimo se samo osnovnom grafikom.Dodatni paketi koji mogu biti korisni su grid i lattice.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 50: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Grafičke funkcije visokog nivoa - plot

Jedna od najosnovnijih grafičkih funkcija visokog nivoa je plot. Naredbaplot(x,y), kao argumente uzima dva vektora x = (x1, x2, . . .) iy = (y1, y2, . . .), a vraća grafički prikaz točka (x1, y1), (x2, y2), . . .

> plot(visine, tezine)

1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.06

57

07

58

08

5

visine

tezin

e

Isti učinak možemo dobiti sa plot(xy) ako je xy dvostupčasta matricaili lista s dva vektora.

Ako je x vektor duljine n, naredba plot(x) će nacrtati točke (1, x1), . . . ,(n, xn).

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 51: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

plot za faktore

Naredba plot(f) gdje je f faktor crta stupčasti dijagram.

> plot(pusaci)

da ne nekoc

01

23

4

Ako je y neki numerički vektor, onda plot(f,y), crta dijagramepravokutnika za svaki nivo od f .

> plot(pusaci, tezine)

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 52: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

plot za okvire podataka i liste objekata

Za okvir podataka df naredba plot(df) crta usporedbu svih vektorapodataka u tom okviru.

>plot(df1)

Neka je expr lista objekata spojena s znakom ’+’. Tada plot(~expr)crta usporedbe objekata u listi, a plot(y~expr) usporedbu y saobjektima iz expr .

>plot(~tezine+visine)>plot(bmi~tezine+visine)

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 53: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Normalni vjerojatnosni graf i histogram

> qqnorm(x)> qqline(x)

Prva naredba crta točke, a druga pravac kod normalnog vjerojatnosnoggrafa.

> hist(tezine)

Histogram of tezine

tezine

Fre

qu

en

cy

60 65 70 75 80 85 90

0.0

0.5

1.0

1.5

2.0

2.5

3.0

Crta histogram podataka. Mogući argument nclass=n ili breaks=b.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 54: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Grafičke funkcije niskog nivoa - dodavanje točaka i linija

> points(visine,tezine,col=’red’)> lines(tezine,visine,lty=2,lwd=2)

Prva naredba dodaje crvene točke na crtež tako da prvu koordinatu uzmeiz vektora x , a drugu iz vektora y . Druga naredba dodaje debljuisprekidanu liniju koja spaja točke.

> abline(a,b)

Dodaje pravac s koeficijentom smjera b i slobodnim članom a napostojeći crtež.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 55: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Vjerojatnosne funkcije

R može zamijeniti cijelu zbirku statističkih tablica. Od vjerojatnosnihfunkcija R zna odrediti vrijednosti funkcije distribucije, gustoće, funkcijukvantila i zna simulirati uzorak iz zadane distribucije.

Distribucija Oznaka u R-u dodatni argumentibeta beta shape1, shape2, ncpbinomna binom size, probCauchyjeva cauchy location, scaleχ2 chisq df, ncpeksponencijalna exp rateFisherova f df1, df2, ncpΓ gamma shape, scalegeometrijska geom probhipergeometrijska hyper m, n, knormalna norm mean, sdPoissonova pois lambdaStudentova (t) t df, ncpuniformna unif min, maxWilcoxonova wilcox m, n

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 56: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Simulacija uzorka duljine n

Kod simulacija ispred imena distribucije lijepimo ’r’. Prvi argumentfunkcije rxxxx je duljina uzorka, a onda slijede argumenti distribucije.Napravimo uzorak duljine 200 iz B(5, 0.3) i nacrtajmo histogramrelativnih frekvencija.

> uz=rbinom(200,5,0.3)> hist(uz, col=’green’, probability=TRUE)

Histogram of uz

uz

De

nsity

0 1 2 3 4 5

0.0

0.1

0.2

0.3

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 57: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Funkcija gustoće

Kako bi dobili vrijednost funkcije gustoće iz neprekidne razdiobe xxxx,ispred oznake stavljamo ’d’. Prvi argument funkcije dxxxx je x kojioznačava točku u kojoj želimo izračunati vrijednost funkcije gustoće.Nacrtajmo na prethodnom histogramu graf funkcije gustoće razdiobeN(1.5, 1.05).

> x=seq(-0.5,5.5,0.1)> lines(x,+ dnorm(x,1.5,sqrt(1.05)),+ col=’red’,lwd=3,lty=2)

Histogram of uz

uz

De

nsity

0 1 2 3 4 5

0.0

0.1

0.2

0.3

Oprez! Argument kod funkcija za norm je standardna devijacija, a nevarijanca kako uobičajeno pišemo.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 58: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Funkcije distribucije i kvantila

Za dobivanje vrijednosti funkcije distribucije razdiobe xxxx, ispred oznakestavljamo ’p’. Prvi argument funkcije pxxxx je točka u kojoj želimoizračunati vrijednost funkcije.

Za dobivanje vrijednosti q-kvantila radimo ispred oznake razdiobe pišemo’q’, a prvi argument funkcije qxxxx je q.

Funkcije imaju ugrađen logički argument lower.tail, koji ispitujegledamo od početka ili od kraja. Odnosno (ako je vrijednost TRUE)vjerojatnost da vrijednost sl. varijable bude manja ili jednaka od x , ili akoje argument FALSE vjerojatnost da je vrijednost veća od x . Slično je i zagornji odnosno donji kvantil.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 59: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Dva primjera

Za dvostrani t-test (s 13 stupnjeva slobode), odredimo p-vrijednost, akoje realizacija testne statistike bila 2.34.

> 2*pt(2.34,df=13, lower.tail=FALSE)[1] 0.03588854

Odredimo 90% pouzdani interval za distribuciju F (2, 3). Prvoodređujemo donji, a onda gornji 5%-kvantil.

> c(qf(0.05,2,3), qf(0.05,2,3,lower.tail=FALSE))[1] 0.05218038 9.55209450

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 60: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Kolmogorov - Smirnovljev test

Jedan od najpoznatiji testova kojima se ispituje pripadnost slučajnoguzorka nekoj distribuciji provodi se relativno lako u R-u.

ks.test(uzorak,"ime_distribucije", argumenti_distribucije)

Promatrajmo simulirani uzorak duljine 200 iz B(5, 0.3). Testirajmopripada li on distribuciji N(1.5, 1.05).

> ks.test(uz,"pnorm",1.5,sqrt(1.05))

One-sample Kolmogorov-Smirnov test

data: uzD = 0.2472, p-value = 4.84e-11alternative hypothesis: two-sided

KS test, zbog male p-vrijednosti, potvrđuje da uzorak nije iz normalnedistribucije.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 61: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Uvjetne naredbe, grupirani izrazi i petlje

R ima mogućnost zadavanja uvjetnih naredbi. Oblik tih naredbi jestandardan (slično kao u C-u)

> if (iz_1) iz_2 else iz_3

Naredbe se mogu grupirati u vitičastim zagradama ovako{iz_1; ... iz_n;}. Dakle, R podržava grupirane izraze.

U R-u postoji mogućnost zadavanja for petlji. One su oblika

> for (name in iz_1) iz_2

ime je varijabla, iz_1 je vektor (obično niz poput 1:10), a iz_2 jegrupirani izraz.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 62: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Drugi oblici petlji i prekidi petlji

Drugi oblici petlji su

> repeat iz

i

> while (uvjet) iz

Naredba break prekida petlju i izlazi iz nje, dok naredba next prekidatrenutni ciklus i prelazi na sljedeći. break je jedini način prekidanjarepeat petlje.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 63: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Monte Carlo simulacije - primjer

Procijenimo zapreminu 4-dimenzionalne jedinične kugle koristeći jakizakon velikih brojeva. Koristeći centralni granični teorem dajteasimptotsku ocjenu 90% pouzdanog intervala.

Rješenje. Neka je (Yn) niz n.j.d. slučajnih vektora uniformnodistribuiranih na [−1, 1]4. Definiramo n.j.d. sl. varijable

Xn := 1‖Yn‖≤1.

Kako je

EXn =λ(4)(K (0, 1))

λ(4)([−1, 1]4)= λ(4)(K (0, 1))/16,

vrijedi da je

16 · limn→∞

X1 + . . .+ Xn

n= λ(4)(K (0, 1)).

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 64: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Monte Carlo simulacije - primjer

Procijenimo zapreminu 4-dimenzionalne jedinične kugle koristeći jakizakon velikih brojeva. Koristeći centralni granični teorem dajteasimptotsku ocjenu 90% pouzdanog intervala.Rješenje. Neka je (Yn) niz n.j.d. slučajnih vektora uniformnodistribuiranih na [−1, 1]4. Definiramo n.j.d. sl. varijable

Xn := 1‖Yn‖≤1.

Kako je

EXn =λ(4)(K (0, 1))

λ(4)([−1, 1]4)= λ(4)(K (0, 1))/16,

vrijedi da je

16 · limn→∞

X1 + . . .+ Xn

n= λ(4)(K (0, 1)).

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 65: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Monte Carlo simulacije - primjer

Procijenimo zapreminu 4-dimenzionalne jedinične kugle koristeći jakizakon velikih brojeva. Koristeći centralni granični teorem dajteasimptotsku ocjenu 90% pouzdanog intervala.Rješenje. Neka je (Yn) niz n.j.d. slučajnih vektora uniformnodistribuiranih na [−1, 1]4. Definiramo n.j.d. sl. varijable

Xn := 1‖Yn‖≤1.

Kako je

EXn =λ(4)(K (0, 1))

λ(4)([−1, 1]4)= λ(4)(K (0, 1))/16,

vrijedi da je

16 · limn→∞

X1 + . . .+ Xn

n= λ(4)(K (0, 1)).

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 66: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Za veliki n volumen kugle procjenjujemo s 16Xn. Napravimo sadasimulaciju.

> n=10^7> y=runif(n,-1,1)> n=n/4;> s=0; #brojimo koliko puta smo pogodili unutar kugle> un_kug=function(w){ #funkcija vraca 1 ako je w unutar kugle, inace 0+ if(w[1]^2+w[2]^2+w[3]^2+w[4]^2<=1) 1+ else 0;+ }> for(k in 0:(n-1))+ s=s+un_kug(y[(4*k+1):(4*k+4)])> 16*s/n[1] 4.939514

Kako je λ(4)(K (0, 1)) = π2/2, stvarni rezultat bi bio približno

> pi^2/2[1] 4.934802

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 67: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Vrijedi Xn ∼ B(p) gdje je p = EXn. Znamo (CGT)

Xn − p√Xn(1− Xn)

√n ∼ AN(0, 1).

Zato je

P

(| Xn − p√

Xn(1− Xn)| ≤ zα/2

)≈ 1− α,

odnosno [16Xn ∓

16zα/2√n

√Xn(1− Xn)

](1− α)100% pouzdani interval za λ(K (0, 1)).

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 68: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Vrijedi Xn ∼ B(p) gdje je p = EXn. Znamo (CGT)

Xn − p√Xn(1− Xn)

√n ∼ AN(0, 1).

Zato je

P

(| Xn − p√

Xn(1− Xn)| ≤ zα/2

)≈ 1− α,

odnosno [16Xn ∓

16zα/2√n

√Xn(1− Xn)

](1− α)100% pouzdani interval za λ(K (0, 1)).

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 69: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Vrijedi Xn ∼ B(p) gdje je p = EXn. Znamo (CGT)

Xn − p√Xn(1− Xn)

√n ∼ AN(0, 1).

Zato je

P

(| Xn − p√

Xn(1− Xn)| ≤ zα/2

)≈ 1− α,

odnosno [16Xn ∓

16zα/2√n

√Xn(1− Xn)

](1− α)100% pouzdani interval za λ(K (0, 1)).

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 70: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Pretočeno u R:

> z=qnorm(0.95,0,1) #z_alpha/2> x=s/n> po_in=c(16*x-16*z/sqrt(n)*sqrt(x*(1-x)),+ 16*x+16*z/sqrt(n)*sqrt(x*(1-x)))> po_in[1] 4.931824 4.947203

J

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 71: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Monte Carlo za računanje integrala

Kada imamo funkciju f : Rn → R (neka bude neprekidna) i na(omeđenom) Borelovom skupu A ⊆ Rn želimo izračunati integral

I :=

∫Af (x) dx,

to također možemo napraviti Monte Carlo metodom.

Ako je X slučajni vektor s gustoćom fX(x) = 1λ(n)(A)

1A(x), tada jeY = f (X) slučajna varijabla, a

E[Y ] =1

λ(n)(A)

∫Af (x) dx.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 72: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Monte Carlo za računanje integrala

Kada imamo funkciju f : Rn → R (neka bude neprekidna) i na(omeđenom) Borelovom skupu A ⊆ Rn želimo izračunati integral

I :=

∫Af (x) dx,

to također možemo napraviti Monte Carlo metodom.Ako je X slučajni vektor s gustoćom fX(x) = 1

λ(n)(A)1A(x), tada je

Y = f (X) slučajna varijabla, a

E[Y ] =1

λ(n)(A)

∫Af (x) dx.

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 73: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Ako simuliramo niz n.j.d. vektora (Xn) s gustoćom fX(x) = 1λ(n)(A)

1A(x),onda definirajmo niz (Yn) sa Yn := f (Xn). Zbog jakog zakona velikihbrojeva, za velike n integral I možemo procijeniti sa

λ(n)(A)Yn,

a zbog CGT-a vrijedi i

Yn − 1λ(n)(A)

I

SYn

√n ∼ AN(0, 1).

((SY

n)2

= 1n−1

(∑nk=1 Y

2k − nY 2

n))

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 74: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Ako simuliramo niz n.j.d. vektora (Xn) s gustoćom fX(x) = 1λ(n)(A)

1A(x),onda definirajmo niz (Yn) sa Yn := f (Xn). Zbog jakog zakona velikihbrojeva, za velike n integral I možemo procijeniti sa

λ(n)(A)Yn,

a zbog CGT-a vrijedi i

Yn − 1λ(n)(A)

I

SYn

√n ∼ AN(0, 1).

((SY

n)2

= 1n−1

(∑nk=1 Y

2k − nY 2

n))

FINANCIJSKI PRAKTIKUM

UVOD U R

Page 75: UVOD U R - unizg.hrUVOD U R Funkcijesdeufault-nimargumentima Nekefunkcije,akoimsenekažedrukčije,moguimatiargumentekojipo definicijiimajunekurazumnu vrijednost. Primjericefunkcijalog

Zadatak

Neka je f : R3 → R neprekidna, zanima nas ocjena integrala∫∫∫[−1,1]×[0,1]×[−3,2]

f (x , y , z) dx dy dz .

Napišite funkciju integral koja će Monte Carlo metodom računatiprocjenu i 95% pouzdani interval gornjeg integrala. Kao argumentefunkcije uzmite funkciju f i n broj simulacija koje izvodite. Na kraju,neka funkcija ispiše vaše ime i prezime.Kao testni primjer uzmite funkciju

f (x , y , z) =2x

y2 + x2 + 1e−y2z2+x3

sin2(xz)

i n = 106.

FINANCIJSKI PRAKTIKUM

UVOD U R