osnovna statisticna analiza v r-ju...ales ziberna osnovna statisti cna analiza v r-ju ale s ziberna...

210
5 10 15 20 100 200 300 400 500 600 700 x y Osnovna statistiˇcna analiza v R-ju Aleˇs ˇ Ziberna

Upload: others

Post on 03-Jan-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji

5 10 15 20

100

200

300

400

500

600

700

x

y

Osnovnastatisticnaanaliza v R-ju

Ales Ziberna

Osnovna statisticna analiza v R-ju

Ales Ziberna

12 julij 2016

CIP - Katalozni zapis o publikacijiNarodna in univerzitetna knjiznica Ljubljana

004423111(0758)(00342)

ZIBERNA AlesOsnovna statistiena analiza v R-ju [Elektronski vir] Ales Ziberna - El

knjiga - Ljubljana Fakulteta za druzbene vede Zalozba FDV 2016

ISBN 978-961- 235-779- 5 (pdf)

284426496

Moji druzini

Zeni Tamari za ljubezen in podporo

Hcerkam Hani Zivi in Zoji ker so svojo otrosko igrivostjo

moji soncki

i

Predgovor

Pricujoci ucbenik je namenjen studentom ki ze poznajo osnove univariatne in bi-variatne statistike ter multiple regresije in se zelijo nauciti omenjene metode upo-rabljati v programskem paketu R ali pa zelijo predvsem spoznati osnove uporabestatisticnega programskega paketa R V ucbeniku je torej precej natancno pred-stavljena uporaba R-ja tako za opravljanje splosnih opravil ki se uporabljajo privecini analiz (priprava podatkov risanje grafov) kot tudi za izvedbo univariatnihin bivariatnih statisticnih analiz ter multiple regresije sama statisticna teorija pa jeobravnavana le toliko kolikor se mi je zdelo glede na predznanje studentov (vec otem v naslednjem odstavku) nujno potrebno

V prvi vrsti je ucbenik namenjen studentom predmetov Statistika in analiza podat-kov na magistrskem programu Druzboslovna informatika na Fakulteti za druzbenevede (v nadaljevanju FDV) Univerze v Ljubljani (v nadaljevanju UL) Tehnicni ininformacijski sistemi na dodiplomskem programu Druzboslovna informatika na FDVUL in Multivariatna analiza na magistrskem programu Uporabna statistika na UL(medfakultetni program) njegova uporaba pa se nacrtuje tudi pri predmetu Osnovestatisticne obdelave s pomocjo informacijske tehnologije na Fakulteti za socialnodelo UL Tako ucbenik predvideva znanje opisne statistike in statisticnega sklepanjas podrocij univariatne in bivariatne statistike ter multivariatne regresije v obsegukot se obravnava pri predmetih Statistika in Statistika II z racunalnisko analizo po-datkov na FDV UL Obravnavane metode zato niso sirse predstavljene razen namestih kjer potrebno predznanje presega tisto kara so studenti obravnavali pri prejomenjenih predmetih (predvsem pri neparametricnih testih)

Ucbenik predvsem njegovo prvo najobseznejse poglavje je namenjen tudi vsem kibi radi spoznali R ne glede na to na katerem podrocju ga bodo kasneje uporabljaliR se namrec lahko uporablja na mnogo podrocjhi od ze omenjene osnovne stati-sticne analize do multivariatne analize biostatistike statisticne analize financnihpodatkov podatkovnega rudarjenja strojnega ucenja racunalniske analize besedilavtomatskega zajema podatkov s spleta

R (httpwwwr-projectorg) je odprtokodno programsko okolje za statisticneanalize R ima kar nekaj lastnosti ki ga naredijo zelo privlacnega

bull je brezplacen

ii Predgovor

bull podpira vecino statisticnih metod (preko paketkov)

bull se veliko uporablja v raziskovanju (instituti univerze )

bull deluje na vecini operacijskih sistemov (Windows Mac OSOS X Linux )

bull omogoca programiranje

bull je zelo primeren za simulacije in generiranje slucajnih spremenljivk

Medtem ko vecina studentov ceni predvsem prvo izmed nastetih lastnosti (brezplac-nost) pa je njegov razcvet v veliki meri povezan s preostalimi

Predvsem za zacetnike pa ima R tudi nekaj slabosti Glavna slabost je da v osnovnirazlicici nima graficnega vmesnika (vsaj ne v klasicnem smislu kjer bi preko meni-jev in oken zahtevali izvedbo analiz) zato vsaj na zacetku ucenje poteka pocasnejekot pri programih z graficnim vmesnikom (na primer SPSS PSPP Stata ) Tuje sicer treba omeniti da obstaja tudi nekaj graficnih vmesnikov za R med ka-terimi bi izpostavil predvsem Rcommander (httpwwwrcommandercom) sajje najobseznejsi in omogoca izvajanje najvecjega nabora analiz se posebej s po-mocjo velikega stevila paketkov ki razsirjajo njegovo funkcionalnost Tega vme-snika kot receno v tem ucbeniku ne obravnavam je pa vsaj za osnovno stati-sticno analizo ta opisan v ucbeniku Kastelec Damijana in Katarina Kosmelj 2009Statisticna analiza podatkov s programoma Excel 2003 in R Ljubljana Bioteh-niska fakulteta URL httpwwwbfuni-ljsifileadmingroups2763C5

A1tudijsko_gradivoSAP_2003pdf

V ucbeniku se omejim na uporabo preko ukazne vrstice Glavni razlog za to je dalahko le s tako uporabo izkoristimo vse prednosti R-ja taka uporaba pa je tudi nujnamed drugim za analize meri simulacije avtomatsko izdelavo porocil ter mnogo dru-gih opravil

Ucbenik je razdeljen na tri osnovna poglavja Prvo je Uvod v R in je namenjenospoznavanju R-ja Zacne se z uvodnim primerom statisticnih analiz nadaljuje pase z razmeroma sistematicnim pregledom podrocij ki so pomembna za uporabotega programskega okolja Podrocja vsebujejo tako osnovne podatkovne strukturein osnove programiranja kot tudi delo z datotekami risanje in pripravo porocil napodlagi opravljenih analiz Pravzaprav to poglavje vsebuje tiste rdquonestatisticnerdquo vse-bine ki so potrebne za osnovno uporabo R-ja Poznavanje vecine izmed teh vsebin(z izjemo programiranja v R-ju ndash podpodpoglavji 142 in 143) je kljucno za ucin-kovito izvajanje in porocanje o takorekoc vseh statisticnih analizah in torej tudi zarazumevanje preostalih dveh poglavij Pri tem se prvo poglavje v veliki meri lahkobere rdquopo potrebirdquo se pravi kot prirocnik kjer se prebere doloceno poglavje ko sepokaze potreba po posameznih znanjih Z vidika uporabe R-ja je to pravzapravnajzahtevnejse poglavje zato vsebuje tudi vrsto vaj z resitvami (resitve so na koncupoglavja)

Predgovor iii

Drugo poglavje je vsebinsko najsirse saj v njem obravnavamo kar veliko tako univari-atnih kot bivariatnih metod Pod bivariatne metode sicer spadata tudi enofaktorskaanaliza variance in bivariatna regresija vendar pa ju skupaj z njunima multivari-atnima razlicicama obravnavamo loceno v naslednjem poglavju V tem poglavjuobravnavamo tako osnovne opisne statistike kot tudi inferencno statistiko Znotrajinferencne statistike obravnavamo pri srednjih vrednostih tako izracune intervalovzaupanja kot preverjanje domnev pri bivariatni povezanosti pa le preverjanje do-mnev Pri vecini metod in statistik predstavljena le uporaba v R-ju in podaniprimeri izjema so neparametricni testi kjer so obravnavane metode tudi teoreticnopredstavljene

V tretjem poglavju sta predstavljeni analiza variance in linearna regresija Pri obehzacnemo z najenostavnejsim (bivariatnim) primerom nato pa dodajamo dodatneelemente (vec neodvisnih spremenljivk interakcije med ucinki ) Pri analizi variancpredstavimo tudi njeno neparametericno razlicico Pri obeh metodah je posebnapozornost namenjena tudi preverjanju predpostavk obeh metod

Vsako od treh glavnih poglavji se zakljuci z viri za poglabljanje in vprasanji zaponavljanje Na koncu ucbenika sledi se sklepno poglavje v katerem povzamemokaj vse je bilo v ucbeniku obdelano Nekaj podpoglavij vsebuje tudi zahtevnejsosnov ki za enostavno uporabo ni potrebna Naslovi takih podpoglavij so oznaceniz zvezdico ()

Velik del ucbenika predstavlja tudi prikaz dela v R-ju s pomocjo izpisov iz rdquokonzolerdquooziroma ukazne vrstice Izpisi iz ukazne vrstice so vizualno loceni z zaobljenimiokvirji s sivim ozadjem in z uporabo drugacne pisave in sicer posevne pisave

s fiksno sirino crk (Curier)1 za ukaze in obicajne pisave s fiksno sirino

crk za izpise Vsaka vrstica kjer nastopa ukaz se zacne z znakom gt Ukaz se lahkonadaljuje cez vec vrstic V tem primeru se naslednja vrstica zacne z dvema presled-koma Vrstice ki se ne zacnejo z znakom gt in niso nadaljevanje ukaza iz prejsnjevrstice vsebujejo izpise R-jevih funkcij V R-ju je komentar vse kar sledi znaku pojavlja pa se lahko na zacetku vrstice ali kasneje Vsa R-jeva koda uporabljena vtem ucbeniku je na voljo na spletnem naslovu www2arnessi~aziber4R

Primer izpisa iz R-ja s komentarjem je videti takole

gt 2 + 1 tole je ukaz za sestevanje dveh stevil

[1] 3

V ucbeniku uporabljam se dve posebni graficni obliki Prva je opozorilo

1 Enaka pisava se sicer uporablja tudi znotraj besedila za R-jevo kodo

iv Predgovor

Opozorilo

V opozorilih opozarjam na se posebej pomembne stvari katerih neupostevanjelahko vodi do resnih in pogosto nepricakovanih posledic

Druga oblika so dodatna pojasnila

Dodatna pojasnila so pojasnila ki jih lahko vecina bralcev brez hujsih posledic izpustivseeno pa lahko pripomorejo k boljsem razumevanju snovi

Pri pripravi ucbenika je bil uporabljen R razlicice 322 Razlicico R-ja lahko pre-verite med drugim z izpisom spremenljivke Rversionstring

gt Rversionstring

[1] R version 322 (2015-08-14)

v

Kazalo

Predgovor i

Kazalo v

Slike viii

Tabele x

1 Uvod v R 111 Uvodni primer 112 Osnovne informacije 14

121 Osnovne racunske operacije 14122 Spremenljivke 15123 Uporaba funkcij in pomoci 16124 Paketki 18125 Drugi osnovni podatki 19

13 Podatkovne strukture 20131 Osnovni podatkovni tipi 20132 Vektor 22133 Nominalne in ordinalne spremenljivke 26134 Seznam 27135 Matrika 30136 Polje ndash Array 35137 Podatkovni okvir ndash Data frame 35138 Vaje 38

14 Funkcije in programiranje 38141 Nekaj koristnih funkcij 39142 Definiranje funkcij 43143 Programski tok 44144 Vaje 47

15 Delo z datotekami 47151 Tekstovne datoteke 48152 Shranjevanje in branje objektov 50153 Branje in pisanje datotek drugih programov 51

vi Kazalo

154 Vaje 5516 Risanje 56

161 Visokonivojske funkcije za risanje 56162 Nizkonivojske funkcije za risanje 58163 Shranjevanje slik 60164 Vaje 62

17 Priprava dokumentov z rezultati iz R-ja 6318 Resitve vaj 66

181 Podatkovne strukture 66182 Funkcije in programiranje 67183 Risanje 70

19 Viri za poglabljanje znanja 71191 Spletni viri 71192 Knjizni viri 73

110 Vprasanja za ponavljanje 75

2 Univariatna in bivariatna statistika 7721 Uporabljeni podatki 7722 Osnovne statistike 7823 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali za-

upanja 86231 Preverjanje domneve o srednji vrednosti in pripadajoci inter-

val zaupanja 88232 Preverjanje domneve o razliki med srednjima vrednostma na

odvisnih vzorcih in pripadajoci interval zaupanja 91233 Preverjanje domneve o razliki med srednjima vrednostma na

neodvisnih vzorcih in pripadajoci interval zaupanja 9524 Preverjanje domnev o delezih in pripadajoci intervali zaupanja 98

241 Preverjanje domneve o vrednosti deleza in pripadajoci intervalzaupanja 99

242 Preverjanje domnev o razliki med delezema na neodvisnihvzorcih in pripadajoci intervali zaupanja 101

25 Frekvencne in kontingencne tabele 103251 Frekvencne tabele 103252 Kontingencne tabele 105253 Povezanost spremenljivk 109

26 Korelacija 11227 Viri za poglabljanje znanja 11828 Vprasanja za ponavljanje 119

3 Analiza variance in linearna regresija 12131 Uporabljeni podatki 12132 Analiza variance (ANOVA) 122

321 Enofaktorska analiza variance za neodvisne vzorce 123

Kazalo vii

322 Vecfaktorska analiza variance za neodvisne vzorce 131323 Enofaktorska analiza variance za odvisne vzorce 138

33 Linearna regresija 141331 Dodatne spremenljivke 141332 Bivariatna regresija 143333 Nelinearna regresija 147334 Multipla regresija 150335 Vkljucevanje nominalnihordinalnih spremenljivk 155336 Interakcije med spremenljivkami 160337 Preverjanje predpostavk 163338 V razmislek 174339 Izracun rdquona rokerdquo 176

34 Viri za poglabljanje znanja 18335 Vprasanja za ponavljanje 184

4 Za konec 187

Literatura 191

viii

Slike

11 Strukturni stolpci in krog za spol 312 Strukturni stolpci za povezanost dveh nominalnih spremenljivk 413 Histograma za ekstravertiranost in emocionalno stabilnost 514 Razsevni grafikon za ekstravertiranost in emocionalno stabilnost 815 Dendrogram ndash Wardovo razvrscanje s kvadrirano evklidsko razdaljo

na podlagi spremenljivk emocionalne stabilnosti 1016 Graf povprecij po skupinah dobljenih z metodo voditeljev 1217 Resitev razvrscanja v prostoru glavnih komponent 1418 Stirje obrazi 1919 Strutkutna stolpca in krog na eni sliki 58110 Slika z veliko dodanimi elementi 60111 Resitev vaje 1 (Risanje) 70112 Resitev vaje 2 (Risanje) 72113 Resitev vaje 3 (Risanje) 73

21 Porazdelitev bruto place 8922 Porazdelitev zaupanja v Drzavni zbor in Evropski parlament 9223 Porazdelitev razlike med zaupanjem v Drzavni zbor in zaupanjem v

Evropski parlament 9324 Porazdelitev bruto place pri moskih in zenskah 9625 Razsevni grafikon ndash izobrazba in bruto placa 11326 Razsevni grafikoni med vsemi spremenljivkami ki merijo zaupanje v

institucije 115

31 Porazdelitve uporabljenih spremenljivk 12532 Porazdelitev bruto place po krajih bivanja 12733 Porazdelitve uporabljenih spremenljivk 13234 Porazdelitev bruto place po krajih bivanja in spolu 13435 Porazdelitve dodatnih spremenljivk 14336 Odnos med bruto placo in stevilom let solanja 14437 Porazdelitev rezidualov 14638 Diagnosticni grafikoni za linearno regresijo 14739 Exponentna zveza ndash transformacija 149310 Ocenjevanje nelinearne zveze 151

Slike ix

311 Odnos med bruto placo in tipicnim stevilom delovnih ur na teden 151312 Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk 154313 Porazdelitev rezidualov 155314 Diagnosticni grafikoni za linearno regresijo 156315 Diagnosticni grafikoni za linearno regresijo ndash model z interakcijo 164316 Histogram rezidualov 165317 Grafikon za ocenjevanje heteroskedasticnosti 165318 Grafikoni delnih ostankov 172319 Ceres grafikoni 173320 Diagnosticni grafikoni za linearno regresijo 175321 Odnos med izobrazbo in bruto placo po spolu 177

x

Tabele

11 Frekvencna tabela za spol 212 Hierarhicno razvrscanje - povprecja po skupinah 1113 Metoda voditeljev ndash povprecja po skupinah 1214 Primerjava koncnih razvrstitev po enotah 13

1

1 poglavje

Uvod v R

Prvo poglavje je namenjeno spoznavanju R-ja Zacne se z uvodnim primerom sta-tisticnih analiz nato pa se nadaljuje z razmeroma sistematicnim pregledom podro-cij ki so pomembna za uporabo tega programskega okolja Sistematicni pregledse zacne z osnovnimi informacijami kjer velja se posebej izpostaviti navodila zauporabo funkcij in pomoci ter paketkov Tem sledi pregled podatkovnih strukturtorej osnovnih nacinov na katere lahko v R-ju shranjujemo podatke in rezultate (injih nato nadalje obdelujemo) Nadaljuje se s pregledom nekaterih (s statisticnegavidika) najkoristnejsih funkcij za napredne uporabnike pa tudi pravila za pisanjenovih funkcij in napotki za programiranje Zelo pomembno podpoglavje je tudi pod-poglavje o delu z datotekami saj preko le teh rdquoberemordquo in shranjujemo podatke terpogosto tudi rezultate statisticnih obdelav R je znan tudi po zelo kvalitetnih grafihin prav risanje ter shranjevanje grafov in drugih slik je opisano v naslednjem podpo-glavju Vsebinsko se poglavje zakljuci s pregledom nacinov za pripravo dokumentovz rezultati analiz iz R-ja kjer se osredotocimo na izvoz tabel v dokumente kompa-tibilne z urejevalniki besedila Ker je to poglavje z vidika uporabe R-ja pravzapravnajzahtevnejse poglavje vsebuje tudi vrsto vaj z resitvami (po podpoglavjih) ki sopodane na koncu poglavja

11 Uvodni primer

Za predstavitev nacina analize z R-jem zacnimo z realnim primerom Primer pri-kazuje uporabo metod predstavljenih v tem ucbeniku poleg tega pa prikazuje tudiuporabo multivariatnih metod z R-jem

Podatki na katerih temelji primer so bili zbrani v okviru raziskave Kakovost mer-jenja egocentricnih socialnih omrezij (Ferligoj in drugi 2000) Podroben opis raz-iskave je na voljo na spletni strani Arhiva druzboslovnih podatkov (ADP) (httpwwwadpfdvuni-ljsiopisiegoomr00) s katere je (po predhodni registra-

2 11 Uvodni primer

ciji) mogoce tudi prenesti podatke Za ta primer sem prenesel podatke v SPSS-ovemformatu (obicajnem ne rdquoportablerdquo (prenosljivem) torej datoteka s koncnico rdquosavrdquo)saj ga R dobro bere Kot sicer natancneje obravnavamo v podpodpoglavju 153lahko R bere in zapisuje tudi podatke izv mnogih-o drugih formatov med kate-rimi posebej izpostavim Statin format (predvsem zaradi prirocnosti pri pisanju) Vpodpodpoglavju 153 so opisani tudi razlogi za uporabo SPSS-ovega formata v temucbeniku in napotki v primeru da bralec bere podatke iz kaksnega drugega formata

Pred zacetka dela v R-ju preberemo funkcije (prej pripravljene iz datoteke rdquoUcbenikR-funkcijeRrdquo) in podatke Ker zelimo analizo izvesti samo na posameznikih ki so biliosebno anketirani opravimo se izbor enot

gt nalozimo datoteko s posebej pripravljenimi funkcijami

gt source(UcbenikR-funkcijeR)

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign)

gt preberemo podatke

gt ego1lt-readspss(egoomr00_f2savtodataframe=TRUE

usevaluelabels = FALSEusemissings=TRUE)

gt izbor samo tistih ki so bili osebno anketirani

gt egolt-ego1[ego1$MODE==1]

gt kopiranje atributov (zaradi prejsne izbire enot)

gt for(i in names(ego1))attributes(ego[i])lt-attributes(ego1[i])

Naredimo se frekvencno tabelo (lepo izpisana z LATEX-om je v tabeli 11) in grafa(slika 11) Najprej frekvencno tabelo

gt ego$E_SPOLlt-makeFactorLabels(ego$E_SPOL)

gt table(ego$E_SPOL)

moski zenski

267 364

gt frekTab(ego$E_SPOLdec=1)

Frekvenca Kum frek Kumulativni

moski 267 267 423 423

zenski 364 631 577 1000

Tabela 11 Frekvencna tabela za spol

Frekvenca Kum frek Kumulativni moski 267 267 423 423zenski 364 631 577 1000

Sedaj pa narisimo se strukturna stolpca in krog

1 poglavje ndash Uvod v R 3

Slika 11 Strukturni stolpci in krog za spol

moški ženski

Strukturna stolpca

050

150

250

350

moški

ženski

Strukturni krog

gt par(mfrow=c(12)) dva grafa na eno stran

gt barplot(table(ego$E_SPOL)main=Strukturna stolpca)

gt pie(table(ego$E_SPOL)main=Strukturni krog)

gt par(mfrow=c(11))

Delamo lahko tudi dvodimenzionalne tabele in jih na enostaven nacin narisemo (slika12)

gt ego$IZOBlt-makeFactorLabels(ego$IZOB)

gt tbllt-table(spol=ego$E_SPOLizobrazba=ego$IZOB)

gt tbl

izobrazba

spol nedokoncana osnovna sola osnovna sola

moski 1 18

zenski 5 36

izobrazba

spol poklicna sola stiriletna srednja sola visja sola

moski 44 110 28

zenski 44 157 40

izobrazba

spol visoka sola magisterij doktorat

moski 55 3 8

zenski 75 5 2

gt plot(tbllas=1 main=)

4 11 Uvodni primer

Slika 12 Strukturni stolpci za povezanost dveh nominalnih spremenljivk

spol

izob

razb

a

moški ženskinedokončana osnovna šolaosnovna šola

poklicna šola

štiriletna srednja šola

višja šola

visoka šola

magisterijdoktorat

Sledi transformacija spremenljivk ndash rdquoobracanjerdquo lestvice in izracun Likertovih lestvicza ekstravertiranost in emocionalno stabilnost

gt seznam spremenljivk ki jim je treba obrniti lestvico

gt spremZaRekodlt-c(O4 O7 O9 O10 O11 O12

O13 O14 O15 O17 O18 O19 O20)

gt imena za nove spremenljivke

gt rekodiraneSpremlt-paste(spremZaRekodRsep=)

gt obracanje vrednosti

gt ego[rekodiraneSprem]lt- 6 - ego[spremZaRekod]

gt spremEkstlt-c(O1 O2 O5 O8 O9R O12R O14R

O15R O16 O18R)

gt spremEmoclt-c(O3 O4R O6 O7R O10R O11R

O13R O17R O19R O20R)

gt uvedemo novi spremenljivki

gt ego$ekst_sco lt- apply(ego[spremEkst]1sum)

gt ego$emoc_sco lt- apply(ego[spremEmoc]1sum)

1 poglavje ndash Uvod v R 5

Porazdelitev teh dveh spremenljivk je prikazana na sliki 13 Porazdelitev obehspremenljivk je priblizno normalna se pa nakazuje rahla asimetrija v levo

gt par(mfrow=c(12)) dva grafa na eno stran

gt hist(ego$ekst_sco xlab=ekstravertiranost main=

freq=FALSEylab=gostota)

gt dodamo normalno krivuljo

gt curve(dnorm(xmean=mean(ego$ekst_sconarm=TRUE)

sd=sd(ego$ekst_sconarm=TRUE))add=TRUExpd=NA)

gt raje z gostoto

gt hist(ego$emoc_sco xlab=emocionalna stabilnost main=

freq=FALSEylab=gostota)

gt dodamo normalno krivuljo

gt curve(dnorm(xmean=mean(ego$emoc_sconarm=TRUE)

sd=sd(ego$emoc_sconarm=TRUE))add=TRUExpd=NA)

gt xpd=NA uporabimo da se vidi tudi vrh krivulje

gt par(mfrow=c(11))

Slika 13 Histograma za ekstravertiranost in emocionalno stabilnost

ekstravertiranost

gost

ota

10 20 30 40 50

000

002

004

emocionalna stabilnost

gost

ota

10 20 30 40 50

000

001

002

003

004

Izracunajmo se opisne statistike po skupinah glede na spol

gt opisne statistike po skupinah

gt ekstravertiranost

gt by(ego$ekst_sco INDICES=ego$E_SPOL

6 11 Uvodni primer

FUN = function(x)c(povprecje=mean(xnarm=TRUE)

sd=sd(xnarm=TRUE)n=sum(isna(x))))

ego$E_SPOL moski

povprecje sd n

34159696 7711717 263000000

---------------------------------------------

ego$E_SPOL zenski

povprecje sd n

34659091 8031826 352000000

gt emocionalna stabilnost

gt by(ego$emoc_sco INDICES=ego$E_SPOL

FUN = function(x)c(povprecje=mean(xnarm=TRUE)

sd=sd(xnarm=TRUE)n=sum(isna(x))))

ego$E_SPOL moski

povprecje sd n

36306818 8223621 264000000

---------------------------------------------

ego$E_SPOL zenski

povprecje sd n

33986111 9184723 360000000

Pri ekstravertiranosti (prvi izpis) imajo zenske malce vecje povprecje vendar pa stasi povprecji precej podobni Pri emocionalni stabilnosti imajo moski vecje povprecjePri obeh spremenljivkah pa je variabilnost med zenskami vecja kot med moskimiV nadaljevanju za emocionalno stabilnost preverimo domnevo da sta aritmeticnisredini v obeh skupinah (pri obeh spolih) enaki

gt EMOCIONALNA STABILNOST

gt testiramo enakost varianc (vec razlicnih testov)

gt vartest(emoc_sco~E_SPOLdata=ego)

F test to compare two variances

data emoc_sco by E_SPOL

F = 080167 num df = 263 denom df = 359 p-value =

005669

alternative hypothesis true ratio of variances is not equal to 1

95 percent confidence interval

06411573 10063491

sample estimates

ratio of variances

0801667

gt ce zelimo klasicen t-test (predpostavka enakih varianc)

gt ttest(emoc_sco~E_SPOL data=egovarequal = TRUE)

1 poglavje ndash Uvod v R 7

Two Sample t-test

data emoc_sco by E_SPOL

t = 32579 df = 622 p-value = 0001184

alternative hypothesis true difference in means is not equal to 0

95 percent confidence interval

09218292 37195850

sample estimates

mean in group moski mean in group zenski

3630682 3398611

Ker je ena izmed predpostavk klasicnega t-testa tudi enakost varianc po skupinahsmo najprej preverili to domnevo Domneve pri 5-odstotnem tveganju ne moremozavrniti zato izvedemo klasicno razlicico t-testa Ta nam pove da lahko pri tveganjupriblizno 01 trdimo da so moski (v Ljubljani) bolj emocionalno stabilni kotzenske

Izracunajmo se korelacijo med ekstravertiranostjo in emocionalno stabilnostjo pre-verimo domnevo da je ta korelacija enaka 0 ter prikazimo odnos z njima na razsev-nem grafikonu Ta je prikazan na sliki 14 kjer smo z razlicnimi barvami in znakioznacili tudi spol

gt plot(jitter(emoc_sco)~jitter(ekst_sco)

pch=asnumeric(E_SPOL)col=asnumeric(E_SPOL)data=ego

ylab=emocionalna stabilnostxlab=ekstravertiranost)

gt jitter malce razprsi tocke da se ne prekrivajo

gt legend(x=30y=525xjust=05yjust=0legend=c(moski

zenski)pch=12col=12horiz = TRUEtitle=Spol

xpd=TRUE)

Izracunamo se korelacijo med novima spremenljivkama in preverimo domnevo daje korelacija enaka 0

gt Pearsonov koeficient korelacije

gt cor(ego[c(emoc_scoekst_sco)]method = pearson

use=pairwisecompleteobs)

emoc_sco ekst_sco

emoc_sco 10000000 02278617

ekst_sco 02278617 10000000

gt cortest(y=ego$emoc_scox=ego$ekst_sco)

Pearsons product-moment correlation

data ego$ekst_sco and ego$emoc_sco

t = 57703 df = 608 p-value = 1261e-08

8 11 Uvodni primer

Slika 14 Razsevni grafikon za ekstravertiranost in emocionalno stabilnost

10 20 30 40 50

1020

3040

50

ekstravertiranost

emoc

iona

lna

stab

ilnos

t

Spol

moški ženski

alternative hypothesis true correlation is not equal to 0

95 percent confidence interval

01512119 03017878

sample estimates

cor

02278617

gt pravzarav bi bil dovolj samo ta drugi ukaz

gt prednost prvega je da bi lahko izracunali tudi korelacijo

gt med vec spremenljivkami

Korelacija je sicer razmeroma sibka in pozitivna a mocno statisticno znacilna (p lt0001)2 V povprecju imajo osebe z visjo ekstravertiranostjo tudi visjo emocionalnostabilnost in obratno a ta povezanost je kot receno sibka

2 Tako nizka stopnja tveganja (rdquomocnardquo statisticna znacilnost) je predvsem posledica velikegavzorca

1 poglavje ndash Uvod v R 9

Nadaljujemo z multivariatno analizo ndash razvrscanjem v skupine Multivariatne ana-lize sicer v ucbeniku ne obravnavam3 V uvodni primer sem jo vkljucil da bi vsajnakazal da R omogoca se bistveno vec kot je predstavljeno v tem ucbeniku

Zaceli bomo z razvrscanje v skupine Najprej izlocimo enote z manjkajocimi vre-dnostmi nato izracunamo kvadrirano evklidsko razdaljo in jo uporabimo za hierar-hicno razvrscanje z Wardovo metodo Na podlagi dobljenega dendrograma na sliki15 ocenimo da v podatkih nastopata 2 skupini

gt Hierarhicno razvrscanje v skupine

gt odstranimo enote z manjkajocimi vrednostmi

gt emoclt-naomit(ego[spremEmoc])

gt standardiziramo podatke s funkcijo scale

gt Zemoclt-scale(emoc)

gt izracunamo evklidsko razdaljo na standardiziranih podatkih

gt dlt-dist(Zemoc)

gt za kvadrirano evklidsko razdaljo jo kvadriramo

gt d2lt-d^2

gt uporabimo Wardovo metodo

gt wardlt-hclust(d=d2method=wardD)

gt narisemo dendrogram

gt plot(ward)

gt abline(h=1500 col=red)

Ti dve skupini shranimo in na nestandardiziranih spremenljivkah izracunamo pov-precja po skupinah Povprecja so prikazana v tabeli 12

gt izberemo 2 skupini (in shranimo pripadnost)

gt wardCluK2lt-cutree(wardk=2)

gt stevilo enot po skupinah

gt table(wardCluK2)

wardCluK2

1 2

352 272

gt izracunamo povprecja po skupinah

gt aggregate(x=emoc by=list(wardCluK2) FUN=mean)

Group1 O3 O4R O6 O7R O10R

1 1 3022727 2428977 3892045 2650568 2448864

2 2 4000000 4485294 4621324 4139706 4117647

3 Obstaja veliko splosnih ucbenikov za multivariatno analizo (na primer Johnson in Wichern 2007Tabachnick in Fidell 2007 Jesenko in Jesenko 2007) uporaba multivariatne analize v R-ju pa jepredstavljena predvsem v Everitt (2005) Everitt in Hothorn (2011)

10 11 Uvodni primer

Slika 15 Dendrogram ndash Wardovo razvrscanje s kvadrirano evklidsko razdaljo napodlagi spremenljivk emocionalne stabilnosti

543

627

590

880

755

1010 43

279

810

15 754

905

892

999

13 842

454

480

476

909

706

746

776

793

894

579

854

491

559

984

533

716

525

977

536

481

873

441

783

884

1025

857

572

478

938

692

861

968

841

663

1012

927

900

790

722

687

531

563

805

777

903

895

542

682

761

887

464

492

465

988

530

571

958

562

736

983

473

631

726

752

908 2

615

956

1003

442

498

742

788 15 815

494

768

643

851

775

493

767

883 7

753

450

637

890

518

630

676

803

636

665

824

526

506

923

1027

639

975

845

1017 70

272

943

783

643

457

3 980

774

354

654

914 51

067

786

752

746

710 49

661

172

453

755

365

874

196

984

773

177

8 564

269

884

910

01 656

634

930

797

598

673

732

564

834

468

647

1002

1028

462

769

757

813

850

539

906

858

863

779

978

709

575

548

955

689

1013

1009 99

796

293

791

591

491

088

187

184

378

169

368

368

067

164

963

560

460

358

643

052

042

656

192

845

846

395

298

682

696

010

07 678 6

532

691

951

648

1032

727

902

932

581

852

904

699

965

874

998

982

684

972

650

891

948

552

594

1033 63

878

292

189

743

985

976

584

499

570

092

460

176

056

066

495

496

386

252

391

244

471

250

559

712 57

897

997

199

651

964

586

088

953

574

862

193

582

859

266

869

561

651

292

052

987

642

210

16 427

547

515

591

738

947

580

582

632

893

882

608

720

555

772

1030

557

654

740

538

655

925

870

934

607

808

756

1000 56

870

463

375

999

173

551

754

159

577

452

879

688

546

910

08 605

714

945

585

830

451

600

501

846 1

503

715

1019

589

879

1024

721

919

521

1022 71

193

698

550

487

557

076

642

174

479

169

450

280

189

845

276

469

097

098

042

558

778

579

573

396

160

281

451

196

610

04 475

747

435

822

449

474

990

792

438

701

644

869

551

820

878

703

718

868

810

939

457

943

460

576

544

812

508

827

610

669

967

922

1011 70

793

180

056

969

762

086

583

244

654

079

981

751

376

349

794

191

692

967

944

062

666

675

157

780

948

688

893

383

188

680

657

410

20 609

588

661

524

696

829

428 8

821 16

447

949

907

1018 67

064

666

073

094

447

772

870

577

194

653

471

759

383

562

981

687

2 390

1 461

848

997

489

982

595

975

087

791

194

210

21 472

993

479

653

973

786

819

856

839

1029 54

562

878

499

455

081

1 1110

2342

494

0 1770

886

645

943

362

564

168

866

745

386

444

396

446

661

473

751

691

767

471

351

483

378

948

771

950

099

268

591

883

882

310

06 509

484

651

495

981

606

675

499

483

749

420

624

802

583

662

686

987

456

596

436

762

773

840

855

565

848

913

926

976

558

853

950

471

710

681

780

490

739

455

989

461

584

725

522

612

448

507

1031

1026

770

1005 64

065

265

944

548

874

562

379

465

762

280

461

978

755

473

455

695

748

275

842

948

543

161

767

256

759

983

795

310

14

050

010

0015

0020

0025

00

Cluster Dendrogram

hclust ( wardD)d2

Hei

ght

O11R O13R O17R O19R O20R

1 2306818 3301136 2974432 3536932 2758523

2 3746324 3786765 4220588 4639706 4518382

Dobili smo eno skupino s srednjo in eno z visoko emocionalno stabilnostjo Posku-simo se ali lahko z metodo voditeljev dobimo boljsi rezultat Povprecja po skupinahna nestandardiziranih spremenljivkah so prikazana v tabeli 13 in na sliki 16

gt Razvrscanje v skupine z metodo voditeljev

gt kMeansR10lt-kmeans(Zemoc centers=2 itermax = 50 nstart = 10)

gt ponovimo kar 10-krat (da se izognemo lokalnim minimumom)

gt koncni voditelji na standardiziranih spremenljivkah

gt (te smo uporabili za razvrscanje)

gt kMeansR10$centers

O3 O4R O6 O7R O10R

1 02807587 05873913 02360699 05311423 06126683

1 poglavje ndash Uvod v R 11

Tabela 12 Hierarhicno razvrscanje - povprecja po skupinah

1 2O3 302 400

O4R 243 449O6 389 462

O7R 265 414O10R 245 412O11R 231 375O13R 330 379O17R 297 422O19R 354 464O20R 276 452

2 -03449321 -07216522 -02900287 -06525462 -07527067

O11R O13R O17R O19R O20R

1 03711498 02967399 05099416 04663205 05518454

2 -04559841 -03645662 -06264997 -05729081 -06779815

gt velikosti skupin

gt kMeansR10$size

[1] 344 280

gt vrednost Wardove kriterijske funkcije

gt kMeansR10$totwithinss

[1] 4585664

gt povprecja na nestandardiziranih spremenljivkah po skupinah

gt aggregate(x=emoc by=list(kMeansR10$cluster) FUN=mean)

Group1 O3 O4R O6 O7R O10R

1 1 3854651 4261628 4470930 4104651 4098837

2 2 2950000 2175000 3889286 2310714 2042857

O11R O13R O17R O19R O20R

1 3526163 3947674 4290698 4613372 4322674

2 2207143 2978571 2567857 3285714 2546429

gt graf

gt meanslt-aggregate(x=emocby=list(kMeansR10$cluster)FUN=mean)

gt matplot(t(means[-1])type=oxaxt=nylab=povprecje)

gt axis(side=1at=1dim(means[-1])[2]

labels=colnames(means)[-1]las=2)

Primerjajmo se obe razbitji (dobljeni z razlicnima metodama) Vrednost kriterijskefunkcije za razbitje izracunano z Wardovo metodo je 491353 za tisto z metodovoditeljev pa 458566 Razbitje dobljeno z metodo voditeljev je torej boljse Kako

12 11 Uvodni primer

Tabela 13 Metoda voditeljev ndash povprecja po skupinah

1 2O3 385 295

O4R 426 217O6 447 389

O7R 410 231O10R 410 204O11R 353 221O13R 395 298O17R 429 257O19R 461 329O20R 432 255

Slika 16 Graf povprecij po skupinah dobljenih z metodo voditeljev

1

1

1

1 1

1

1

1

1

1

20

25

30

35

40

45

povprečje

2

2

2

2

2

2

2

2

2

2

O3

O4R O6

O7R

O10R

O11R

O13R

O17R

O19R

O20R

se razporeditvi prekrivata je prikazano v tabeli 14 Prekrivanje je zelo veliko sajse razbitji pri vecini enot ujemata (ne ujemata se le pri manjsem stevilu enot)4

4 Vecina enot ki je v prvi skupini po Wardovi metodi je v drugi po metodi voditeljev medtemko je vecina tistih ki so z Wardovo metodo razporejene v drugo skupino z metodo voditeljev

1 poglavje ndash Uvod v R 13

gt Primerjava kriterijskih funkcij

gt wardKF(ZemocwardCluK2) Wardova metoda

[1] 4913525

gt kMeansR10$totwithinss metoda voditeljev

[1] 4585664

gt Primerjava koncnih razvrstitev po enotah

gt table(Wardova metoda=wardCluK2

Metoda voditeljev=kMeansR10$cluster)

Metoda voditeljev

Wardova metoda 1 2

1 85 267

2 259 13

Tabela 14 Primerjava koncnih razvrstitev po enotah

1 21 85 2672 259 13

Razbitje prikazano v prostoru prvih dveh glavnih komponent je prikazano na sliki17 Vidi se da prva glavna komponenta zelo dobro loci med skupinama dobljenimaz metodo voditeljev

gt metoda glavnih komponent

gt PClt-princomp(Zemoc)

gt plot(PC$scores[12]ylab=2 komponentaxlab=1 komponenta

pch=kMeansR10$clustercol=kMeansR10$cluster)

gt legend(x=mean(range(PC$scores[1])) y=max(PC$scores[2])+05

legend = c(1 skupina 2 skupina)

title=Metoda voditeljevxjust=05 yjust=0xpd=TRUE

pch=kMeansR10$clustercol=kMeansR10$clusterhoriz=TRUE)

S tem zakljucujemo uvodni primer V nadaljevanju sledi pregled osnovnih informacijo delu s programskim paketom R

razporejena v prvo skupino Pri teh enotah se razvrstitvi ujemata saj oznake skupin (prvadruga) pri razvrscanju v skupine niso pomembne

14 12 Osnovne informacije

Slika 17 Resitev razvrscanja v prostoru glavnih komponent

-2 0 2 4 6

-20

24

1 komponenta

2 k

ompo

nent

a

Metoda voditeljev

1 skupina 2 skupina

12 Osnovne informacije

121 Osnovne racunske operacije

Najprej spoznajmo osnovne racunske operacije V R-ju se zanje uporabljajo stan-dardni simboli Morda omenimo le da je ˆ(stresica) znak za potenco sqrt pafunkcija kvadratnega korena

gt 2+2

[1] 4

gt 6-2

[1] 4

gt 35

[1] 15

gt 25

[1] 04

gt 52 vrne ostanek pri deljenju

1 poglavje ndash Uvod v R 15

[1] 1

gt 5^2 potenca

[1] 25

gt sqrt(25) kvadratni koren preko funkcije

[1] 5

gt 25^(12) in drugace (bolj splosno)

[1] 5

gt zgoraj upostevamo da je koren le posebna razlicica

gt potence in sicer oblike 1(stopnja korena)

122 Spremenljivke

Vrednost shranimo tako da jo priredimo spremenljivki (objektu) Za prirejanje upo-rabimo znak rdquolt-rdquo(uporabljamo lahko tudi znak rdquo=rdquo a se njegova uporaba odsvetuje)Spremenljivkeobjekte nato uporabljamo namesto vrednosti ki so shranjene v njih

V imenih spremenljivk lahko nastopajo

bull crke (velike in male ndash velikost crk je pomembna)

bull stevilke

bull znak rdquo rdquo ndash do verzije 180 R-ja bil uporabljan kot znak za prirejanje na karje treba biti pozoren ce naletite na kaksno zelo staro kodo

bull znak rdquordquo ndash predvsem pri funkcijah ima znak rdquordquo v imenu funkcije tudi posebenpomen (uporablja se za prilagoditev funkcije za dolocen razred objekta) zatose uporaba rdquordquo v drugih primerih odsvetuje (ni pa prepovedana)

Ime spremenljivke se mora nujno zaceti s crko ali piko (rdquordquo) Spremenljivke ki sezacenjajo s piko (rdquordquo) so skrite se pravi da se ne izpisejo s funkcijo ls() (ta funkcijaizpise vse vidne objekte v okolju)

Primer uporabe spremenljivk

gt a lt- 5 priredimo vrednost spremenljivki

gt a izpisemo vrednost spremenljivke

[1] 5

gt a + 4

[1] 9

gt b lt- a2 nekaj izracunamo in rezultat priredimo

gt b

[1] 10

gt (c lt- a + b) Kaj se zgodi zaradi oklepajev

[1] 15

16 12 Osnovne informacije

Zaradi oklepajev se najprej izvede izraz znotraj oklepaja torej se rezultat sesteva-nja shrani v spremenljivko c Nato pa se se rdquopoklicerdquo oklepaj kar izpise vrednostspremenljivke c

123 Uporaba funkcij in pomoci

Funkcija ls je prva R-jeva funkcija ki smo jo spoznali Za pomoc o katerikoli R-jevifunkciji napisemo v R eno od spodnjih moznostiime_funkcije

help(ime_funkcije)

Za iskanje po pomoci lahko uporabitehelpsearch(iskalni pogoj)

iskalni pogoj

Dodatno pomoc pa najdete tudi v meniju Help

Za iskanje funkcije katere ime ustreza dolocenemu vzorcu pa uporabite funkcijoapropos

Vsaka spremenljivka je pravzaprav objekt (objekti so tudi funkcije) Objekte lahkobrisemo s funkcijo rm

Funkcijo klicemo tako da navedemo njeno ime in potem v oklepajih () njene ar-gumente locene z vejico Nujno moramo navesti vse argumente ki nimajo privzetevrednosti ostale pa le ce nam privzeta vrednost ne ustreza Tudi ce ne navedemonobenega argumenta moramo nujno navesti oklepaje () kamor v tem primeru nenapisemo nic Za primer glejte podpodpoglavje 135 (Matrika)

Pri navajanju argumentov imamo dve moznosti

bull Argumente navajamo v takem vrstnem redu kot so navedeni v funkciji Tanacin lahko uporabimo samo pri argumentih ki so na zacetku oziroma prikaterih smo navedli tudi vse argumente pred njimi

bull Argumente navajamo v poljubnem vrstnem redu skupaj z njihovimi imeni kotdvojice ime=vrednost

V vsakem primeru argumente locimo z vejicami Drugi nacin je dosti varnejsi Prvise ponavadi uporablja le za prvi argument ali pri zelo pogosto uporabljenih funkcijahceprav tudi takrat ni priporocljiv

gt ls() Klicemo funkcijo ls ne da bi navedli kak argument

[1] a b

[3] c colinEigen

1 poglavje ndash Uvod v R 17

[5] corTestDf d

[7] d2 ego

[9] ego1 emoc

[11] frekTab i

[13] insert kMeansR10

[15] makeFactorLabels means

[17] PC plotMeans

[19] printCorTestDf razsiriPodatke

[21] rekodiraneSprem spremEkst

[23] spremEmoc spremZaRekod

[25] ss ssAllVar

[27] tbl ward

[29] wardCluK2 wardKF

[31] Zemoc

gt Argumenti niso potrebni ker je pri vseh argumentih

gt privzeta vrednost ustrezna

gt Z njo izpisemo vse vidne objekte - med njimi je tudi a

gt

gt alt-1 kreiramo a

gt rm(a) izbrisemo a - argument funkcije je

gt Pozor argument funkcije je objekt (ne njegovo ime)

gt ls() a-ja ni vec med objekti

[1] b c

[3] colinEigen corTestDf

[5] d d2

[7] ego ego1

[9] emoc frekTab

[11] i insert

[13] kMeansR10 makeFactorLabels

[15] means PC

[17] plotMeans printCorTestDf

[19] razsiriPodatke rekodiraneSprem

[21] spremEkst spremEmoc

[23] spremZaRekod ss

[25] ssAllVar tbl

[27] ward wardCluK2

[29] wardKF Zemoc

gt ls pomoc za funkcijo ls

gt help(ls) enako

gt List Objects isce po pomoci

gt ls(allnames = TRUE) izpisemo vse objekte tudi skrite

[1] cairo Randomseed

[3] b c

18 12 Osnovne informacije

[5] colinEigen corTestDf

[7] d d2

[9] ego ego1

[11] emoc frekTab

[13] i insert

[15] kMeansR10 makeFactorLabels

[17] means PC

[19] plotMeans printCorTestDf

[21] razsiriPodatke rekodiraneSprem

[23] spremEkst spremEmoc

[25] spremZaRekod ss

[27] ssAllVar tbl

[29] ward wardCluK2

[31] wardKF Zemoc

gt torej tudi tiste ki se zacnejo s piko ()

gt

gt rm(list=ls()) izbrisemo vse vidne objekte

gt ta ukaz uporabljajte zelo pazljivo

gt

gt ustvarimo nekaj spremenljivk

gt alt-1blt-2aalt-3aaaabblt-4daalt-5

gt V R-ju lahko v eno vrstico napisemo tudi vec ukazov

gt ki jih locimo s podpicji

gt ponavadi to sicer ni priporocljivo

gt

gt ls(pattern = aa) vsi objekti ki imajo v imenu aa

[1] aa aaaabb daa

gt uporabimo lahko sicer tudi regularne izraze

gt za vec informacij vtipkajte regexp

124 Paketki

Vse funkcije (ki jih nismo napisali sami) in tudi veliko podatkov je v R-ju shra-njeno v paketkih Paketke nalozimo preko menija Packages|Load package alienostavneje s funkcijama library ali require Edina razlika med njima je v temda prva ob neuspehu (ce na primer paketek ni namescen oziroma instaliran) javinapako druga pa vrednost FALSE Da pa paketke lahko nalozimo morajo biti prejnamesceni

Na voljo je veliko paketkov 30 osnovnih paketkov je vkljucenih ze v osnovno distri-bucijo R-ja (in jih imate tako po namestitvi R-ja ze namescene) veliko vec (trenutno8551) pa jih je na voljo na CRAN-u (Comprehensive R Archive Network)

1 poglavje ndash Uvod v R 19

Slika 18 Stirje obrazi

1 2

3 4

Paketke najlazje namestimo neposredno iz CRAN-a in sicer preko menija Packa-ges|Install package(s) ali preko funkcije installpackages

gt installpackages(TeachingDemos)

package TeachingDemos successfully unpacked and MD5 sums checked

The downloaded binary packages are in

CUsersAlesAppDataLocalTempRtmpcFnMNjdownloaded_packages

gt namestimo paketek s CRAN-a

gt library(TeachingDemos) nalozimo paketek

gt funkcija faces ni na voljo ce prej ne nalozimo paketka

gt faces() uporabimo funkcijo iz paketka - narisemo 4 obraze

Rezultat funkcije je na sliki 18

125 Drugi osnovni podatki

Prostor kamor v R-ju pisemo ukaze se imenuje ukazna vrstica oziroma konzolaVanjo lahko ukaze tipkamo lepimo ali posljemo iz urejevalnika besedil (ce le-ta toomogoca)

Zelo prirocno je tudi pomikanje po ze uporabljenih ukazih (za ponavljanje ali manjsespremembe) s smernimi tipkami za gor uarr in dol darr Po posameznem ukazu pa sepremikamo s smernimi tipkami za levo larr in desno rarr

20 13 Podatkovne strukture

R zapremo preko menija File|Exit ali s funkcijama q oziroma quit (funkciji staidenticni) Ko ga ugasnemo nas R tudi vprasa (ce nismo tega rdquopovedalirdquo ze zargumenti prej omenjenih funkcij) ali zelimo shraniti delovno okolje (workspace) inzgodovino

Stanje delovnega okolja (workspace) lahko kadarkoli shranimo s funkcijo saveimageali preko menija File|Save Workspace zgodovino ukazov pa s savehistory ozi-roma preko menija File|Save History Vse datoteke se (ce ne izberemo drugace)shranijo v delovno mapo (working directory) Delovno mapo lahko spremenimopreko funkcije setwd ali preko menija File|Change dir Nacin spreminjanjamape preko menija lahko uporabimo tudi le za to da najdemo trenutno delovnomapo lahko pa to ugotovimo tudi s funkcijo getwd

Shranjeno okolje lahko potem nalozimo na vec nacinov Ce nismo spreminjali imen(privzeto ime je rdquoRDatardquo za delovno okolje in rdquoRHistoryrdquo za zgodovino) potemse oboje samodejno nalozi ce bodisi zazenemo R v isti mapi bodisi zazenemo R zdvoklikom na shranjeno okolje rdquoRDatardquo Delovno okolje lahko nalozimo tudi takoda datoteko rdquoprenesemordquo v R-jevo okno s pomocjo funkcije loadimage ali prekomenija File|Load Workspace Podobno velja tudi za zgodovino

Zgodovino lahko kadarkoli izpisemo tudi s funkcijo history

R kot decimalno locilo uporaba piko () na primer 12

zapisemo kot 05 Pri ukazih setega ne da spreminjati (kar je nujno za konsistentno delovanje kateregakoli program-skega jezika) pri izpisih pa to lahko nastavimo preko funkcije optios Ce zelimokot decimalno locilo nastaviti vejico () torej decimalno locilo ki ga uporabljamo vslovenscini uporabimo ukaz options(OutDec = )

V tem ucbeniku uporabljam kot decimalno locilo piko () kjub temu da se zavedamda je to v nasprotju s slovenskim pravopisom Razloga za to sta dva oba pa izhajataiz narave ucbenika torej ucenje R-ja Prvi je v tem da menim da bi uporaba enegadecimalnega locila (pike) pri ukazih in drugega (vejice) pri izpisih lahko zmedlabralca Drugi je v tem da zelim da lahko uporabniki z uporabo ukazov iz ucbenikadobijo enak izpis kot ga podajam v ucbeniku Zato raje (kjer ni potrebno) nespreminjam zacetnih nastavitev S pomocjo funkcije options je mogoce nastavljatitudi veliko drugih nastavitev na primer sirino izpisa (tekstovnega) nacin izpisastevil (stevilo decimalnih mest znanstven ali obicajen zapis ) Za pregled in opisnastavitev ki jih je mogoce spreminjati uporabite options

13 Podatkovne strukture

131 Osnovni podatkovni tipi

R pozna naslednje osnovne podatkovne tipe

1 poglavje ndash Uvod v R 21

logical logicni vektor ndash vrednosti TRUE in FALSE

integer cela stevila

numeric realna stevila ndash to je privzeta vrednost za vsa stevila v R-ju tudi cela naprimer 2

complex kompleksna stevila

character znaki (poljubno stevilo) ndash vedno jih moramo pisati v narekovajih saj sedrugace upostevajo kot imena spremenljivk ali drugih objektov (funkcij)

raw shranjuje surove bajte (ang byte) ndash tega ne rabite

Podatkovne tipe spreminjamo s funkcijami asnekaj kjer je rdquonekajrdquo ime tipa Sfunkcijo isnekaj preverimo ali je nek podatek tipa rdquonekajrdquo (torej nekega doloce-nega tipa) Kaksnega tipa je nek podatek (objekt) pa preverimo s funkcijo mode

Obstajajo pa se sledece posebne vrednosti

NA Not available ndash ni na voljo oziroma R-jeva koda za manjkajoco vrednost

NaN Not a Number ndash ni stevilo Relevantno samo pri stevilskih tipih uporablja sekadar rezultat nekega izracuna ni definiran na primer 00

NULL Absoluten nic v R-ju prazen element

Pri prvih dveh (NA NaN) je rezultat izracuna kjer nastopa katera od teh vrednostiprakticno vedno kar ta vrednost tretji pa ima podobno vlogo kot prazen element

gt 4 realno stevilo

[1] 4

gt isnumeric(4)

[1] TRUE

gt isinteger(4) ni celo stevilo

[1] FALSE

gt a lt- asinteger(4) smo naredili celo stevilo

gt isinteger(a)

[1] TRUE

gt alt-to je znakovna spremenljivka

gt alt-4 se vedno znakovna spremenljivka

gt a cetudi je znak stevilka - ne moremo racunati

[1] 4

gt asnumeric(a)+3 po spremembi lahko racunamo

[1] 7

gt 00

[1] NaN

gt 1 + NA

[1] NA

Pri realnih podatkih prav pridejo spodaj prikazane funkcije za zaokrozevanje

22 13 Podatkovne strukture

gt floor(26) navzdol

[1] 2

gt ceiling(21) navzgor

[1] 3

gt round(21) na najblizjo vrednost

[1] 2

gt round(26)

[1] 3

gt round(15) pozor - uporablja standard IEC 60559

[1] 2

gt vrednosti na meji (5 na koncu) se zaokrozujejo na najblizje

gt sodo stevilo

gt round(25)

[1] 2

gt round(pidigits=3) lahko nastavimo tudi stevilo decimalk

[1] 3142

132 Vektor

Vektor je najosnovnejsa podatkovna struktura Vsebuje lahko samo podatke enegatipa Ce zelimo ustvariti vektor iz podatkov razlicnih tipov jih R sam pretvori vtip ki je najsplosnejsi (ce ns primer zdruzujemo stevilke in znake v tip rdquocharacterrdquo)Vektor ustvarimo tako da zdruzimo (combine) vrednosti s pomocjo funkcije c

R (oziroma njegov predhodnik S) je vektorski jezik kar pomeni da se ce ne izberemole posameznega dela operacije izvajajo na vseh elementih vektorja

Opozorilo

R dovoli tudi mnozenje dveh vektorjev razlicnih dolzin V primeru da dolzinadaljsega ni mnogokratnik dolzine krajsega izpise opozorilo sicer pa le izracunarezultat

Elemente vektorja izbiramo tako da njihove indekse navedemo v oglatih oklepajih [

] (glejte primer spodaj) Izbrane dele lahko tudi spreminjamo Negativna vrednostv oglatih oklepajih pomeni da izberemo vse razen tistega kar sledi rdquo-rdquo

gt alt-c(467312) ustvarimo vektor

gt a izpisemo vektor

[1] 4 6 7 3 1 2

gt a + 3

[1] 7 9 10 6 4 5

1 poglavje ndash Uvod v R 23

gt vsem elementom vektorja a pristejemo 3 (a se seveda ne

gt spremeni)

gt

gt blt-c(123456)

gt a+b elementi se sestejejo

[1] 5 8 10 7 6 8

gt ab oziroma zmnozijo

[1] 4 12 21 12 5 12

gt blt- c(12)

gt a+b b se 3x ponovi da doseze dolzino a-ja

[1] 5 8 8 5 2 4

gt pri tem R ne izpise kakrsnegakoli opozorila

gt ab

[1] 4 12 7 6 1 4

gt length(a) izpisemo dolzino vektorja a

[1] 6

gt length(b)

[1] 2

gt length(ab) dolzina rezultata je enaka dolzini daljsega

[1] 6

gt blt-c(1234)

gt ab b se ponovi 15-krat Izpise se opozorilo

[1] 4 12 21 12 1 4

gt a[3] izberemo 3 element vektorja a (stetje se zacne z 1)

[1] 7

gt clt-c(36d) ce zdruzimo razlicne elemente

gt c dobimo najsplosnejsi tip (znakovni)

[1] 3 6 d

gt c[2]lt-bla bla spremenimo 2 element v vektorju b

gt c

[1] 3 bla bla d

gt c[-2] izpisemo vse elemente razen drugega

[1] 3 d

Vektorzaporedje celih stevil od a do b tvorimo tako da napisemo ab kjer a

in b zamenjamo z ustreznima steviloma oziroma kjer sta to dve spremenljivki zustreznima vrednostma To lahko s pridom uporabljamo tudi pri izbiranju delavektorja saj lahko izberemo tudi vec kot en element vektorja tako da kot indekspodamo vektor stevil

Namesto indeksov lahko uporabimo tudi enako (kot originalni) dolg logicni vektor(ta ima samo vrednosti TRUE in FALSE) Izbrani so elementi kjer je vrednost TRUE

24 13 Podatkovne strukture

gt 15 vektor od 1 do 5

[1] 1 2 3 4 5

gt alt- -1010 kreiramo vektor od -10 do 10 in ga shranimo v a

gt a izpisemo vektor

[1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3

[15] 4 5 6 7 8 9 10

gt a[510] izpisemo stevilke na mestih od 5 do 10 (vkljucno)

[1] -6 -5 -4 -3 -2 -1

gt a[510][13]

[1] -6 -5 -4

gt izmed stevilk na mestih od 5 do 10 izberemo prve 3

gt

gt agt0 dobimo logicni vektor ki ga lahko uporabimo za izbor

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

[10] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

[19] TRUE TRUE TRUE

gt a[agt0] izberemo samo pozitivna stevila

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

gt a[c(11121)] izberemo stevilke na mestih 1 11 in 21

[1] -10 0 10

gt a[-c(11121)]

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

gt izberemo vse razen tistih na mestih 1 11 in 21

gt a[-(15)] izberemo vse razen tistih na mestih od 1 do 5

[1] -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10

Opozorilo

Ce pri zadnjem izrazu spustimo oklepaj to ni veljavno ker imajo potem indeksivrednosti od minus1 do 5 kar pa ni dovoljeno Pri indeksih ne smemo mesatinegativnih in pozitivnih stevil

Splosnejsa zaporedja dobimo s funkcijo seq Pri pisanju zank je se posebej uporabnafunkcija seq_len ki ima samo en argument in sicer dolzino zaporedja Njenaprednost je v tem da ce je dolzina 0 dejansko ustvari vektor dolzine 0

gt seq(from=1 to = 11 by= 2)

[1] 1 3 5 7 9 11

gt seq(from=1 to = 12 by= 2)

[1] 1 3 5 7 9 11

gt enako ker pri koraku 2 stevilo 12 tako ali tako izpustimo

gt seq(from=10 to = 0 by= -1) v obratnem vrstnem redu

1 poglavje ndash Uvod v R 25

[1] 10 9 8 7 6 5 4 3 2 1 0

gt nlt-5

gt 1n

[1] 1 2 3 4 5

gt seq_len(n) enako kot zgoraj

[1] 1 2 3 4 5

gt nlt-0

gt 1n morda ne ravno tisto kar smo pricakovali

[1] 1 0

gt seq_len(n) vektor dolzine 0 - bistveno bolj varno pri zankah

integer(0)

gt seq(lengthout=n) enako kot prej

integer(0)

Elementom vektorja (in tudi drugih struktur ki jih bomo spoznali kasneje) lahkodamo tudi imena To lahko storimo ko jih ustvarimo ali kasneje s funkcijo namesS to funkcijo jih tudi priklicemo Imena lahko uporabimo namesto indeksov zadostopanje do posameznih elementov

gt alt-13 ustvarimo vektor brez imen (za elemente)

gt a elementi nimajo imen

[1] 1 2 3

gt names(a)lt-c(abc)

gt a cleni imajo sedaj imena ki se izpisejo nad njimi

a b c

1 2 3

gt a[b] izberemo 2 element - b

b

2

gt ce zelimo izbrati vec kot en element moramo uporabiti

gt vektor imen

gt a[c(ac)]

a c

1 3

gt names(a)lt-NULL imena izbrisemo

gt blt-c(1a=1b=23 element=3) imena podamo ob nastanku

gt ce imamo v imenih presledke ali ce se zacnejo s stevilko

gt jih moramo dati v narekovaje sicer ni nujno

gt b

1a b 3 element

1 2 3

gt names(b)[2]lt-bbb spremenimo ime 2 clena

gt b

26 13 Podatkovne strukture

1a bbb 3 element

1 2 3

133 Nominalne in ordinalne spremenljivke

Ceprav bi nominalne spremenljivke lahko predstavili z znakovno spremenljivko (cha-racter) je priporocljivo da za njih uporabljamo tip factor Tak pristop je varnejsi(definiramo lahko kategorije) in ucinkovitejsi Ustvarimo jih s funkcijo factor ozi-roma spremenimo iz znakovnih spremenljivk s funkcijo asfactor

Zelo pomembni argumenti funkcije factor so

levels Vrednosti ki jih spremenljivka lahko zavzame Vrednosti morajo torej bititake kot vrednosti originalne spremenljivke Ce je argument podan se vse vre-dnosti spremenljivke ki niso tu navedene izlocijo Ce je vrednost argumentaordered=TRUE argument poda tudi vrstni red vrednosti Privzeta vrednostso vse vrednosti spremenljivke v takem vrstnem redu kot se prvic pojavijo(kar je zelo pomembno za pravilno uporabo argumenta labels)

labels Imena za posamezne vrednosti Prvo ime je ime vrednosti ki je kot prvapodana v levels drugo ime za vrednost ki je podana kot druga v levels

Uporaba labels brez levels ni priporocljiva Ce pa ze uporabljamolabels brez levels se moramo zavedati kaksna je privzeta vrednost zalevels (glejte zgoraj)

ordered Ta pove ali naj bo faktor rdquourejenrdquo torej ordinalna spremenljivka

Opozorilo

Pravilen tip spremenljivke je pri R-ju zelo pomemben ker se uposteva tudi pristatisticnih modelih Pri linearni regresiji na primer R iz spremenljivke tipafactor (nominalne) samodejno tvori umetne spremenljivke

Nekaj primerov

gt factor(rep(13times=3))

[1] 1 2 3 1 2 3 1 2 3

Levels 1 2 3

gt nominalna spremenljivka z vrednostmi 1 2 in 3

gt factor(rep(13times=3)levels=13 labels=c(abc))

[1] a b c a b c a b c

Levels a b c

gt nominalna spremenljivka z vrednostmi a b in c

gt factor(rep(13times=3)levels=c(abc))

1 poglavje ndash Uvod v R 27

[1] ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt

Levels a b c

gt vse vrednosti so NA - ce je levels specificiran

gt se kot veljavne vrednosti v originalni spremenljivki

gt upostevajo samo vrednosti v levels

gt factor(rep(13times=3)labels=c(abc))

[1] a b c a b c a b c

Levels a b c

gt sicer kot prej z levels a bolj nevarno

gt npr ce bi bila prva vrednost 3 bi a predstavljal 3

gt factor(rep(13times=3)labels=c(abc)levels=c(312))

[1] b c a b c a b c a

Levels a b c

gt ker je podal levels v drugacnem vrstnem redu

gt sedaj a predstavlja 3

gt

gt factor(rep(13times=3)ordered=TRUE)

[1] 1 2 3 1 2 3 1 2 3

Levels 1 lt 2 lt 3

gt ordinalna spremenljivka

gt factor(rep(13times=3)ordered=TRUElevels=c(312))

[1] 1 2 3 1 2 3 1 2 3

Levels 3 lt 1 lt 2

gt drugacen vrstni red kategorij

gt factor(rep(13times=3)ordered=TRUElevels=c(312)

labels=c(cab))

[1] a b c a b c a b c

Levels c lt a lt b

gt drugacen vrstni red kategorij z imeni

gt imena smo nastavili tako da a predstavlja 1

gt f1lt-factor(rep(13times=3)levels=13labels=c(abc))

gt factor(f1ordered=TRUElevels=c(cab))

[1] a b c a b c a b c

Levels c lt a lt b

gt v 2 korakih a morda bolj razumljivo

134 Seznam

Seznam (ang oziroma v R-ju list) je posebna oblika vektorja kjer so elementilahko karkoli (katerikoli elementi se pravi posamezna stevila vektorji matrike po-datkovni okvirji seznami celo funkcije)

28 13 Podatkovne strukture

Ustvarimo jih s funkcijo list ali tako da s funkcijo c skupaj zlepimo sezname Doposameznih elementov dostopamo tako da njihove indekse ali imena navedemo meddvojne oglate oklepaje ndash [[]] Ce navedemo imena ali indekse v enojnih oglatihoklepajih [] potem je rezultat nov seznam z izbranimi elementi (tudi ce izberemosamo enega)

Ce imajo elementi imena lahko do njih dostopamo tudi tako da za imenom seznamanapisemo znak za dolar $ ki mu sledi ime elementa

Na seznamih sta zelo uporabni sestrski funkciji lapply in sapply Obe funkcijiposkusata neko funkcijo (ki jo podamo kot argument) uporabiti na vseh elementihseznama Razlika je v tem da poskusa sapply poenostaviti rezultat (v vektor alimatriko) lapply pa vedno vrne seznam

gt llt-list(a=c(upsabc)b=15c=list(aa=abb=57)d=list)

gt zdruzili smo razlicne elemente - zadnji je funkcija list

gt

gt l[[a]] izberemo 1 element - vektor

[1] ups abc

gt l[[1]] enako

[1] ups abc

gt l[a] naredimo seznam ki ima samo 1 element starega

$a

[1] ups abc

gt l[1] enako

$a

[1] ups abc

gt l[13] izberemo prve 3 elemente

$a

[1] ups abc

$b

[1] 1 2 3 4 5

$c

$c$aa

[1] a

$c$bb

[1] 5 6 7

gt l[[13]] ne deluje - oziroma ima drugacno funkcijo

gt

gt

gt l[[c]][[2]][1]

1 poglavje ndash Uvod v R 29

[1] 5

gt izbrali smo 3 element (c) osnovnega seznama

gt ki pa je tudi seznam

gt v tem seznamu smo izbrali 2 element ki je vektor

gt v vektorju smo izbrali 1 element (stevilko 5)

gt l[[3]][[2]][1] enako

[1] 5

gt l[[3]][[2]] izberemo 2 element v 3 elementu

[1] 5 6 7

gt l[[32]] tokrat deluje in je enako kot zgoraj

[1] 5 6 7

gt mocno odsvetujem

gt

gt l$a ce imamo imena lahko uporabimo tudi ta nacin

[1] ups abc

gt l$c$aa deluje tudi v vec stopnjah

[1] a

gt xlt-l$d(346) ce je element seznama funkcija jo

gt lahko tudi uporabimo

gt x

[[1]]

[1] 3

[[2]]

[1] 4

[[3]]

[1] 6

gt l da se spomnimo kaj je l

$a

[1] ups abc

$b

[1] 1 2 3 4 5

$c

$c$aa

[1] a

$c$bb

[1] 5 6 7

30 13 Podatkovne strukture

$d

function () Primitive(list)

gt lapply(lFUN=length) izracunamo dolzino vseh elementov

$a

[1] 2

$b

[1] 5

$c

[1] 2

$d

[1] 1

gt zdaj smo dobili seznam

gt

gt sapply(lFUN=length) sapply vrne vektor

a b c d

2 5 2 1

gt to je mogoce ker so bili vsi elementi posamezna stevila

gt paziti je treba da je funkcija taka da se jo da

gt uporabiti na vseh elementih

135 Matrika

Matrika je pravzaprav vektor (katerekoli oblike razen seznama) ki ima dve dimenziji(stolpce in vrstice) Do elementov dostopamo tako da v oglatih oklepajih navedemoindekse ali imena celic v obeh dimenzijah (locene z vejicami ndash [ab]) ki jih zelimoizbrati Ce zelimo v kateri dimenziji izbrati vse celice lahko indekseimena za todimenzijo izpustimo (vseeno moramo pisati vejico)

Ustvarimo jo s funkcijo matrix Spodaj je prikazan klic funkcije in v njem tudi vsiargumenti Vrednosti ki so tu pripisane argumentom so privzete vrednosti Vec opomenu argumentov lahko preberemo v pomocimatrix(data = NA nrow = 1 ncol = 1 byrow = FALSE dimnames = NULL)

Matriko lahko ustvarimo tudi tako da vektorje rdquozlepimordquoskupaj kot stolpce (funkcijacbind) ali vrstice (funkcija rbind)

gt matrix dostop do pomoci za razlago argumentov

gt Alt-matrix(data=124nrow=6) ustvarimo matriko s 6 vrsticami

gt in 4 stolpci -gt ker je 24

gt elementov v data

1 poglavje ndash Uvod v R 31

gt

gt A ustvarjena matrika

[1] [2] [3] [4]

[1] 1 7 13 19

[2] 2 8 14 20

[3] 3 9 15 21

[4] 4 10 16 22

[5] 5 11 17 23

[6] 6 12 18 24

gt A[32] izberemo 2 element v 3 vrstici

[1] 9

gt oziroma vse elemente ki so v 3 vrstici in 2 stolpcu

gt

gt A[3] izberemo 3 vrstico

[1] 3 9 15 21

gt A[2] izberemo 2 stolpec

[1] 7 8 9 10 11 12

gt A[13] izberemo prve 3 vrstice

[1] [2] [3] [4]

[1] 1 7 13 19

[2] 2 8 14 20

[3] 3 9 15 21

gt izberemo elemente ki so v 2 ali 3 vrstici in

gt v 1 ali 4 stolpcu

gt A[c(24)c(14)]

[1] [2]

[1] 2 20

[2] 4 22

gt alt-14

gt blt-25

gt Blt-cbind(ab) matrika z dvema stolpcema

gt B

a b

[1] 1 2

[2] 2 3

[3] 3 4

[4] 4 5

gt Clt-rbind(ab) matrika z dvema vrsticama

gt C

[1] [2] [3] [4]

a 1 2 3 4

b 2 3 4 5

32 13 Podatkovne strukture

R vsebuje tudi jezik za matricno racunanje Pri tem sta najpomembnejsa operatorza matricno mnozenje in funkcija solve ki omogoca izracun inverzne matrikeNekaj primerov

gt Alt-matrix(data=124nrow=6)

gt klasicno se operacije pri matriki izvajajo tako kot pri

gt vektorjih torej po elementih

gt A+2

[1] [2] [3] [4]

[1] 3 9 15 21

[2] 4 10 16 22

[3] 5 11 17 23

[4] 6 12 18 24

[5] 7 13 19 25

[6] 8 14 20 26

gt A2

[1] [2] [3] [4]

[1] 05 35 65 95

[2] 10 40 70 100

[3] 15 45 75 105

[4] 20 50 80 110

[5] 25 55 85 115

[6] 30 60 90 120

gt A2

[1] [2] [3] [4]

[1] 2 14 26 38

[2] 4 16 28 40

[3] 6 18 30 42

[4] 8 20 32 44

[5] 10 22 34 46

[6] 12 24 36 48

gt A+A

[1] [2] [3] [4]

[1] 2 14 26 38

[2] 4 16 28 40

[3] 6 18 30 42

[4] 8 20 32 44

[5] 10 22 34 46

[6] 12 24 36 48

gt AA tudi ce je operacija mnozenje

[1] [2] [3] [4]

[1] 1 49 169 361

[2] 4 64 196 400

1 poglavje ndash Uvod v R 33

[3] 9 81 225 441

[4] 16 100 256 484

[5] 25 121 289 529

[6] 36 144 324 576

gt to ni matricno mnozenje

gt

gt A(14)

[1] [2] [3] [4]

[1] 1 21 13 57

[2] 4 32 28 80

[3] 9 9 45 21

[4] 16 20 64 44

[5] 5 33 17 69

[6] 12 48 36 96

gt tako kot pri racunanju z vektorji se krajsi reciklira

gt torej se tolikokrat ponovi da doseze dolzino daljsega

gt

gt t(A) transponiramo matriko - zamenjamo vrstice in stolpce

[1] [2] [3] [4] [5] [6]

[1] 1 2 3 4 5 6

[2] 7 8 9 10 11 12

[3] 13 14 15 16 17 18

[4] 19 20 21 22 23 24

gt dim(A) ugotovimo dimenziji matrike

[1] 6 4

gt dim(t(A)) pri transponirani matriki sta ravno obrnjeni

[1] 4 6

gt A t(A) matricno mnozenje

[1] [2] [3] [4] [5] [6]

[1] 580 620 660 700 740 780

[2] 620 664 708 752 796 840

[3] 660 708 756 804 852 900

[4] 700 752 804 856 908 960

[5] 740 796 852 908 964 1020

[6] 780 840 900 960 1020 1080

gt A (14) matricno mnozenje z vektorjem

[1]

[1] 130

[2] 140

[3] 150

[4] 160

[5] 170

[6] 180

34 13 Podatkovne strukture

gt R samodejno poskrbi da je vektor ustrezen

gt (stolpicni ali vrsticni)

gt bolje je sicer ce za to poskrbimo sami

gt alt-matrix(14ncol=1) stolpicni vektor

gt A a

[1]

[1] 130

[2] 140

[3] 150

[4] 160

[5] 170

[6] 180

gt izracunamo lahko tudi inverz matrike

gt seveda samo kvadratne in take z nenicelno determinanto

gt AA lt- A t(A) naredimo kvadratno matriko

gt det(AA) izracunamo determinanto

[1] 5494284e-59

gt determinanta je prakticno nic zato te matrike ne moremo

gt uporabiti

gt

gt Blt-matrix(c(163737379)ncol=3)

gt naredimo kvadratno matriko katere determinanta ni 0

gt det(B) izracunamo determinanto

[1] -154

gt invBlt-solve(B) izracunamo inverz matrike B

gt shranili smo ga v invB

gt invB izpisemo

[1] [2] [3]

[1] 01428571 2727273e-01 -025974026

[2] 02142857 4205453e-18 -007142857

[3] -02142857 -9090909e-02 025324675

gt B invB dokaz da smo izracunali inverz

[1] [2] [3]

[1] 1000000e+00 8326673e-17 0

[2] -3053113e-16 1000000e+00 0

[3] -1387779e-16 1387779e-16 1

gt rezultat je enotska matrika

gt na diagonali so samo enice drugod povsod nicle

gt nekatere vrednosti niso 0 ampak skoraj 0 zaradi

gt nenatancnosti izracuna -gt nekaterih vrednosti v racunalniku

gt ne moremo predstaviti natancno

gt zapsmall(BinvB)

1 poglavje ndash Uvod v R 35

[1] [2] [3]

[1] 1 0 0

[2] 0 1 0

[3] 0 0 1

gt funkcija zapsmall vrednosti ki so skoraj 0 spremeni v 0

Podobno kot lahko na seznamih uporabljamo funkciji lapply in sapply lahko namatrikah uporabimo funkcijo apply Tej moramo poleg matrike in funkcije podatitudi dimenzijo (vrstice ali stolpce) na kateri zelimo funkcijo uporabiti

gt Alt-matrix(data=124nrow=6)

gt apply(X=AMARGIN=1FUN=sum) vsota po vrsticah

[1] 40 44 48 52 56 60

gt apply(X=AMARGIN=2FUN=sum) vsota po stolpcih

[1] 21 57 93 129

136 Polje ndash Array

Nadgradnja matrike je polje (ang array) Od matrike se razlikuje po tem daima poljubno stevilo dimenzij Za vec poglejte array Tudi na poljih je mogoceuporabiti funkcijo apply

137 Podatkovni okvir ndash Data frame

Podatkovni okvir je podatkovna struktura ki je obicajno najprimernejsa za shra-njevanje podatkovij Ima podobno vlogo in strukturo kot podatkovne datoteke priostalih statisticnih programih na primer SPSS-u V vrsticah so enote v stolpcih paspremenljivke oziroma rdquovektorjirdquo

Podatkovni okvirji imajo tako nekatere lastnosti matrik pa tudi nekatere lastnostiseznamov Po eni strani so podobni matrikam vendar pa lahko pri podatkovnihokvirjih stolpci hranijo razlicne tipe podatkov Se bolj so podobni seznamom sajpravzaprav so seznami kjer so vsi elementi vektorji enake dolzine Se pravi soseznami kjer je vsak element (v statisticnem smislu) neka spremenljivka

Tudi do elementov lahko dostopamo tako kot pri seznamih ali tako kot pri matrikah

Podatkovni okvir ustvarimo s funkcijo dataframe ali tako da vanj preoblikujemomatriko ali seznam (ki mora biti ustrezne oblike) s funkcijo asdataframe

gt ustvarimo nekaj vektorjev

gt generiramo vrednosti slucajno iz normalne porazdelitve

36 13 Podatkovne strukture

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt ustvarimo slucajen vektor z nestevilskimi elementi

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt izberemo vzorec s ponavljanjem velikosti 10

gt podatkilt-dataframe(x1x2x3)

gt podatki

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 c

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 10202235 a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt names(podatki) imena kot pri seznamu

[1] x1 x2 x3

gt dim(podatki) preverimo dimenzije kot pri matriki

[1] 10 3

gt colnames(podatki) preverimo imena stolpcev kot pri matriki

[1] x1 x2 x3

gt dimnames(podatki) kot pri matriki - imena stolpcev in vrstic

[[1]]

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

[[2]]

[1] x1 x2 x3

gt izbiramo stolpce

gt podatki[x1] kot pri matriki (stolpci so 2 dimenzija)

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt podatki$x1 kot pri seznamu

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt podatki[x1]

x1

1 1772191

2 1685902

3 1820382

4 1800462

1 poglavje ndash Uvod v R 37

5 1788490

6 1768851

7 1741618

8 1835689

9 1724907

10 1726332

gt kot pri seznamu - to je se vedno podatkovni okvir

gt

gt podatki[c(x1x3)]

x1 x3

1 1772191 c

2 1685902 c

3 1820382 b

4 1800462 b

5 1788490 b

6 1768851 a

7 1741618 b

8 1835689 c

9 1724907 c

10 1726332 a

gt kot pri seznamu - to je se vedno podatkovni okvir

gt podatki[[x1]] kot pri seznamu - to je zdaj vektor

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt vektor dobimo (eno samo spremenljivko ker smo uporabili

gt dvojne oglate oklepaje)

gt

gt vrstice

gt podatki[13] kot pri matriki (vrstice so 2 dimenzija)

x1 x2 x3

1 1772191 1169315 c

2 1685902 1009201 c

3 1820382 1206257 b

gt elemente

gt podatki[2x1] kot pri matriki

[1] 1685902

gt tako lahko tudi vec naenkrat

gt podatki[24c(x1x3)] kot pri matriki

x1 x3

2 1685902 c

3 1820382 b

4 1800462 b

gt podatki$x1[13] kot pri seznamu - samo v enem stolpcu naenkrat

38 14 Funkcije in programiranje

[1] 1772191 1685902 1820382

gt podatki[[x1]][13] enako na drug nacin

[1] 1772191 1685902 1820382

138 Vaje

Vaja 1

Recimo da imate sledece vrednosti 10 23 43 43 32 12

Izracunajte povprecje varianco in standardni odklon Za izracun vsote lahko upo-rabite funkcijo sum naprednejsih vgrajenih funkcij pa ne uporabljajte (za variancostandardni odklon )

Vaja 2

Recimo da imamo tri spremenljivke ndash y x1 in x2 ki imajo sledece vrednostiy 10 23 43 43 32 12x1 15 23 54 45 42 10x2 210 183 186 164 175 200

Recimo da je y odvisna spremenljivka ter da sta x1 in x2 neodvisni spremenljivkiS pomocjo matricnega racunanja izracunajte vrednosti regresijskih koeficientov na-povedanih vrednosti in vrednosti rezidualov Poskrbite da bodo vsi trije rezultativektorji (rezultat matricnega racunanja je matrika)

Vse tri rezultate shranite v seznam

Namig Matricna formula za izracun regresijskih koeficientov je

β = (XprimeX)minus1Xprimey

Matrika X mora biti sestavljena iz stolpca enic in po enega stolpca za vsako neod-visno spremenljivko Formula za izracun napovedi pa je

yprime = Xβ

14 Funkcije in programiranje

Zaporedje ukazov ki jih pogosto uporabljamo skupaj je smiselno zdruziti skupaj vfunkcijo To omogoca da jih zelo enostavno veckrat uporabimo na razlicnih podat-kih

1 poglavje ndash Uvod v R 39

141 Nekaj koristnih funkcij

Poleg statisticnih funkcij R vsebuje tudi veliko funkcij za manipulacijo s podatkiNavedimo le nekaj najpomembnejsih

sort Uredi enote (v stevilskem vektorju po velikosti)

order Vrne zaporedno stevilko vsake enote ce jih uredimo glede na dolocenvektor Zelo uporabno za rdquosortiranjerdquo podatkovnih okvirjev

naomit Iz podatkovnega okvirja izbrise vse enote (vrstice) kjer nastopajomanjkajoce vrednosti To nam omogoca da pri vseh spremenljivkah uposte-vajo iste enote

attributes Vrne lastnosti (ang rdquoattributesrdquo) nekega objekta

sample Vrne slucajen vzorec izbrane velikosti iz izbranega vektorja ali se-znama Privzeto je vzorcenje brez ponavljanja lahko pa tudi nastavimo vzor-cenje s ponavljanjem Ce zelimo lahko tudi nastavimo verjetnosti za posame-zne elemente

which Vrne indekse (zaporedne stevilke) pri katerih je vrednost izraza TRUE

(nek pogoj je izpolnjen)

Poleg funkcij so pomembni tudi operatorji ki so sicer tudi sami neke vrste funkcija

Operatorji primerjav == (je enako ndash dva enacaja) gt= lt= gt lt =(ni enako)

Operator negacije Uporablja se z logicnimi vrednostmi ndash TRUE spremeniv FALSE in obratno

in Operator vsebovanja Pove ali so elementi 1 vektorja vsebovani v 2elementu

gt x1 lt- podatki$x1

gt x1 prvotna razporeditev

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt sort(x1) vrednosti urejene po velikosti narascajoce

[1] 1685902 1724907 1726332 1741618 1768851 1772191

[7] 1788490 1800462 1820382 1835689

gt sort(x1 decreasing = TRUE) urejene po velikosti padajoce

[1] 1835689 1820382 1800462 1788490 1772191 1768851

[7] 1741618 1726332 1724907 1685902

gt order(x1) zaporedne st v takem vrstnem redu

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

gt da bi bile vrednosti urejene po velikosti

gt x1[order(x1)] enak rezultat kot sort(x1)

40 14 Funkcije in programiranje

[1] 1685902 1724907 1726332 1741618 1768851 1772191

[7] 1788490 1800462 1820382 1835689

gt podatki originalni vrstni red

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 c

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 10202235 a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt podatki[order(podatki$x3)]

x1 x2 x3

6 1768851 10202235 a

10 1726332 11636876 a

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

7 1741618 8816272 b

1 1772191 11693152 c

2 1685902 10092010 c

8 1835689 8434124 c

9 1724907 9802423 c

gt podatki urejeni po velikosti x3 (abc)

gt podatki[order(podatki$x3podatki$x1)]

x1 x2 x3

10 1726332 11636876 a

6 1768851 10202235 a

7 1741618 8816272 b

5 1788490 9900317 b

4 1800462 10295941 b

3 1820382 12062572 b

2 1685902 10092010 c

9 1724907 9802423 c

1 1772191 11693152 c

8 1835689 8434124 c

gt podatki urejeni najprej glede na x3

gt znotraj kategorij x3 pa glede na x1

gt

gt podatkiNAlt-podatki skopiramo podatke

1 poglavje ndash Uvod v R 41

gt dodajmo v podatke manjkajoce vrednosti NA

gt podatkiNA[3x1]lt-NA

gt podatkiNA[6x2]lt-NA

gt podatkiNA[2x3]lt-NA

gt podatkiNA[3x2]lt-NA

gt podatkiNA podatki z manjkajocimi vrednostmi

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 ltNAgt

3 NA NA b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 NA a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt podatkiNAomitlt-naomit(podatkiNA)

gt odstranimo podatke z manjkajocimi enotami

gt podatkiNAomit

x1 x2 x3

1 1772191 11693152 c

4 1800462 10295941 b

5 1788490 9900317 b

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt attributes(podatkiNAomit)$naaction

2 3 6

2 3 6

attr(class)

[1] omit

gt informacija o tem katere vrstice smo odstranili

gt

gt sample(x=1100size=5)

[1] 94 55 41 83 23

gt slucajni vzorec 5 enot iz vektorja 1100 brez ponavljanja

gt sample(x=15size=5) permutacija (ker porabimo vse enote)

[1] 4 3 1 5 2

gt abclt-c(abc)

gt sample(x=abcsize=10replace=TRUE) vzorec s ponavljanjem

[1] c b c b a a b a b c

42 14 Funkcije in programiranje

gt sample(x=abcsize=10replace=TRUE prob=c(060202))

[1] a a b c b a c a c c

gt vzorec s ponavljanjem - razlicne verjetnosti izbora

gt

gt abclt-c(abc)

gt rep(abctimes=3) vektor ponovimo 3-krat

[1] a b c a b c a b c

gt rep(abceach=3) vsak element ponovimo 3-krat

[1] a a a b b b c c c

gt rep(abceach=3times=2)

[1] a a a b b b c c c a a a b b

[15] b c c c

gt vsak element ponovimo 3-krat vektor 2-krat

gt

gt

gt xlt-sample(x=abcsize=10replace=TRUE prob=c(060202))

gt x

[1] b b c a a a c c a a

gt which(x==a) na katerih mestih so a-ji

[1] 4 5 6 9 10

gt x[which(x==a)]

[1] a a a a a

gt x in c(bc)

[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

[10] FALSE

gt (x==a) enako

[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

[10] FALSE

Poleg zgornjih je treba omeniti se funkcije za generiranje psevdoslucajnih stevil Rvsebuje mnogo funkcij za generiranje slucajnih vrednosti iz razlicnih porazdelitevNaj omenimo samo najpomembnejse

rnorm normalna porazdelitev

runif enakomerna porazdelitev

rbinom binomska porazdelitev

rbeta beta porazdelitev (zelo fleksibilna)

rexp eksponentna porazdelitev

rf F porazdelitev

rt t porazdelitev

r Se kar nekaj drugih porazdelitev Ime funkcije se vedno zacne z rdquorrdquo sledioznaka (ime ali okrajsava) za porazdelitev

1 poglavje ndash Uvod v R 43

Vse zgoraj navedene funkcije kot prvi argument sprejmejo n ki pove koliko stevilzelimo generirati Poleg tega kot dodatne argumente sprejmejo parametre porazde-litve Pozor Porazdelitvene funkcije so lahko definirane drugace kot ste navajeni

Vse zgoraj navedene funkcije imajo tudi rdquosestrerdquo ki se namesto z rdquorrdquo zacnejo z

d funkcija gostote

p (kumulativna) porazdelitvena funkcija

q kvantilna funkcija ndash vrne vrednost ki pripada dolocnem kvantilnem rangu

Pomembna je tudi funkcija setseed kjer lahko nastavimo seme (koristno ce bi sekdaj zeleli generirati enake vrednosti)

Spodaj je nekaj primerov za generiranje slucajnih stevil iz razlicnih porazdelitev

gt setseed(1)

gt rnorm(n=5)

[1] -06264538 01836433 -08356286 15952808 03295078

gt 5 slucajnih stevil iz standardizirane normalne porazdelitve

gt rnorm(n=5 mean=10sd=2) drugacno povprecje in sd

[1] 8359063 10974858 11476649 11151563 9389223

gt rexp(n=10rate=05) 10 stevil iz eksponentne porazdelitve

[1] 0294092 2781470 1524060 2475207 8847868 2109086

[7] 2070488 3752070 1309493 0673867

gt rbeta(n=5 shape1=1shape2=1)

[1] 02057601 02762891 01790537 02170672 04702804

gt kovanec vrzemo 100-krat

gt predvidevamo da je posten (prob=05)

gt kolikokrat pade cifra

gt poskus ponovimo 10-krat

gt rbinom(n=10 size=100 prob=05)

[1] 46 56 50 52 42 44 49 54 39 52

142 Definiranje funkcij

Funkcija je zaporedje ukazov ki se izvrsi na vhodnih parametrih (ce jih funkcijaima) Funkcija lahko kaj vrne ni pa nujno Osnovna sintaksa funkcije jeime_funkcije lt-function(argumenti)

izraz1izraz2izraz3return(nek_objekt)

44 14 Funkcije in programiranje

Izrazi so lahko katerikoli veljavni R izrazi Ukaz return ni nujen Ce ukaza return

ni funkcija vrne rezultat zadnjega izracuna Ce zelimo da funkcija ne vrne nicesar(ce jo uporabljamo zaradi rdquostranskih ucinkovrdquo kot je na primer risanje pisanje vdatoteko ) potem moramo eksplicitno napisati return(NULL) Funkcija se vednozakljuci pri ukazu return (ce ta obstaja) Karkoli za njim se ne izvede

Argumente navedemo tako da navedemo njihova imena Ce jim zelimo pripisati tudiprivzete vrednosti (le-te se uporabijo ce ob klicu ne navedemo drugih) navedemoargumente kot

ime1=privzeta_vrednost1 ime2=privzeta_vrednost2 itd

Poseben argument je tudi argument rdquordquo Ce vsebuje funkcija ta argument sprejmetudi katerikoli argument ki ni eksplicitno naveden v definiciji funkcije uporablja pase predvsem za posredovanje argumentov funkcijam znotraj funkcije

V funkciji seveda lahko uporabimo tudi druge funkcije in tudi funkcijo ki jo pisemoSlednje je lahko zelo mocno orodje a tudi zelo nevarno (nujna je uporaba pogojev)

gt funkcija ki izracuna ploscino kroga

gt plKrogalt-function(r)

Funkcija ima samo en argument in sicer polmer kroga

Zamiki niso potrebni je pa koda tako preglednejsa

pllt-pir^2 pi je vrednost konstante pi

return(pl) Ta vrstica pravzaprav ni nujna

saj funkcija tudi sicer vrne pl

ker je to rezultat zadnjega izracuna

je pa to dobra praksa

gt plKroga(10) poklicemo funkcijo

[1] 3141593

gt rezultat lahko tudi shranimo

gt plR10lt-plKroga(10)

gt plR10

[1] 3141593

143 Programski tok

Pri kateremkoli programu je zelo pomembno usmerjanje programskega toka

V ta namen so v R-ju na voljo sledeci ukazi

if Pogojni stavek Telo stavka se izvrsi ce je pogoj izpolnjen oziroma ce je vrednostpogoja TRUE Ukaz ima oblikoif(pogoj)izraz1 else izraz2

1 poglavje ndash Uvod v R 45

pogoj je nekaj kar ima kot rezultat TRUE ali FALSE Ce je vrednost pogojaTRUE se izvede izraz1 sicer pa izraz2 Pozor R smatra 0 kot FALSE vseostale stevilke pa kot TRUEelse del ni obvezen Ce ga ni se v primeru da je vrednost pogoja FALSE neizvede nic

while Pogojno ponavljanjezanka Telo stavka se ponavlja dokler je pogoj izpol-njen oziroma dokler je vrednost pogoja TRUE Ukaz ima oblikowhile(pogoj)izraz

repeat Neskoncno ponavljanje oziroma neskoncna zanka Telo stavka se ponovidokler znotraj ne naleti na ukaz break (glejte naprej) Ukaz ima oblikorepeatizraz

Opozorilo

Ukaz repeat je zelo nevaren Nujno moramo v izraz zapisati ukaz breaksicer dobimo neskoncno zanko (smrt vsakega programa)

for Ponavljanjezanka preko zaporedja Telo stavka se ponavlja tolikokrat dazanka rdquoobdelardquo vse elemente zaporedja Ukaz ima oblikofor(spremenljivka in zaporedje) izrazizraz se ponavlja dokler spremenljivka ne pride cez vse elemente zaporedjaZanka se torej ponovi tolikokrat kolikor je elementov zaporedjaspremenljivka ima v vsaki ponovitvi drugacno vrednost vrednost naslednjegaelementa iz zaporedjazaporedje je ponavadi nek vektor (lahko tudi seznam) zelo pogosto kar rezultatfunkcije seq oziroma izraza ab

break Prekinitev zanke Ukaz se uporablja le znotraj zank in sprozi takojsnjo pre-kinitev zanke

next Naslednji Ukaz se uporablja le znotraj zank in sprozi zacetek naslednje po-novitve (trenutna ponovitev se na mestu ukaza konca)

Uporaba ukazov break in next je smiselna le znotraj if stavka (ko se ukaza izvedetale pod dolocenim pogojem) saj zanka sicer nima smisla

gt xlt-1

gt if(x==1)print(ok)elseprint(ups)

[1] ok

gt pogoj je bil izpolnjen zato se izpise ok

gt

gt xlt-2

gt if(x==1)print(ok)elseprint(ups)

[1] ups

46 14 Funkcije in programiranje

gt pogoj ni bil izpolnjen zato se izpise ups

gt

gt for(i in 15)

print(i)

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt xlt-1

gt while(xlt=5)

print(x)

xlt-x+1

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt xlt-1

gt repeat

print(x)

xlt-x+1

if(xgt5) break

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt for(i in 15)

if(i2==0) next

print(i)

[1] 1

[1] 3

[1] 5

1 poglavje ndash Uvod v R 47

144 Vaje

Vaja 1

Za probleme iz vaj v prejsnjem podpoglavju (podpoglavje Podatkovne strukturepodpodpoglavje 138 na strani 38) napisite funkcije tako da jih bo moc uporabitina poljubnem stevilu enot Prikazite uporabo

Vaja 2

Z uporabo zank napisite funkcijo za izracun vsote vseh elementov vektorja

Vaja 3

Napisite funkcijo ki izracuna fakulteto poljubnega naravnega stevila Poskusitenapisati funkcijo z zankami in z uporabo rekurzivne funkcije (funkcije v funkciji)

Namig Fakulteto stevila izracunamo po naslednji funkciji

n = n middot (nminus 1) middot (nminus 2) middot middot middot 2 middot 1 =nprodk=1

k = n middot (nminus 1)

Pozor Fakulteta hitro postane zelo veliko stevilo zato funkcije preizkusajte namanjsih stevilih (recimo do 10)

Vaja 4

Napisite funkcijo za izracun mediane

Namig 1 Za ureditev enot po vrsti lahko uporabite funkcijo sort

Namig 2 Za ugotovitev ali je stevilo enot sodo ali liho pride prav operator kivam vrne ostanek pri deljenju

15 Delo z datotekami

Nekaj dela z datotekami (shranjevanje in nalaganje delovnega okolja in zgodovine)smo ze obdelali v podpodpoglavju 125 Tu pa si bomo pogledali predvsem funkcijeza branje in pisanje podatkov

48 15 Delo z datotekami

151 Tekstovne datoteke

Tekstovne datoteke so datoteke ki jih lahko beremo z urejevalniki besedila (naprimer TextPad Notepad Notepad++ ) in ne z urejevalniki dokumentov kotso Microsoft (Office) Word ali OpenOfficeorg Writer Ponavadi so podatki urejenitako da so v stolpcih spremenljivke v vrsticah pa enote Stolpci so loceni z nekimznakom ki je lahko tabulator (t) podpicje () vejica () presledek ( )

Za branje tekstovnih datotek se najpogosteje uporablja funkcija readtable innjene izpeljanke Izpeljanke so identicne originalni funkciji le da imajo drugacneprivzete vrednosti ki so primerne za branje dolocenih formatov tekstovnih dato-tek Predvsem se pogosto uporabljata funkciji (za ostale glejte pomoc za funkcijoreadtable)

readcsv2 Za branje datotek rdquocsvrdquo Na koncu imena je rdquo2rdquo ker je to verzija zadatoteke rdquocsvrdquo ki za locilo uporabljajo podpicje () vejico () pa za decimalnolocilo kot je standard pri nas Obstaja tudi verzija brez koncnice rdquo2rdquo kisledi ameriskemu standardu Take datoteke znajo brati in pisati programi zadelo s preglednicami na primer Excel Tak program je obicajno tudi privzetiprogram za odpiranje takih datotek

readdelim2 Za branje datotek ki so locene z tabulatorjem (t) Na koncu imenaje rdquo2rdquo ker je to verzija za datoteke ki za decimalno locilo uporabljajo vejico() kot je standard pri nas Obstaja tudi verzija brez rdquo2rdquo ki sledi ameri-skemu standardu Tudi take datoteke znajo brati in pisati programi za delo spreglednicami na primer Excel

Funkcija readtable in njene izvedenke kot glavni argument sprejmejo ime datoteke(s potjo ce je potrebno) vrnejo pa podatkovni okvir Imajo se vrsto argumentov skaterimi je mogoce dolocati kako se obravnavajo znakovne spremenljivke kodiranje

Sedaj bomo prebrali tekstovno datoteko rdquoizborESSn30txtrdquo Njenih prvih nekaj vr-stic je videti takole

spol izobrazba kraj placa

1 zenski 12 kmetija 170

2 moski 12 manjse mesto 140

3 moski 11 manjse mesto 130

4 zenski 14 predmestje 150

V 1 vrstici so imena spremenljivk v 1 stolpcu pa rdquoimenardquo vrstic Prva vrstica(imena spremenljivk) se zacne kar s prvo spremenljivko (in ne z imenom stolpca zaimena vrstic) kar funkcija readdelim (obe verziji saj se razlikujeta le v decimal-nem locilu) tudi pricakuje Stolpci so loceni s tabulatorjem ceprav to iz zgornjegazapisa ni vidno v boljsih urejevalnikih besedila pa je mogoce nastaviti da so vidni

1 poglavje ndash Uvod v R 49

Narekovaji okoli nenumericnih spremenljivk sicer niso nujni (kadar so vrednosti locenes tabulatorji) so pa priporocljivi

gt izborlt-readdelim(file=izborESSn30txt)

gt izbor[14] izpisemo samo zgornje vrstice

spol izobrazba kraj placa

1 zenski 12 kmetija 170

2 moski 12 manjse mesto 140

3 moski 11 manjse mesto 130

4 zenski 14 predmestje 150

gt sapply(izborclass) pogledamo tipe spremenljivk

spol izobrazba kraj placa

factor integer factor integer

Ko smo prebrali podatke smo izpisali tipe spremenljivk Nenumericne spremenljivkeso v R-ju postale spremenljivke tipa factor Ce tega ne zelimo ce zelimo daso tipa character lahko to spremenimo z argumentom stringsAsFactors ki ganastavimo na FALSE

Za pisanje tekstovnih datotek se najpogosteje uporablja funkcija writetable innjene izpeljanke (writecsv in writecsv2)

Podatki ki jih zelimo zapisati s funkcijo writetable morajo biti v obliki matrikeali podatkovnega okvirja

Za bolj splosno branje tekstovnih datotek (v obliki tabel) se uporablja funkcija scanza pisanje takih datotek pa funkcija cat Za vec informacij glejte njuno pomoc

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt in se eno nenumericno

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt izberemo vzorec s ponavljanjem velikosti 10

gt podatkilt-dataframe(x1x2x3)

gt writetable(x=podatki file=podatkitxt sep = t

dec = rownames = FALSE)

gt sep = t - locilo stolpcev je tabulator

gt dec = - decimalno locilo je vejica

gt rownames = FALSE - imena vrstic ne shranimo

gt tako datoteko lahko preberemo z readdelim2

50 15 Delo z datotekami

152 Shranjevanje in branje objektov

Za shranjevanje R-jevih objektov je najprimernejsa funkcija save Je zelo podobnafunkciji saveimage ki smo jo spoznali v podpodpoglavju 125 Razlika je le v temda funkcija save shrani le izbrane objekte saveimage pa vse objekte v delovnemokolju

Objekte ki jih shranimo s funkcijo save lahko preberemo s funkcijo load niso paprimerni za branje z drugimi programi ali z urejevalniki besedila Obicajno damodatotekam koncnico RData

gt save(podatki file=podatkiRdata)

gt rm(podatki)

gt ls() objekta podatki ni vec

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] l n plKroga

[19] plR10 podatkiNA podatkiNAomit

[22] x x1 x2

[25] x3

gt load(file=podatkiRdata)

gt podatki so spet na voljo

x1 x2 x3

1 1742265 9081960 b

2 1808787 10511680 a

3 1798966 8305955 c

4 1711787 12149536 b

5 1710475 12970600 b

6 1785521 9449168 a

7 1813797 8433798 a

8 1752136 10854579 b

9 1821678 9797418 b

10 1787867 13602427 a

Drug nacin ki pa ne deluje dobro pri cisto vseh objektih je uporaba funkcije dump zapisanje in source za branje Funkcija dump poskusa predstaviti objekt z besedilomin to besedilo zapisati v tekstovno datoteko Deluje vedno kadar je mogoce objektpredstaviti z besedilom Ta nacin je posebej primeren za shranjevanjenalaganjefunkcij funkcija source pa tudi za nalaganje kode ki smo jo na primer napisali vurejevalniku besedila Obicajno damo datotekam koncnico R

Funkcija dump je uporabna tudi ko zelimo videti predstavitev objekta z besedilom

1 poglavje ndash Uvod v R 51

gt kvadratlt-function(x)x^2

gt ls()

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] kvadrat l n

[19] plKroga plR10 podatki

[22] podatkiNA podatkiNAomit x

[25] x1 x2 x3

gt dump(list=c(podatkikvadrat) file=raznoR)

gt rm(list=c(podatkikvadrat))

gt ls() objektov podatki in kvadrat ni vec

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] l n plKroga

[19] plR10 podatkiNA podatkiNAomit

[22] x x1 x2

[25] x3

gt source(file=raznoR)

gt ls() pa sta nazaj

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] kvadrat l n

[19] plKroga plR10 podatki

[22] podatkiNA podatkiNAomit x

[25] x1 x2 x3

153 Branje in pisanje datotek drugih programov

R vsebuje tudi paketek ( foreign) ki omogoca branje in pisanje datotek drugih sta-tisticnih programov Tako med drugim bere podatke iz formata sledecih programov

bull SPSS

bull Stata

52 15 Delo z datotekami

bull SAS

bull Weka

bull Octave

bull Minitab

Zaradi razsirjenosti SPSS-a v druzboslovju v tem ucbeniku najveckrat uporabljamfunkcijo readspss ki omogoca branje SPSS-ovih datotek obstajajo pa tudi po-dobne funkcije za ostale popularne statisticne programe (glejte zgoraj)

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign)

gt preberemo podatke

gt egolt-readspss(egoomr00_f2savtodataframe=TRUE

usevaluelabels = FALSEusemissings=TRUE)

gt ego[1319] izpisemo prve tri enote in prvih 9 spremenljivk

EGOID Q1A Q2A Q3A Q4A DQ1A DQ2A DQ3A DQ4A

1 1001 5 NA 5 NA 4 NA 4 NA

2 1003 5 6 6 6 5 6 6 6

3 1004 6 3 5 5 6 NA 5 5

Najpomembnejsi argumenti funkcije readspss so

todataframe Ce ga nastavimo na TRUE bo rezultat funkcije podatkovni okvir(kar ponavadi zelimo) sicer pa seznam (privzeta vrednost)

usevaluelabels Ali naj R uposteva opise vrednosti (rdquovalue labelsrdquo) iz SPSS-ove datoteke Ce ga nastavimo na TRUE potem bodo vse spremenljivke kiimajo nastavljene opise vrednosti obravnavane kot faktorji torej kot nomi-nalne spremenljivke Ne glede na vrednost argumenta se opisi vrednosti shra-nijo v rdquoattributerdquo z imenom rdquovalue labelsrdquo Do njih lahko dostopamo prekoukaza attr(xvaluelabels) kjer je x spremenljivka (npr ego$E_SPOL)za katero zelimo prebrati opise Ce smo uporabili usevaluelabels=FALSEje za spremembo spremenljivke v faktor uporabna funkcija makeFactorLabels

iz datoteke rdquoUcbenikR-funkcijeRrdquo

maxvaluelabels Argument je uporaben le kadar je usevaluelabels=TRUEV tem primeru lahko tudi nastavimo koliko razlicnih vrednosti ima lahkospremenljivka (v podatkih) da se se uporabijo opisi ndash da se spremenljivkaobravnava kot nominalna spremenljivka

usemissings Ali naj se upostevajo kode za manjkajoce vrednosti Ce je TRUE sevse SPSS-ove rdquouporabniske manjkajoce vrednostirdquopretvorijo v NA OpozoriloTa pretvorba ne deluje vedno v redu zato je dosti varneje ce uporabniskemanjkajoce vrednosti pretvorimo v sistemske manjkajoce vrednost v SPSS-u

1 poglavje ndash Uvod v R 53

V tem ucbeniku beremo vse podatke iz SPSS-ovega formata Razlog za izbor tegaformata je predvsem v razsirjenosti uporabe tega formata in tudi samega programaSPSS na Fakulteti za druzbene vede Univerze v Ljubljani pa tudi v obstoju odpr-tokodnega programa PSPP (httpwwwgnuorgsoftwarepspp) ki omogocabranje in pisanje podatkov v tem formatu Seveda pa je moc podatke iz ADP pre-nesti tudi v drugih formatih in jih prebrati v R Vecina ukazov v primerih v temucbeniku bo delovala neodvisno od izvornega zapisa vendar pa mora uporabnik vtem primeru sam poskrbeti za dostop do dolgih imen spremenljivk ter imen vredno-sti spremenljivk Funkcija makeFactorLabels denimo ne bo vec delovala Vendarpa njena uporaba v nekaterih primerih niti ni potrebna na primer pri branju izStatinega (dta) formata

V nadaljevanju sledi se primer branja podatkov is Statinega formata (dta) Pre-brali bomo enake podatke kot so uporabljeni v uvodnem primeru oziroma zgornjemprimeru za branje s funkcijo readspss le da smo te podatke iz ADP-ja prenesliv Statinem formatu Tokrat bomo uporabili funkcijo readdta ki je za uporabose preprostejsa saj obicajno zelen rezultat dobimo ze s privzetimi vrednostmi ar-gumentov Tako izpostavimo le argument convertfactors ki nadzoruje ali najse stevilske spremenljivke z opisi vrednosti shranijo kot faktorji Privzeta vrednostTRUE kot faktorje shrani tiste spremenljivke ki imajo definirane opise za vse vre-dnosti Pri vrednost FALSE se nobena spremenljivka ne shrani kot faktor (kot prireadspss pri vrednosti usevaluelabes=FALSE) pri vrednosti NA pa se vse spre-menljivke ki imajo za vsaj kaksno vrednost definiran opis shranijo kot faktorji (kotpri readspss pri vrednosti usevaluelabes=TRUE) Funkcija readdta vrnepodatkovni okvir Dolga imena spremenljivk so shranjena v atributu varlabels

vrnjenega podatkovnega okvirja opisi vrednosti spremenljivk pa v atributu la-

beltable

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign) ni potrebno ker bi moral biti ze nalozen

gt preberemo podatke s privzetimi nastavitvami

gt ki so obicajno primerne

gt egoStatalt-readdta(egoomr00_f2dta)

gt egoStata[1319]

EGOID Q1A Q2A

1 1001 precej zadovoljen-a ltNAgt

2 1003 precej zadovoljen-a zelo zadovoljen-a

3 1004 zelo zadovoljen-a malo nezadovoljen-a

Q3A Q4A

1 precej zadovoljen-a ltNAgt

2 zelo zadovoljen-a zelo zadovoljen-a

3 precej zadovoljen-a precej zadovoljen-a

DQ1A DQ2A DQ3A

54 15 Delo z datotekami

1 malo zadovoljen-a ltNAgt malo zadovoljen-a

2 precej zadovoljen-a zelo zadovoljen-a zelo zadovoljen-a

3 zelo zadovoljen-a ltNAgt precej zadovoljen-a

DQ4A

1 ltNAgt

2 zelo zadovoljen-a

3 precej zadovoljen-a

gt izpisemo prve enote in prvih 9 spremenljivk

gt

gt preberemo ponovno - tokrat brez pretvorbe v faktorje

gt egoStata2lt-readdta(egoomr00_f2dta convertfactors=FALSE)

gt egoStata2[1319]

EGOID Q1A Q2A Q3A Q4A DQ1A DQ2A DQ3A DQ4A

1 1001 5 NA 5 NA 4 NA 4 NA

2 1003 5 6 6 6 5 6 6 6

3 1004 6 3 5 5 6 NA 5 5

gt zopet izpisemo prve tri enote in prvih 9 spremenljivk

gt

gt attributes(egoStata2)$varlabels[13]

[1] ID ega

[2] zadovoljstvo z materialno oporo-1merjenje

[3] zadovoljstvo z informacijsko oporo-1merjenje

gt attributes(egoStata2)$labeltable[13]

$Q1A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

$Q2A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

$Q3A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

1 poglavje ndash Uvod v R 55

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

Za pisanje datotek ki jih zelimo uvoziti v SPSS bi sicer glede na opis funkcije lahkouporabili funkcijo writeforeign z argumentom package = rsquoSPSSrsquo Ta funkcijagenerira dve tekstovni datoteki podatkovno in datoteko s sintakso Vendar paSPSS pri branju zal javi napako Tudi ce bi postopek deloval je lazje zapisatidatoteko v formatu programa Stata s funkcijo writedta saj lahko ta format uvozitudi SPSS

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt podatkilt-dataframe(x1x2x3)

gt library(foreign) ni potrebno ker bi moral biti ze nalozen

gt writedta(dataframe=podatki file=podatkidta)

154 Vaje

Vaja 1

Ustvarite podatkovno datoteko rdquocsvrdquo (recimo v Excel-u) V datoteko vpisite vsaj10 enot in vsaj 4 spremenljivke (vsaj eno numericno in eno nominalno opisno)Datoteko si oglejte tudi z urejevalnikom besedila Datoteko preberite z R-jem

Vaja 2

Poljubne podatke shranite v tekstovno datoteko in jo potem poglejte v urejevalnikubesedila in programu za delo s preglednicami Lahko izberete tudi podatke ki sodostopni v R-ju preko funkcije data (napisite data() za seznam podatkovij)

Vaja 3

Uvozite podatke iz poljubne SPSS-ove datoteke Poskrbite da boste dobili podat-kovni okvir in da bodo uporabniske manjkajoce vrednosti opredeljene kot manjka-joce

56 16 Risanje

Vaja 4

Podatke iz Vaje 2 (ali kaksne druge) izvozite tako da jih boste lahko odprli z SPSS-om Med podatki naj bo vsaj ena spremenljivka tipa factor Podatke odprite zSPSS-om So pri spremenljivki tipa factor (v R-ju) vidni opisi vrednosti v SPSS-u

16 Risanje

R ima zelo dobro podprto grafiko oziroma risanje grafov Za vpogled v to kaj vse jemogoce narisati z R-jem in tudi za ideje kako kaj narediti sta zelo koristni stranirdquoR Graphical Manualrdquo (httpbm2genesnigacjpRGM2 in rdquoR graph galleryrdquohttpaddictedtorfreefrgraphiques

161 Visokonivojske funkcije za risanje

Visokonivojske funkcije za risanje so tiste ki ustvarijo nov graf Kasneje bomospoznali tudi nizkonivojske ki le dodajo elemente na obstojeci graf Locnica medvisoko- in nizko-nivojskimi funkcijami sicer ni ostra saj se nekatere funkcije lahkouporabljajo v obeh vlogah

Osnovna funkcija za risanje v R-ju je plot Delovanje funkcije se razlikuje glede natip objekta ki ji ga posredujemo kot argument Funkcija namrec poskusa pripra-viti graf ki je primeren vhodnemu argumentu Tu ne bomo mogli pregledati vsehmoznosti zato navajam le nekaj primerov

gt uporabimo podatke iz izborESSn30txt

gt izborlt-readdelim(file=izborESSn30txt)

gt sapply(izborclass) ponovimo kaksne tipe podatkov imamo

spol izobrazba kraj placa

factor integer factor integer

gt plot(izbor$placa)

gt na y osi je placa na x pa indeksi (zaporedne stevilke enot)

gt plot(izbor$placatype=o)

gt plot(izbor$spol) strukturni stolpci ker je spol nominalka

gt plot(placa~spoldata=izbor) skatlasti grafikon (z zavihki)

gt plot(spol~placadata=izbor) porazdelitev po razredih

gt plot(kraj~spoldata=izbor)

gt plot(placa~izobrazbadata=izbor)

gt pod data navedemo podatkovni okvir kjer se nahajajo sprem

gt razsevni grafikon - odvisnost place od izobrazbe

gt plot(placa~izobrazbadata=izbor)

1 poglavje ndash Uvod v R 57

gt plot(izbor) razsevni grafikon za vsak par spremenljivk

gt lmFitlt-lm(placa~izobrazba data=izbor) linearna regresija

gt plot(lmFit)

gt plot(placa~izobrazbadata=izborpch=asnumeric(spol)

col=spol cex=2 main = Razsevni grafion

xlab=Izobrazba v letih ylab = Placa v 1000 sit)

Kot smo videli funkcija plot vedno skusa narisati nekaj primernega tudi takrat kosmo kot argument uporabili rezultat linearne regresije Ta funkcija in vecina funk-cij za risanje sprejme vec argumentov s katerimi lahko prilagajamo risanje (glejtepredvsem daljsi primer na strani 59) Nekaj najpogostejsih

type Tip grafikona Relevantno pri razsevnih grafikonih ndash tocke crta tocke pove-zane s crto

data Iz katerega podatkovnega okvirja (ali seznama) naj uporabi podatke Pred-vsem se uporablja kadar je osnovni argument formula

main Glavni naslov

xlab ylab Ime osi x in y

pch Simbol ki naj se uporablja za risanje tock Lahko ima samo eno vrednost alipa je vrednost vektor ki za vsako tocko poda simbol

col Barva (ponavadi tocke) Podobno kot zgoraj

cex Velikost tocke Podobno kot zgoraj

xlim ylim Meje risanja na osi x in y (se nismo uporabili bomo kasneje)

Obstaja se veliko dodatnih argumentov s katerimi je mogoce po zelji prilagoditiprikaz Za pregled teh argumentov si poglejte pomoc za funkciji plotdefault inpar

Predvsem argumente slednje je treba pogosto nastaviti s klicem funkcije par predklicem izbrane funkcije Tak zelo uporaben argument je na primer argument mfrowoziroma mfcol ki nam omogoca da na eno sliko narisemo vec grafov Primer je nasliki 19 (koda sledi v naslednjem primeru)

Vseeno pa privzeti graf ni vedno tisti ki ga zelimo Poglejmo si se dodatne funkcijeza risanje grafov

hist Histogram

barplot Stoplci Pozor Za klasicne strukturne stolpce mora biti argument tabela(le-to dobimo s funkcijo table)

pie Strukturni krog Enako kot zgoraj

boxplot Skatlasti grafikon (z zavihki)

curve Risanje krivulj

58 16 Risanje

Slika 19 Strutkutna stolpca in krog na eni sliki

moski zenski

05

1015 moski

zenski

gt curve(dnorm(x)xlim=c(-44))

gt standardna normalna porazdelitev

gt

gt hist(izbor$placa) histogram - frekvence

gt hist(izbor$placa freq=FALSE) frekvence - gostota

gt boxplot(izbor$placa) ena skupina

gt boxplot(placa~spol data=izbor) dve skupini

gt par(mfrow=c(21)) spodnja 2 grafa zelimo imeti na eni sliki

gt barplot(table(izbor$spol))

gt pie(table(izbor$spol))

gt par(mfrow=c(11)) povrnemo originalne nastavitve

162 Nizkonivojske funkcije za risanje

Nizkonivojske funkcije za risanje ne ustvarijo novega grafa ampak le dodajo elementena obstojeci graf Nekaj najpomembnejsih

points lines Dodata tocke crte ali tocke povezane s crto

text Doda tekst

mtext Doda tekst na obrobeosi

axis Doda osi

title Doda naslov

legend Doda legendo

1 poglavje ndash Uvod v R 59

expression Uporabljamo ga za vnasanje matematicnih formul ali simbolov na slike5

bquote Uporablja se za vnasanje matematicnih formul ki vkljucujejo izracunanekolicine na slike (podobno kot expression)

Posebej je treba razloziti uporabo expression Vcasih zelimo na sliki izpisati tudimatematicne formule ali znake Le-te lahko uporabimo takorekoc povsod kjer lahkopisemo besedilo (na primer naslovi legende oznake osi oznake na oseh ) V temprimeru namesto besedila dolocenemu argumentu (na primer main text labels kot vrednost podamo expression Slabost tega nacina pa je da ne omogocardquomesanjardquo izracunih kolicin (recimo izracunano vrednost R2 v naslednjem primeru)in matematicnih oznak Nacin pisanja za obe moznosti je opisan v pomoci podgeslom plotmath (za dostop do pomoci torej uporabimo plotmath) je pa precejpodoben LATEX-u Primer slike z veliko dodatnimi elementi je na sliki 110

gt lmFitlt-lm(placa~izobrazba data=izbor) linearna regresija

gt maroldlt-par(mar)

gt par(mar=c(5444)+01)

gt plot(placa~izobrazbadata=izborpch=asnumeric(spol)

col=spol cex=1 main = Razsevni grafikon

xlab=Izobrazba v letih ylab = Placa v 1000 sit)

gt abline(lmFit)

gt axis(side=4 at=(28)2100239641000

labels = (28)2100)

gt mtext(text=Placa v EUR side=4line=25)

gt par(mar=marold) graficne parametre nastavimo nazaj

gt na staro vrednost

gt legend(x=5 y = 400 legend = c(moski zenski)

title=Spolpch=12col=12 xjust=0 yjust=1)

gt text(x=5 y = 300 adj=0labels=

paste(R kvadrat =round(summary(lmFit)$rsquared3)))

gt text(x=5 y = 280 adj=0

labels=expression(paste(R^2 = 0536)))

gt text(x=5 y = 260 adj=0

labels=bquote(R^2 == (round(summary(lmFit)$rsquared3))))

Poleg tega je mogoce veliko visokonivojskih funkcij uporabljati tudi za dodajanje naobstojeci graf (na primer curve hist ) tako da jim dodamo argument add=TRUE

5 Glavni rezultat funkcije je sicer da ustvari R-jev izraz ki pa se ne izvede (oziroma evalviraizracuna)

60 16 Risanje

Slika 110 Slika z veliko dodanimi elementi

5 10 15 20

100

150

200

250

300

350

400

Razsevni grafikon

Izobrazba v letih

Pla

ča v

100

0 si

t

400

600

800

1000

1200

1400

1600

Pla

ča v

EU

R

Spol

moškiženski

R kvadrat = 0536

R2 = 0536

R2 = 0536

gt hist(izbor$placa freq=FALSE) frekvence - gostota

gt curve(dnorm(xmean=mean(izbor$placa) sd=sd(izbor$placa))

add=TRUE) vrisemo normalno krivuljo

163 Shranjevanje slik

Slike narisane z R-jem je zelo enostavno shraniti v vec formatih To je moznostoriti na vec nacinov

1 Preko menija ki se odpre s klikom desnega miskinega gumba kjerkoli na slikiPreko tega menija je mogoce

(a) Shraniti slike v datoteko formata Windows metafile (WMFEMF) aliPostScript (PSEPS)

1 poglavje ndash Uvod v R 61

(b) Kopirati sliko v odlozisce v obliki bitne slike (rdquobitmaprdquo) ali v formatuWindows metafile To lahko potem s rdquoprilepirdquo oziroma rdquopasterdquo prilepite vvecino programov (na primer Word )

2 Preko funkcije savePlot je mogoce shraniti sliko iz trenutno aktivnega grafic-nega okna v enem izmed naslednjih formatov Windows metafile PNG JPEGBMP (Windows bitmap format) TIFF PostScript in PDF Tudi s pomocjote funkcije je mogoce shraniti sliko v odlozisce

3 Tako da rdquorisemordquo neposredno v datoteko oziroma na rdquonapravordquo (device) kipredstavlja datoteko Postopek je sestavljen iz sledecih korakov

(a) Odpremo izbrano napravo Za seznam razlicnih naprav (tipov dato-tek) uporabite ukaz Devices Moznosti in argumenti ki so dovoljenipri klicu funkcij ki odpirajo naprave se razlikujejo glede na vrsto na-pravedatoteke

(b) Risemo na enak nacin kot ce bi risali v odprto okno

(c) Napravo zapremo s funkcijo devoff()

Ta (tretji) nacin omogoca najvecjo fleksibilnost pri dolocanju lastnosti koncneslike (na primer kvalitete pri slikah jpg)

Recimo da zelimo narisati porazdelitve vseh spremenljivk v podatkih izbor vsakona svoj graf Te grafe zelimo shraniti v datoteke tipa png To lahko naredimo sspodnjo kodo

gt plotnumericlt-hist

gt S tem nastavimo histogram za privzeti prikaz numericnih

gt spremenljivk Tako pocetje je NEVARNO ker spreminjamo

gt privzeto obanasanje funkcije plot

gt png(filename = Slikadpngwidth = 1200 height = 1200

res=200) namesto d se bo v ime datoteke zapisala

gt zaporedna stevilka slike

gt nekaj parametrov smo nastavili po svoje

gt for(i in names(izbor)) plot(izbor[[i]]main=ixlab=i)

gt devoff()

pdf

2

gt rm(plotnumeric) Odstranimo nevarno nastavitev

Pojasnila

bull V imenu slike smo uporabili rdquodrdquo To nam omogoca da naredimo vec slik neda bi za vsako posebej klicali funkcij png in devoff Png namrec omogocale eno sliko na datoteko

62 16 Risanje

bull Ker je png nevektorski format sirino in visino podamo v tockah (pikslih)Velikost slike dolocimo z argumentom res kjer dolocimo stevilo tock na incPri vektorskih formatih (na primer pdf) sirino in visino podamo v incih

bull Na zacetku smo uporabili ukaz plotnumericlt-hist S tem smo nastavilihistogram za privzeti prikaz numericnih spremenljivk Tako pocetje je NE-VARNO saj bi nam povzrocalo probleme pri risanju razsevnih grafikonovZato smo na koncu tudi uporabili rm(plotnumeric) Ker ta funkcija prej niobstajala smo s tem povrnili prejsnje stanje

Narisimo se isto v datoteko pdf Ker pdf podpira vec strani lahko vse 4 grafenarisemo v eno datoteko

gt plotnumericlt-hist

gt pdf(file = StiriSlikepdf width = 6 height = 6)

gt nekaj parametrov smo nastavili po svoje

gt for(i in names(izbor)) plot(izbor[[i]]main=ixlab=i)

gt devoff()

pdf

2

gt rm(plotnumeric)

Opomba Pri formatih pdf eps in ps lahko velikost rdquopapirjardquo dolocamo neodvisno odvelikosti slike z argumentom papersize Privzeta vrednost je sicer da je velikostpapirja enaka velikosti slike

164 Vaje

Vaja 1

Narisite histogram za poljubno spremenljivko Vrisite tudi normalno krivuljo Glavninaslov in imena osi nastavite rocno (ne uporabite privzetih) Stolpci naj bodo modrebarve

Namig Normalno krivuljo je veliko lazje vrisati ce pri histogramu risete gostoto inne frekvenc

Vaja 2

Na eno sliko narisite 4 histograme (v 2 vrstici s po 2 stolpcema) za poljubno spre-menljivko Na vsakem histogramu uporabite drugo stevilo razredov

1 poglavje ndash Uvod v R 63

Vaja 3

Narisite razsevni grafikon za poljubni dve intervalni spremenljivki Izberite vsaj enoizmed sledecih moznosti

bull Velikost tocke naj se razlikuje glede na vrednost neke tretje razmernostnespremenljivke

bull Oblika tocke naj se razlikuje glede na vrednost neke nominalne spremenljivke

17 Priprava dokumentov z rezultati iz R-ja

R podpira vec nacinov za pripravo dokumentov z rezultati analiz Najzmogljivejsitemeljijo na konceptu ponovljive znanosti (ang rdquoreproducible researchrdquo) Pri pri-pravi tega ucbenika je uporabljen sistem Sweave (Leisch 2002) (httpwwwstatuni-muenchende~leischSweave) ki je del osnovne R-jeve distribucije Sistemomogoca da v enem dokumentu zdruzimo tekst in R-jevo kodo ter rezultate iz R-ja(izpis tabele grafi ) Osnovni sistem je bil razvit za LATEX preko paketka R2HTML

pa omogoca tudi uporabo HTML-ja Zelo podoben sistem podpira tudi paketekknitr (httpyihuinameknitr) ki ima dodatno prednost da lahko za ure-janje besedila uporablja tudi druge sisteme (ne samo LATEX) na primer HTML inMarkdown Predvsem Markdown je zelo enostaven za uporabo omogoca pa tudiizdelavo koncnega dokumenta v razlicnih formatih (Word PDF ali HTML)

Sweave sistem je mogoce uporabiti tudi preko dokumentov formata rdquoOpen Do-cument Formatrdquo oziroma rdquoODFrdquo ki jih na primer uporabljata OpenOfficeorg inLibre Office To omogoca paketek odfWeave(httpcranr-projectorgwebpackagesodfWeaveindexhtml) Prednost tega je da ne zahteva znanja LATEX-aali HTML-ja

Za uporabnike Microsoft (Office) Worda pa sta najbolj zanimiva paketeka R2wd

in rtf Prednost prvega je da omogoca vstavljanje neposredno v odprt Wordovdokument drugega pa da ne potrebuje dodatnih programov (npr Worda) in nimaz njimi povezanih omejitev sej neposredno ustvari RTF (rich text format) dokumentTako je mogoce neposredno ustvariti porocilo ali pa vanj le izvoziti tabele ki jihpotem lahko zelo enostavno prenesemo v Word

Poglejmo najprej paketek R2wd ki deluje le v povezavi z 32-bitnim Wordom Vprimeru da je namen dodajati rezultate iz R-ja v Word in ne avtomatsko generi-ranje porocil je verjetno najuporabnejsa funkcija wdTable Najbolj problematicnopri izvozu rezultatov v Word je namrec dodajanje tabel saj je osnovni R-jev izpistekstovni kar v porocilih ni videti lepo Ravno funkcija wdTable pa omogoca vsta-vljanje lepo oblikovanih tabel v Word zal pa je precej pocasna Preden pa lahkokarkoli pisemo v dokument ga moramo najprej odpreti s funkcijo wdGet

64 17 Priprava dokumentov z rezultati iz R-ja

S spodnjo kodo bomo v Word nalepili tri tabele

gt library(R2wd)

gt wdGet() odpremo nov ali obstojeci (kot argument podamo ime

gt in po potrebi pot do njega) dokument

gt vmes moramo pocakati da se dokument odpre

gt najbolj varno je da prej nimamo odprtega nobenega dokumenta

gt

gt wdTable(izbor) izvozimo tabelo (podatke) v dokument

gt tabela se pojavi na mestu kjer je kazalnik (oz kurzor)

gt

gt wdTable(table(Kraj=izbor$krajSpol=izbor$spol))

gt kontingencna tabela

gt

gt regKoeflt-summary(lm(placa~izobrazba+spoldata=izbor))$coef

gt regKoeflt-format(asdataframe(regKoef)digits=c(4441)

scien=FALSE) da bo lepsi format

gt wdTable(format(regKoef))

gt izvozimo tabelo regresijskih koeficientov

gt

gt Xlt-matrix(115ncol=3)

gt wdTable(X)

gt tole bi javilo napako

gt tabela ali matrika mora imeti definirana imena stolpcev in

gt vrstic

gt colnames(X)lt-c(abc)

gt rownames(X)lt-15

gt wdTable(X)

gt R2wd-package

gt vec pomoci o paketku

Kot lahko vidite na podlagi pomoci za paketek (R2wd-package) paketek omo-goca generiranje celotnih Wordovih dokumentov av tem ucbeniku je predstavljenle najbolj problematicen del Za vstavljanje slik sicer lahko uporabimo funkcijo wd-

Plot lahko pa tudi sliko iz R-ja enostavno skopiramo v odlozisce ali shranimo vdatoteko (glejte podpodpoglavje 163) in od tam prilepimo v Word

Poglejmo sedaj se uporabo paketka rtf Tudi tu je najbolj kljucna funkcija za iz-voz tabel funkcija addTable predstavljena pa je se uporaba funkcij addHeader zaustvarjanje naslovov in addText za vstavljanje navadnega besedila Pred obliko-vanjem dokumenta ga moramo najprej ustvariti s funkcijo RTF (ki kot argumentsprejme ime datoteke) in na koncu zapreti s funkcijo done

1 poglavje ndash Uvod v R 65

gt library(rtf)

gt rtfDoclt-RTF(testrtf) kreiramo novo datoteko in shranimo

gt dobljeni objekt

gt

gt dodamo naslov in podnaslov

gt addHeader(rtfDoctitle=Testsubtitle=Osnovni podatki)

gt addTable(rtfDocizbor)

gt addText(rtfDocTole so osnovni podatkin) dodamo tekst

gt addHeader(rtfDoctitle=NULLsubtitle=Kontingencna tabela)

gt addTable(rtfDoctable(Kraj=izbor$krajSpol=izbor$spol))

gt kontingencna tabela

gt

gt

gt regKoeflt-summary(lm(placa~izobrazba+spoldata=izbor))$coef

gt regKoeflt-format(asdataframe(regKoef)digits=c(4441)

scien=FALSE) da bo lepsi format

gt addHeader(rtfDoctitle=NULLsubtitle=Regresijski koeficienti)

gt addTable(rtfDocformat(regKoef))

gt izvozimo tabelo regresijskih koeficientov

gt

gt

gt Xlt-matrix(115ncol=3)

gt addHeader(rtfDoctitle=NULL

subtitle=Matrika brez imen stolpcev in vrstic)

gt dodajo se privzeta imena stolpcev

gt addTable(rtfDocX)

gt addText(rtfDocDodana so bila privzeta imena stolpcevn)

gt dodamo tekst

gt

gt colnames(X)lt-c(abc)

gt rownames(X)lt-15

gt addHeader(rtfDoctitle=NULL

subtitle=Matrika z imeni stolpcev in vrstic)

gt addTable(rtfDocX rownames=TRUE)

gt ce zelimo izpisati imena vrstic

gt done(rtfDoc) zapremo datoteko

gt rtf-package

gt vec pomoci o paketku

66 18 Resitve vaj

18 Resitve vaj

181 Podatkovne strukture

Vaja 1

gt xlt-c(10 23 43 43 32 12)

gt povXlt-sum(x)length(x)

gt povX

[1] 2716667

gt varXlt-sum((x - povX)^2)length(x)

gt varX

[1] 1778056

gt sdXlt-varX^(12) ali sqrt(varX)

gt sdX

[1] 1333437

gt reslt-c(povprecje=povXvarianca=varXsd=sdX)

gt res

povprecje varianca sd

2716667 17780556 1333437

Vaja 2

gt ylt-c(10 23 43 43 32 12)

gt x1lt-c(15 23 54 45 42 10)

gt x2lt-c(210 183 186 164 175 200)

gt Xlt-cbind(1x1x2)

gt blt-asvector(solve(t(X) X) t(X) y)

gt b

[1] 52819111 6240474 -0243166

gt names(b)lt-colnames(X)

gt b

x1 x2

52819111 6240474 -0243166

gt yNap lt- asvector(X b)

gt e lt- y - yNap

gt cbind(y=ynapoved=yNaprezidual=e)

y napoved rezidual

[1] 10 1111496 -11149560

[2] 23 2267282 03271824

[3] 43 4128879 17112125

1 poglavje ndash Uvod v R 67

[4] 43 4102201 19779861

[5] 32 3647505 -44750455

[6] 12 1042638 15736205

gt reslt-list(b=b napovedi=yNap rezidual=e)

gt res

$b

x1 x2

52819111 6240474 -0243166

$napovedi

[1] 1111496 2267282 4128879 4102201 3647505 1042638

$rezidual

[1] -11149560 03271824 17112125 19779861 -44750455

[6] 15736205

182 Funkcije in programiranje

Vaja 1

Resitev Vaje 1 iz podpodpoglavja 138 (podpoglavje Podatkovne struk-ture) v obliki funkcije

gt definicija funkcije

gt opisStatlt-function(x)

povXlt-sum(x)length(x)

varXlt-sum((x - povX)^2)length(x)

sdXlt-varX^(12) ali sqrt(varX)

reslt-c(povprecje=povXvarianca=varXsd=sdX)

return(res)

gt xlt-c(10 23 43 43 32 12)

gt opisStat(x)

povprecje varianca sd

2716667 17780556 1333437

Resitev Vaje 2 iz podpodpoglavja 138 (podpoglavje Podatkovne struk-ture) v obliki funkcije

gt regresijalt-function(yX)

Xlt-cbind(1X)

68 18 Resitve vaj

blt-asvector(solve(t(X) X) t(X) y)

names(b)lt-colnames(X)

yNap lt- asvector(X b)

e lt- y - yNap

reslt-list(b=b napovedi=yNap rezidual=e)

return(res)

gt ylt-c(10 23 43 43 32 12)

gt x1lt-c(15 23 54 45 42 10)

gt x2lt-c(210 183 186 164 175 200)

gt Xlt-cbind(x1x2)

gt regresija(yX)

$b

x1 x2

52819111 6240474 -0243166

$napovedi

[1] 1111496 2267282 4128879 4102201 3647505 1042638

$rezidual

[1] -11149560 03271824 17112125 19779861 -44750455

[6] 15736205

Vaja 2

gt vsotalt-function(x)

vsotalt-0

for(i in x)

vsota lt- vsota + i

return(vsota)

gt xlt-c(10 23 43 43 32 12)

gt vsota(x)

[1] 163

gt sum(x) enak rezultat

[1] 163

Vaja 3

1 poglavje ndash Uvod v R 69

gt funkcija s for zanko

gt fakForlt-function(n)

reslt-1

for(i in seq_len(n))

reslt-resi

return(res)

gt funkcija z while zanko

gt fakWhilelt-function(n)

reslt-1

while(ngt1)

reslt-resn

nlt-n-1

return(res)

gt funkcija z rekurzivno funkcijo

gt fakReklt-function(n)

if(nlt=1)

return(1)

else

return(nfakRek(n-1))

gt vse funkcije dajo seveda enak rezultat

gt fakFor(10)

[1] 3628800

gt fakWhile(10)

[1] 3628800

gt fakRek(10)

[1] 3628800

gt factorial(10) tudi R-jeva vgrajena funkcija

[1] 3628800

Vaja 4

gt medlt-function(x)

xlt-sort(x)

nlt-length(x)

if(n 2 ==0)

70 18 Resitve vaj

Slika 111 Resitev vaje 1 (Risanje)

Lep histogram

Moja spremenljivka

Gos

tota

6 8 10 12 14

000

005

010

015

return((x[n2]+x[n2+1])2)

else

return(x[ceiling(n2)])

gt xlt-c(10 23 43 43 32 12)

gt med(x)

[1] 275

183 Risanje

Vaja 1

gt setseed(2010)

gt xlt-rnorm(100mean=10sd=2)

gt hist(xcol=lightbluemain=Lep histogram

xlab=Moja spremenljivkafreq=FALSEylab=Gostota)

gt curve(dnorm(xmean=10sd=2)add=TRUExpd=NA)

Rezultat je prikazan na sliki 111

1 poglavje ndash Uvod v R 71

Vaja 2

gt setseed(2010)

gt xlt-rnorm(1000mean=10sd=2)

gt par(mfrow=c(22))

gt hist(xmain=priblizno 5 razredovfreq=FALSE

ylab=Gostota br=5)

gt hist(xmain=priblizno 10 razredovfreq=FALSE

ylab=Gostotabr=10)

gt hist(xmain=priblizno 30 razredovfreq=FALSE

ylab=Gostotabr=30)

gt hist(xmain=priblizno 50 razredovfreq=FALSE

ylab=Gostotabr=50)

gt par(mfrow=c(11))

Rezultat je prikazan na sliki 112

Vaja 3

gt setseed(2010)

gt xlt- rnorm(100mean=0sd=2)

gt ylt- x^2 +rnorm(100sd=3)

gt zlt-abs(abs(yx)^(14)+rnorm(100sd=05))

gt klt-asnumeric(cut(x+rnorm(100sd=1)breaks=5))

gt plot(y~xpch=kcex=z)

Rezultat je prikazan na sliki 113

19 Viri za poglabljanje znanja

191 Spletni viri

R je odprtokodni program zato je veliko virov na voljo tudi na spletu Tukajnastevamo nekaj najpomembnejsih

R-project Glavna spletna stran za R ki vsebuje veliko uporabnih vsebin pred-vsem pa omogoca tudi prenos programskega paketa RURL httpwww

r-projectorg

R-project ndash rdquouradnirdquo prirocniki Uradni prirocniki za R - precej tehnicno inosnovno URL httpcranr-projectorgmanualshtml

72 19 Viri za poglabljanje znanja

Slika 112 Resitev vaje 2 (Risanje)

približno 5 razredov

x

Gostota

5 10 15

000

005

010

015

približno 10 razredov

x

Gostota

4 6 8 10 12 14 16000

005

010

015

približno 30 razredov

x

Gostota

4 6 8 10 12 14 16

000

005

010

015

020

približno 50 razredov

x

Gostota

4 6 8 10 12 14 16

000

005

010

015

020

R-project ndash ostali prirocniki Poleg uradnih prirocnikov je na voljo tudi mnogodrugih prirocnikov in podobnega gradiva ki so ga prispevali uporabniki R-jaURL httpcranr-projectorgother-docshtml

Rseek Spletni iskalnik po vsebinah povezanih z R-jem vkljucno s seznami zaelektronsko posto za pomoc uporabnikom URL httpwwwrseekorg

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

R Graph Gallery Galerija grafov narejenih z R-jem vkljucno z uporabljeno kodoURL httpaddictedtorfreefrgraphiques

1 poglavje ndash Uvod v R 73

Slika 113 Resitev vaje 3 (Risanje)

-4 -2 0 2 4

-50

510

1520

x

y

RStudio Integrirano razvojno okolje za R Zdruzuje urejevalnik besedila z oznace-vanjem in samodokoncanjem R-jeve kode konzolo pomoc okno za graficneprikaze in se veliko vec URL httprstudioorg

Spletna stran prof dr Andreja Blejca o R-ju Vsebuje veliko koristnih vse-bin povezanih z R-jem vkljucno s prirocnikom Introduction to R URL httpablejecnibsiR

192 Knjizni viri

Splosne knjige o R-ju

Knjige v tem poglavju so splosni prirocniki za programski paket R Pokrivajo vsaali vecino podpoglavij tega poglavja vecinoma pa tudi podrocja iz ostalih dvehpoglavjih

74 19 Viri za poglabljanje znanja

bull Zuur Alain F Elena N Ieno in Erik HWG Meesters 2009 A BeginnerrsquosGuide to R New York Springer6

Zelo nezahtevna samo osnove R-ja (skoraj) brez statistike

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer7

Se posebej primerna za tiste ki ze poznajo SPSS ali SAS

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC8

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer9

Knjige o programiranju

bull Matloff Norman 2011 The Art of R Programming A Tour of StatisticalSoftware Design San Francisco No Starch PressManj zahtevna

bull Venables William N in Brian D Ripley 2000 S programming New YorkSpringerBolj zahtevna

Knjige o risanju

Prakticno vse splosne knjige o R-ju vsebujejo tudi poglavje o risanju ki ponavadizadostuje za osnovne grafe Spodaj nasteti knjigi pa bolj poglobljeno predstavljatarazlicne sisteme za risanje v R-ju (prva) ali se posebej podrobno dolocen nacinrisanja (druga)

bull Murrell Paul 2011 R graphics Boca Raton CRC PressRazlicni sistemi za risanje

bull Wickham Hadley 2009 ggplot2 Elegant Graphics for Data Analysis Do-rdrecht New York Springer URL httppubliceblibcomEBLPublic

PublicViewdoptiID=51146810

Sistem za risanje ki temelji na Wilsonovi (2005) graficni slovnici

6 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani7 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani8 Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf9 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani10Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani

1 poglavje ndash Uvod v R 75

Priprava dokumentovporocil

bull Xie Yihui 2013 Dynamic report generation with r and knitr Boca RatonChapman amp Hall Crc

bull Gandrud Christopher 2013 Reproducible research with R and RStudio BocaRaton Chapman amp HallCRC

110 Vprasanja za ponavljanje

1 R je vektorski jezik Kaj to pomeni

2 Katera podatkovna struktura v R-ju je najprimernejsa za shranjevanje podat-kovij ndash podatkov o vec spremenljivkah na vec enotah

3 Kako v R-ju priklicemo pomoc za neko funkcijo in kako iscemo po pomoci

4 Kateri izmed sledecih znakov so dovoljeni v imenih objektov v R-ju |- +

5 Na kaksen nacin v R-ju predstavimo nominalne spremenljivke

6 Ali R omogoca matricno racunanje

7 Kako R razsirimo z dodatnimi funkcijami

8 Katere vrste zank poznamo v R-ju in v cem se razlikujejo

9 Ali lahko z R-jem beremo podatkovne datoteke iz ostalih popularnih statistic-nih paketov (SPSS Stata ) Ce da kateri paketek potrebujemo za to

10 Katere funkcije lahko uporabimo za branje in pisanje tekstovnih podatkovnihdatotek

11 Od cesa je odvisno kaksne vrste graf narise funkcija plot

12 Kaksna je razlika med visokonivojskimi in nizkonivojskimi funkcijami za risa-nje

13 Kaj pomeni notacija y x in zakaj se uporablja v funkcijah za risanje

14 Kaksen graf narise funkcija plot ce kot argument podamo nominalno spre-menljivko in kaksen ce kot argumenta podamo dve intervalni spremenljivki

15 Na kaksne nacine lahko shranjujemo slike

16 Kako za neko funkcijo poiscemo njene argumente

17 V katerih formatih (vrstah datotek) lahko izdelujemo porocila z R-jem

77

2 poglavje

Univariatna in bivariatna statistika

Drugo poglavje obravnava kar veliko univariatnih in bivariatnih statisticnih metodtako s podrocja osnovne opisne statistike kot tudi inferencne statistike Na zacetkupoglavja so najprej predstavljeni podatki ki jih uporabljamo v tem poglavju skupajz navodili za njihovo pridobitev iz Arhiva druzboslovnih podatkov in branje z R-jem Sledi predstavitev osnovnih opisnih statistik predvsem mer srednjih vrednostiin variabilnosti ter mer za obliko porazdelitve (asimetrija sploscenost) Od tu naprejucbenik obravnava tudi metode inferencne statistike najprej pri pregledu metod zapreverjanje domnev o srednjih vrednostih (o eni srednji vrednosti in o razliki medsrednjimi vrednostmi za neodvisne in odvisne vzorce) in racunanje ustreznih inter-valov zaupanja kjer poleg parametricnih metod obravnavamo tudi neparametricneTo je tudi skoraj edini del ucbenika kjer tudi teoreticno predstavimo obravnavanemetode Sledi preverjanje domnev o delezih ter racunanje ustreznih intervalov zau-panja Na koncu poglavja obravnavamo se metode za merjenje o povezanosti dvehspremenljivk glede na merske lestvice spremenljivk ter za preverjanje domnev o po-vezanosti

21 Uporabljeni podatki

Za prikaz predstavljenih metod bomo uporabili podatke iz Evropske druzboslovneraziskave (httpwwweuropeansocialsurveyorg) za Slovenijo za leto 2004Uporabljena datoteka je bila pridobljena iz Arhiva druzboslovnih podatkov (Tosin drugi 2004) Opis raziskave in povezave do datoteke so dostopni na tem spletnemnaslovu httpwwwadpfdvuni-ljsiopisisjm042

Iz Arhiva druzboslovnih podatkov sem prenesel podatke v SPSS-formatu (rdquosavrdquo)Najprej preberemo podatke iz SPSS-ove datoteke ter uvozimo funkcije iz datotekerdquoUcbenikR-funkcijeRrdquo

78 22 Osnovne statistike

gt nalozimo podatke

gt library(foreign)

gt datalt-readspss(file=sjm042_f1sav

todataframe = TRUE usevaluelabels = TRUE

maxvaluelabels=5 usemissings=TRUE)

gt nalozimo tudi dodatne funkcije

gt source(UcbenikR-funkcijeR)

Nato preverimo stevilo enot in spremenljivk ter katere spremenljivke so v podatkih zuporabo funkcije names Dolga imena spremenljivk iz SPSS-a (labels) so shranjenav atributu variablelabels

gt dim(data) stevilo enot in spremenljivk

gt names(data)

gt attributes(data)$variablelabels

Zaradi dolzine izpisa ga tu ne navajamo

22 Osnovne statistike

R ze v osnovni razlicici (brez dodatnih paketkov) vsebuje funkcije za prakticno vseosnovne statistike Navedimo nekaj najosnovnejsih

mean aritmeticna sredina

median mediana

sd in var standardni odklon in varianca (vzorcna ndash (n - 1) v imenovalcu)

min in max minimum in maksimum

range razpon (vrne minimum in maksimum kot vektor)

quantile kvantili

Vse zgoraj nastete funkcije kot argument sprejmejo vektor (spremenljivko) V pri-vzeti obliki ne dovoljujejo manjkajocih vrednosti (NA) saj v tem primeru tudi vrnejoNA Vendar pa je mogoce nastaviti da manjkajoce vrednosti ignorirajo s parametromnarm=TRUE

Recimo da nas se posebej zanima spremenljivka G91 ndash Bruto placa Tako bomo nanjej izracunali osnovne statistike

gt G91 - bruto placa

gt izracunajmo osnovne statistike zanjo

gt sum(isna(data$G91))

2 poglavje ndash Univariatna in bivariatna statistika 79

[1] 325

gt prestejemo stevilo enot z veljavnimi vrednostmi pri G91

gt imamo jih samo 325

gt

gt hist(data$G91)narisemo histogram

gt pri vseh sledecih funkcijah dodamo argument narm=TRUE

gt brez njega bi zaradi manjkajocih vrednosti dobili

gt rezultat NA

gt range(data$G91 narm=TRUE) preverimo razpon

[1] 53 760

gt mean(data$G91 narm=TRUE) aritmeticna sredina

[1] 2257108

gt sd(data$G91 narm=TRUE) standardni odklon

[1] 120953

gt median(data$G91 narm=TRUE) mediana

[1] 200

gt quantile(data$G91 probs=c(02505075) narm=TRUE)

25 50 75

140 200 280

gt izracunamo kvartile

Zelo koristna je tudi funkcija summary ki izracuna povzetek ki je primeren gledena tip objektaspremenljivke Funkcija se lahko uporabi na razlicnih podatkovnihstrukturah (tudi na primer na celotnem podatkovnem okvirju)

Funkcija summary sicer naredi kar dober povzetek vendar pa pri stevilskih spre-menljivkah pogresam vsaj izracun standardnega odklona Lahko bi sicer naredilisvojo funkcijo lahko pa uporabimo funkcijo describe iz paketka psych ki polegtega izracuna tudi mere asimetrije in sploscenosti Tudi funkcijo describe lahkouporabimo le na eni spremenljivki ali na celotnem podatkovnem okvirju Je pa tafunkcija primerna le za intervalne in razmernostne spremenljivke Izracun naredisicer tudi za ostale a ni smiseln in zato jih v rezultatih oznaci z rdquordquo

V paketku psych najdemo tudi funkciji za koeficient asimetrije skew in splosce-nosti kurtosi in se veliko drugih uporabnih funkcij (ki se uporabljajo predvsem vpsihologiji in druzboslovju)

Poglejmo torej najprej uporabo summary na eni sami spremenljivki

gt povzetek za stevilsko spremenljivko

gt summary(data$G91)

Min 1st Qu Median Mean 3rd Qu Max NAs

530 1400 2000 2257 2800 7600 1117

gt in se za nominalno - spol

gt summary(data$O1F2)

80 22 Osnovne statistike

moski zenski NAs

648 762 32

gt summary uposteva tip podatka

gt

gt uporabili bomo tudi spremenljivko F6

gt ki jo moramo prej spremeniti nazaj v faktor

gt data$F6lt-makeFactorLabels(data$F6)

gt summary(data$F6)

nedokoncana OS dokoncana OS

69 368

2-3 letna poklicna gimnazija

347 434

2-letna visja visoka sola ali fakulteta

72 138

magisterij doktorat NAs

11 3

Funkcijo summary lahko uporabimo tudi na vec spremenljivkah ali celo na celotnempodatkovju (podatkovnem okvirju) a jo bomo tu zaradi varcevanja s prostoromuporabili le na nekaj izbranih spremenljivkah

gt izbraneSpremlt-c(O1F3O1F2F5F6F7G91G92)

gt izbor shranimo ker ga bomo uporabljal veckrat

gt da se lazje spomnimo kaj merijo

gt attributes(data)$variablelabels[izbraneSprem]

O1F3

leto rojstva

O1F2

spol

F5

Kje zivite

F6

izobrazba

F7

leta solanja

G91

Koliksna je obicajno vasa bruto placa

G92

Koliksna je obicajno vasa neto placa

gt summary(data[izbraneSprem])

O1F3 O1F2 F5

Min 1909 moski 648 veliko mesto132

1st Qu1944 zenski762 predmestje 204

2 poglavje ndash Univariatna in bivariatna statistika 81

Median 1960 NAs 32 manjse mesto326

Mean 1959 vas 626

3rd Qu1975 kmetija 148

Max 1989 NAs 6

NAs 16

F6 F7

gimnazija 434 Min 100

dokoncana OS 368 1st Qu 800

2-3 letna poklicna 347 Median 1100

visoka sola ali fakulteta138 Mean 1127

2-letna visja 72 3rd Qu1300

(Other) 80 Max 2300

NAs 3 NAs 11

G91 G92

Min 530 Min 70

1st Qu1400 1st Qu 725

Median 2000 Median 1200

Mean 2257 Mean 1248

3rd Qu2800 3rd Qu1700

Max 7600 Max 6000

NAs 1117 NAs 1046

Je s temi podatki kaj narobe

Minimum za spremenljivko G92 je rdquo7rdquo To mora biti napaka saj nihce ne moreimeti bruto place samo 7000 sit Verjetno gre za napako pri vnosu rdquo7rdquo je pogo-sta koda za manjkajoco vrednost pri tej spremenljivki pa bi se morala uporabljatikoda rdquo7777777rdquo Preglejmo ali je takih vrednosti vec Recimo tako da izpisemofrekvencno tabelo za to spremenljivko Nato popravimo podatke tako da vrednostiki niso mogoce (se posebej ce predvidevamo da gre za kode manjkajocih vrednosti)spremenimo v NA Nato ponovno izpisemo povzetek in se prepricamo da je sedajvse v redu

gt table(data$G92)

7 8 40 60 70 71 73 75 78 80 82 85 86 87 88

76 13 1 4 4 1 1 5 2 8 2 8 1 1 1

89 90 92 95 100 104 105 107 108 110 112 114 115 117 120

1 11 1 5 19 1 2 1 1 10 1 1 4 2 19

122 125 130 132 135 137 138 140 145 150 153 154 155 160 165

2 3 13 1 1 1 1 12 1 26 1 1 1 12 2

170 180 185 186 190 191 200 205 210 215 220 230 232 240 250

13 8 2 1 4 1 19 1 5 2 6 6 1 2 11

260 270 280 300 320 336 360 370 380 400 480 600

2 6 2 10 1 1 1 1 1 2 1 1

82 22 Osnovne statistike

gt data$G92[data$G92 in c(78)]lt-NA

gt vrednosti 7 in 8 spremenimo v NA

gt summary(data$G92)

Min 1st Qu Median Mean 3rd Qu Max NAs

400 1045 1500 1589 2000 6000 1135

Opozorilo

Kot kaze zgornji primer moramo vedno pred analizo opraviti osnovni pregledpodatkov da ugotovimo ali so v njih prisotne kaksne napake

Za racunanje opisnih statistik za stevilske spremenljivke pa je kot receno bolj pri-merna funkcija describe iz paketka psych Uporabimo se to

gt ce paketek psych ni namescen ga je treba namestiti z

gt installpackages(psych)

gt library(psych)

gt describe(data$G91)

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

range skew kurtosis se

1 707 146 252 671

gt lahko jo izracunamo tudi za vse podatke a tu jo zaradi

gt varcevanja s prostorom le za nekaj izbranih spremenljivk

gt describe(data[izbraneSprem])

vars n mean sd median trimmed mad min

O1F3 1 1426 195864 1896 1960 195917 2372 1909

O1F2 2 1410 154 050 2 155 000 1

F5 3 1436 332 112 4 339 148 1

F6 4 1439 337 134 3 326 148 1

F7 5 1431 1127 341 11 1120 297 1

G91 6 325 22571 12095 200 20885 10378 53

G92 7 307 15893 7413 150 14975 7413 40

max range skew kurtosis se

O1F3 1989 80 -020 -097 050

O1F2 2 1 -016 -198 001

F5 5 4 -060 -048 003

F6 7 6 046 -030 004

F7 23 22 013 026 009

G91 760 707 146 252 671

G92 600 560 165 481 423

gt skew(data$G91)

[1] 1455042

2 poglavje ndash Univariatna in bivariatna statistika 83

gt kurtosi(data$G91)

[1] 2516902

Spremenljivka rdquoBruto placardquo (G91) ima aritmeticno sredino 226 tisoc sit (enote so1000 sit) standardni odklon pa 121 tisoc sit Njena porazdelitev je precej asimetricnav desno in konicasta kar je pri porazdelitvi place sicer pricakovano

Funkciji summary in describe smo ze lahko neposredno uporabili na vec spremen-ljivkah naenkrat Pri funkcijah ki se uporabljajo na vektorjih pa upostevamo dalahko neko funkcijo uporabimo tudi na vec spremenljivkah s pomocjo funkcij applylapply in sapply

gt naredimo nov izbor s samo vsaj intervalnimi spremenljivkami

gt torej s samo intervalnimi in razmernostnimi spremenljivkami

gt izbraneIntSpremlt-c(O1F3F7G91G92)

gt izracunajmo aritmeticno sredino

gt apply(data[izbraneIntSprem]2mean narm=TRUE)

O1F3 F7 G91 G92

195863534 1126625 22571077 15893485

gt sapply(data[izbraneIntSprem]mean narm=TRUE) enako

O1F3 F7 G91 G92

195863534 1126625 22571077 15893485

gt lapply(data[izbraneIntSprem]mean narm=TRUE) drugacen izpis

$O1F3

[1] 1958635

$F7

[1] 1126625

$G91

[1] 2257108

$G92

[1] 1589349

gt standardni odklon

gt sapply(data[izbraneIntSprem]sd narm=TRUE)

O1F3 F7 G91 G92

18961464 3412601 120952965 74128283

gt razpon - funkcija lahko vrne tudi vec vrednosti

gt sapply(data[izbraneIntSprem]range narm=TRUE)

O1F3 F7 G91 G92

[1] 1909 1 53 40

[2] 1989 23 760 600

84 22 Osnovne statistike

gt za vecjo prilagodljivost lahko napisemo svojo funkcijo

gt mojPovzeteklt-function(x)c(

arit sredina = mean(xnarm=TRUE)

std odklon = sd(xnarm=TRUE)

st veljavnih vrednosti = sum(isna(x)))

gt sapply(data[izbraneIntSprem]mojPovzetek)

O1F3 F7 G91

arit sredina 195863534 11266247 2257108

std odklon 1896146 3412601 1209530

st veljavnih vrednosti 142600000 1431000000 3250000

G92

arit sredina 15893485

std odklon 7412828

st veljavnih vrednosti 30700000

Ce zelimo statistike izracunati po skupinah dolocenih z neko drugo spremenljivkoso koristne splosne funkcije kot je denimo aggregate ki omogocajo uporabo funkcijna skupinah Natancna uporaba je razvidna iz primera (in pomoci) Funkcija kotenega od argumentov sprejme funkcijo ki jo uporabi na vsaki skupini

V paketku psych pa obstaja tudi funkcija describeBy ki to omogoca neposredno

gt data$O1F2lt-factor(data$O1F2) odstranimo prazne kategorije

gt glede na eno spremenljivko

gt aggregate(x=data[c(G91G92)] by = list(data$O1F2)

FUN=mean narm=TRUE) rezultat je ena stevilka

Group1 G91 G92

1 moski 2375896 1689868

2 zenski 2099103 1472517

gt aggregate(x=data[c(G91G92)] by = list(data$O1F2)

FUN=mojPovzetek) vec stevilk

Group1 G91arit sredina G91std odklon

1 moski 2375896 1263618

2 zenski 2099103 1127086

G91st veljavnih vrednosti G92arit sredina

1 1730000 16898675

2 1450000 14725170

G92std odklon G92st veljavnih vrednosti

1 8153142 15100000

2 6430224 14700000

gt funkcija aggregate dela le na R 211 in novejsih

gt na starejsih verzijah R-ja javi napako

gt

2 poglavje ndash Univariatna in bivariatna statistika 85

gt glede na dve spremenljivki

gt aggregate(x=data[c(G91G92)]

by = list(data$O1F2 data$F5)

FUN=mean narm=TRUE) rezultat je ena stevilka

Group1 Group2 G91 G92

1 moski veliko mesto 2520000 1887059

2 zenski veliko mesto 2523333 1830000

3 moski predmestje 2311250 1593810

4 zenski predmestje 2092381 1472000

5 moski manjse mesto 2886923 1894186

6 zenski manjse mesto 2101143 1612353

7 moski vas 2270870 1574615

8 zenski vas 2028060 1335000

9 moski kmetija 1888889 1460556

10 zenski kmetija 1880000 1042857

gt aggregate(x=data[c(G91G92)]

by = list(data$O1F2 data$F5)

FUN=mojPovzetek) vec stevilk

Group1 Group2 G91arit sredina G91std odklon

1 moski veliko mesto 25200000 12794650

2 zenski veliko mesto 25233333 14355172

3 moski predmestje 23112500 9543917

4 zenski predmestje 20923810 9989640

5 moski manjse mesto 28869231 14734656

6 zenski manjse mesto 21011429 9263679

7 moski vas 22708696 12535992

8 zenski vas 20280597 12044064

9 moski kmetija 18888889 9864713

10 zenski kmetija 18800000 9854441

G91st veljavnih vrednosti G92arit sredina

1 1400000 18870588

2 1500000 18300000

3 2400000 15938095

4 2100000 14720000

5 3900000 18941860

6 3500000 16123529

7 6900000 15746154

8 6700000 13350000

9 2700000 14605556

10 700000 10428571

G92std odklon G92st veljavnih vrednosti

1 8084148 1700000

2 8344260 1900000

86 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

3 5339052 2100000

4 5679202 2500000

5 7964362 4300000

6 6177675 3400000

7 9427670 5200000

8 5901313 6200000

9 6550929 1800000

10 3413070 700000

Za funkcijo describeBy je koda spodaj izpis pa je zaradi varcevanja s prostoromizpuscen (seveda lahko kodo preizkusite sami)

gt z describeBy

gt glede na eno spremenljivko

gt describeBy(x=data[c(G91G92)]

group = data$O1F2)

gt glede na dve spremenljivki

gt describeBy(x=data[c(G91G92)]

group = list(data$O1F2 data$F5))

23 Preverjanje domnev o srednjih vrednostih in

pripadajoci intervali zaupanja

V tem podpodpoglavju so obravnavane le metode za preverjanje domnev o srednjivrednosti in o razliki dveh srednjih vrednosti (na odvisnih in neodvisnih vzorcih)Metode za preverjanje domnev o vec srednjih vrednostih so obravnavane v podpo-glavju 32 (Analiza variance (ANOVA)) Poleg tega bomo pri parametricnih pristopih(t-testih) omenili tudi pripadajoci interval zaupanja

Poleg parametricnega tukaj obravnavamo tudi neparametricni pristop Nekaj besedo razliki med obema

parametricni testi So rdquomocnejsirdquo11 a imajo obicajno strozje predpostavke

neparametricni testi Imajo manj predpostavk a so rdquosibkejsirdquo Ce predpo-stavke parametricnih testov (priblizno) drzijo izberemo parametricne testesicer neparametricne (ce njihove predpostavke drzijo)

Neparametricne teste pogosteje uporabljamo na manjsih vzorcih saj ima tam krsenjepredpostavk parametricnih testov hujse posledice

11Mocnejsi test je tisti ki pri izbrani stopnji tveganja zazna (statisticno znacilne) razlike pri manjsirazliki med vzorcno statistiko in vrednostjo iz nicelne domneve

2 poglavje ndash Univariatna in bivariatna statistika 87

Opozorilo

Neparametricni testi niso samo rdquorobustnejsa verzijardquo parametricnih ampak pre-verjajo drugacne domneve Za primere za katere tu ne podamo testa aliintervala zaupanja je ponavadi priporocljivo uporabiti metode ponovnega vzor-cenja

V ta namen so uporabne predvsem sledece funkcije

ttest Za vse vrste t-testov

vartest Test enakosti varianc Za preverjanje predpostavk t-testa

flignertest Se en test enakosti varianc Manj obcutljiv na odstopanje odnormalnosti Za preverjanje predpostavk t-testa

leveneTest Se en test enakosti varianc iz paketka car Tudi ta je manj ob-cutljiv na odstopanje od normalnosti Z argumentom center=mean (kar niprivzeta moznost) je to test ki ga uporablja SPSS Za preverjanje predpo-stavk t-testa

wilcoxtest Wilcoxonovi testi za en ali dva vzorca Test za dva neodvisnavzorca je znan tudi kot Mann-Whitneyjev test ali Wilcoxon-Mann-Whitneyjevtest

binomtest Uporaben za izvedbo testa predznaka (ang sign test) ki se upo-rablja kot test mediane

Preverjanje domnev uporabimo ce imamo oblikovano nicelno domnevo ki jo zelimo(obicajno) zavrniti Postopek temelji na tem da preverimo kako verjetno bi biloda bi na vzorcu dane velikosti dobili tako rdquoekstremnordquo vrednost testne statistike kotsmo jo dobili na nasem vzorcu

Intervale zaupanja podamo kadar zelimo podati oceno nekega parametra Ker ocenoracunamo na podlagi vzorca tockovna ocena (skoraj) zagotovo ni pravilna Takozelimo izracunati nek interval za katerega lahko z danim tveganjem (gotovostjo)trdimo da vsebuje populacijski parameter Ce se na primer vzorcne ocene g pa-rametra γ porazdeljujejo normalno s standardnim odklonom SE(g) potem lahkointerval zaupanja pri tveganju α izracunamo kot

P (g minus zα2SE(g) le γ ge g + zα2SE(g)) = 1minus α

Bolj splosno (tudi ce se vzorcne ocene ne porazdeljujejo normalno) vedno velja

P (Fminus1(p = α2 g ) le γ ge Fminus1(p = 1minus α2 g )) = 1minus α

Fminus1 je kvantilna funkcija za porazdelitev vzorcnih ocen g oziroma inverzna funkcijaporazdelitveni funkciji F Tu velja omeniti da R vsebuje kvantilne funkcija zavecino v statistiki uporabljenih porazdelitev Naj omenim samo najpomembnejse

qnorm Normalna porazdelitev

88 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

qt t porazdelitev

qf F porazdelitev

qbinom Binomska porazdelitev

qchisq χ2 porazdelitev

qunif Enakomerna porazdelitev

qexp Eksponentna porazdelitev

q Se kar nekaj drugih porazdelitev Ime funkcije se vedno zacne s rdquoqrdquosledi oznaka (ime ali okrajsava) za porazdelitev

Izracun intervala zaupanja bomo podrobneje prikazali samo za aritmeticno sredinoceprav bi lahko na zelo podoben nacin izracunali tudi intervala za razliko dveh arit-meticnih sredin na neodvisnih in odvisnih vzorcih (razlika je predvsem pri izracunustandardne napake vzorcne ocene

231 Preverjanje domneve o srednji vrednosti in pripada-joci interval zaupanja

Kaj je to srednja vrednost je odvisno od testa Pri parametricnih testih je to pravi-loma aritmeticna sredina drugje pa ni nujno To velja tudi pri problemih in testihki jih obravnavamo v sledecih podpodpoglavjih

T-test za en vzorec verjetno ze dobro poznate tako si poglejmo malce podrobnejele neparametricna testa za preverjanje domneve o srednji vrednosti

Wilcoxonov test oziroma Wilcoxonov test oznacenih rangov

bull Predpostavlja vsaj intervalno mersko lestvico

bull Naceloma predpostavlja simetricno porazdelitev rArr potem se lahko upo-rablja kot test mediane

bull V splosnem to torej ni test mediane in vsekakor ne rdquorobustenrdquotest o vrednosti aritmeticne sredine

bull Pogosto navajajo tudi da testira ali je porazdelitev simetricna glede natestno vrednost

bull Tehnicno gledano preverja ali je vsota rangov negativnih odklonov vecjaod pozitivnih

bull Uporablja se predvsem na majhnih vzorcih ko je porazdelitev simetricnaa ne normalna

Test predznaka Pogosto se uporablja tudi ime test mediane

bull Predpostavlja vsaj ordinalno mersko lestvico Zanima nas samopredznak odklona od testne vrednosti torej katera vrednost je vecja

2 poglavje ndash Univariatna in bivariatna statistika 89

Slika 21 Porazdelitev bruto place

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

020

4060

80

bull Testira domnevo o vrednosti mediane oziroma natancneje domnevoda je stevilo pozitivnih in negativnih odklonov enako

Najprej preverimo domnevo o srednji vrednosti V splosnem naj bo domneva H0Srednja vrednost bruto place je enaka 220 tisoc sit

Poleg tega izracunajmo tudi 90- interval zaupanja za povprecno placo

Porazdelitev bruto place je prikazana na sliki 21

gt najprej si oglejmo porazdelitev

gt hlt-hist(data$G91br=(016)50xlab=Bruto placa v 1000 sit

main=ylab=Frekvenca)

gt curve(dnorm(xmean=mean(data$G91narm=TRUE)

sd=sd(data$G91narm=TRUE))diff(h$breaks)[1]

sum(isna(data$G91)) add=TRUE)

gt describe(data$G91)

90 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

range skew kurtosis se

1 707 146 252 671

Iz slike 21 in opisnih statistik je razvidno da porazdelitev ni niti priblizno nor-malna Sedaj preverimo ali lahko zavrnemo domnevo da je povprecna placa enaka220000 sit prav tako pa izracunajmo tudi 90- interval zaupanja za povprecnobruto placo

gt ttest(data$G91mu=220conflevel = 090)

One Sample t-test

data data$G91

t = 085118 df = 324 p-value = 03953

alternative hypothesis true mean is not equal to 220

90 percent confidence interval

2146434 2367782

sample estimates

mean of x

2257108

Niti pri 10- tveganju ne moremo trditi da je povprecna bruto placa razlicna od220 tisoc sit Z 10- tveganjem lahko trdimo da je povprecna bruto placa med21464 in 23678 tisoc sit

gt interval zaupanja bi lahko izracunali tudi takole

gt nlt- sum(isna(data$G91)) stevilo veljavnih vrednosti

gt alfa lt- 01

gt mean(data$G91narm=TRUE) +

qt(c(alfa21-alfa2)df=n-1)sd(data$G91narm=TRUE)sqrt(n)

[1] 2146434 2367782

Wilcoxonov test se lahko uporablja za preverjanje domneve ali je porazdelitev brutoplace simetricna okoli 220000 sit Vendar pa ta domneva nima ravno smisla saj smovideli da je porazdelitev izrazito nesimetricna Tehnicno gledano preverja domnevoda je vsota rangov negativnih odklonov enaka vsoti rangov pozitivnih odklonov (priracunanju rangov se predznak ne uposteva)

gt wilcoxtest(data$G91mu=220)

Wilcoxon signed rank test with continuity correction

data data$G91

2 poglavje ndash Univariatna in bivariatna statistika 91

V = 21965 p-value = 01245

alternative hypothesis true location is not equal to 220

Tudi z Wilcoxonovim testom nicelne domneve pri 10- tveganju ne moremo za-vrniti Opravimo sedaj se test predznaka oziroma test medianePreverimo torejali je negativnih odklonov vec kot pozitivnih (pri tem odklonov z vrednostjo 0 neupostevamo)

gt nPozlt-sum(data$G91gt220 narm = TRUE)

gt manjkajoce vrednosti ignoriramo

gt nNeglt-sum(data$G91lt220 narm = TRUE)

gt binomtest(x=nPozn=nPoz+nNegp=05)

Exact binomial test

data nPoz and nPoz + nNeg

number of successes = 124 number of trials = 312

p-value = 00003462

alternative hypothesis true probability of success is not equal

to 05

95 percent confidence interval

03427360 04541027

sample estimates

probability of success

03974359

gt median(data$G92narm=TRUE)

[1] 150

Nicelno domnevo da je mediana place enaka 220 lahko zavrnemo pri 003- tve-ganju kar niti ni presenetljivo saj je vrednost mediane 200 binomtest lahkoklicemo tudi takole

gt binomtest(x=c(nPoznNeg)p=05)

232 Preverjanje domneve o razliki med srednjima vrednostmana odvisnih vzorcih in pripadajoci interval zaupanja

Vsi obravnavani testi za odvisne vzorce so enakovredni testom za en vzorec (o vre-dnosti srednje vrednosti) ki se izvedejo na razliki dveh spremenljivk To velja upo-stevati tudi pri interpretaciji rezultatov Pri t-testu to sicer ni problematicno sajvelja da je aritmeticna sredina razlike enaka razliki aritmeticnih sredin Enako pane velja za mediano ndash mediana razlike ni enaka razliki median

92 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

Slika 22 Porazdelitev zaupanja v Drzavni zbor in Evropski parlament

Zaupanje v Državni zbor

Fre

kven

ca

0 2 4 6 8 10

050

150

250

Zaupanje v Evropski parlament

Fre

kven

ca0 2 4 6 8 10

050

150

250

Opozorilo

Test predznaka torej preverja domnevo o vrednosti mediane razlike inne o vrednosti razlike median

Primer domneve je lahko H0 Zaupanje v drzavni zbor je v rdquopovprecjurdquo enakozaupanju v evropski parlament

Poleg tega izracunajmo tudi 90- interval zaupanja za razliko v zaupanju v obaparlamenta

Poglejmo si najprej porazdelitve obeh spremenljivk (slika 22) Kot vemo je kljucnaporazdelitev razlike obeh spremenljivk12 (slika 23) saj so testi za odvisne vzorceenakovredni testom za en vzorec na razliki spremenljivk

gt Pregledamo porazdelitve in opisne statistike

gt originalnih spremenljivk

gt par(mfrow=c(12))

gt hist(data$B4xlab=Zaupanje v Drzavni zbormain=

ylab=Frekvenca)

gt hist(data$B9xlab=Zaupanje v Evropski parlamentmain=

ylab=Frekvenca)

gt par(mfrow=c(11))

gt describe(data[c(B4B9)])

12Razliko izracunamo kot prva spremenljivka ndash druga spremenljivka

2 poglavje ndash Univariatna in bivariatna statistika 93

Slika 23 Porazdelitev razlike med zaupanjem v Drzavni zbor in zaupanjem v Evrop-ski parlament

Razlika v zaupanju (Državni zbor ndash Evropski parlament)

Fre

kven

ca

-10 -5 0 5

010

020

030

040

0

vars n mean sd median trimmed mad min max range

B4 1 1387 413 238 4 410 148 0 10 10

B9 2 1247 453 241 5 457 297 0 10 10

skew kurtosis se

B4 011 -054 006

B9 -009 -070 007

gt razlike

gt hlt-hist(data$B4-data$B9main=ylab=Frekvencabr=-107

xlab=Razlika v zaupanju (Drzavni zbor - Evropski parlament))

gt curve(dnorm(xmean=mean(data$B4-data$B9narm=TRUE)

sd=sd(data$B4-data$B9narm=TRUE))diff(h$breaks)[1]

sum(isna(data$B4-data$B9)) add=TRUE)

gt describe(data$B4-data$B9)

vars n mean sd median trimmed mad min max range

1 1 1231 -041 21 0 -037 148 -10 7 17

94 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

skew kurtosis se

1 -031 182 006

Na slikah 22 in 23 ter zgornjem izpisu vidimo da je porazdelitev obeh spremenljivkpodobna porazdelitev razlike pa sicer priblizno normalna z rahlo asimetrijo v levoin znatno konicavostjo

Sedaj preverimo se (nicelno) domnevo da je povprecno zaupanje v oba parlamentaenako ter izracunajmo 90- interval zaupanja

gt ttest(x=data$B4y=data$B9 paired=TRUE conflevel = 090)

Paired t-test

data data$B4 and data$B9

t = -6883 df = 1230 p-value = 9317e-12

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

-05093517 -03127442

sample estimates

mean of the differences

-04110479

Ugotovimo lahko da je razlika med obema povprecjema statisticno znacilna prizanemarljivem tveganju Z 10- tveganjem lahko trdimo da smo Slovenci leta 2004v povprecju med minus051 in minus031 tocke bolj zaupali Evropskemu parlamentu kotdrzavnemu zboru

Sedaj opravimo se neparametricne teste Pri Wilcoxonovem testu je formalna do-mneva da je vsota rangov negativnih vrednosti enaka vsoti rangov pozitivnih vre-dnosti (pri racunanju rangov se predznak ne uposteva) Pri testu predznakamedianepreverimo ali je negativnih odklonov vec kot pozitivnih (odklonov z vrednostjo 0ne upostevamo)

gt wilcoxtest(x=data$B4y=data$B9 paired=TRUE)

Wilcoxon signed rank test with continuity correction

data data$B4 and data$B9

V = 112990 p-value = 9524e-12

alternative hypothesis true location shift is not equal to 0

gt nPozlt-sum((data$B4-data$B9)gt0 narm = TRUE)

gt manjkajoce vrednosti ignoriramo

gt nNeglt-sum((data$B4-data$B9)lt0 narm = TRUE)

gt binomtest(x=nPozn=nPoz+nNegp=05)

2 poglavje ndash Univariatna in bivariatna statistika 95

Exact binomial test

data nPoz and nPoz + nNeg

number of successes = 308 number of trials = 790

p-value = 6433e-10

alternative hypothesis true probability of success is not equal

to 05

95 percent confidence interval

03556961 04248759

sample estimates

probability of success

03898734

Na podlagi obeh testov lahko ugotovimo da je razlika med povprecjema statisticnoznacilno razlicna od 0 pri zanemarljivem tveganju oziroma da srednji vrednosti nistaenaki

233 Preverjanje domneve o razliki med srednjima vrednostmana neodvisnih vzorcih in pripadajoci interval zaupanja

Edini neparametricni test ki ga bomo obravnavali tu je Mann-Whitneyjev test(oziroma Wilcoxonov test za neodvisna vzorca ali Wilcoxon-Mann-Whitneyjev test)

bull Predpostavlja vsaj ordinalno mersko lestvico

bull Testira ali sta povprecna ranga enaka oziroma ali je verjetnost da imaenota iz 1 skupine vecjo vrednost kot enota iz 2 skupine enaka 05

bull Ce sta obliki porazdelitev v obeh skupinah podobni se lahko uporablja za testenakosti srednjih vrednosti

Primer domneve je lahko H0 rdquoSrednja vrednostrdquo za bruto placo je enaka pri moskihin zenskah

Poleg tega izracunajmo tudi 90- interval zaupanja za razliko v bruto placi moskihin zensk

Poglejmo si najprej opisne statistike in porazdelitvi spremenljivke na obeh vzorcih(slika 24)

gt opisne statistike

gt describeBy(x=data$G91group=data$O1F2mat=TRUE)

item group1 vars n mean sd median trimmed

11 1 moski 1 173 2375896 1263618 200 2184460

12 2 zenski 1 145 2099103 1127086 184 1951026

mad min max range skew kurtosis se

96 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

Slika 24 Porazdelitev bruto place pri moskih in zenskah

Moški

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

010

2030

40

Ženske

Bruto plača v 1000 sit

Fre

kven

ca0 200 400 600 800

010

2030

40

11 889560 61 760 699 1573864 2777364 9607112

12 978516 53 700 647 1263913 1745150 9359942

gt poglejmo porazdelitev

gt par(mfrow=c(12))

gt hist(data$G91[data$O1F2==moski]br=(016)50

xlab=Bruto placa v 1000 sitmain=Moskiylab=Frekvenca)

gt hist(data$G91[data$O1F2==zenski]br=(016)50

xlab=Bruto placa v 1000 sitmain=Zenskeylab=Frekvenca)

gt par(mfrow=c(11))

Predpostavka klasicne razlicice t-testa za neodvisne vzorce je tudi enakost variancZato izvedemo tudi test enakosti varianc a se nanj ni dobro prevec opirati Privelikih vzorcih je namrec precej obcutljiv in zazna razlike v variancah veliko prejkot le-te zacnejo vplivati na veljavnost klasicnega t-testa

gt vartest(G91~O1F2data=data)

F test to compare two variances

data G91 by O1F2

F = 12569 num df = 172 denom df = 144 p-value =

01561

alternative hypothesis true ratio of variances is not equal to 1

95 percent confidence interval

09159805 17172157

sample estimates

2 poglavje ndash Univariatna in bivariatna statistika 97

ratio of variances

1256949

gt flignertest(G91~O1F2data=data)

Fligner-Killeen test of homogeneity of variances

data G91 by O1F2

Fligner-Killeenmed chi-squared = 013014 df = 1

p-value = 07183

gt neobcutljiv na odstopanja od normalnosti

gt library(car)

gt leveneTest(G91~O1F2data=data)

Levenes Test for Homogeneity of Variance (center = median)

Df F value Pr(gtF)

group 1 00538 08167

316

gt neobcutljiv na odstopanja od normalnosti

gt leveneTest(G91~O1F2data=data center=mean)

Levenes Test for Homogeneity of Variance (center = mean)

Df F value Pr(gtF)

group 1 0369 0544

316

gt razlicica kot jo uporablja SPSS

gt malce manj robustna

Glede na to da so vsi testi enakosti varianc pokazali da domneve o enakih variancahne moremo zavrniti lahko (brez zadrzkov kar se tice enakosti varianc) izvedemo t-test s predpostavko enakih varianc Poleg tega bomo izracunali tudi 90- intervalzaupanja za razliko aritmeticnih sredin

gt ttest(G91~O1F2data=datavarequal=TRUE conflevel = 090)

Two Sample t-test

data G91 by O1F2

t = 2043 df = 316 p-value = 004188

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

5328537 50029964

sample estimates

mean in group moski mean in group zenski

2375896 2099103

Pri 5- tveganju so razlike statisticno znacilne torej lahko s takim tveganje trdimoda imajo moski v povprecju visjo placo tudi na populaciji Z 10- tveganjem lahkotrdimo da imajo moski v povprecju od 533 do 5003 tisoc sit visjo placo kot zenske

98 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

Ce ne bi zeleli predpostaviti enakih varianc bi bila koda kot sledi Testa ne bomoopravili ker v tem primeru ni potrebe

gt ttest(G91~O1F2data=datavarequal=FALSE conflevel = 090)

gt ali

gt ttest(G91~O1F2data=data conflevel = 090)

gt argumenta varequal=FALSE ni treba navajati

gt ker je to privzeta vrednost

Sedaj pa opravimo se ustrezen neparametricen test torej Mann-Whitneyjev test

gt wilcoxtest(G91~O1F2data=data)

Wilcoxon rank sum test with continuity correction

data G91 by O1F2

W = 14496 p-value = 00167

alternative hypothesis true location shift is not equal to 0

Tudi tu ugotovimo da so razlike med srednjimi vrednostmi statisticno znacilne pri5- tveganju oz natancneje v tem primeru pri 17- tveganju

24 Preverjanje domnev o delezih in pripadajoci

intervali zaupanja

Domneve o delezih lahko preverjamo na vec nacinov V primeru velikih vzorcevobicajno predpostavljamo da se delezi ali razlike med delezi porazdeljujejo pribli-zno normalno Alternativni nacin za preverjanje domnev o delezih je s pomocjokontingencnih tabel in χ2 porazdelitve vendar je tudi ta le priblizen Za posamezneprobleme bomo obravnavali tudi natancne teste ki pa se od problema do problemarazlikujejo

V praksi se pogosto uporablja tudi pristop pri katerem se deleze obravnava kotpovprecja spremenljivk ki imajo vrednosti 0 in 1 V primeru dovolj velikih vzorcevin neekstremnih delezev (ki niso blizu 0 ali 1) je ta pristop primeren

2 poglavje ndash Univariatna in bivariatna statistika 99

241 Preverjanje domneve o vrednosti deleza in pripadajociinterval zaupanja

Nekih volitev se jih je udelezilo 687 anketirancev Preverili bomo domnevo dase je volitev udelezilo 70 volilnih upravicencev Ker je vzorec velik in delez niekstremen uporaba priblizkov ni problematicna

gt pogledamo frekvencno tabelo odgovorov (vec o tem kasneje)

gt tbllt-table(data$B11)

gt tbl

da ne

940 432

gt izracunamo deleze

gt proptable(tbl)

da ne

06851312 03148688

gt stevilo tistih ki so odgovorili z da ali ne

gt nlt-sum(tbl)

gt n

[1] 1372

gt delez tistih ki so glasovali

gt plt-tbl[1]n

gt p

da

06851312

gt preverjanje domneve s pomocjo klasicnega z-testa

gt H0 pi=piH=070

gt piHlt-070

gt izracun standardne napake

gt sePlt-sqrt(p(1-p)n)

gt izracun z statistike

gt zlt-(p-piH)seP

gt izracunamo p-vrednost (dvostranska)

gt 2pnorm(-abs(z))

da

02357121

Domnevo bi lahko zavrnili sele pri 236- tveganju in je zato ne zavrnemo Torej nemoremo trditi da se volitev ni udelezilo 70 volilnih upravicencev (ampak vec alimanj)

Namesto normalne bi bilo sicer bolje uporabiti t-porazdelitev (ker smo standardnonapako ocenili na vzorcu) a pri tako velikih vzorcih v obeh primerih dobimo enakrezultat

100 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

gt 2pt(-abs(z)df=n-1)

da

02359176

Izracunajmo sedaj se klasicna intervala zaupanja (z uporabo normalne in t poraz-delitve)

gt alfa lt- 01

gt (intZlt-p + qnorm(c(alfa21-alfa2))seP)

[1] 06645058 07057566

gt (intTlt-p + qt(c(alfa21-alfa2)df=n-1)seP)

[1] 06644919 07057705

S 10- tveganjem torej lahko trdimo da se je volitev udelezilo med 066 (066 pri t-porazdelitvi) in 071 volilnih upravicencev

Sedaj bomo preverili domnevo se s χ2-testom in natancnim testom (preko binomskeporazdelitve) Test preko binomske porazdelitve je pravzaprav najnatancnejsi Obefunkciji zraven izracunata tudi interval zaupanja

gt preko hi-kvadrat testa

gt proptest(x=tbl[1]n=np=piH conflevel=1-alfa)

1-sample proportions test with continuity correction

data tbl[1] out of n null probability piH

X-squared = 13745 df = 1 p-value = 0241

alternative hypothesis true p is not equal to 07

90 percent confidence interval

06637884 07057324

sample estimates

p

06851312

gt dobimo tudi interval zaupanja

gt

gt se natancen test

gt binomtest(x=tbl[1]n=np=piH conflevel=1-alfa)

Exact binomial test

data tbl[1] and n

number of successes = 940 number of trials = 1372

p-value = 02273

alternative hypothesis true probability of success is not equal

to 07

2 poglavje ndash Univariatna in bivariatna statistika 101

90 percent confidence interval

06638601 07058132

sample estimates

probability of success

06851312

Rezultatov zaradi podobnosti s prejsnjimi ne bom interpretiral

Za konec naredimo se test preko povprecij torej t-test Tu upostevamo da je pov-precje spremenljivke ki ima vrednosti le 0 in 1 pravzaprav delez enic Ta test jezaradi popolne krsitve predpostavke o normalnosti manj primeren ceprav priblizekpri velikih vzorcih ni slab

gt xlt-data$B11

gt xlt-(x==da)1

gt ttest(xmu=piH conflevel=1-alfa)

One Sample t-test

data x

t = -11853 df = 1371 p-value = 02361

alternative hypothesis true mean is not equal to 07

90 percent confidence interval

06644843 07057780

sample estimates

mean of x

06851312

Kot vidimo so rezultati v tem primeru (zaradi velikega vzorca) res skoraj identicni

242 Preverjanje domnev o razliki med delezema na neod-visnih vzorcih in pripadajoci intervali zaupanja

Tudi tu lahko uporabimo podobne pristope kot pri prejsnjem primeru Preverimodomnevo da je delez volivcev enak pri zenskah in moskih Najprej izracunamokontingencno tabelo (vec o tem v podpodpoglavju 252)

gt izracunamo kontingencno tabelo

gt tbllt-table(data$O1F2data$B11)

gt tbl

da ne

moski 427 188

zenski 492 235

102 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

gt izracunamo deleze

gt proptable(tblmargin=1)

da ne

moski 06943089 03056911

zenski 06767538 03232462

gt stevilo enot

gt nlt-apply(tbl1sum)

gt n

moski zenski

615 727

gt delez tistih ki so glasovali

gt plt-tbl[1]n

gt p

moski zenski

06943089 06767538

Najprej zopet s pomocjo klasicnega z-testa preverimo domnevo

gt H0 piM=piZ

gt izracun standardne napake

gt pSkuplt-sum(tbl[1])sum(n)

gt sePlt-sqrt(sum(pSkup(1-pSkup)n))

gt izracun z statistike

gt zlt-(p[1]-p[2])seP

gt izracunamo p-vrednost (dvostranska)

gt 2pnorm(-abs(z))

moski

04903852

Domnevo o enakosti delezev bi lahko zavrnili sele pri 49- tveganju in je zato nezavrnemo Tako ne moremo trditi da se delez volivcev na populaciji med spolomarazlikuje Sledijo se ostali testi torej χ2-test in test preko povprecij Pri obehdobimo tudi interval zaupanja za razliko delezev

gt preko hi-kvadrat testa

gt proptest(x=tbl conflevel=1-alfa)

2-sample test for equality of proportions with

continuity correction

data tbl

X-squared = 039783 df = 1 p-value = 05282

alternative hypothesis twosided

90 percent confidence interval

2 poglavje ndash Univariatna in bivariatna statistika 103

-002575264 006086296

sample estimates

prop 1 prop 2

06943089 06767538

gt dobimo tudi interval zaupanja

gt

gt preko povprecij

gt xlt-data$B11

gt xlt-(x==da)1

gt spollt-data$O1F2

gt ttest(x~spol varequal=TRUE conflevel=1-alfa)

Two Sample t-test

data x by spol

t = 06893 df = 1340 p-value = 04908

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

-002436485 005947517

sample estimates

mean in group moski mean in group zenski

06943089 06767538

Tu ugotovimo da ne moremo trditi da se delez volivcev na populaciji med spolomarazlikuje Kot receno dobimo tudi intervala zaupanja Ce upostevamo prvega kije zanesljivejsi lahko pri 10- tveganju trdimo da je razlika v delezu volivcev medmoskimi in zenskami med minus002575 in 006086

25 Frekvencne in kontingencne tabele

251 Frekvencne tabele

Frekvencne in kontingencne tabele v R-ju dobimo z ukazom table ki izracunasamo frekvence Za dodajanje vsote (rdquoSkupajrdquo) lahko potem uporabimo funkcijoaddmargins za izracun odstotkov pa proptable

Funkcija table s privzetimi vrednostmi ne uposteva manjkajocih vrednosti Cezelimo imeti v tabeli tudi manjkajoce vrednosti (NA) moramo pri klicu funkcijetable nastaviti exclude=NULL

Malce bogatejso frekvencno tabelo je moc dobiti tudi s funkcijo frekTab ki senahaja v datoteki rdquoUcbenikR-funkcijeRrdquo

Za risanje frekvencnih tabel sta primerni predvsem funkciji barplot in pie

104 25 Frekvencne in kontingencne tabele

Zacnimo s frekvencno tabelo

gt tbllt-table(data$F5)

gt tbl

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija

148

gt addmargins(tbl) a skupaj

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija Sum

148 1436

gt addmargins(proptable(tbl)) + skupaj

veliko mesto predmestje manjse mesto vas

009192201 014206128 022701950 043593315

kmetija Sum

010306407 100000000

gt barplot(tbl)

gt pie(tbl)

Z argumentom exclude=NULL zahtevamo naj se izpisejo tudi manjkajoce vrednosti(oz natancneje naj se iz tabele nicesar ne izpusti)

gt z NA

gt table(data$F5exclude=NULL)

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija ltNAgt

148 6

Se primer malce bogatejse frekvencne tabele s funkcijo frekTab (iz datoteke rdquoUcbenikR-funkcijeRrdquo)

gt s funkcijo frekTab

gt frekTab(data$F5)

Frekvenca Kum frek Kumulativni

veliko mesto 132 132 9192201 9192201

predmestje 204 336 14206128 23398329

manjse mesto 326 662 22701950 46100279

vas 626 1288 43593315 89693593

kmetija 148 1436 10306407 100000000

2 poglavje ndash Univariatna in bivariatna statistika 105

252 Kontingencne tabele

Za kontingecne tabele lahko uporabimo iste funkcije kot za frekvencne tabele Ce ze-limo na primer na podlagi dveh spremenljivk oblikovati osnovno kontingencno tabelouporabimo funkcijo table in ji kot argumente podamo spremenljivke na podlagikaterih zelimo oblikovati tabelo (najprej spremenljivka v vrsticah nato v stolpcih)Ce pri podajanju spremenljivk (argumentov) podamo tudi imena argumentov (nprKraj=data$F5 spodaj) postanejo imena argumentov imena posameznih dimenzijtabele

Najprej izracunajmo kontingencno tabelo za kraj bivanja in spol skupaj z vsotamiVrednosti v tabeli tudi pretvorimo v deleze in zopet dodamo vsote

gt tbl2Dlt-table(Kraj=data$F5Spol=data$O1F2)

gt tbl2D

Spol

Kraj moski zenski

veliko mesto 56 72

predmestje 94 110

manjse mesto 151 160

vas 264 351

kmetija 78 69

gt skupaj z vsotami

gt addmargins(tbl2D)

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

Sum 643 762 1405

gt preracun v skupne deleze

gt proptable(tbl2D)

Spol

Kraj moski zenski

veliko mesto 003985765 005124555

predmestje 006690391 007829181

manjse mesto 010747331 011387900

vas 018790036 024982206

kmetija 005551601 004911032

gt ptbllt-proptable(tbl2D)

gt addmargins(tbl2D)

106 25 Frekvencne in kontingencne tabele

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

Sum 643 762 1405

gt preracun v deleze po stolpcih

gt proptable(tbl2Dmargin=2)

Spol

Kraj moski zenski

veliko mesto 008709176 009448819

predmestje 014618974 014435696

manjse mesto 023483670 020997375

vas 041057543 046062992

kmetija 012130638 009055118

gt addmargins(tbl2Dmargin=2)

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

gt ptbllt-addmargins(proptable(addmargins(tbl2Dmargin=2)

margin=2)margin=1)

gt ptbl

Spol

Kraj moski zenski Sum

veliko mesto 008709176 009448819 009110320

predmestje 014618974 014435696 014519573

manjse mesto 023483670 020997375 022135231

vas 041057543 046062992 043772242

kmetija 012130638 009055118 010462633

Sum 100000000 100000000 100000000

gt v na 2 decimalki

gt round(ptbl1002)

Spol

Kraj moski zenski Sum

veliko mesto 871 945 911

predmestje 1462 1444 1452

manjse mesto 2348 2100 2214

2 poglavje ndash Univariatna in bivariatna statistika 107

vas 4106 4606 4377

kmetija 1213 906 1046

Sum 10000 10000 10000

Za dvodimenzionalne tabele pa lahko za bogatejsi izpis (tipa SPSS) uporabimo tudifunkcijo CrossTable iz paketka gmodels

gt enostavneje s paketkom gmodels

gt installpackages(gmodels)

gt library(gmodels)

gt CrossTable(data$F5data$O1F2)

Cell Contents

|-------------------------|

| N |

| Chi-square contribution |

| N Row Total |

| N Col Total |

| N Table Total |

|-------------------------|

Total Observations in Table 1405

| data$O1F2

data$F5 | moski | zenski | Row Total |

-------------|-----------|-----------|-----------|

veliko mesto | 56 | 72 | 128 |

| 0114 | 0096 | |

| 0438 | 0562 | 0091 |

| 0087 | 0094 | |

| 0040 | 0051 | |

-------------|-----------|-----------|-----------|

predmestje | 94 | 110 | 204 |

| 0004 | 0004 | |

| 0461 | 0539 | 0145 |

| 0146 | 0144 | |

| 0067 | 0078 | |

-------------|-----------|-----------|-----------|

manjse mesto | 151 | 160 | 311 |

| 0528 | 0446 | |

| 0486 | 0514 | 0221 |

| 0235 | 0210 | |

108 25 Frekvencne in kontingencne tabele

| 0107 | 0114 | |

-------------|-----------|-----------|-----------|

vas | 264 | 351 | 615 |

| 1083 | 0914 | |

| 0429 | 0571 | 0438 |

| 0411 | 0461 | |

| 0188 | 0250 | |

-------------|-----------|-----------|-----------|

kmetija | 78 | 69 | 147 |

| 1710 | 1443 | |

| 0531 | 0469 | 0105 |

| 0121 | 0091 | |

| 0056 | 0049 | |

-------------|-----------|-----------|-----------|

Column Total | 643 | 762 | 1405 |

| 0458 | 0542 | |

-------------|-----------|-----------|-----------|

gt zelimo samo po stolpcih + hi-kvadrat test - SPSS format

gt CrossTable(data$F5data$O1F2 propr=FALSE propc=TRUE

propt=FALSE propchisq=FALSE chisq = TRUE format=c(SPSS))

Cell Contents

|-------------------------|

| Count |

| Column Percent |

|-------------------------|

Total Observations in Table 1405

| data$O1F2

data$F5 | moski | zenski | Row Total |

-------------|-----------|-----------|-----------|

veliko mesto | 56 | 72 | 128 |

| 8709 | 9449 | |

-------------|-----------|-----------|-----------|

predmestje | 94 | 110 | 204 |

| 14619 | 14436 | |

-------------|-----------|-----------|-----------|

manjse mesto | 151 | 160 | 311 |

| 23484 | 20997 | |

-------------|-----------|-----------|-----------|

vas | 264 | 351 | 615 |

| 41058 | 46063 | |

-------------|-----------|-----------|-----------|

2 poglavje ndash Univariatna in bivariatna statistika 109

kmetija | 78 | 69 | 147 |

| 12131 | 9055 | |

-------------|-----------|-----------|-----------|

Column Total | 643 | 762 | 1405 |

| 45765 | 54235 | |

-------------|-----------|-----------|-----------|

Statistics for All Table Factors

Pearsons Chi-squared test

------------------------------------------------------------

Chi^2 = 6340168 df = 4 p = 01751438

Minimum expected frequency 5857936

Frekvencne tabele z vec kot dvema dimenzijama lahko ustvarimo na enak nacin kotdvodimenzionalne tabele s funkcijo table a je izpis pogosto zelo nepregleden Zapreglednejsi izpis lahko uporabimo funkcijo ftable ali tabelo pred izpisom pretvo-rimo v podatkovni okvir z asdataframe Kljub temu je izpis zelo dolg in ga zatoizpuscam

gt 3 in vec dimenzionalne tabele

gt tbl3Dlt-table(data$O1F2data$F5data$F6)

gt tbl3D

gt izpis postane zelo nepregleden

gt

gt ftable(tbl3D)

gt asdataframe(tbl3D)

253 Povezanost spremenljivk

S pomocjo kontingencnih tabel in na njih osnovanih mer lahko merimo in preverjamopovezanost med nominalnimi spremenljivkami

Za preverjanje domneve o neodvisnosti med dvema spremenljivkama lahko upora-bimo χ2-test Na voljo je v funkciji chisqtest ki kot argument sprejme vektormatriko ali dvodimenzionalno kontingencno tabelo Kot smo ze videli pa χ2-testvrne (ce tako izberemo) tudi funkcija CrossTable iz paketka gmodels

110 25 Frekvencne in kontingencne tabele

Funkcija chisqtest s privzetimi vrednostmi argumentov pri 2x2 tabelah uporabitudi Yatesov popravek omogoca pa tudi izracun (bolj) natancnih p vrednosti spomocjo simulacij (preko permutacijskega testa)

Statistiki si glede uporabe Yatesovega popravka niso enotni χ2-test ni natancen testampak le priblizek Uporaba Yatesovega popravka lahko v nekaterih primerih tapriblizek izboljsa lahko pa naredi χ2-test tudi prevec konzervativen

Za 2x2 tabele je na voljo tudi Fisherjev natancni test preko funkcije fishertest

Naredimo najprej obicajni χ2-test za povezanost tipa kraja bivanja in spola Prica-kujemo da nicelne domneve ne bomo mogli zavrniti

gt tblF5O1F2lt-table(data$F5data$O1F2)

gt tblF5O1F2

moski zenski

veliko mesto 56 72

predmestje 94 110

manjse mesto 151 160

vas 264 351

kmetija 78 69

gt chisqtest(tblF5O1F2)

Pearsons Chi-squared test

data tblF5O1F2

X-squared = 63402 df = 4 p-value = 01751

Domnevo bi lahko zavrnili sele pri 1751- tveganju in je zato ne zavrnemo

Poglejmo se primer tabele 2x2 kjer bomo preverjali domnevo o povezanosti (nicelnadomneva seveda predpostavlja neodvisnost) spremenljivk spol in rdquoclanstvo v politicnistrankirdquo Ker gre za tabelo 2x2 lahko uporabimo Yatesov popravek Izracunali bomoobe moznosti (s popravkom in brez njega)

gt attributes(data)$variablelabels[B21]

B21

Ali ste clan kaksne politicne stranke

gt data$B21lt-factor(data$B21)

gt (tblGndrBlt-table(data$B21data$O1F2)) 2x2 tabela

moski zenski

da 29 21

ne 618 738

2 poglavje ndash Univariatna in bivariatna statistika 111

gt hi-kvadrat test z Yatesovim popravkom (privzeta moznost)

gt chisqtest(tblGndrB)

Pearsons Chi-squared test with Yates continuity

correction

data tblGndrB

X-squared = 25174 df = 1 p-value = 01126

gt hi-kvadrat test brez Yatesovega popravka

gt chisqtest(tblGndrBcorrect = FALSE)

Pearsons Chi-squared test

data tblGndrB

X-squared = 29967 df = 1 p-value = 008343

Ce uporabimo privzeto moznost ce torej uporabimo Yatesov popravek lahko tuditu ugotovimo da niti pri 10- tveganju ne moremo trditi da sta spremenljivki spolin rdquoclanstvo v politicni strankirdquo povezani

Ce pa tega popravka ne bi uporabili bi pri 10- tveganju ze lahko trdili da staspremenljivki povezani

Ker je χ2-test pravzaprav le priblizek tukaj pa imamo celo dve razlicici pravilnostizracuna preverimo preko simulacij in Fisherjevega natancnega testa

gt chisqtest(tblGndrBsim=TRUE) p-vrednost preko simulacij

Pearsons Chi-squared test with simulated p-value

(based on 2000 replicates)

data tblGndrB

X-squared = 29967 df = NA p-value = 01134

gt fishertest(tblGndrB)

Fishers Exact Test for Count Data

data tblGndrB

p-value = 01112

alternative hypothesis true odds ratio is not equal to 1

95 percent confidence interval

08979363 30744330

sample estimates

odds ratio

1648488

Oba izracuna potrdita pravilnost izracuna χ2 z Yatesovim popravkom V primeruda bi izbrali χ2-test brez Yatesovega popravka bi dobili precej manjso stopnjo tve-ganja (priblizno 8-) ki pa bi bila glede na rezultate simulacij in Fisherjevega

112 26 Korelacija

natancnega testa napacna Uporaba popravka je torej v tem primeru primerna nipa vedno tako saj lahko popravek naredi test prevec konzervativen

Povezanost spremenljivk merimo s kontingencnimi koeficienti Ti so med drugim navoljo v funkciji assocstats v paketku vcd Razlaga vrnjenih koeficientov (glede naFerligoj 1994 166)

Phi-Coefficien Koren Pearsonovega koeficienta ndash pravzaprav gre v primeru binar-nih spremenljivk za Pearsonov korelacijski koeficient in ima tudi enako inter-pretacijo

Contingency Coeff Kontingencni koeficient (brez popravka)

Cramerrsquos V Kramerjev koeficient

gt installpackages(vcd)

gt library(vcd)

gt tblF5O1F2lt-table(data$F5data$O1F2)

gt assocstats(tblF5O1F2)

X^2 df P(gt X^2)

Likelihood Ratio 63309 4 017576

Pearson 63402 4 017514

Phi-Coefficient NA

Contingency Coeff 0067

Cramers V 0067

Vsi koeficienti imajo vrednost 0067 kar kaze da spremenljivki pravzaprav nistapovezani (oz sta zelo zelo sibko povezani)

26 Korelacija

Povezanost med ordinalnimi spremenljivkami in intervalnimi ali ordinalnimi spre-menljivkami merimo s pomocjo korelacijskih koeficientov

V R-ju lahko korelacijsko matriko izracunamo s pomocjo funkcije cor domneve okorelaciji pa lahko preverjamo s funkcijo cortest Prva (cor) izracuna korelacijomed vsemi spremenljivkami v podatkovnem okvirju ali matriki druga (cortest)izracuna in testira le eno korelacijo naenkrat Obe funkciji poznata naslednje kore-lacijske koeficiente

pearson Pearsonov koeficient (linearne) korelacije (privzeta moznost)

spearman Spearmanov koeficient korelacije

kendall Kendallov (τ) koeficient korelacijekonkordance

2 poglavje ndash Univariatna in bivariatna statistika 113

Slika 25 Razsevni grafikon ndash izobrazba in bruto placa

5 10 15 20

100

200

300

400

500

600

700

Izobrazba

Bru

to p

lača

Od teh treh je morda le Kendallov manj znan Tako kot Spearmanov koeficient ko-relacije je tudi Kendallov uporaben na ordinalnih spremenljivkah njegova vrednostpa se izracuna kot

(stevilo parov ki se ujemajo) ndash (stevilo parov ki se ne ujemajo)

stevilo vseh moznih parov

Pari ki se ujemajo so pari kjer je vrstni red enot (v paru) glede na obe spremenljivkienak tisti ki se ne ujemajo pa tisti kjer imata enoti drugacen vrstni red prispremenljivkah Stevilo vseh parov je n(nminus1)

2

Za primer vzemimo korelacijo med stevilom let solanja (F7) in bruto placo (G91)Odnos je prikazan tudi na sliki 25 Ocitno je zveza med spremenljivkama pozitivnaa nelinearna Izracunajmo in testirajmo vse tri koeficiente

gt narisemo razsevni grafikon

gt plot(G91~F7data=dataxlab=Izobrazbaylab=Bruto placa)

114 26 Korelacija

gt izracunamo Pearsonov koeficient korelacije

gt cor(x=data$F7y=data$G91use=completeobsmethod=pearson)

[1] 0550864

gt in preverimo domnevo (ki tudi izracuna korelacijo)

gt cortest(x=data$F7y=data$G91 method=pearson)

Pearsons product-moment correlation

data data$F7 and data$G91

t = 11862 df = 323 p-value lt 22e-16

alternative hypothesis true correlation is not equal to 0

95 percent confidence interval

04702540 06223585

sample estimates

cor

0550864

gt Spearmanov

gt cortest(x=data$F7y=data$G91 method=spearman)

Spearmans rank correlation rho

data data$F7 and data$G91

S = 2392800 p-value lt 22e-16

alternative hypothesis true rho is not equal to 0

sample estimates

rho

05817806

gt Kendallov

gt cortest(x=data$F7y=data$G91 method=kendall)

Kendalls rank correlation tau

data data$F7 and data$G91

z = 11146 p-value lt 22e-16

alternative hypothesis true tau is not equal to 0

sample estimates

tau

04474194

Vsi trije koeficienti kazejo na srednje mocno povezanost a vseeno je vrednost Ken-dallovega koeficienta bistveno nizja vrednost Spearmanovega pa najvisja

Kot smo ze omenili funkcija cor izracuna korelacijo med vsemi spremenljivkamiv podatkovnem okvirju funkcija cortest pa izracuna in testira le eno korelacijonaenkrat V ta namen je v datoteki rdquoUcbenikR-funkcijeRrdquo funkcija corTestDf kiomogoca da funkcijo cortest uporabimo na vec spremenljivkah Lepsi izpis sedobi z uporabo funkcije printCorTestDf

2 poglavje ndash Univariatna in bivariatna statistika 115

Slika 26 Razsevni grafikoni med vsemi spremenljivkami ki merijo zaupanje v in-stitucije

B4

0 4 8 0 4 8 0 4 8

04

8

04

8

B5

B6

04

8

04

8

B7

B8

04

8

04

8

B9

0 4 8 0 4 8 0 4 8 0 4 8

04

8

B10

Poglejmo si torej korelacije in statisticne znacilnosti na primeru sklopa spremenljivkB4-B10 (zaupanje v institucije) Izracunali bomo Pearsonove in Kendallove koefi-ciente Hiter pregled povezanosti med njimi je na sliki 26 (tocke so zaradi boljsepreglednosti rdquozatresenerdquo)

gt izbor shranimo

gt izborlt-c(B4 B5 B6 B7 B8 B9 B10)

gt izpisemo imena

gt attributes(data)$variablelabels[izbor]

B4 B5

drzavnemu zboru pravnemu sistemu

116 26 Korelacija

B6 B7

policiji politikom

B8 B9

politicnim strankam Evropskemu parlamentu

B10

Zdruzenim narodom

gt narisemo grafe

gt pairs(apply(data[izbor]2jitter)cex=03)

gt izracunamo Pearsonove korelacije

gt cor(data[izbor]use=pairwisecompleteobsmethod=pearson)

B4 B5 B6 B7 B8

B4 10000000 05946718 04616891 06415600 06311402

B5 05946718 10000000 05633582 05902897 05644650

B6 04616891 05633582 10000000 04800425 04414586

B7 06415600 05902897 04800425 10000000 08322464

B8 06311402 05644650 04414586 08322464 10000000

B9 06179115 05648233 04733737 05792044 05935754

B10 05188249 04824849 04596825 04667185 04893612

B9 B10

B4 06179115 05188249

B5 05648233 04824849

B6 04733737 04596825

B7 05792044 04667185

B8 05935754 04893612

B9 10000000 07889287

B10 07889287 10000000

gt tmplt-corTestDf(data[izbor]method=pearson)

gt printCorTestDf(tmp)

B4 B5 B6 B7 B8 B9 B10

B4 cor 0595 0462 0642 0631 0618 0519

p 0000 0000 0000 0000 0000 0000

n 1387 1358 1368 1374 1373 1231 1276

B5 cor 0595 0563 0590 0564 0565 0482

p 0000 0000 0000 0000 0000 0000

n 1358 1376 1365 1365 1364 1228 1274

B6 cor 0462 0563 0480 0441 0473 0460

p 0000 0000 0000 0000 0000 0000

n 1368 1365 1401 1380 1372 1238 1287

B7 cor 0642 0590 0480 0832 0579 0467

p 0000 0000 0000 0000 0000 0000

n 1374 1365 1380 1398 1380 1236 1283

B8 cor 0631 0564 0441 0832 0594 0489

2 poglavje ndash Univariatna in bivariatna statistika 117

p 0000 0000 0000 0000 0000 0000

n 1373 1364 1372 1380 1392 1236 1285

B9 cor 0618 0565 0473 0579 0594 0789

p 0000 0000 0000 0000 0000 0000

n 1231 1228 1238 1236 1236 1247 1227

B10 cor 0519 0482 0460 0467 0489 0789

p 0000 0000 0000 0000 0000 0000

n 1276 1274 1287 1283 1285 1227 1295

gt se Kendallove

gt cor(data[izbor]use=pairwisecompleteobsmethod=kendall)

B4 B5 B6 B7 B8

B4 10000000 04909485 03667314 05291117 05160148

B5 04909485 10000000 04606602 04794322 04546308

B6 03667314 04606602 10000000 03844481 03523638

B7 05291117 04794322 03844481 10000000 07607492

B8 05160148 04546308 03523638 07607492 10000000

B9 05049790 04485398 03736321 04639373 04807420

B10 04279313 03891029 03600516 03761712 03943594

B9 B10

B4 05049790 04279313

B5 04485398 03891029

B6 03736321 03600516

B7 04639373 03761712

B8 04807420 03943594

B9 10000000 06927734

B10 06927734 10000000

gt tmplt-corTestDf(data[izbor]method=kendall)

gt printCorTestDf(tmp)

B4 B5 B6 B7 B8 B9 B10

B4 cor 0491 0367 0529 0516 0505 0428

p 0000 0000 0000 0000 0000 0000

n 1387 1358 1368 1374 1373 1231 1276

B5 cor 0491 0461 0479 0455 0449 0389

p 0000 0000 0000 0000 0000 0000

n 1358 1376 1365 1365 1364 1228 1274

B6 cor 0367 0461 0384 0352 0374 0360

p 0000 0000 0000 0000 0000 0000

n 1368 1365 1401 1380 1372 1238 1287

B7 cor 0529 0479 0384 0761 0464 0376

p 0000 0000 0000 0000 0000 0000

n 1374 1365 1380 1398 1380 1236 1283

B8 cor 0516 0455 0352 0761 0481 0394

118 27 Viri za poglabljanje znanja

p 0000 0000 0000 0000 0000 0000

n 1373 1364 1372 1380 1392 1236 1285

B9 cor 0505 0449 0374 0464 0481 0693

p 0000 0000 0000 0000 0000 0000

n 1231 1228 1238 1236 1236 1247 1227

B10 cor 0428 0389 0360 0376 0394 0693

p 0000 0000 0000 0000 0000 0000

n 1276 1274 1287 1283 1285 1227 1295

Pri zanemarljivi stopnji tveganja lahko pri obeh koeficientih ugotovimo da so vsespremenljivke na populaciji povezane kar bi glede na to da merijo sorodne stvari inglede na velikost vzorca tudi pricakovali Tudi tu se pokaze da je linearna poveza-nost izmerjena s Pearsonovim koeficientom vecja od tiste izmerjene s Kendallovim

27 Viri za poglabljanje znanja

Za poglabljanje snovi iz tega poglavja so uporabni tudi spletni viri navedeni vpodpodpoglavju 191 (Spletni viri) a jih ju tu ponovno ne navajam Izpostavljamsamo enega s pomocjo katerega je mogoce zelo enostavno in hitro najti ustrezneukaze za izvedbo zelenih analiz

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

Za poglabljanje znanja iz statistike so primerni prakticno vsi splosni statisticni uc-beniki na primer

bull Minium Edward W Robert C Clarke in Theodore Coladarci 1999 Elementsof statistical reasoning New York Wiley

bull Levin Jack James Alan Fox in David R Forde 2013 Elementary Statisticsin Social Research (12th Edition) Pearson

bull Wonnacott Thomas H in Ronald J Wonnacott 1990 Introductory statisticsNew York Wiley

bull Kosmelj Blazenka in Joze Rovan 2007 Statisticno sklepanje Ljubljana Eko-nomska fakultetaSlovenski ucbenik ki ga uporabljajo na Ekonomski fakulteti Univerze v Lju-bljani

Osnovne statisticne analize v R-ju pa pokrivajo sledeci ucbeniki ki so bili sicervecinoma navedeni tudi pri virih v prvem poglavju

2 poglavje ndash Univariatna in bivariatna statistika 119

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer13

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer14

Se posebej primeren za tiste ki ze poznajo SPSS ali SAS sicer pa zelo zgoscenaobravnava

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC15

28 Vprasanja za ponavljanje

1 Kaj moramo narediti da nam funkcije kot so na primer mean in min vrnejoveljavno vrednost tudi ce imamo v podatkih manjkajoce vrednosti (NA) Ena-kovredno vprasanje je kaj moramo storiti da izracunajo statistiko samo napodlagi veljavnih (nemanjkajocih) vrednosti

2 Kateri paketek vsebuje veliko funkcij ki so zelo uporabne v druzboslovju in seposebej v psihologiji

3 S katerim argumentov vecini statisticnih funkcij povemo iz katerega podat-kovja (oziroma podatkovnega okvirja) naj crpa podatke (isce spremenljivke)

4 Kaksna je razlika med parametricnimi in neparametricnimi testi

5 Katero funkcijo ali funkcije moramo izbrati ce zelimo izvesti t-test za en vzo-rec za dva odvisna vzorca in za dva neodvisna vzorca Na podlagi cesa seodlocimo katerega izmed teh testov je treba izvesti

6 Kateri test za preverjanje domneve o srednji vrednosti ne zahteva vsaj inter-valne merske lestvice

7 Ali funkcija ttest s privzetimi argumenti pri izvedbi t-testa za neodvisnavzorca predpostavlja enako ali razlicno velike variance po skupinah

8 Kako funkcija table s privzetimi vrednostmi argumentov v kontingencnihtabelah izpisuje manjkajoce vrednosti (NA)

9 Kdaj lahko uporabimo Fisherjev natancni test za preverjanje domneve o po-vezanosti dveh nominalnih spremenljivk

10 Katere korelacijske koeficiente lahko izracuna funkcija cor

13Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani14Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani15Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf

120 28 Vprasanja za ponavljanje

11 Kako funkcija cor s privzetimi argumenti obravnava manjkajoce vrednosti ceracunamo korelacijsko matriko med vec spremenljivkami Kaksne so ostalemoznosti

12 Ali lahko na podlagi izpisa funkcije cor povemo ali lahko nicelno domnevo onepovezanosti dveh spremenljivk zavrnemo

121

3 poglavje

Analiza variance in linearna regre-sija

V zadnjem poglavju sta predstavljeni analiza variance in linearna regresija Pri obehzacnemo z najenostavnejsim (bivariatnim) primerom nato pa dodajamo dodatne ele-mente Poglavje kot obicajno zacnemo s predstavitvijo podatkov Sledi podpoglavjeo analizi variance kjer zacnemo z enofaktorsko analizo variance ki jo potem nad-gradimo v vecfaktorsko analizo variance kjer so mozne tudi interakcije med ucinkineodvisnih spremenljivk Prav tako obravnavamo tudi enofaktorsko analizo varianceza odvisne vzorce in Kruskal-Wallisov test vsote rangov neparametricno razlicicoklasicne enofaktorske analize variance za neodvisne vzorce

Analizi variance sledi podpoglavje o linearni regresiji kjer ponovno zacnemo z eno-stavno bivariatno linearno regresijo V nadaljevanju linearno regresijo najprej nad-gradimo z nelinearno regresijo vecina poglavja pa je namenjena multipli linearniregresiji torej linearni regresiji z vec neodvisnimi spremenljivkami Pri tem prika-zemo tudi kako lahko kot neodvisne spremenljivke vkljucimo nominalne in ordinalnespremenljivke ter kako v model vkljucimo interakcije med vplivi neodvisnih spremen-ljivk Proti koncu poglavja posebno pozornost namenimo preverjanju predpostavkZa bolj zagnane studente pa sta dodana podpodpoglavje o moznosti nadgrajevanjaoziroma izpopolnjevanja predstavljenega empiricnega primera (338) in podpodpo-glavje s prikazom izracuna ocen parametrov linearne regresije brez uporabe vgrajenihfunkcij za linearno regresijo (339) predvsem z uporabo linearne algebre (matric-nega racunanja)

31 Uporabljeni podatki

Za prikaz predstavljenih metod bomo tudi tu uporabili podatke iz Evropske druz-boslovne raziskave (httpwwweuropeansocialsurveyorg) za Slovenijo za leto

122 32 Analiza variance (ANOVA)

2004 Uporabljena datoteka je bila pridobljena iz Arhiva druzboslovnih podatkov(Tos in drugi 2004) Opis raziskave in povezave do datoteke so dostopne na tem sple-tnem naslovu httpwwwadpfdvuni-ljsiopisisjm042 Iz Arhiva druz-boslovnih podatkov sem prenesel podatke v SPSS-ovem formatu (rdquosavrdquo)

Uporabili bomo predvsem sledece spremenljivke

G91 bruto placa v 1000 sit

F5 kraj bivanja (5 kategorij)

O1F2 spol

Preberemo podatke iz SPSS-ove datotke

gt nalozimo podatke

gt library(foreign)

gt datalt-readspss(file=sjm042_f1sav

todataframe = TRUE usevaluelabels = TRUE

maxvaluelabels=5 usemissings=TRUE)

gt nalozimo tudi dodatne funkcije

gt source(UcbenikR-funkcijeR)

32 Analiza variance (ANOVA)

Analiza variance (ANOVA) je splosno ime za metode ki primerjajo pojasnjeno va-riabilnost (obicajno merjeno z vsoto kvadratov odklonov) z nepojasnjeno Ce jepojasnjena variabilnost dovolj velika v primerjavi z nepojasnjeno potem lahko za-kljucimo da ima tisto kar jo pojasnjuje nek vpliv na obravnavano odvisno spre-menljivko16

Omejili se bomo na probleme pri katerih preverjamo ali se aritmeticne sredinerazlikujejo med vzorci oziroma skupinami Pri takih primerih je pojasnjena varia-bilnost variabilnost med aritmeticnimi sredinami teh vzorcevskupin (variabilnostmed vzorci) nepojasnjena pa variabilnost znotraj vzorcev (variabilnost posameznihvrednosti okoli aritmeticnih sredin posameznih vzorcevskupin) Pojasnjena varia-bilnost je obicajno pojasnjena z eno ali vec nominalnimi17 spremenljivkami

16V splosnem je sicer odvisnih spremenljivk lahko tudi vec a tega ne bomo obravnavali17Oziroma spremenljivkami ki jih obravnavamo kot nominalne

3 poglavje ndash Analiza variance in linearna regresija 123

321 Enofaktorska analiza variance za neodvisne vzorce

Ta verzija analize variance je najbolj znana in najpogosteje uporabljena tako davecina ljudi ob izrazu rdquoanaliza variancerdquo pomisli ravno nanjo

Klasicna enofaktorska analiza variance za neodvisne vzorce ima sledece predpo-stavke

Normalnost (angl normality) Odvisna spremenljivka se znotraj vsake popula-cije porazdeljuje normalno

Enakost varianc (angl homogeneity of variance) Variabilnost je enaka v vseh(pod)populacijah (skupinah)

Ce je zadosceno tema dvema predpostavkama lahko uporabimo F-test (analizo va-riance) za testiranje domnev o razliki aritmeticnih sredin

Ce imamo velik vzorec (na primer kot 30 enot v vsakem vzorcu) lahko uporabimoF-test tudi ce predpostavki o normalnosti ni popolnoma zadosceno Pomembno jeda je porazdelitev v vseh populacijah priblizno enaka (na primer povsod podobnoasimetricna v desno) Pri majhnih vzorcih pa v primeru razlicnih varianc ne moremouporabiti obicajnega F-testa

V primeru da je krsena predpostavka o enakosti varianc pa lahko uporabimo Wel-chevo analizo variance (Welch 1951)

Predpostavko o normalnosti obicajno preverjamo graficno (histogram po skupinah)predpostavko o enakosti varianc pa preko opisnih statistik in formalnih testov Nekajmoznih testov

bartletttest Primeren ce je predpostavka o normalnosti izpolnjena

flignertest Neobcutljiv na odstopanja od normalnosti Temelji na rangih

leveneTest Tudi ta je neobcutljiv na odstopanja od normalnosti Z argumentomcenter=mean (kar ni privzeta moznost) je to test ki ga uporablja SPSS Navoljo je v paketku car

Enofaktorsko analizo variance in njeno neparametricno razlicico lahko izvedemo ssledecimi funkcijami

onewaytest Izvede klasicno in Welchevo enofaktorsko analizo variance

aov Bolj splosna funkcija za analizo variance (tudi vecfaktorsko) ki pa ne omogocamoznosti za razlicne variance (vsaj ne na enostaven nacin)

kruskaltest Kruskal-Wallisov test vsote rangov ndash neparametricna razlicica ana-lize variance oziroma razlicica Mann-Whitneyjevega testa za vec kot 2 vzorca

124 32 Analiza variance (ANOVA)

Opozorilo

Funkcija aov tako kot veliko drugih statisticnih funkcij kot glavni argumentsprejme formulo ki pove vpliv katerih neodvisnih spremenljivk na katero odvi-sno spremenljivko preucujemo Ce zelimo da se neodvisne spremenljivke obrav-navajo kot nominalne spremenljivke (in ne kot intervalne) morajo biti obveznotipa faktor (ali kvecjemu character ki ga funkcija samodejno spremeni vfaktor) Sicer je tisto kar dobimo bolj podobno linearni regresiji

Za primerjave katera povprecja se statisticno znacilno razlikujejo izvedemo takoimenovane rdquopost hocrdquo teste Za ta namen lahko v splosnem uporabimo funkcijopairwisettest Parne primerjave namrec niso nic drugega kot t-testi kjer do-bljene p-vrednosti popravimo tako da je skupno tveganje enako izbrani stopnji αPri funkciji pairwisettest lahko izberemo tudi metodo popravka p-vrednostiPriporocena je Holmova metoda (Holm 1979) ki je tudi splosno veljavna18 in jeboljsa kot Bofferonijeva

Ko je izpolnjena predpostavka o enakih variancah in smo za analizo variance upora-bili funkcijo aov lahko za te primerjave uporabimo tudi Tukeyjev test preko funkcijeTukeyHSD

Najprej preglejmo podatke ki jih bomo uporabljali v nadaljevanju (ne le v tempodpodpoglavju)

gt popravimo faktorje

gt table(data$O1F2)

moski zenski

648 762

gt table(data$F5)

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija

148

Spodaj je nekaj osnovnih izracunov Porazdelitve osnovnih spremenljivk so prika-zane na sliki 31

gt library(psych)

gt describe(data$G91)

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

18Tudi ce na primer ne moremo predpostavljati neodvisnosti med testi

3 poglavje ndash Analiza variance in linearna regresija 125

Slika 31 Porazdelitve uporabljenih spremenljivk

moski zenski

Spol

010

020

030

040

050

060

070

0

veliko mesto

predmestje

manjse mesto

vas

kmetija

Kraj bivanja

0 100 200 300 400 500 600

Bruto plača

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

050

100

150

range skew kurtosis se

1 707 146 252 671

gt frekTab(data$F5dec=2)[c(13)]

Frekvenca

veliko mesto 132 919

predmestje 204 1421

manjse mesto 326 2270

vas 626 4359

kmetija 148 1031

gt frekTab(data$O1F2dec=2)[c(13)]

Frekvenca

moski 648 4596

zenski 762 5404

gt if(exists(mardef)) mardeflt-par(mar)

gt par(mfrow=c(13))

gt plot(data$O1F2 main=Spol)

gt par(mar=c(3731))

gt plot(data$F5horiz=TRUElas=1main=Kraj bivanja)

gt par(mar=mardef)

gt hlt-hist(data$G91main=Bruto placa

xlab=Bruto placa v 1000 sit ylab=Frekvenca)

gt curve(dnorm(xmean=mean(data$G91narm=TRUE)

sd=sd(data$G91narm=TRUE))diff(h$breaks)[1]

sum(isna(data$G91)) add=TRUE)

gt par(mfrow=c(11))

Sedaj izracunajmo se opisne statistike za bruto placo po posameznih tipih krajevbivanja in narisemo ustrezne grafikone

126 32 Analiza variance (ANOVA)

gt describeBy(data$G91group=data$F5mat=TRUE)

item group1 vars n mean sd median

11 1 veliko mesto 1 30 2561000 13322715 225

12 2 predmestje 1 45 2209111 9705313 200

13 3 manjse mesto 1 77 2544675 12983812 220

14 4 vas 1 139 2138273 12217005 188

15 5 kmetija 1 34 1887059 9712271 170

trimmed mad min max range skew kurtosis

11 2532500 1690164 75 450 375 02320304 -156727318

12 2118919 1008168 95 490 395 08192702 -003695316

13 2374286 1037820 100 750 650 13747886 180644481

14 1961593 919212 53 760 707 17963112 418899970

15 1728929 593040 80 528 448 17785525 318494875

se

11 2432384

12 1446783

13 1479643

14 1036233

15 1665641

gt par(mfrow=c(23))

gt for(i in levels(data$F5))

hist(data$G91[data$F5==i] xlab=Bruto placa main=i

ylab=Frekvenca)

gt par(mfrow=c(11))

Namesto histograma pa lahko s spodnjo kodo zelo enostavno narisemo tudi skatlastegrafikone po skupinah

gt plot(G91~F5data=data)

V posameznih kategorijah imamo razmeroma malo enot vendar pa se vedno v vsakinad 30 Morda bi bilo smiselno narediti manj kategorij a glede na opisne statistikese kaksno zelo smiselno rekodiranje ravno ne ponuja19

Iz opisnih statistik vidimo da so standardni odkloni (koreni varianc) po skupinahrazmeroma podobni Tako lahko tudi brez testa sklepamo da s predpostavko oenakosti varianc ne bi prevec zgresili Bolj pa je problematicno ker sta asimetrija in(se bolj) konicavost bistveno visji v zadnjih dveh kategorijah (vas in kmetija) To jerazvidno tudi iz slike 32 Kljub temu bomo za demonstracijo izvedli tudi vse teste

19Ce bi kategorije zdruzevali na podlagi opisnih statistik (predvsem aritmeticnih sredin) bi bilo tonarobe Test ki bi ga naredili na podlagi tako zdruzenih kategorij ne bi bil veljaven

3 poglavje ndash Analiza variance in linearna regresija 127

Slika 32 Porazdelitev bruto place po krajih bivanja

veliko mesto

Bruto plača

Fre

kven

ca

100 200 300 400

01

23

45

6

predmestje

Bruto plača

Fre

kven

ca

100 200 300 400 500

02

46

810

12

manjse mesto

Bruto plača

Fre

kven

ca

100 200 300 400 500 600 700 800

05

1015

2025

3035

vas

Bruto plača

Fre

kven

ca

0 200 400 600 800

010

2030

4050

6070

kmetija

Bruto plača

Fre

kven

ca

100 200 300 400 500

02

46

810

12

gt bartletttest(G91~F5data=data)

Bartlett test of homogeneity of variances

data G91 by F5

Bartletts K-squared = 77277 df = 4 p-value =

01021

gt flignertest(G91~F5data=data)

Fligner-Killeen test of homogeneity of variances

data G91 by F5

Fligner-Killeenmed chi-squared = 11456 df = 4

p-value = 002189

gt neobcutljiv na odstopanja od normalnosti

gt library(car)

gt leveneTest(G91~F5data=data)

Levenes Test for Homogeneity of Variance (center = median)

Df F value Pr(gtF)

group 4 1789 01307

320

128 32 Analiza variance (ANOVA)

gt neobcutljiv na odstopanja od normalnosti

gt leveneTest(G91~F5data=data center=mean)

Levenes Test for Homogeneity of Variance (center = mean)

Df F value Pr(gtF)

group 4 22227 006639

320

---

Signif codes

0 0001 001 005 01 1

gt razlicica kot jo uporablja SPSS

gt malce manj robustna

Barlettov in Levenov test pokazeta da bi lahko domnevo o enakosti varianc zavrnilisele pri vec kot 10- tveganju Nasprotno pa Fligner-Killeenjev test domnevo zavrneze pri 22- tveganju Glede na to da same razlike med standardnimi odkloni nisotako velike lahko predpostavko o enakosti varianc obdrzimo Kljub temu pa bomo(za demonstracijo) izvedli obe razlicici analize variance (klasicno in Welchevo) Polegtega bomo izvedli tudi neparametricni Kruskal-Wallisov test

gt predpostavljamo enake variance

gt onewaytest(G91~F5data=datavarequal=TRUE)

One-way analysis of means

data G91 and F5

F = 27695 num df = 4 denom df = 320 p-value =

002742

gt predpostavljamo razlicne variance

gt varequal=FALSE bi lahko tudi izpustili ker je to

gt privzeta moznost

gt onewaytest(G91~F5data=datavarequal=FALSE)

One-way analysis of means (not assuming equal

variances)

data G91 and F5

F = 27964 num df = 400 denom df = 10316 p-value

= 002988

gt se preko funkcije aov

gt fitlt-aov(G91~F5data=data)

gt summary(fit)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 158604 39651 277 00274

Residuals 320 4581392 14317

---

3 poglavje ndash Analiza variance in linearna regresija 129

Signif codes

0 0001 001 005 01 1

1117 observations deleted due to missingness

gt rezultat je identicen kot pri prejsnji funkciji

gt ko smo predpostavljali enake variance

gt

gt kruskaltest(G91~F5data=data)

Kruskal-Wallis rank sum test

data G91 by F5

Kruskal-Wallis chi-squared = 12557 df = 4 p-value

= 001365

Obe razlicici ANOVE nam vrneta zelo podoben rezultat Glede na oba lahko stveganjem manjsim kot 3 trdimo da se povprecna bruto placa razlikuje gledena kraj bivanja Glede na Kruskal-Wallisov test pa lahko predpostavko o enakostisrednjih vrednosti zavrnemo ze pri 14- tveganju

Opozorilo

Domneva ki jo preverjamo s Kurskal-Walisovim testom ni vec enakaa

a Kruskal-Wallisov test preverja podobno domnevo kot Mann-Whitneyjev test ki je podrob-neje razlozen v podpodpoglavju 233

Poglejmo se katera povprecja so razlicna V primeru enakih varianc je za ta namennajprimernejsa funkcija TukeyHSD (ki jo uporabimo na rezultatu funkcije aov) re-zultat katere lahko tudi lepo narisemo V primeru neenakih varianc pa uporabimofunkcijo pairwisettest

gt TukeyHSD(fit) fit mora biti rezultat funkcije aov

Tukey multiple comparisons of means

95 family-wise confidence level

Fit aov(formula = G91 ~ F5 data = data)

$F5

diff lwr upr

predmestje-veliko mesto -35188889 -11255949 42181712

manjse mesto-veliko mesto -1632468 -7228018 69015248

vas-veliko mesto -42272662 -10835533 23810003

kmetija-veliko mesto -67394118 -14961878 14830549

manjse mesto-predmestje 33556421 -2803788 95150721

vas-predmestje -7083773 -6338365 49216108

130 32 Analiza variance (ANOVA)

kmetija-predmestje -32205229 -10679513 42384676

vas-manjse mesto -40640194 -8727244 5992052

kmetija-manjse mesto -65761650 -13335265 1829353

kmetija-vas -25121456 -8792562 37682705

p adj

predmestje-veliko mesto 07232946

manjse mesto-veliko mesto 09999963

vas-veliko mesto 04019543

kmetija-veliko mesto 01647508

manjse mesto-predmestje 05667485

vas-predmestje 09969399

kmetija-predmestje 07603006

vas-manjse mesto 01204253

kmetija-manjse mesto 00608866

kmetija-vas 08078518

gt par(mar=mardef+c(0800))

gt plot(TukeyHSD(fit)las=1) se graficna predstavitev rezultatov

gt par(mar=mardef)

gt TukeyHSD je primeren le ob predpostavki enakih varianc

gt

gt pairwisettest(x=data$G91g=data$F5padjustmethod= holm

poolsd=TRUE)

Pairwise comparisons using t tests with pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 100 - - -

manjse mesto 100 082 - -

vas 056 100 016 -

kmetija 020 100 008 100

P value adjustment method holm

gt pairwisettest(x=data$G91g=data$F5padjustmethod= bonf

poolsd=TRUE)

Pairwise comparisons using t tests with pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 100 - - -

manjse mesto 100 100 - -

vas 080 100 017 -

3 poglavje ndash Analiza variance in linearna regresija 131

kmetija 025 100 008 100

P value adjustment method bonferroni

gt ce ne zelimo uporabiti predpostavke o enakosti varianc

gt nastavimo poolsd=FALSE

gt

gt pairwisettest(x=data$G91g=data$F5padjustmethod= holm

poolsd=FALSE)

Pairwise comparisons using t tests with non-pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 0821 - - -

manjse mesto 1000 0754 - -

vas 0754 1000 0233 -

kmetija 0233 0754 0041 0821

P value adjustment method holm

Ce predpostavljamo enake variance lahko najdemo statisticno znacilne razlike selepri 10- tveganju (oziroma 6ndash8-) in se to le med manjsim mestom in kmetijoPodobno je tudi ce privzamemo da so variance razlicne le da lahko v tem primeruto trditev postavimo ze pri 41 tveganju

Za konec povprecja se graficno predstavimo na sliki 33

gt library(gplots)

gt plotmeans(G91~F5data=data)

322 Vecfaktorska analiza variance za neodvisne vzorce

Vecfaktorska analiza variance je analiza variance kjer so skupine dolocene z vec kotenim faktorjem Z njo torej preverjamo domnevo o vplivu dveh ali vec nominalnih(oziroma vsaj tako jih obravnavamo) neodvisnih spremenljivk na odvisno spremen-ljivko

Predpostavke vecfaktorske analize variance so podobne predpostavkam enofaktor-ske ndash porazdelitev v vseh skupinahcelicah (dolocenih s kombinacijo vseh faktorjevoziroma neodvisnih spremenljivk) je normalna z enako varianco

Analiza je bistveno enostavnejsa ce so neodvisne spremenljivke med seboj neodvi-snenepovezane kar pa se v druzboslovju (oziroma kjerkoli kjer podatke dobimo z

132 32 Analiza variance (ANOVA)

Slika 33 Porazdelitve uporabljenih spremenljivk

150

200

250

300

F5

G91

veliko mesto manjse mesto vas kmetija

n=30 n=45 n=77 n=139 n=34

opazovanjeanketiranjem in ne eksperimentom) redko zgodi V primeru da neod-visne spremenljivke med seboj niso neodvisne je pomemben vrstni red faktorjevModel namrec najprej poskusa pojasniti cim vec variabilnosti odvisne spremenljivkes 1 faktorjem nato z 2 3

Rezultati se torej spremenijo ce zamenjamo vrstni red faktorjev Od vrstnega redaje tudi odvisno kaj nek test sploh preverja Pri prvem faktorju test preverja ali le-ta pojasni vsaj nekaj variabilnosti odvisne spremenljivke (oziroma ali vpliva nanjo)Pri vseh ostalih pa preverja ali faktor pojasni kak del variabilnosti odvisne spre-menljivke ki se ni pojasnjen s faktorji ki so v modelu pred obravnavanim faktorjemVse to velja ce uporabimo rdquoklasicnordquo vsoto kvadratov oziroma vsoto kvadratov tipaI Obstajajo tudi druge vrste vsote kvadratov (tip II III IV za vec glejte Fox (2008159) Muenchen (2011 633ndash635) in IBM (2011)) vendar jih tu ne bomo obravnavaliVsote kvadratov tipa II in III lahko izracunate s pomocjo funkcije Anova iz paketkacar Pri tipu III vrstni red faktorjev ni pomemben

Preverjamo lahko tudi ali obstaja interakcija med vplivi posameznih faktorjev In-terakcija med vplivi faktorjev pomeni da se vpliv nekega faktorja razlikuje glede navrednosti nekega drugega faktorja

Na nasem primeru bomo preverjali ali lahko trdimo da kraj bivanja in spol vplivatana bruto placo Poleg tega bomo preverili tudi ali lahko trdimo da spol vpliva nabruto placo ce predhodno izlocimo vpliv kraja bivanja

3 poglavje ndash Analiza variance in linearna regresija 133

Pred izracunom bomo pripravili podatke in sicer tako da bomo v nov podatkovniokvir shranili samo za to analizo potrebne spremenljivke Tu bomo potem odstra-nili vse enote ki imajo manjkajoco vrednost pri katerikoli spremenljivki To bomonaredili tako da bomo v nadaljevanju pri vseh analizah upostevali iste enote (karnam bo omogocalo da bomo modele primerjali med seboj)

nnajprej torej pripravimo nov podatkovni okvir in odstranimo enote z manjkajocimivrednostmi Nato podobno kot pri enofaktorski ANOVI preverimo predpostavke(izracunamo opisne statistike po skupinah)

gt dataAovlt-data[c(G91O1F2F5)]

gt dataAovlt-naomit(dataAov)

gt odstranili smo enote z manjkajocimi vrednostmi

gt

gt describeBy(dataAov$G91group=dataAov[c(O1F2F5)]

mat=TRUE)

item group1 group2 vars n mean sd

11 1 moski veliko mesto 1 14 2520000 12794650

12 2 zenski veliko mesto 1 15 2523333 14355172

13 3 moski predmestje 1 24 2311250 9543917

14 4 zenski predmestje 1 21 2092381 9989640

15 5 moski manjse mesto 1 39 2886923 14734656

16 6 zenski manjse mesto 1 35 2101143 9263679

17 7 moski vas 1 69 2270870 12535992

18 8 zenski vas 1 67 2028060 12044064

19 9 moski kmetija 1 27 1888889 9864713

110 10 zenski kmetija 1 7 1880000 9854441

median trimmed mad min max range skew

11 226 2502500 1423296 75 450 375 03270494

12 200 2503846 1482600 80 450 370 02540330

13 200 2233500 1074885 120 490 370 07883115

14 184 1970000 948864 95 450 355 08518656

15 250 2741212 889560 110 750 640 11844391

16 170 1992759 770952 100 500 400 11385801

17 200 2089825 741300 61 760 699 19229792

18 180 1859091 1037820 53 700 647 15723492

19 170 1723913 593040 80 528 448 19727940

110 132 1880000 429954 103 350 247 06346745

kurtosis se

11 -142834380 3419514

12 -178216305 3706489

13 -002979449 1948144

14 -023542599 2179918

134 32 Analiza variance (ANOVA)

Slika 34 Porazdelitev bruto place po krajih bivanja in spolu

moski veliko mesto

Bruto plača

Fre

quen

cy

0 100 200 300 400 500

01

23

45

moski predmestje

Bruto plača

Fre

quen

cy

100 200 300 400 500

01

23

45

67

moski manjse mesto

Bruto plača

Fre

quen

cy

100 300 500 7000

510

15

moski vas

Bruto plača

Fre

quen

cy

0 200 400 600 800

05

1015

2025

3035

moski kmetija

Bruto plača

Fre

quen

cy

0 100 300 500

05

1015

zenski veliko mesto

Bruto plača

Fre

quen

cy

0 100 200 300 400 500

01

23

45

6

zenski predmestje

Bruto plača

Fre

quen

cy

100 200 300 400

01

23

45

6

zenski manjse mesto

Bruto plača

Fre

quen

cy

100 200 300 400 500

02

46

810

12

zenski vas

Bruto plača

Fre

quen

cy

0 200 400 600

05

1015

2025

30

zenski kmetija

Bruto plača

Fre

quen

cy

100 150 200 250 300 350

01

23

4

15 078377390 2359433

16 089652400 1565848

17 453230346 1509156

18 314171911 1471417

19 393661300 1898465

110 -156138214 3724628

gt par(mfrow=c(25))

gt for(iGndr in levels(dataAov$O1F2))

for(iF5 in levels(dataAov$F5))

hist(dataAov$G91[(dataAov$F5==iF5)ampdataAov$O1F2==iGndr]

xlab=Bruto placa main=paste(iGndriF5sep= ))

gt par(mfrow=c(11))

Sedaj je v nekaterih skupinah ze zelo malo enot Standardni odkloni med skupinaminiso pretirano razlicni se pa precej razlikujejo koeficienti asimetrije in sploscenostiVsekakor rezultati kazejo na to da porazdelitev v vseh skupinah ni (niti pribli-zno) normalna in tudi ne podobna med skupinami Predpostavke metode torej nisoizpolnjene zato moramo rezultate metode jemati z veliko rezervo

3 poglavje ndash Analiza variance in linearna regresija 135

Sedaj najprej ponovimo enofaktorsko ANOVO s funkcijo aov za vsak faktor po-sebej Poleg tega preverimo tudi ali sta neodvisni spremenljivki med seboj pove-zani

gt fitG91_F5lt-aov(G91~F5data=dataAov)

gt summary(fitG91_F5)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2298 00589

Residuals 313 4503794 14389

---

Signif codes

0 0001 001 005 01 1

gt fitG91_O1F2lt-aov(G91~O1F2data=dataAov)

gt summary(fitG91_O1F2)

Df Sum Sq Mean Sq F value Pr(gtF)

O1F2 1 60436 60436 4174 00419

Residuals 316 4575644 14480

---

Signif codes

0 0001 001 005 01 1

V primeru da bi bile predpostavke klasicne analize variance (normalnost enakevariance) izpolnjene (prej smo ugotovili da so krsene) bi lahko pri 59- tveganjutrdili da kraj bivanja vpliva na bruto placo in pri 42- tveganju da spol vplivana bruto placo

Kot smo omenili je pri vecfaktorski analizi variance pomembno ali sta neodvisnispremenljivki povezani Preverimo torej to predpostavko in izracunajmo moc pove-zanosti

gt tbllt-table(dataAov$O1F2dataAov$F5)

gt proptable(tblmargin=2)

veliko mesto predmestje manjse mesto vas

moski 04827586 05333333 05270270 05073529

zenski 05172414 04666667 04729730 04926471

kmetija

moski 07941176

zenski 02058824

gt lazje opazimo ali sta spremenljivki povazani

gt chisqtest(tbl)

Pearsons Chi-squared test

136 32 Analiza variance (ANOVA)

data tbl

X-squared = 98558 df = 4 p-value = 004293

gt installpackages(vcd)

gt library(vcd)

gt assocstats(tbl)

X^2 df P(gt X^2)

Likelihood Ratio 105712 4 0031830

Pearson 98558 4 0042928

Phi-Coefficient NA

Contingency Coeff 0173

Cramers V 0176

gt (pricakovana) zanimivost - na vseh podatkih povezanosti ni

gt chisqtest(table(data$O1F2data$F5))

Pearsons Chi-squared test

data table(data$O1F2 data$F5)

X-squared = 63402 df = 4 p-value = 01751

V nasih podatkih (tistih ki jih bomo uporabili pri analizi variance20) sta spremen-ljivki kraj bivanja in spol sibko povezani To je posledica tega da upostevamo samoenote z veljavnimi vrednostmi za bruto placo Na vseh enotah namrec povezanostini oziroma povezanost ni statisticno znacilna

Rekli smo da bomo preverjali ali lahko trdimo da kraj bivanja in spol vplivata nabruto placo Test celotnega modela je malce zahtevnejsi Standardne funkcije ga neizvedejo Lahko pa ga izvedemo zelo enostavno tako da model primerjamo z nicelnimmodelom Nicelni model je model kjer nimamo pojasnjevalnih spremenljivk V temmodelu so napovedi enake povprecju

Poleg tega bomo preverili tudi ali lahko trdimo da spol vpliva na bruto placo cepredhodno kontroliramo za vpliv kraja bivanja Tako bomo v model kot 1 spre-menljivko dali kraj bivanja kot 2 pa spol

gt izvedemo dvofaktorsko ANOVO

gt fitG91_F5O1F2lt-aov(G91~F5+O1F2data=dataAov)

gt summary(fitG91_F5O1F2)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2334 00556

O1F2 1 83242 83242 5875 00159

Residuals 312 4420552 14168

20Izlocili smo tiste enote ki vsaj pri eni spremenljivki niso imele veljavne vrednosti v veliki vecinipri bruto placi

3 poglavje ndash Analiza variance in linearna regresija 137

---

Signif codes

0 0001 001 005 01 1

gt rezultat pri spolu nam pove koliko ta model pojasni

gt vec kot model s samo krajem bivanja

gt anova(fitG91_F5fitG91_F5O1F2)

Analysis of Variance Table

Model 1 G91 ~ F5

Model 2 G91 ~ F5 + O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 313 4503794

2 312 4420552 1 83242 58752 001592

---

Signif codes

0 0001 001 005 01 1

gt ocenimo nicelni model

gt fitG91_1lt-update(fitG91_F5O1F2~1)

gt funkcija update popravi model glede na argumente

gt ali

gt fitG91_1lt-aov(G91~1data=dataAov)

gt

gt primerjamo model z nicelnim

gt da ocenimo statisticno znacilnost celotnega modela

gt anova(fitG91_1fitG91_F5O1F2)

Analysis of Variance Table

Model 1 G91 ~ 1

Model 2 G91 ~ F5 + O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 317 4636080

2 312 4420552 5 215527 30424 001069

---

Signif codes

0 0001 001 005 01 1

Iz rezultatov lahko razberemo

bull Pri 56- tveganju lahko trdimo da kraj bivanja vpliva na bruto placo Sto-pnja tveganja je manjsa kot pri enofaktorski ANOVI (kjer je bila 59-) kerje manjsa nepojasnjena varianca (del variance je sedaj pojasnjen s spolom)

bull Pri 16- tveganju lahko trdimo da spol vpliva na bruto placo ce izlocimovpliv kraja bivanja Ta stopnja tveganja je bistveno manjsa kot prej Pravza-prav je tudi pojasnjena vsota kvadratov (pri spolu) tu vecja To pomeni da

138 32 Analiza variance (ANOVA)

so razlike v bruto placi med spoloma vecje ce jih gledamo loceno po krajihbivanja kot ce jih gledamo skupaj

bull S priblizno 1- tveganjem lahko trdimo da spol ali kraj bivanja (vsaj enaizmed teh dveh spremenljivk) vplivata na bruto placo

Preverimo se ali obstaja tudi interakcija med vplivom spola in kraja bivanja Tardquoucinekrdquo moramo v model vedno vkljuciti oziroma navesti na koncu

gt izvedemo dvofaktorsko ANOVO

gt fitG91_F5O1F2Ilt-aov(G91~F5O1F2data=dataAov)

gt summary(fitG91_F5O1F2I)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2334 00557

O1F2 1 83242 83242 5874 00159

F5O1F2 4 56064 14016 0989 04136

Residuals 308 4364488 14170

---

Signif codes

0 0001 001 005 01 1

gt primerjamo model z nicelnim

gt da ocenimo statisticno znacilnost celotnega modela

gt anova(fitG91_1fitG91_F5O1F2I)

Analysis of Variance Table

Model 1 G91 ~ 1

Model 2 G91 ~ F5 O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 317 4636080

2 308 4364488 9 271591 21296 002692

---

Signif codes

0 0001 001 005 01 1

Interakcija med ucinkoma ni statisticno znacilna Ne moremo torej trditi da spoldrugace vpliva na bruto placo v razlicnih krajih bivanja Posledicno se tudi skupnaznacilnost modela zaradi vkljucitve interakcije zniza

323 Enofaktorska analiza variance za odvisne vzorce

Pogledali si bomo le najenostavnejsi primer analize variance za odvisne vzorce Ana-liza variance za odvisne vzorce je sorodna t-testu za odvisne vzorce le da je vzor-cevspremenljivk katerih povprecje preverjamo vec

3 poglavje ndash Analiza variance in linearna regresija 139

Analizo variance za odvisne vzorce lahko prav tako kot prejsnje tipe naredimopreko funkcije aov z ustreznimi argumenti vendar pa moramo pred uporabo po-datke prilagoditi Podatke je treba preurediti v podobno obliko kot jo imamo prineodvisnih vzorcih Potrebujemo torej eno odvisno spremenljivko in spremenljivkoki rdquodolocardquovzorce (oziroma originalne spremenljivke) Poleg tega pa moramo za vsakpodatek tudi vedeti kateri enoti pripada Za vsako enoto moramo imeti podatke zavse vzorcespremenljivke

Za to je uporabna tale funkcija21

gt razsiriPodatkelt-function(Xid=rownames(X)

varNames=colnames(X))

funkcija za pretvorbo podatkov v obliko

kot jo razumeta funkciji aov ali lm

n12lt-dim(X)

nlt-n12[1]

mlt-n12[2]

if(isnull(varNames)) varNameslt-1m

if(isnull(id)) idlt-1n

reslt-NULL

for(i in 1m)

reslt-rbind(resdataframe(id=idx=X[i]

var=varNames[i]))

return(res)

Funkcijo aov sicer uporabimo kot obicajno le da navedemo katera spremenljivkanam rdquodolocardquo enote oziroma natancneje povemo napake katerih rdquozapisovrdquo so kore-lirane Pozor Klic funkcije je casovno zahteven

Preverjali bomo domnevo ali Slovenci enako zaupamo Drzavnemu zboru (spremen-ljivka B4) Evropskemu parlamentu (B9) in Zdruzenim narodom (B10) Preglejmonajprej opisne statistike in pripravimo podatke

gt dataB4910lt-naomit(data[c(B4B9B10)])

gt za uporabo funkcije razsiriPodatke pripravimo

gt nov podatkovni okvir ki vsebuje le uporabljene

gt spremenljivke

gt describe(dataB4910)

21Funkcija se nahaja tudi v datoteki rdquoUcbenikR-funkcijeRrdquo

140 32 Analiza variance (ANOVA)

vars n mean sd median trimmed mad min max range

B4 1 1213 413 238 4 410 297 0 10 10

B9 2 1213 453 241 5 456 297 0 10 10

B10 3 1213 457 267 5 460 297 0 10 10

skew kurtosis se

B4 010 -057 007

B9 -008 -070 007

B10 -004 -082 008

gt dataB4910razlt-razsiriPodatke(dataB4910)

gt dataB4910raz[110] novi podatki izgledajo takole

id x var

1 1 2 B4

2 2 8 B4

3 4 4 B4

4 5 8 B4

5 6 3 B4

6 7 3 B4

7 8 7 B4

8 9 3 B4

9 11 2 B4

10 14 5 B4

Zaupanje v Evropski parlament in Zdruzene narode je bistveno visje kot v Drzavnizbor Preverimo ali je razlika statisticno znacilna

gt aovReplt-aov(x~var+Error(id)data=dataB4910raz)

gt summary(aovRep)

Error id

Df Sum Sq Mean Sq F value Pr(gtF)

Residuals 1212 17257 1424

Error Within

Df Sum Sq Mean Sq F value Pr(gtF)

var 2 148 7410 3404 264e-15

Residuals 2424 5277 218

---

Signif codes

0 0001 001 005 01 1

gt modeltables(aovReptype=means)

Tables of means

Grand mean

4409453

3 poglavje ndash Analiza variance in linearna regresija 141

var

var

B4 B9 B10

4125 4528 4575

Pri zanemarljivi stopnji tveganja lahko trdimo da Slovenci ne zaupamo vsem treminstitucijam enako

33 Linearna regresija

Z linearno regresijo ugotavljamo ce in ce kako ena ali vec neodvisnih spremenljivkvpliva(jo) na odvisno spremenljivko To vkljucuje tudi ugotavljanje moci vplivaocenjevanje prileganja modela oziroma pojasnjevalne moci modela preverjane pred-postavk in se kaj

Kot ze samo ime pove se omejimo na linearne vplive spremenljivk kar ce malcepoenostavimo pomeni da se vpliv posamezne spremenljivke ne spreminja v odvi-snosti od vrednosti odvisne spremenljivke Obstaja sicer tudi nelinearna regresija kijo lahko izvedemo na vec nacinov Pogosto tudi preko ustrezne transformacije spre-menljivk nelinearno regresijo prevedemo v linearno regresijo Na kratko se te temedotaknemo v podpodpoglavju 333 sicer pa tema ze presega obseg tega ucbenika

V ucbeniku tudi ne obravnavamo naprednejsih tem kot so na primer posploseni line-arni modeli in hierarhicni vecnivojski ali mesani modeli (glej Faraway 2006 Gelmanin Hill 2006 Snijders in Bosker 2012) Prav tako obravnavamo samo podatke zbranev eni casovni tocki ne pa na primer panelnih podatkov (glejte na primer Wooldridge2002)

Se vedno pa v tem podpoglavju obravnavamo precej siroko podrocje zato se tu sebolj kot v ostalih delih ucbenika omejimo na izvedbo analize (linearne regresije)v R-ju same teorije pa ne obravnavamo Za pridobitev znanja s tega podrocjapriporocam uporabo virov ki so navedeni v podpodpoglavju 34 se posebej Fox(2008)

331 Dodatne spremenljivke

Poleg spremenljivk ki smo jih ze uporabili pri analizi variance (glejte podpoglavje32) bomo od tu naprej uporabljali se spremenljivki F7 rdquoStevilo let solanjardquo in F21rdquoTipicno stevilo delovnih ur (vkljucno z nadurami) na tedenrdquo Graficni prikaz njunihporazdelitev je na sliki 35

Pri tem so upostevane samo enote ki imajo veljavne vrednosti pri vseh spremenljiv-kah ki jih bomo uporabili v regresiji (v kateremkoli modelu) ndash to so G91 O1F2 F5

142 33 Linearna regresija

F7 in F21 Na teh podatkih bomo opravili tudi vse linearne regresije Ta pristop smoizbrali zato da lahko rezultate razlicnih analiz med seboj primerjamo Funkcija lm 22

namrec izvede analizo na enotah ki imajo pri uporabljenih spremenljivkah veljavnevrednosti Posledica tega je da ce izvajamo vec razlicnih analiz z razlicnimi neod-visnimi spremenljivkami na originalnih podatkih niso v vseh analizah uporabljeneiste enote in zato rezultati niso primerljivi23

V praksi je v fazi izbire modela tak pristop (ce problem manjkajocih podatkov niprevelik) priporocljiv ko pa izberemo koncni model (predvsem dokoncno dolocimoneodvisne spremenljivke) pa je bolje ce upostevamo vse razpolozljive podatke (torejvse enote ki imajo veljavne vrednosti na spremenljivkah ki jih uporabimo v nekemmodelu)

V primeru manjkajocih vrednosti (torej takorekoc vedno) je najbolje da upostevamovse veljavne vrednosti (torej tudi veljavne vrednosti pri enotah ki imajo sicer tudikaksno manjkajoco vrednost) Izmed dobrih pristopov se najpogosteje uporabljajoveckratne imputacije oz multiple imputacije (Rubin 1987 1996) ki so tudi zelodobro podprte v paketku mice (Buuren in Groothuis-Oudshoorn 2011 Buuren 2012)Vendar pa to ze presega obseg tega ucbenika

Pripravimo torej najprej podatke ter preglejmo opisne statistike in porazdelitvi zadodatni spremenljivki

gt dataLRlt-naomit(data[c(G91O1F2F5F7F21)])

gt describe(dataLR[c(F7F21)])

vars n mean sd median trimmed mad min max range

F7 1 312 1236 308 12 1232 148 1 23 22

F21 2 312 4249 1240 42 4353 445 0 80 80

skew kurtosis se

F7 005 115 017

F21 -133 400 070

gt par(mfrow=c(12)mar=mardef)

gt hlt-hist(dataLR$F7main=Stevilo let solanja

xlab=Stevilo let solanja ylab=Frekvenca)

gt curve(dnorm(xmean=mean(dataLR$F7narm=TRUE)

sd=sd(dataLR$F7narm=TRUE))diff(h$breaks)[1]

sum(isna(dataLR$F7)) add=TRUE)

gt hlt-hist(dataLR$F21main=Tipicno stevilo delovnih ur na teden

xlab=Tipicno stevilo delovnih ur na teden ylab=Frekvenca)

22Enako velja za ostale R-jeve funkcije za regresijske metode (kar vkljucuje tudi analizo variance)23Se posebej je to problem ce zelimo modele formalno primerjati na primer s funkcijo anova ndash

glejte podpodpoglavje 335

3 poglavje ndash Analiza variance in linearna regresija 143

Slika 35 Porazdelitve dodatnih spremenljivk

Število let šolanja

Število let šolanja

Fre

kven

ca

0 5 10 15 20

050

100

150

Tipično število delovnih ur na teden

Tipično število delovnih ur na teden

Fre

kven

ca0 20 40 60 80

020

6010

0

gt curve(dnorm(xmean=mean(dataLR$F21narm=TRUE)

sd=sd(dataLR$F21narm=TRUE))diff(h$breaks)[1]

sum(isna(dataLR$F21)) add=TRUE)

gt par(mfrow=c(11))

Opazimo lahko da porazdelitev obeh spremenljivk ni normalna se posebej pa odnormalnosti odstopa porazdelitev spremenljivke rdquoTipicno stevilo delovnih ur na te-denrdquo ki je zelo konicasta in asimetricna v levo

332 Bivariatna regresija

Zacnimo z najenostavnejsim primerom bivariatne linearne regresije Preverimo kakostevilo let solanja vpliva na bruto placo

Odnos med spremenljivkama je graficno predstavljen na sliki 36 Za zdaj odmislimopolno crtopremico na tej sliki Rdeca crtkana crta pa prikazuje glajena povprecjaodvisne spremenljivke glede na vrednosti neodvisne

gt par(mar=mardef+c(00-30))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt lines(with(data=dataLRlowess(G91~F7))lwd=2lty=2col=red)

gt par(mar=mardef)

Iz slike lahko razberemo naslednje stvari

144 33 Linearna regresija

Slika 36 Odnos med bruto placo in stevilom let solanja

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

bull Ce stevilo let solanja narasca v povprecju narasca tudi bruto placa

bull Variabilnost bruto place narasca s stevilom let solanja kar je krsitev ene izmedpredpostavk linearne regresije

bull Videti je da s stevilom let solanja bruto placa najprej narasca pocasi (alisploh ne) kasneje pa narasca vse hitreje Torej je mogoce da linearna zvezani primerna

bull Videti je da zacne izobrazba vplivati na placo sele ko stevilo let solanja preseze12 let

Kljub pomislekom nadaljujmo najprej z enostavno linearno regresijo Za ocenjeva-nje linearne regresije uporabimo funkcijo lm za preverjanje domnev o koeficientih incelotnega modela za izracun determinacijskega ter nekaterih drugih statistih funk-cijo summary za izracun intervalov zaupanja pa funkcijo confint iz paketka carNarisemo tudi sliko ki prikazuje odvisnost bruto place od stevila let solanja

gt (fitG91_F7lt-lm(G91~F7data=dataLR))

Call

lm(formula = G91 ~ F7 data = dataLR)

Coefficients

(Intercept) F7

-3841 2139

3 poglavje ndash Analiza variance in linearna regresija 145

gt summary(fitG91_F7) za bolj bogat izpis

Call

lm(formula = G91 ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26809 -6502 -1833 4786 45609

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -3841 2407 -1596 0112

F7 2139 189 11320 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1025 on 310 degrees of freedom

Multiple R-squared 02925 Adjusted R-squared 02902

F-statistic 1281 on 1 and 310 DF p-value lt 22e-16

gt library(car)

gt confint(fitG91_F7level=09) 90 intervala zaupanja

5 95

(Intercept) -7812024 1296065

F7 1827676 24512959

gt par(mar=mardef+c(00-30))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt lines(with(data=dataLRlowess(G91~F7))lwd=2lty=2col=red)

gt abline(fitG91_F7lwd=2)

gt par(mar=mardef)

Z variabilnostjo v stevilu let solanja lahko pojasnimo 292 variabilnosti v brutoplaci Ce se stevilo let solanja poveca za eno leto se bo bruto placa v povprecjupovecala za 214 tisoc sit Vpliv stevila let solanja na bruto placo je staticno znacilenpri zanemarljivi stopnji tveganja

S pomocjo funkcije confint iz paketka car smo izracunali tudi 90- intervalazaupanja za regresijski koeficient in konstanto

Na podlagi rezultata smo na sliko 36 vrisali premico ki prikazuje ocenjeni odnosmed spremenljivkama Ocitno je da se premica pri velikih in majhnih vrednostihspremenljivke rdquoStevilo let solanjardquo ne prilega

To je morda se bolj ocitno ce si pogledamo graf kjer na y os nanasamo rezidualena x os pa vrednosti neodvisne spremenljivke (1 graf na sliki 37) Histogram na

146 33 Linearna regresija

Slika 37 Porazdelitev rezidualov

5 10 15 20

-200

020

040

0

Razsevni grafikon rezidualov gledena vrednosti neodvisne spremenljivke

Število let šolanja

Rez

idua

li

Histogram rezidualovz vrisano normalno krivuljo

Reziduali

Gos

tota

-200 0 200 4000

000

000

20

004

sliki 37 pa kaze da je krsena tudi predpostavka o normalni porazdelitvi rezidua-lovnapak Koda za sliko sledi

gt par(mfrow=c(12)xpd=NA)

gt plot(fitG91_F7$residuals~dataLR$F7

ylab=Reziduali xlab=Stevilo let solanja

main=Razsevni grafikon rezidualov glede

na vrednosti neodvisne spremenljivke)

gt hist(fitG91_F7$residuals freq=FALSE br=15

xlab=Reziduali ylab=Gostota

main=Histogram rezidualovnz vrisano normalno krivuljo)

gt curve(dnorm(xmean=0sd=sd(fitG91_F7$residuals))add=TRUE)

gt par(mfrow=c(11)xpd=FALSE)

Podobne zakljucke lahko izpeljemo tudi na podlagi grafikonov na sliki 38 ki so (vR-ju) standardni diagnosticni prikazi za linearno regresijo (tudi multiplo) zato jihdobimo zelo enostavno

gt par(mfrow=c(22)) zahtevamo 4 grafe na eno sliko

gt plot(fitG91_F7)

gt par(mfrow=c(11))

Graf levo zgoraj je podoben razsevnemu grafikonu na sliki 37 le da so na y osinapovedane vrednosti in ne neodvisna spremenljivka Pri bivariatni regresiji grepravzaprav le za linearno transformacijo skale (mnozenje in sestevanje) pri multipli

3 poglavje ndash Analiza variance in linearna regresija 147

Slika 38 Diagnosticni grafikoni za linearno regresijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641784 525

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641

784525

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641

784 525

000 001 002 003 004

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05

Residuals vs Leverage

199

784641

pa sluzijo napovedane vrednosti kot nek nadomestek za vse neodvisne spremenljivke(saj so napovedane vrednosti linearne kombinacije neodvisnih spremenljivk)

Graf desno zgoraj pa podaja podobno informacijo kot histogram Imenuje se Q-Qplot (Q je okrajsava za quantile) Ce so reziduali normalno porazdeljeni lezijo vsetocke na crtkani premici

333 Nelinearna regresija

Ugotovili smo da linearna zveza med spremenljivkama na danih podatkih morda ninajbolj optimalna Odnos je videti dosti bolj linearen ce bruto placo logaritmiramo

148 33 Linearna regresija

Na takih podatkih lahko ocenimo tudi linearno regresijo in sicer tako da znotrajformule bruto placo logaritmiramo Sicer se koda skorajda ne spremeni Rezultatlahko potem narisemo tudi na originalni lestvici Oboje je prikazano na sliki 39)

gt fitLnG91_F7lt-lm(log(G91)~F7data=dataLR)

gt summary(fitLnG91_F7) za bolj bogat izpis

Call

lm(formula = log(G91) ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-126487 -029420 002024 027755 145055

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 4224075 0098354 4295 lt2e-16

F7 0086630 0007723 1122 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 04189 on 310 degrees of freedom

Multiple R-squared 02887 Adjusted R-squared 02864

F-statistic 1258 on 1 and 310 DF p-value lt 22e-16

gt par(mfrow=c(12))

gt plot(log(G91)~F7data=dataLRxlab=Stevilo let solanja

ylab=Logaritem bruto place v 1000 sit

main=Pollogaritemski grafikon)

gt abline(fitLnG91_F7)

gt text(x=25y=65

labels=bquote(italic(G91)minute==

(round(coef(fitLnG91_F7)[1]3))

+(round(coef(fitLnG91_F7)[2]3))italic(F7)))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja

main=Originalna skala)

gt curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]x)

add=TRUE)

gt text(x=25y=700

labels=bquote(italic(G91)minute==

italic(e)^((round(coef(fitLnG91_F7)[1]3))

+(round(coef(fitLnG91_F7)[2]3))italic(F7))))

gt par(mfrow=c(11))

3 poglavje ndash Analiza variance in linearna regresija 149

Slika 39 Exponentna zveza ndash transformacija

5 10 15 20

40

50

60

Pollogaritemski grafikon

Število let šolanja

Loga

ritem

bru

to p

lače

v 1

000

sit

4224 + 0087F7

5 10 15 2010

030

050

070

0

Originalna skala

Število let šolanja

Bru

to p

lača

v 1

000

sit = e(4224+0087F7)

Ob tem pa se je treba zavedati da kadarkoli transformiramo odvisno spremenljivkoizracuni niso vec pravilni oziroma optimalni V tem primeru namrec ne minimizi-ramo vec vsote kvadratov odklonov originalne ampak transformirane spremenljivke(linearna regresija za ocenjevanje uporablja metodo najmanjsih kvadratov) Zaradiistega razloga tudi statistike R2 in podobne niso pravilne Pravilen izracun za R2 bibil

gt resLoglt-dataLR$G91- exp(fitLnG91_F7$fitted)

gt odkloniPovlt-dataLR$G91- mean(dataLR$G91)

gt R2loglt-1-sum(resLog^2)sum(odkloniPov^2)

gt R2log

[1] 02825734

Dejanski R2 je torej se nizji Sedaj smo sicer pravilno izracunali R2 a se vedno jeocenjevanje parametrov neoptimalno Parametre bi namrec morali ocenjevati takoda bi minimizirali vsoto kvadratov odklonov originalne spremenljivke

To lahko naredimo takole

gt expZvezalt-function(byX)

Xlt-asmatrix(X)

sslt-sum((y - exp(cbind(1X)b))^2)

return(ss)

gt optExplt-optim(par=coef(fitLnG91_F7)

fn=expZvezay=dataLR$G91X=dataLR[c(F7)])

150 33 Linearna regresija

gt resOptimlt-dataLR$G91 -

exp(optExp$par[1] + optExp$par[2]dataLR$F7)

gt odkloniPovlt-dataLR$G91-mean(dataLR$G91)

gt R2optimlt-1-sum(resOptim^2)sum(odkloniPov^2)

gt R2optim

[1] 0316329

gt R2log

[1] 02825734

gt summary(fitG91_F7)$rsq

[1] 02924672

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt curve(exp(optExp$par[1]+optExp$par[2]x)add=TRUEcol=blue)

gt curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]x)

add=TRUEcol=red)

gt abline(fitG91_F7col=green3)

gt text(x=19y=650

labels=bquote(italic(G91)minute==

italic(e)^((round(optExp$par[1]3)) +

(round(optExp$par[2]3))italic(F7)))col=blue)

gt legend(x=12y=790legend=c(linearna zveza

eksponentna zveza preko transformacije

eksponentna zveza preko optimizacije)

col=c(green3redblue)lty=1xjust=05yjust=0

xpd=TRUE)

Rezultat ocenjevanja je prikazan na sliki 310 R2 je sedaj znatno vecji kot prikateremkoli prejsnjem pristopu in znasa 0316

334 Multipla regresija

Sedaj razsirimo nas model tako da vkljucimo se eno intervalno neodvisno spremen-ljivko in sicer F21 rdquoTipicno stevilo delovnih ur (vkljucno z nadurami) na tedenrdquo

Tudi za to spremenljivko je pred vkljucitvijo dobro preveriti obliko njene povezanostiz odvisno spremenljivko Ustrezni prikaz je na sliki 311

gt par(mar=mardef+c(00-30))

gt plot(G91~F21data=dataLRylab=Bruto placa v 1000 sitxlab=

Tipicno stevilo delovnih ur (vkljucno z nadurami) na teden)

gt lines(with(data=dataLRlowess(G91~F21))lwd=2lty=2col=red)

gt par(mar=mardef)

3 poglavje ndash Analiza variance in linearna regresija 151

Slika 310 Ocenjevanje nelinearne zveze

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

G91 prime = e(4224+0093F7)

linearna zvezaeksponentna zveza preko transformacijeeksponentna zveza preko optimizacije

Slika 311 Odnos med bruto placo in tipicnim stevilom delovnih ur na teden

0 20 40 60 80

100

200

300

400

500

600

700

Tipično število delovnih ur (vključno z nadurami) na teden

Bru

to p

lača

v 1

000

sit

152 33 Linearna regresija

Kaksne posebne povezanosti med spremenljivkama ne vidimo Ker pa zelimo to tudiformalno preveriti bomo spremenljivko o stevilu delovnih ur vseeno vkljucili v line-arno regresijo Preverili bomo torej ali spremenljivka rdquoTipicno stevilo delovnih ur(vkljucno z nadurami) na tedenrdquo vpliva na bruto placo ce izlocimo vpliv izobrazbe(spremenljivka rdquoStevilo let solanjardquo) Zanima nas torej ali se bruto placa v pov-precju kaj spremeni ce se stevilo delovnih ur na teden poveca izobrazba pa ostanenespremenjena

Pri linearni regresiji vrstni red vkljucitve ni pomemben

Kljub temu da bi bila glede na nase podatke primernejsa nelinearna regresija bomo(iz pedagoskih razlogov) nadaljevali z linearno Enostaven popravek bi bil ce bisamo zamenjali G91 (bruto placo) z logaritmom te spremenljivke kar sicer (kot smovideli) ni optimalno

gt fitG91_F7F21lt-update(fitG91_F7~+F21)

gt prejsnjemu modelu dodamo dodatno neodvisno spremenljivko

gt ali daljse

gt fitG91_F7F21lt-lm(G91~F7+F21data=dataLR)

gt summary(fitG91_F7F21)

Call

lm(formula = G91 ~ F7 + F21 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26576 -6489 -1866 4783 45844

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -327354 311367 -1051 0294

F7 214004 18929 11306 lt2e-16

F21 -01352 04695 -0288 0774

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1027 on 309 degrees of freedom

Multiple R-squared 02927 Adjusted R-squared 02881

F-statistic 6392 on 2 and 309 DF p-value lt 22e-16

gt confint(fitG91_F7F21level=09)

5 95

(Intercept) -841046492 186338373

3 poglavje ndash Analiza variance in linearna regresija 153

F7 182775218 245233578

F21 -09098706 06394045

gt summary(fitG91_F7)

Call

lm(formula = G91 ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26809 -6502 -1833 4786 45609

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -3841 2407 -1596 0112

F7 2139 189 11320 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1025 on 310 degrees of freedom

Multiple R-squared 02925 Adjusted R-squared 02902

F-statistic 1281 on 1 and 310 DF p-value lt 22e-16

Za primerjavo smo izpisali se rezultat modela brez spremenljivke F21 Vpliv spre-menljivke F21 (kot smo pricakovali glede na sliko 311) ni statisticno znacilen Po-sledicno tudi njena vkljucitev ne vpliva bistveno na rezultate (R2 se je sicer malcepovecal popravljeni R2 pa malce zmanjsal vpliv spremenljivke F7 na G91 pa jeostal skoraj nespremenjen) Vseeno pa je interpretacija regresijskih koeficientov primultipli regresiji malce drugacna kot pri bivariatni regresiji Regresijski koeficientza stevilo let solanja 214 na primer pomeni da se bruto placa poveca za 214 tisocsit ce se stevilo let solanja poveca za eno leto in ostane tipicno stevilo delovnihur na teden nespremenjeno oziroma ce ostanejo vrednosti vseh ostalih neodvisnihspremenljivk (tu imamo pac samo eno) nespremenjene

Pri multipli regresiji je pomemben rezultat tudi F statistika in pripadajoci F -testTa nam v nasem primeru pove da lahko pri zanemarljivi stopnji tveganja trdimoda vsaj ena izmed neodvisnih spremenljivk vpliva na odvisno spremenljivko

Tudi tu bi bilo dobro preveriti porazdelitev rezidualov To storimo podobno kotpri bivariatni regresiji Ker pa imamo sedaj dve neodvisni spremenljivki bi moralinarisati dva razsevna grafikona (vsakega za svojo neodvisno spremenljivko na x osi)Taka grafa sta prikazana na sliki 312 Tako kot pri bivariatni regresiji se na prvemgrafu vidi heteroskedasticnost (variabilnost napak ni povsod enaka) na drugem pabi tezko z gotovostjo prepoznali nek vzorec (na sredini osi je x sicer variabilnostvideti najvecja a je tam tudi najvec vrednosti)

154 33 Linearna regresija

Slika 312 Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk

5 10 15 20

-200

020

040

0

Število let šolanja

Rez

idua

li

0 20 40 60 80-2

000

200

400

Število tipičnih delovnih ur

Rez

idua

li

gt par(mfrow=c(12)mar=mardef-c(0030))

gt plot(fitG91_F7F21$residuals~dataLR$F7

ylab=Reziduali xlab=Stevilo let solanja

main=)

gt plot(fitG91_F7F21$residuals~dataLR$F21

ylab=Reziduali xlab=Stevilo tipicnih delovnih ur

main=)

gt par(mfrow=c(11)mar=mardef)

Ker pa je takih grafov pri multipli regresiji lahko veliko je bolj prakticno da nari-semo samo en graf kjer na y os nanasamo napovedane vrednosti in ne neodvisnihspremenljivk Kot smo ze omenili tako napovedane vrednosti sluzijo kot nadomestekza vse neodvisne spremenljivke (saj so napovedane vrednosti linearne kombinacijeneodvisnih spremenljivk) Tak graf je skupaj s histogramom rezidualov prikazan nasliki 313

gt par(mfrow=c(12))

gt plot(fitG91_F7F21$residuals~fitG91_F7F21$fitted

ylab=Reziduali xlab=Napovedane vrednosti

main=Razsevni grafikon rezidualov glede

na napovedane vrednosti)

gt hist(fitG91_F7F21$residuals freq=FALSE br=15

xlab=Reziduali ylab=Gostota

main=Histogram rezidualovnz vrisano normalno krivuljo)

3 poglavje ndash Analiza variance in linearna regresija 155

Slika 313 Porazdelitev rezidualov

0 100 200 300 400

-200

020

040

0

Razsevni grafikon rezidualov gledena napovedane vrednosti

Napovedane vrednosti

Rez

idua

li

Histogram rezidualovz vrisano normalno krivuljo

Reziduali

Gos

tota

-200 0 200 4000

000

000

20

004

gt curve(dnorm(xmean=0sd=sd(fitG91_F7F21$residuals))add=TRUE)

gt par(mfrow=c(11))

R-jevi standardni diagnosticni prikazi za linearno regresijo so prikazani na sliki 314

gt par(mfrow=c(22))

gt plot(fitG91_F7)

gt par(mfrow=c(11))

335 Vkljucevanje nominalnihordinalnih spremenljivk

V linearno regresijo lahko kot neodvisne spremenljivke vkljucimo tudi nominalnespremenljivke in sicer preko umetnih spremenljivk Umetnih spremenljivk nam nitreba ustvariti saj jih samodejno ustvari funkcija lm Kot referencno kategorijoizbere tisto ki je pri faktorju navedena kot prva v levels

Funkcija lm kot nominalne spremenljivke obravnava le spremenljivke tipa factor incharacter ki pa jih pred uporabo spremeni v tip factor

156 33 Linearna regresija

Slika 314 Diagnosticni grafikoni za linearno regresijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641784 525

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641

784525

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641

784 525

000 001 002 003 004

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05

Residuals vs Leverage

199

784641

Opozorilo

Funkcija lm obravnava spremenljivke tipa ordered oziroma urejen factor takoda za njih na poseben nacin izracuna ndash rdquokontrasterdquo Tega nacina ne bomo obrav-navali saj je razmeroma zahteven za interpretacijo in razumevanje zato je pri-porocljivo da tudi za ordinalne spremenljivke uporabljate neurejen factor

Poglejmo najprej najenostavnejsi primer ko ima nominalna spremenljivka samo 2vrednosti V nas model torej vkljucimo se spol

3 poglavje ndash Analiza variance in linearna regresija 157

gt fitG91_F7F21O1F2lt-lm(G91~F7+F21+O1F2data=dataLR)

gt summary(fitG91_F7F21O1F2)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24770 -6939 -1786 5278 44416

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -170737 312701 -0546 058546

F7 216213 18731 11543 lt 2e-16

F21 -02170 04651 -0467 064108

O1F2zenski -330047 115776 -2851 000466

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1015 on 308 degrees of freedom

Multiple R-squared 03108 Adjusted R-squared 03041

F-statistic 4631 on 3 and 308 DF p-value lt 22e-16

Med rezultati je dodaten regresijski koeficient rdquoO1F2Zenskirdquo Iz njega vidimo daje bila kot referencna kategorija vzeta kategorija rdquoMoskirdquo saj te ni med koeficientiVrednost tega koeficienta (minus330) nam pove da imajo zenske v povprecju pri enakihvrednostih ostalih spremenljivk (izobrazba stevilo delovnih ur na teden) za 33 tisocsit nizjo placo kot moski Pri takem kodiranju je vrednost regresijskega koeficientavedno primerjava izbrane kategorije z referencno Vpliv spola je statisticno znacilenpri tveganju 047

Opozorilo

Klasicna interpretacija da se odvisna spremenljivka spremeni za bx ce se xpoveca za eno enoto in ostale spremenljivke ostanejo nespremenjene tu ni pri-merna ker se spol pri neki osebi naceloma ne spreminja

Dodajmo kot spremenljivko se kraj bivanja

gt fitG91_F7F21O1F2F5lt-lm(G91~F7+F21+O1F2+F5data=dataLR)

gt summary(fitG91_F7F21O1F2F5)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 data = dataLR)

158 33 Linearna regresija

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -105263 375909 -0280 077965

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5predmestje -158647 246244 -0644 051989

F5manjse mesto 114633 225129 0509 061099

F5vas -62163 212181 -0293 076974

F5kmetija -32327 268104 -0121 090411

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

Ker je bilo rdquoVeliko mestordquo izbrano kot referencna kategorija imamo v izpisu regre-sijske koeficiente za vse ostale kategorije Vsak izmed teh regresijskih koeficientovnam poda primerjavo med kategorijo in velikim mestom Tako nam vrednost koefi-cienta rdquoF5Vasrdquominus62 pove da imajo osebe ki zivijo na vasi v povprecju pri enakihvrednostih ostalih spremenljivk (izobrazba stevilo delovnih ur na teden spol) za 62tisoc sit nizjo bruto placo kot tisti ki zivijo v velikih mestih

Ce zelimo nastaviti kot referencno kaksno drugo kategorijo to najlazje storimo takoda zamenjamo vrstni red levels pri faktorju pred klicem funkcije lm Ce bi ze-leli da je na primer referencna kategorija rdquomanjse mestordquo lahko to dosezemo ta-kole

gt dataLR$F5alt-factor(dataLR$F5

levels=levels(dataLR$F5)[c(31245)])

gt lm(G91~F7+F21+O1F2+F5adata=dataLR)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5a data = dataLR)

Coefficients

(Intercept) F7 F21

09370 214129 -02492

3 poglavje ndash Analiza variance in linearna regresija 159

O1F2zenski F5aveliko mesto F5apredmestje

-331629 -114633 -273280

F5avas F5akmetija

-176796 -146960

gt sedaj je referencna kategorija manjse mesto

gt summary(lm(G91~F7+F21+O1F2+F5adata=dataLR))

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5a data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 09370 349314 0027 097862

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5aveliko mesto -114633 225129 -0509 061099

F5apredmestje -273280 199023 -1373 017073

F5avas -176796 149753 -1181 023869

F5akmetija -146960 220729 -0666 050605

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

Pri enakih vrednostih ostalih neodvisnih spremenljivk bi v vseh drugih krajih bivanjav povprecju pricakovali nizjo bruto placo kot v velikem mestu vendar pa ni nobedenod regresijskih koeficientov statisticno znacilen (niti pri 10- tveganju)

Vendar na podlagi tega izpisa ne sklepati o domnevi da kraj bivanja ne vpliva nabruto placo (oziroma ne moremo ugotoviti da tega ne moremo trditi na primer pri10- tveganju) Za preverjanje te domneve bi morali s pomocjo F -testa ta modelprimerjati z modelom brez kraja bivanja (torej s prejsnjim modelom) Medtem koizbor referencne kategorije vpliva na posamezne regresijske koeficiente in posledicnotudi na teste znacilnosti le-ta ne vpliva na rezultate F -testa kjer preverjamo vplivrdquocelotnerdquo nominalne spremenljivke (ali katerekoli druge posamezne spremenljivke alikombinacije vec spremenljivk)

160 33 Linearna regresija

gt anova(fitG91_F7F21O1F2fitG91_F7F21O1F2F5)

Analysis of Variance Table

Model 1 G91 ~ F7 + F21 + O1F2

Model 2 G91 ~ F7 + F21 + O1F2 + F5

ResDf RSS Df Sum of Sq F Pr(gtF)

1 308 3173025

2 304 3149602 4 23423 05652 06881

Sele ta primerjava nam pove da bi morali tvegati vec kot 70 ce bi zeleli trditida kraj bivanja vpliva na bruto placo ce izlocimo vplive stopnje izobrazbe steviladelovnih ur in spola

336 Interakcije med spremenljivkami

Interakcije med (ucinki) spremenljivk vkljucimo v model tako da kot dodatno ne-odvisno spremenljivko v model vkljucimo zmnozek spremenljivk V primeru nomi-nalnih spremenljivk morajo biti te ustrezno kodirane (na primer kot umetne spre-menljivke)

Opozorilo

Ko navajamo v R-ju rdquoformulordquo(npr y ~ x1 + x2) znak rdquordquopomeni da zelimov model vkljuciti izbrane spremenljivke in vse mozne interakcije med njimi in nedejanskega mnozenja (upostevajo se na primer tudi tipi spremenljivk) Ce zelimovkljuciti samo interakcijo potem damo med spremenljivki(ke) znak rdquordquo Takoje na primer y ~ x1x2x3 enako kot y ~ x1 + x2 + x3 + x1x2 + x1x3

+ x2x3 Ce zelimo da se nek operator (na primer ) interpretira dobesednodamo izraz kot argument funkciji I (na primer I(x1x2))

Ce torej zelimo vkljuciti interakcijo med spolom in izobrazbo (edini spremenljivki kista imeli statisticno znacilen vpliv) lahko to naredimo tako kot prikazuje naslednjiizpis

gt fitG91_F7F21O1F2F5int lt- lm(G91 ~ F7O1F2 + F21 + F5

data=dataLR)

gt ali takole

gt fitG91_F7F21O1F2F5int lt- lm(G91 ~ F7 + F21 + O1F2 + F5

gt + F7O1F2 data=dataLR)

gt summary(fitG91_F7F21O1F2F5int)

Call

lm(formula = G91 ~ F7 O1F2 + F21 + F5 data = dataLR)

3 poglavje ndash Analiza variance in linearna regresija 161

Residuals

Min 1Q Median 3Q Max

-23387 -6501 -2010 5017 43674

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -5052516 4638880 -1089 0277

F7 2455524 289956 8469 109e-15

O1F2zenski 3700699 4928161 0751 0453

F21 -020133 047672 -0422 0673

F5predmestje -1607825 2457842 -0654 0514

F5manjse mesto 829630 2257400 0368 0713

F5vas -701999 2118518 -0331 0741

F5kmetija -002075 2684935 -0001 0999

F7O1F2zenski -563564 384354 -1466 0144

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1016 on 303 degrees of freedom

Multiple R-squared 03207 Adjusted R-squared 03028

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

Vpliv interakcije ni statisticno znacilen Prav tako pa ni vec statisticno znacilenvpliv spola To je posledica multikolinearnosti ki jo bomo omenili v naslednjempodpodpoglavju Problem lahko zmanjsamo ce intervalne spremenljivke pred ra-cunanjem interakcije centriramo (od vsake vrednosti odstejemo povprecje) Zaradilepsega izpisa je bolje da to naredimo pred klicem funkcije lm

gt dataLR$F7centGndrZenskilt- (dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

gt fitG91_F7F21O1F2F5int2lt-lm(G91~F7+F21+O1F2+F5 +

F7centGndrZenskidata=dataLR)

gt summary(fitG91_F7F21O1F2F5int2)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 + F7centGndrZenski

data = dataLR)

Residuals

Min 1Q Median 3Q Max

-23387 -6501 -2010 5017 43674

162 33 Linearna regresija

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -5052516 4638880 -1089 02769

F7 2455524 289956 8469 109e-15

F21 -020133 047672 -0422 06731

O1F2zenski -3264380 1177205 -2773 00059

F5predmestje -1607825 2457842 -0654 05135

F5manjse mesto 829630 2257400 0368 07135

F5vas -701999 2118518 -0331 07406

F5kmetija -002075 2684935 -0001 09994

F7centGndrZenski -563564 384354 -1466 01436

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1016 on 303 degrees of freedom

Multiple R-squared 03207 Adjusted R-squared 03028

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

Spremenil se je le koeficient za spol vsi ostali rezultati (vkljucno z R2 in F -statistiko)pa so ostali nespremenjeni Pravzaprav se je spremenilo samo rdquokodiranje spremen-ljivkrdquo Ce vpliv spremenljivk vkljucenih v interakcije preverjamo na pravilen nacintorej tako da preverjamo vpliv celotne spremenljivke se pravi rdquoglavnirdquo ucinek in vseinterakcije v katerih nastopa preko F -testa potem kodiranje ni pomembno Pravilnobi ucinek spola torej preverjali tako kot sledi v nadaljevanju kjer nacin kodiranja narezultat testa ne vpliva

gt ocenimo model brez spola

gt fitG91_F7F21F5int lt- lm(G91 ~ F7 + F21 + F5 data=dataLR)

gt preverimo skupni vpliv spola tako da primerjamo

gt model brez spola z modelom s spolom

gt anova(fitG91_F7F21F5int fitG91_F7F21O1F2F5int)

Analysis of Variance Table

Model 1 G91 ~ F7 + F21 + F5

Model 2 G91 ~ F7 O1F2 + F21 + F5

ResDf RSS Df Sum of Sq F Pr(gtF)

1 305 3231587

2 303 3127412 2 104176 50465 0006983

---

Signif codes

0 0001 001 005 01 1

3 poglavje ndash Analiza variance in linearna regresija 163

Ugotovimo lahko da je vpliv spola (kjer upostevamo tudi njegov vpliv preko inte-rakcije z izobrazbo) statisticno znacilen pri stopnji tveganja 07

337 Preverjanje predpostavk

Analiza rezidualov

Deloma smo preverjanje predpostavk ze obdelali ko smo si ogledali diagnosticnegrafikone za porazdelitev rezidualov Veliko predpostavk je namrec vezanih na po-razdelitev rezidualov Se na zadnjem modelu (z interakcijo 2) poglejmo standardnegrafikone za diagnostiko Grafi so prikazani na sliki 315

gt par(mfrow=c(22))

gt plot(fitG91_F7F21O1F2F5int2)

gt par(mfrow=c(11))

Iz grafov na sliki 315 lahko razberemo

bull Ze na 1 grafu (levo zgoraj) se vidi da je variabilnost rezidualov vecja privecjih placah kot pri manjsih To je se bolj razvidno iz 3 grafa (levo spodaj)Graf je podoben zgornjemu (1) le da sedaj namesto rdquosurovihrdquo rezidualovna y os nanasamo korenjene absolutne standardizirane reziduale Pri temje bistveno predvsem to da nanasamo absolutne vrednosti Rdeca crta kiprikazuje glajena povprecja bi morala biti v primeru homoskedasticnosti (ko jeta predpostavka izpolnjena) ravna pri nas pa je ocitno da od takrat ko imamoneko vecje stevilo enot vseskozi narasca Torej je prisotna heteroskedasticnost

bull Na 2 grafu (desno zgoraj) vse tocke ne lezijo na premici kar pomeni dase reziduali ne porazdeljujejo normalno Predvsem imamo prevec zelo velikihvrednosti Enako lahko razberemo tudi iz histograma rezidualov z vrisanonormalno krivuljo na sliki 316

gt par(mar=mardef-c(0030))

gt hist(fitG91_F7F21O1F2F5int2$resfreq=FALSExlab=Reziduali

ylab=Gostotamain=br=15)

gt curve(dnorm(xsd=sd(fitG91_F7F21O1F2F5int2$res))add=TRUE)

gt par(mar=mardef)

Za preverjanje heteroskedasticnosti obstaja v paketku car tudi formalni test (funk-cija ncvTest) Prav tako ta paketek ponuja se dodatni grafikon ki narise logaritmi-rane absolutne vrednosti studentiziranih rezidualov v odvisnosti od logaritmiranihnapovedanih vrednosti (funkcija spreadLevelPlot) Zaradi uporabe logaritmovizpusti vse negativne napovedane vrednosti (in v tem primeru izpise opozorilo)

164 33 Linearna regresija

Slika 315 Diagnosticni grafikoni za linearno regresijo ndash model z interakcijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641525784

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641525784

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641525784

000 002 004 006 008 010 012

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

Residuals vs Leverage

784

199

525

Funkcija predlaga tudi transformacijo odvisne spremenljivke za odpravljanje pro-blema heteroskedasticnosti Graf je prikazan na sliki 317

gt ncvTest(fitG91_F7F21O1F2F5int2)

Non-constant Variance Score Test

Variance formula ~ fittedvalues

Chisquare = 1484605 Df = 1 p = 00001166521

gt spreadLevelPlot(fitG91_F7F21O1F2F5int2)

Suggested power transformation 05373901

3 poglavje ndash Analiza variance in linearna regresija 165

Slika 316 Histogram rezidualov

Reziduali

Gostota

-200 -100 0 100 200 300 400

0000

0001

0002

0003

0004

0005

Slika 317 Grafikon za ocenjevanje heteroskedasticnosti

50 100 200 500

000

50

020

010

00

500

200

0

Spread-Level Plot for fitG91_F7F21O1F2F5int2

Fitted Values

Abs

olut

e S

tude

ntiz

ed R

esid

uals

166 33 Linearna regresija

Na podlagi testa lahko domnevo o homoskedasticnosti zavrnemo pri zanemarljivistopnji tveganja Iz grafa na sliki 317 pa zopet vidimo da variabilnost rezidualovz visanjem napovedanih vrednosti narasca Na podlagi regresijskega koeficientapremice na tem grafu funkcija predlaga tudi potenco na katero naj bi potenciraliodvisno spremenljivko za odpravo problema heteroskedasticnosti

Multikolinearnost

Multikolinearnost lahko ocenjujemo z vec statistikami Poglejmo si najprej izracunfaktorja povecanja variance (variance inflation factor ndash vif) in toleranc Vif lahko iz-racunamo s funkcijo vif iz paketka car tolerance pa so kar 1vif Ti dve statistikista priporocljivi ker sta razumljivi in pokazeta pri katerih spremenljivkah se pro-blem pojavlja Mere bomo izracunali za oba modela z interakcijo (ki se razlikujetav parametrizacji interakcije)

Opomnik Drugo parametrizacijo smo izbrali ravno zato ker zmanjsuje multikoline-arnost

gt prvi model

gt vif(fitG91_F7F21O1F2F5int) variance inflation factor

GVIF Df GVIF^(1(2Df))

F7 2396263 1 1547987

O1F2 18183935 1 4264263

F21 1052758 1 1026040

F5 1216437 4 1024793

F7O1F2 19529971 1 4419273

gt 1vif(fitG91_F7F21O1F2F5int)[1] tolerance

F7 O1F2 F21 F5 F7O1F2

041731645 005499360 094988557 082207330 005120335

gt drugi model

gt vif(fitG91_F7F21O1F2F5int2) variance inflation factor

GVIF Df GVIF^(1(2Df))

F7 2396263 1 1547987

F21 1052758 1 1026040

O1F2 1037582 1 1018618

F5 1216437 4 1024793

F7centGndrZenski 2259556 1 1503182

gt 1vif(fitG91_F7F21O1F2F5int2)[1] tolerance

F7 F21 O1F2

04173164 09498856 09637791

F5 F7centGndrZenski

08220733 04425648

3 poglavje ndash Analiza variance in linearna regresija 167

Tolerance so pri spolu in pri interakciji med spolom in izobrazbo veliko visje pridrugem modelu faktorji povecanja variance pa nizji

Dober pokazatelj multikolinearnosti je tudi korelacijska matrika med ocenami re-gresijskih koeficientov Ta kaze na problem ce so korelacije po absolutni vrednostiblizu 1 S funkcijo vcov dobimo variancnokovariancno matriko ki pa jo lahko sfunkcijo cov2cor pretvorimo v korelacijsko

gt prvi model

gt vcov(fitG91_F7F21O1F2F5int) kovariancna matrika

gt cov2cor(vcov(fitG91_F7F21O1F2F5int)) korelacijska matrika

(Intercept) F7 O1F2zenski

(Intercept) 10000000 -080916407 -060845623

F7 -08091641 100000000 071746753

O1F2zenski -06084562 071746753 100000000

F21 -04241575 002872814 008249693

F5predmestje -03471743 003199666 000178113

F5manjse mesto -02765647 -003856876 -008880756

F5vas -03666217 006890147 -002361653

F5kmetija -04616874 022093944 011067464

F7O1F2zenski 05880620 -073911673 -097107735

F21 F5predmestje F5manjse mesto

(Intercept) -0424157534 -0347174290 -027656470

F7 0028728137 0031996658 -003856876

O1F2zenski 0082496930 0001781130 -008880756

F21 1000000000 0008758751 -009876780

F5predmestje 0008758751 1000000000 064435236

F5manjse mesto -0098767796 0644352359 100000000

F5vas -0142169932 0689732959 076571906

F5kmetija -0057753038 0555335692 059905425

F7O1F2zenski -0068533086 0005924216 009568067

F5vas F5kmetija F7O1F2zenski

(Intercept) -036662171 -046168741 0588061950

F7 006890147 022093944 -0739116728

O1F2zenski -002361653 011067464 -0971077352

F21 -014216993 -005775304 -0068533086

F5predmestje 068973296 055533569 0005924216

F5manjse mesto 076571906 059905425 0095680667

F5vas 100000000 066452253 0025873515

F5kmetija 066452253 100000000 -0081587125

F7O1F2zenski 002587352 -008158713 1000000000

168 33 Linearna regresija

gt drugi model

gt vcov(fitG91_F7F21O1F2F5int2) kovariancna matrika

gt cov2cor(vcov(fitG91_F7F21O1F2F5int2)) korelacijska matrika

(Intercept) F7 F21

(Intercept) 10000000 -080916407 -0424157534

F7 -08091641 100000000 0028728137

F21 -04241575 002872814 1000000000

O1F2zenski -01742628 002108728 0068815958

F5predmestje -03471743 003199666 0008758751

F5manjse mesto -02765647 -003856876 -0098767796

F5vas -03666217 006890147 -0142169932

F5kmetija -04616874 022093944 -0057753038

F7centGndrZenski 05880620 -073911673 -0068533086

O1F2zenski F5predmestje F5manjse mesto

(Intercept) -0174262837 -0347174290 -027656470

F7 0021087276 0031996658 -003856876

F21 0068815958 0008758751 -009876780

O1F2zenski 1000000000 0031361616 001431086

F5predmestje 0031361616 1000000000 064435236

F5manjse mesto 0014310857 0644352359 100000000

F5vas 0005537691 0689732959 076571906

F5kmetija 0134101643 0555335692 059905425

F7centGndrZenski -0030070878 0005924216 009568067

F5vas F5kmetija F7centGndrZenski

(Intercept) -0366621708 -046168741 0588061950

F7 0068901467 022093944 -0739116728

F21 -0142169932 -005775304 -0068533086

O1F2zenski 0005537691 013410164 -0030070878

F5predmestje 0689732959 055533569 0005924216

F5manjse mesto 0765719055 059905425 0095680667

F5vas 1000000000 066452253 0025873515

F5kmetija 0664522533 100000000 -0081587125

F7centGndrZenski 0025873515 -008158713 1000000000

Ponovno je glavna razlika med obema modeloma povezana s spolom in interakcijomed spolom in izobrazbo Tokrat je dejanska razlika prav v korelaciji med ocenamateh dveh koeficientov Medtem ko je ta korelacija pri prvem modelu po absolutnivrednosti zelo blizu 1 (minus097) je ta korelacija pri drugem modelu skoraj 0 (minus003)Razmeroma visoka (minus075) je tudi korelacija med ocenama koeficientov za izobrazboin interakcijo med spolom in izobrazbo ki je minus075 Preostale razmeroma visokekorelacije so le se med sklopom spremenljivk ki merijo kraj bivanja (ker merijo istospremenljivko je to pricakovano) in med nekaterimi spremenljivkami in konstanto(kar pa ni tako pomembno)

3 poglavje ndash Analiza variance in linearna regresija 169

Multikolinearnost lahko ocenimo tudi s pomocjo indeksov pogojnosti in lastnih vre-dnosti matrike neodvisnih spremenljivk (v katero so namesto nominalnih spremen-ljivk vkljucene umetne spremenljivke) Obstaja vec nacinov kako izracunati indeksepogojnosti V nadaljevanju sta predstavljena dva Pri tem bomo uporabili funkcijocolinEigen ki je definirana spodaj sicer pa se nahaja tudi v datoteki rdquoUcbenikR-funkcijeRrdquo Funkcija temelji na izracunu lastnih vrednosti matrike kriznih produktovneodvisnih spremenljivk

gt colinEigenlt-function(fitSPSS=TRUE)

funkcija za racunanje lastnih vrednosti in indeksov

pogojnosti

Xlt-fit[x]

if(isnull(X))

stop(Fit must include x See lm for detailsn)

else

Xlt-fit$x

tXXlt-t(X)X

if(SPSS)

tXXlt-cov2cor(tXX)

e lt- eigen(tXX)

return(list(eigen=e$values

condIndex=sqrt(e$val[1]e$val)))

Izracunajmo torej indekse pogojnosti na oba nacina za oba modela

gt fitG91_F7F21O1F2F5int2lt-lm(G91~F7+F21+O1F2+F5 +

F7centGndrZenskidata=dataLRx=TRUE)

gt ponovno smo ocenili model s parametrom x=TRUE

gt da dobimo kot rezultat tudi matriko neodvisnih spremenljivk

gt fitG91_F7F21O1F2F5intlt-lm(G91~F7O1F2+F21+F5data=dataLR

x=TRUE)

gt prvi model

gt 1 nacin

gt colinEigen(fitG91_F7F21O1F2F5intSPSS=FALSE)

$eigen

[1] 6652435e+05 1558161e+04 4912678e+03 9900302e+01

[5] 5302790e+01 3528826e+01 1873120e+01 5532393e+00

[9] 2662550e+00

170 33 Linearna regresija

$condIndex

[1] 1000000 6534074 11636735 81972106 112005173

[6] 137301463 188454950 346763845 499851942

gt oziroma taki kot jih vrne SPSS

gt colinEigen(fitG91_F7F21O1F2F5intSPSS=TRUE)

$eigen

[1] 4943854688 1088057228 1002859625 1000235359

[5] 0766591055 0092809934 0066547583 0031866833

[9] 0007177695

$condIndex

[1] 1000000 2131606 2220306 2223216 2539516

[6] 7298534 8619195 12455564 26244625

gt drugi model

gt 1 nacin

gt colinEigen(fitG91_F7F21O1F2F5int2SPSS=FALSE)

$eigen

[1] 6558974e+05 6585408e+03 1173476e+03 1011405e+02

[5] 7781142e+01 5243155e+01 3498490e+01 9599113e+00

[9] 3705997e+00

$condIndex

[1] 1000000 9979909 23641818 80529554 91811327

[6] 111846291 136923385 261398078 420693096

gt oziroma taki kot jih vrne SPSS

gt colinEigen(fitG91_F7F21O1F2F5int2SPSS=TRUE)

$eigen

[1] 4340401831 1109346570 1012708187 1000586611

[5] 0923653402 0473392997 0076159218 0053759618

[9] 0009991567

$condIndex

[1] 1000000 1978023 2070250 2082752 2167756

[6] 3027987 7549249 8985389 20842421

Ne glede na izracun so indeksi pogojnosti pri prvem modelu bistveno vecji karnakazuje da je tam multikolinearnost vecji problem Kljub vsemu pa tudi tu indekspogojnosti na nacin kot ga izracuna SPSS ne preseze meje 30 kar bi bil jasen signalza multikolinearnost

Ocena oblike zveze

Povedali smo ze da je za vsako neodvisno spremenljivko vkljuceno v model dobropogledati razsevni grafikon z odvisno spremenljivko Vendar pa ta grafikon vca-

3 poglavje ndash Analiza variance in linearna regresija 171

sih ne razkrije prave zveze ker je prava zveza rdquozakritardquo z vplivi ostalih neodvisnihspremenljivk V tem primeru pride prav rdquocomponent + residual plotrdquo (oziroma grafdelnih ostankov) kjer na y os nanasamo vrednosti odvisne spremenljivke od katereprej odstejemo vplive ostalih spremenljivk Take grafe lahko narisemo s pomocjofunkcije crPlots iz paketka car Pogoj za uporabo funkcije je da v modelu ni in-terakcij zato jih bomo uporabili na zadnjem modelu kjer se nismo imeli interakcijeRezultat je prikazan na sliki 318

gt component + residual plot

gt crPlots(fitG91_F7F21O1F2F5)

Nadgradnja teh grafikonov so CERES grafi ki so na voljo v funkciji ceresPlots vistem paketku Za razliko od prejsnje le-ta ne narise grafov za nominalne spremen-ljivke Rezultat je na sliki 319

gt Ceres graf - naprednejsa verzija zgornjega

gt ceresPlots(fitG91_F7F21O1F2F5)

Najzanimivejsi zakljucek ki je bil opazen ze na navadnih razsevnih grafikonih jeda izobrazba vpliva na placo sele ko stevilo let solanja preseze 12 leta Kot resitevtega problema lahko v model vkljucimo se eno spremenljivko in sicer rdquostevilo letsolanja nad 12 letrdquo ki bo imela vrednost 0 za vse ki imajo 12 let solanja ali manj

gt dataLR$F7nad12 lt- dataLR$F7 - 12

gt dataLR$F7nad12[dataLR$F7nad12lt0]lt-0

gt fitG91_F7F21O1F2F5F7nad12lt-lm(G91~F7 +O1F2+F7nad12+F21+F5

data=dataLR)

gt summary(fitG91_F7F21O1F2F5F7nad12)

Call

lm(formula = G91 ~ F7 + O1F2 + F7nad12 + F21 + F5 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-28067 -5650 -1733 4223 42537

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 1307917 480829 2720 00069

F7 73834 36457 2025 00437

O1F2zenski -424936 116175 -3658 00003

F7nad12 240146 53287 4507 942e-06

F21 -02669 04621 -0578 05640

172 33 Linearna regresija

Slika 318 Grafikoni delnih ostankov

5 10 15 20

-200

010

020

030

040

050

0

F7

Com

pone

nt+

Res

idua

l(G91

)

0 20 40 60 80-2

000

100

200

300

400

F21

Com

pone

nt+

Res

idua

l(G91

)

moski zenski

-200

020

040

0

O1F2

Com

pone

nt+

Res

idua

l(G91

)

veliko mesto manjse mesto kmetija

-200

010

020

030

040

0

F5

Com

pone

nt+

Res

idua

l(G91

)

Component + Residual Plots

F5predmestje -94125 239206 -0393 06942

F5manjse mesto 193332 219000 0883 03780

F5vas 56539 207426 0273 07854

F5kmetija -105924 260487 -0407 06846

---

Signif codes

0 0001 001 005 01 1

Residual standard error 987 on 303 degrees of freedom

Multiple R-squared 03589 Adjusted R-squared 0342

F-statistic 212 on 8 and 303 DF p-value lt 22e-16

3 poglavje ndash Analiza variance in linearna regresija 173

Slika 319 Ceres grafikoni

5 10 15 20

-600

-400

-200

0

F7

CE

RE

S R

esid

ual(G

91)

0 20 40 60 80-3

00-1

0010

030

0F21

CE

RE

S R

esid

ual(G

91)

CERES Plots

gt summary(fitG91_F7F21O1F2F5) za primerjavo

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -105263 375909 -0280 077965

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5predmestje -158647 246244 -0644 051989

F5manjse mesto 114633 225129 0509 061099

F5vas -62163 212181 -0293 076974

F5kmetija -32327 268104 -0121 090411

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

174 33 Linearna regresija

gt par(mfrow=c(22))

gt plot(fitG91_F7F21O1F2F5F7nad12)

gt par(mfrow=c(11))

Vpliv spremenljivke F7 je bistveno manjsi in sedaj komaj statisticno znacilen pri 5-tveganju kar nam pove da izobrazba do 12 let ne vpliva mocno na bruto placo Kerpa je koeficient spremenljivke F7nad12 bistveno vecji in mocno statisticno znacilenvidimo da zacne izobrazba mocneje vplivati na bruto placo sele ko stevilo let solanjapreseze 12 let oziroma po srednji soli O tem da je model sedaj bistveno boljsi pricatudi znatno vecji R2

Diagnosticni grafikoni so prikazani na sliki 320 Rezultati so sicer malce boljsi aproblem heteroskedasticnosti ostaja

338 V razmislek

Model bi se dalo se nadgrajevati Ze samo vpliv izobrazbe na placo za razlicneskupine je zelo kompleksna stvar Kaj se zgodi ce v novi model dodamo interakcijo

gt dataLR$F7centGndrZenskilt- (dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

gt dataLR$F7nad12centGndrZenski lt- (dataLR$F7nad12-

mean(dataLR$F7nad12))(dataLR$O1F2==zenski)

gt fitG91_F7F21O1F2F5F7nad12intlt-lm(G91~F7+F7nad12+O1F2+F21+F5+

F7centGndrZenski + F7nad12centGndrZenski data=dataLR)

gt summary(fitG91_F7F21O1F2F5F7nad12int)

Call

lm(formula = G91 ~ F7 + F7nad12 + O1F2 + F21 + F5 +

F7centGndrZenski + F7nad12centGndrZenski data = dataLR)

Residuals

Min 1Q Median 3Q Max

-25391 -5885 -1694 4557 42166

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 1701907 632377 2691 0007516

F7 28595 52133 0549 0583754

F7nad12 358691 73064 4909 15e-06

O1F2zenski -415327 115258 -3603 0000367

F21 -01829 04595 -0398 0690894

F5predmestje -86485 237140 -0365 0715590

3 poglavje ndash Analiza variance in linearna regresija 175

Slika 320 Diagnosticni grafikoni za linearno regresijo

100 200 300 400 500

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641525

1368

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641525

1368

100 200 300 400 500

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641525

1368

000 002 004 006 008 010 012

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05Residuals vs Leverage

784

362

525

F5manjse mesto 173586 218196 0796 0426918

F5vas 59867 205770 0291 0771297

F5kmetija -91023 259186 -0351 0725693

F7centGndrZenski 100282 70140 1430 0153828

F7nad12centGndrZenski -251789 103129 -2441 0015203

(Intercept)

F7

F7nad12

O1F2zenski

F21

176 33 Linearna regresija

F5predmestje

F5manjse mesto

F5vas

F5kmetija

F7centGndrZenski

F7nad12centGndrZenski

---

Signif codes

0 0001 001 005 01 1

Residual standard error 9783 on 301 degrees of freedom

Multiple R-squared 03744 Adjusted R-squared 03536

F-statistic 1801 on 10 and 301 DF p-value lt 22e-16

Vidimo da se odstotek pojasnjene variance se malce poveca To nam pravzapravnakazuje da bi morda morali ze na zacetku gledati graf na sliki 321

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanjapch=asnumeric(O1F2)

col=ifelse(O1F2==moskibluered))

gt dataLRzenlt-dataLR[dataLR$O1F2==zenski]

gt lines(with(data=dataLRzenlowess(G91~F7))lwd=2lty=2col=red)

gt dataLRmoslt-dataLR[dataLR$O1F2==moski]

gt lines(with(data=dataLRmoslowess(G91~F7))lwd=2lty=2

col=blue)

gt legend(x=1y=750legend=c(MoskiZenske)lty=2

col=c(bluered)pch=12yjust=1xjust=0

merge=FALSElwd=2)

339 Izracun rdquona rokerdquo

Za boljse razumevanje je koristno da naredimo izracune brez vgrajenih funkcij (ozi-roma s cim bolj enostavnimi) Ocenimo drugi model z interakcijo iz podpodpoglavja336 (ki smo ga shranili v objekt fitG91_F7F21O1F2F5int2) se na tak nacin

Najprej pripravimo podatke Pri tem je pomembno predvsem da naredimo umetnespremenljivke za nominalne spremenljivke

gt ylt-dataLR$G91 odvisna spremenljivka

gt Xlt-cbind(konstanta=1dataLR[c(F7F21)]

konstanta in intervalni neodvisni spremenljivki

O1F2Zenski=asnumeric(dataLR$O1F2==zenski)

3 poglavje ndash Analiza variance in linearna regresija 177

Slika 321 Odnos med izobrazbo in bruto placo po spolu

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

MoškiŽenske

F5Predmestje=asnumeric(dataLR$F5==predmestje)

F5Manjse mesto=asnumeric(dataLR$F5==manjse mesto)

F5Vas=asnumeric(dataLR$F5==vas)

F5Kmetija=asnumeric(dataLR$F5==kmetija)

F7centGndrZenski=(dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

)

gt Xlt-asmatrix(X)

gt preverimo rezultat

gt X[110]

konstanta F7 F21 O1F2Zenski F5Predmestje F5Manjse mesto

1 1 6 42 0 0 0

4 1 12 50 1 0 0

6 1 12 40 1 0 0

16 1 11 62 0 0 0

22 1 14 48 0 0 1

23 1 12 0 0 0 1

26 1 16 45 1 0 0

35 1 12 40 1 0 0

41 1 18 46 0 0 1

49 1 11 40 1 0 1

F5Vas F5Kmetija F7centGndrZenski

1 0 1 00000000

178 33 Linearna regresija

4 1 0 -03589744

6 1 0 -03589744

16 1 0 00000000

22 0 0 00000000

23 0 0 00000000

26 0 1 36410256

35 0 0 -03589744

41 0 0 00000000

49 0 0 -13589744

gt to je enako kot

gt fitG91_F7F21O1F2F5int2$x[110]

(Intercept) F7 F21 O1F2zenski F5predmestje

1 1 6 42 0 0

4 1 12 50 1 0

6 1 12 40 1 0

16 1 11 62 0 0

22 1 14 48 0 0

23 1 12 0 0 0

26 1 16 45 1 0

35 1 12 40 1 0

41 1 18 46 0 0

49 1 11 40 1 0

F5manjse mesto F5vas F5kmetija F7centGndrZenski

1 0 0 1 00000000

4 0 1 0 -03589744

6 0 1 0 -03589744

16 0 1 0 00000000

22 1 0 0 00000000

23 1 0 0 00000000

26 0 0 1 36410256

35 0 0 0 -03589744

41 1 0 0 00000000

49 1 0 0 -13589744

Spomnimo se da je matricna formula za izracun regresijskih koeficientov

b = (XprimeX)minus1Xprimey

Formuli za izracun napovedi in rezidualov pa

yprime = Xb

e = y minus yprime

3 poglavje ndash Analiza variance in linearna regresija 179

Na podlagi tega lahko izracunamo s[e] R2 popravljen R2pop in F -statistiko

se =

nsumi=1

e2

nminus k

R2 =var(yprime)

var(y)

R2pop = 1minus s2e

var(y)= 1minus (1minusR2)

nminus 1

nminus k

F =

nsumi=1

yprimei minus y

k minus 1nsumi=1

yi minus yprimei

nminus k

=

R2

k minus 11minusR2

nminus k

Izracunajmo

gt blt-solve(t(X) X) t(X) y

gt b

[1]

konstanta -5052516310

F7 2455524459

F21 -020132728

O1F2Zenski -3264379964

F5Predmestje -1607824506

F5Manjse mesto 829629531

F5Vas -701999244

F5Kmetija -002074509

F7centGndrZenski -563564466

gt kar je enako kot (do natancnosti racunalnika)

gt coef(fitG91_F7F21O1F2F5int2)

(Intercept) F7 F21

-5052516310 2455524459 -020132728

O1F2zenski F5predmestje F5manjse mesto

-3264379964 -1607824506 829629531

F5vas F5kmetija F7centGndrZenski

-701999244 -002074509 -563564466

gt yNap lt- X b

gt e lt- y - yNap

gt nlt-dim(X)[1]

gt klt-length(b)

180 33 Linearna regresija

gt sErrlt-sqrt(sum(e^2)(n-k))

gt sErr

[1] 1015947

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$sigma

[1] 1015947

gt R2=var(yNap)var(y)

gt R2

[1]

[1] 03207477

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$rsquared

[1] 03207477

gt R2poplt-1-sErr^2var(y)

gt R2pop

[1] 03028137

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$adjrsquared

[1] 03028137

gt F=(R2(k-1))((1-R2)(n-k))

gt F

[1]

[1] 1788484

gt (df1lt-k-1)

[1] 8

gt (df2lt-n-k)

[1] 303

gt pf(q=Fdf1=df1df2=df2lowertail =FALSE)

[1]

[1] 7405752e-22

gt cat(captureoutput(summary(fitG91_F7F21O1F2F5int2))[27]n)

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

gt p-vrednosti se malce razlikujeta a sta obe prakticno 0

gt verjetno gre za vprasanje racunske natancnosti

Izracunajmo se variancno-kovariancno matriko za ocene regresijskih koeficientov iniz nje se standardne napake za ocene regresijskih koeficientov Na podlagi variancno-kovariancne matrike lahko izracunamo se korelacijsko matriko ocen regresijskih ko-eficientov (za ocenjevanje multikolinearnosti)

Sb = s2e middot XprimeXminus1

se(bi) =radicSb[i i]

w = diag

(1radic

diag(Sb)

)

3 poglavje ndash Analiza variance in linearna regresija 181

Cb = w middot Sb middot w

Na podlagi ocen standardnih napak pa lahko izracunamo t-statistike kot t = bise(bi))

gt Sblt-sErr^2solve(t(X) X)

gt Sb

konstanta F7 F21

konstanta 2151921149 -10883837598 -938010552

F7 -108838376 840745537 003971066

F21 -9380106 003971066 022726613

O1F2Zenski -95163435 071978854 038619681

F5Predmestje -395835418 228029391 010262743

F5Manjse mesto -289613230 -252450622 -106289703

F5Vas -360299394 423246067 -143584413

F5Kmetija -575035961 1720043074 -073922389

F7centGndrZenski 104849908 -823715261 -012557392

O1F2Zenski F5Predmestje F5Manjse mesto

konstanta -951634352 -3958354175 -289613230

F7 07197885 22802939 -2524506

F21 03861968 01026274 -1062897

O1F2Zenski 1385811962 90741196 3802999

F5Predmestje 90741196 6040986074 357508039

F5Manjse mesto 38029995 3575080389 509585361

F5Vas 13810615 3591427268 366193057

F5Kmetija 423857670 3664741109 363085097

F7centGndrZenski -13605987 05596501 8301651

F5Vas F5Kmetija F7centGndrZenski

konstanta -360299394 -5750359613 1048499077

F7 4232461 172004307 -82371526

F21 -1435844 -07392239 -01255739

O1F2Zenski 1381062 423857670 -13605987

F5Predmestje 359142727 3664741109 05596501

F5Manjse mesto 366193057 3630850975 83016508

F5Vas 448811895 3779859757 21067811

F5Kmetija 377985976 7208876587 -84195178

F7centGndrZenski 2106781 -84195178 147728263

gt kar je enako kot

gt vcov(fitG91_F7F21O1F2F5int2)

gt max(abs(Sb-vcov(fitG91_F7F21O1F2F5int2)))

[1] 1364242e-12

gt seblt-sqrt(diag(Sb))

gt seb

182 33 Linearna regresija

konstanta F7 F21

463888041 28995612 04767244

O1F2Zenski F5Predmestje F5Manjse mesto

117720515 245784175 225739974

F5Vas F5Kmetija F7centGndrZenski

211851810 268493512 38435435

gt enakost z izracunom s funkcijo lm bomo preverili kasneje

gt

gt wlt-diag(1seb)

gt Cblt-w Sb w

gt kar je enako kot

gt cov2cor(vcov(fitG91_F7F21O1F2F5int2))

gt max(abs(Cb-cov2cor(vcov(fitG91_F7F21O1F2F5int2))))

[1] 144329e-15

gt t-statistika

gt tblt-bseb

gt pblt-2pt(-abs(tb)df=n-k)

gt tabela

gt cbind(b=asvector(b)Std napaka=asvector(seb)

t=asvector(tb)p-vrednost=asvector(pb))

b Std napaka t p-vrednost

[1] -5052516310 463888041 -10891671826 2769457e-01

[2] 2455524459 28995612 84686070004 1087724e-15

[3] -020132728 04767244 -04223137835 6730955e-01

[4] -3264379964 117720515 -27729915791 5898550e-03

[5] -1607824506 245784175 -06541611171 5135042e-01

[6] 829629531 225739974 03675155600 7134911e-01

[7] -701999244 211851810 -03313633444 7405991e-01

[8] -002074509 268493512 -00007726479 9993840e-01

[9] -563564466 38435435 -14662627672 1436137e-01

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$coef

Estimate Std Error t value

(Intercept) -5052516310 463888041 -10891671826

F7 2455524459 28995612 84686070004

F21 -020132728 04767244 -04223137835

O1F2zenski -3264379964 117720515 -27729915791

F5predmestje -1607824506 245784175 -06541611171

F5manjse mesto 829629531 225739974 03675155600

F5vas -701999244 211851810 -03313633444

F5kmetija -002074509 268493512 -00007726479

F7centGndrZenski -563564466 38435435 -14662627672

Pr(gt|t|)

3 poglavje ndash Analiza variance in linearna regresija 183

(Intercept) 2769457e-01

F7 1087724e-15

F21 6730955e-01

O1F2zenski 5898550e-03

F5predmestje 5135042e-01

F5manjse mesto 7134911e-01

F5vas 7405991e-01

F5kmetija 9993840e-01

F7centGndrZenski 1436137e-01

Seveda bi se na tak nacin dalo izracunati se marsikaj a bomo tu zakljucili

34 Viri za poglabljanje znanja

Za poglabljanje snovi iz tega poglavja so uporabni tudi spletni viri navedeni vpodpodpoglavju 191 (Spletni viri) a jih tu posebej ne navajam Tu izpostavljamsamo enega s pomocjo katerega je mogoce zelo enostavno in hitro najti ustrezneukaze za izvedbo zelenih analiz

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

Za poglabljanje znanja iz analize variance in linearne regresije je primerna vecinaucbenikov s teh podrocij na primer

bull Fox John 2008 Applied regression analysis and generalized linear modelsLos Angeles Sage

bull Kosmelj Blazenka 2005 Analiza odvisnosti za vzorcne podatke LjubljanaEkonomska fakultetaSlovenski ucbenik ki ga uporabljajo na Ekonomski fakulteti Univerze v Lju-bljani

bull Iversen Gudmund R in Helmut Norpoth 2002 Analysis of variance NewburyPark London New Delhi Sage

Vsebina tega poglavja je tudi vsaj deloma pokrita v nekaterih ucbenikih omenjenihv prejsnjem poglavju

Izvedbo analize variance in linearne regresije v R-ju pa pokrivajo sledeci ucbeniki

184 35 Vprasanja za ponavljanje

bull Faraway Julian James 2005 Linear models with R Boca Raton Chapmanamp HallCRC24

Najbolj priporocam prav ta vir

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer25

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer26

Se posebej primerna za tiste ki ze poznajo SPSS ali SAS sicer pa zelo zgoscenaobravnava

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC27

V bolj omejenem obsegu

35 Vprasanja za ponavljanje

1 Katere so predpostavke klasicne enofaktorske analize variance in kako jih pre-verjamo

2 Analizo variance lahko izvedemo z vec funkcijami Katerimi Kaksne so razlikemed njimi oziroma katere so prednosti in slabosti posameznih funkcij

3 Ali je vrstni red faktorjev pri vecfaktorski analizi variance pomemben Poja-snite

4 V kaksni obliki morajo biti podatki ce zelimo (s funkcijo aov) izvesti enofak-torsko analizo variance za odvisne vzorce

5 Ali lahko ce na nekem podatkovju z manjkajocimi podatki veckrat zazenemolinearno regresijo z razlicnimi neodvisnimi spremenljivkami pricakujemo daso vse analize izvedene na istih enotah

6 Kako v linearno regresijo s funkcijo lm vkljucimo nominalne spremenljivkeAli jih moramo predhodno kaj transformirati Na kaj moramo biti pri vklju-cevanju pozorni

7 Kako lahko s funkcijami za linearno regresijo vsaj priblizno ocenimo tudi ne-linearne zveze Kaksne so pomanjkljivosti tega pristopa

8 Kako (s katero funkcijo in kaj uporabimo kot argument) narisemo standardnegrafe za diagnostiko oziroma preverjanje predpostavk linearne regresije

24Starejsa in manj obsezna razlicica knjige je prostodostopna tudi na httpcranr-project

orgdoccontribFaraway-PRApdf25Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani26Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani27Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf

3 poglavje ndash Analiza variance in linearna regresija 185

9 Kako preverimo ali neka nominalna spremenljivka z vec kot dvema razlic-nima vrednostma vpliva na odvisno spremenljivko ce izlocimo vplive ostalihneodvisnih spremenljivk

10 Ali lahko na podlagi standardnega izpisa ene analize ugotavljamo ali so pov-precne vrednosti katerihkoli dveh kategorij nominalne spremenljivke statisticnoznacilno razlicne (pri izbrani stopnji tveganja) ob enakih vrednostih ostalih ne-odvisnih spremenljivk

11 Kako v formuli (argumentu funkcije lm) oznacimo da zelimo vkljuciti inte-rakcijo

12 Navedite vsaj en nacin ocenjevanja multikolinearnosti ki pove tudi pri katerihspremenljivkah se multikolinearnost pojavlja

13 Kaj nam povedo grafikoni delnih ostankov (oziroma component + residualplot) oziroma za kaksen namen jih uporabljamo

187

4 poglavje

Za konec

V tem ucbeniku je precej natancno predstavljena uporaba R-ja tako za opravljanjesplosnih opravil ki se uporabljajo pri vecini analiz (priprava podatkov risanje gra-fov) kot tudi za izvedbo univariatnih in bivariatnih statisticnih analiz ter multipleregresije Sama statisticna teorija je obravnavana le toliko kolikor se mi je zdelonujno potrebno

Ucbenik je sicer prvenstveno namenjen tistim ki ze poznajo osnove statistike radipa bi se naucili le-to izvajati s pomocjo R-ja Poleg tega pa je namenjen tudi vsemki bi radi le spoznali osnovno delovanje R-ja ne glede na to na katerem podrocjuga nameravajo uporabljati Za te je predvsem koristno prvo najsplosnejse in tudinajobseznejse poglavje Naj ucbenik zakljucim s pregledom nekaterih podrocij kjerse R lahko uporablja ter navedbo nekaterih virov za uporabo R-ja na teh podrocjih

Multivariatna analiza je obicajno naslednja stopnja pri ucenju statistike ki sledispoznavanju multiple regresije 28 Kot ze samo ime pove gre pri multivaria-tni analizi predvsem za socasno obravnavo vec spremenljivk Najbolj znanemetode multivariatne analize so razvrscanje v skupine metoda glavnih kom-ponent in faktorska analiza Nekatere metode multivariatne analize so pred-stavljene tudi v Uvodnem primeru Tukaj navajam par relevantnih ucbenikov

bull Everitt Brian 2005 An R and S-PLUS companion to multivariate ana-lysis London Springer

bull Everitt Brian in Torsten Hothorn 2011 An introduction to applied mul-tivariate analysis with R New York Springer

Podatkovno rudarjenje je ime za metode katerih glavni cilj je odkrivanje upo-rabnega veljavnega nepricakovanega in razumljivega znanja iz podatkov Po-gosto se uporablja na ogromnih podatkih pogosto ne-strukturiranih in prido-bljenih iz razlicnih virov Kljub navidezno velikim razlikam se v veliki meri

28Multipla regresija pravzaprav ze sodi v podrocje Multivariatne analize

188

prekriva s statistiko se bolj pa s podrocjem strojnega ucenja (nekateri sma-trajo celo da sta to le dve razlicni imeni za isto podrocje) zato ti podrocjiomenjam skupaj Nekaj ucbenikov ki obravnavajo podatkovno rudarjenje alistrojno ucenje v R-ju

bull Williams Graham J 2011 Data mining with Rattle and R the art ofexcavating data for knowledge discovery New York SpringerTo se posebej priporocam za zacetnike

bull Zhao Yanchang in Yonghua Cen 2013 Data Mining Applications withR 1 izdaja Amsterdam Boston Academic Press

bull Zhao Yanchang 2012 R and Data Mining Examples and Case Studies1 izdaja Amsterdam Academic Press

bull Lantz Brett 2013 Machine Learning with R Packt Publishing

Metode ponovnega vzorcenja so metode ki na podlagi ponovnega vzorcenjaomogocajo preverjanje domnev ali izracun intervalov v primerih ko se spre-menljivke ne porazdeljujejo (niti priblizno) normalno kar obicajno predvide-vajo klasicne metode Spodaj navajam tri ucbenike Phillipa Gooda ki po-krivajo uporabo metod ponovnega vzorcenja se posebej v R-ju na razlicnihnivojih

bull Good Phillip I 2011 Practitioners Guide to Resampling for Data Ana-lysis Data Mining and Modeling Zany BooksZraven je koda tako za R kot za Stato

bull mdashmdashmdash 2012 Introduction to Statistics Through Resampling Methods andR 2 izdaja WileySe posebej primeren za zacetnike in zelo vezan na R

bull mdashmdashmdash 2013 Resampling Methods 3 izdaja BirkhauserR je le eden od obravnavanih programskih jezikovpaketov

Statisticna analiza financnih podatkov je tudi podrocje kjer se pogosto upo-rablja R Kot samo ime pove gre za uporabo statistike in financne matema-tike za analizo financnih podatkov za (med drugim) upravljanje s tveganjinapovedovanje vrednosti financnih kazalnikov upravljanje portfelja Nekajucbenikov ki obravnavajo uporabo R-ja na tem podrocju

bull Carmona Rene 2013 Statistical Analysis of Financial Data in R 2izdaja Springer New York

bull Daroczi Gergely Edina Berlinger Peter Csoka Daniel Havran MartonMichaletzky Zsolt Tulassay Kata Varadi in Agnes Vidovics-Dancs 2013Introduction to R for Quantitative Finance Packt Publishing

bull Arratia Argimiro 2014 Computational Finance An Introductory Coursewith R Atlantis Press

4 poglavje ndash Za konec 189

Biostatistika se ukvarja s statisticno analizo na podrocju biologije medicine in so-rodnih ved Ukvarja se na primer z ugotavljanjem vplivov razlicnih dejavnikovna rast in razvoj rastlin in zivali ter na njihove lastnosti vplivom zdravil innacinov zdravljenja na potek bolezni in se bi lahko nastevali Na tem podrocjusta R njemu soroden S-PLUS med najpogosteje uporabljenimi programskimipaketi Nekaj knjig ki obravnavajo metode s tega podrocja v R-ju

bull Brostrom Goran 2012 Event History Analysis with R Boca RatonCRC Press

bull MacFarland Thomas W 2013 Introduction to Data Analysis and Graphi-cal Presentation in Biostatistics with R 1 izdaja Springer InternationalPublishing

bull Shahbaba Babak 2011 Biostatistics with R 1 izdaja New York Sprin-ger

Analiza ogromnih podatkov in spleta postaja vse bolj pomembno podrocje rdquoBigdatardquo (oz ogromni podatki) je tako imenovani rdquobuzzwordrdquo ki pridobiva na po-menu Gre za analizo podatkov ki jih ne moremo shraniti v delovni spominracunalnika zato so za analizo potrebni posebni pristopi Pogosto se podatkipridobijo neposredno na svetovnem spletu Tudi sicer narasca zanimanje zaanalizo podatkov ki so dostopni na spletu se posebej na socialnih omrez-jih Tudi za ta namen se lahko uporabi R Po eno delo z vsakega podrocja vpovezavi z R-jem navajam spodaj

bull Danneman Nathan in Richard Heimann 2014 Social Media Mining withR Packt Publishing

bull Prajapati Vignesh 2013 Big Data Analytics with R and Hadoop PacktPublishing

To seveda niso vsa podrocja kjer se Ruporablja vendar pa se iz navedenega vidi daje R res uporaben na zelo razlicnih podrocjih lahko bi rekli da je uporaben povsodkjer se uporablja analiza podatkov Ucenje R-ja je torej koristno za vsakega ki senamerava resno ukvarjati z analizo podatkov ne glede na sicersnje podrocje delaUpam da bo pricujoc ucbenik v pomoc vsaj pri zacetnem spoznavanju tega resrdquomocnegardquo programskega okolja

191

Literatura

Arratia Argimiro 2014 Computational Finance An Introductory Course with RAtlantis Press

Brostrom Goran 2012 Event History Analysis with R Boca Raton CRC Press

Buuren Stef in Karin Groothuis-Oudshoorn 2011 MICE Multivariate imputationby chained equations in R Journal of Statistical Software 45 (3) URL http

docutwentenl78938

Buuren Stef van 2012 Flexible imputation of missing data Boca Raton FL CRCPress

Carmona Rene 2013 Statistical Analysis of Financial Data in R 2 izdaja SpringerNew York

Dalgaard Peter 2002 Introductory statistics with R New York Springer

Danneman Nathan in Richard Heimann 2014 Social Media Mining with R PacktPublishing

Daroczi Gergely Edina Berlinger Peter Csoka Daniel Havran Marton MichaletzkyZsolt Tulassay Kata Varadi in Agnes Vidovics-Dancs 2013 Introduction to Rfor Quantitative Finance Packt Publishing

Everitt Brian 2005 An R and S-PLUS companion to multivariate analysis LondonSpringer

Everitt Brian in Torsten Hothorn 2011 An introduction to applied multivariateanalysis with R New York Springer

Faraway Julian James 2005 Linear models with R Boca Raton Chapman ampHallCRC

mdashmdashmdash 2006 Extending the linear model with R generalized linear mixed effectsand nonparametric regression models Boca Raton Chapman amp HallCRC

Ferligoj Anuska 1994 Osnove statistike na prosojnicah Ljubljana samozalozbaZenel Batagelj

192 Literatura

Ferligoj Anuska Tina Kogovsek Willem E Saris Germa Coenders in ValentinaHlebec 2000 Kakovost merjenja egocentricnih socialnih omrezij [datoteka po-datkov] Ljubljana Univerza v Ljubljani Fakulteta za druzbene vede Centerza metodologijo in informatiko [izdelava] 2000 Slovenija Ljubljana Univerza vLjubljani Arhiv druzboslovnih podatkov [distribucija] 2012

Fox John 2008 Applied regression analysis and generalized linear models LosAngeles Sage

Gandrud Christopher 2013 Reproducible research with R and RStudio BocaRaton Chapman amp HallCRC

Gelman Andrew in Jennifer Hill 2006 Data Analysis Using Regression and Multi-levelHierarchical Models Cambridge New York Cambridge University Press

Good Phillip I 2011 Practitioners Guide to Resampling for Data Analysis DataMining and Modeling Zany Books

mdashmdashmdash 2012 Introduction to Statistics Through Resampling Methods and R 2izdaja Wiley

mdashmdashmdash 2013 Resampling Methods 3 izdaja Birkhauser

Holm Sture 1979 A Simple Sequentially Rejective Multiple Test Procedure Scandi-navian Journal of Statistics 6 (2) 65ndash70 URL httpwwwjstororgstable

4615733

IBM 2011 Sum of Squares (IBM SPSS help) URL httppicdheibmcom

infocenterspssstatv20r0m0topiccomibmibmcomdocbannerhtm

Iversen Gudmund R in Helmut Norpoth 2002 Analysis of variance NewburyPark London New Delhi Sage

Jesenko Joze in Manca Jesenko 2007 Multivariatne statisticne metode KranjModerna organizacija

Johnson Richard A in Dean W Wichern 2007 Applied multivariate statisticalanalysis Upper Saddle River Pearson Prentice Hall Pearson Education Interna-tional

Kastelec Damijana in Katarina Kosmelj 2009 Statisticna analiza po-datkov s programoma Excel 2003 in R Ljubljana Biotehniska fa-kulteta URL httpwwwbfuni-ljsifileadmingroups2763C5

A1tudijsko_gradivoSAP_2003pdf

Kosmelj Blazenka 2005 Analiza odvisnosti za vzorcne podatke Ljubljana Eko-nomska fakulteta

Kosmelj Blazenka in Joze Rovan 2007 Statisticno sklepanje Ljubljana Ekonomskafakulteta

Literatura 193

Lantz Brett 2013 Machine Learning with R Packt Publishing

Leisch Friedrich 2002 Sweave Dynamic Generation of Statistical Reports UsingLiterate Data Analysis V Compstat ur Professor Dr Wolfgang Hardle in Profes-sor Dr Bernd Ronz 575ndash580 Physica-Verlag HD URL httplinkspringer

comchapter101007978-3-642-57489-4_89 DOI 101007978-3-642-57489-4 89

Levin Jack James Alan Fox in David R Forde 2013 Elementary Statistics inSocial Research (12th Edition) Pearson

MacFarland Thomas W 2013 Introduction to Data Analysis and Graphical Pre-sentation in Biostatistics with R 1 izdaja Springer International Publishing

Matloff Norman 2011 The Art of R Programming A Tour of Statistical SoftwareDesign San Francisco No Starch Press

Minium Edward W Robert C Clarke in Theodore Coladarci 1999 Elements ofstatistical reasoning New York Wiley

Muenchen Robert A 2011 R for SAS and SPSS users New York Springer

Murrell Paul 2011 R graphics Boca Raton CRC Press

Prajapati Vignesh 2013 Big Data Analytics with R and Hadoop Packt Publishing

Rubin Donald B 1987 Multiple imputation for nonresponse in surveys New YorkWiley

mdashmdashmdash 1996 Multiple Imputation After 18+ Years Journal of the AmericanStatistical Association 91 (434) 473ndash489 doi 1023072291635 URL http

wwwjstororgstable2291635

Shahbaba Babak 2011 Biostatistics with R 1 izdaja New York Springer

Snijders Tom A B in Roel J Bosker 2012 Multilevel analysis an introduction tobasic and advanced multilevel modeling Los Angeles Sage

Tabachnick Barbara G in Linda S Fidell 2007 Using multivariate statisticsBoston PearsonAllyn amp Bacon

Tos Niko Brina Malnar in skupina 2004 Slovensko javno mnenje 20042 Evropskadruzboslovna raziskava [datoteka podatkov] Slovenija Ljubljana Fakulteta zadruzbene vede Center za raziskovanje javnega mnenja in mnozicnih komunikacij[izdelava] 2004 Slovenija Ljubljana Univerza v Ljubljani Arhiv druzboslovnihpodatkov [distribucija] 2009

Venables William N in Brian D Ripley 2000 S programming New York Springer

Verzani John 2005 Using R for introductory statistics Boca Raton Chapman ampHallCRC

194 Literatura

Welch B L 1951 On the Comparison of Several Mean Values An AlternativeApproach Biometrika 38 (34) 330ndash336 doi 1023072332579 URL http

wwwjstororgstable2332579

Wickham Hadley 2009 ggplot2 Elegant Graphics for Data Analysis DordrechtNew York Springer URL httppubliceblibcomEBLPublicPublicView

doptiID=511468

Wilkinson Leland in Graham Wills 2005 The grammar of graphics New YorkSpringer

Williams Graham J 2011 Data mining with Rattle and R the art of excavatingdata for knowledge discovery New York Springer

Wonnacott Thomas H in Ronald J Wonnacott 1990 Introductory statistics NewYork Wiley

Wooldridge Jeffrey M 2002 Econometric analysis of cross section and panel dataCambridge Massachusetts MIT Press

Xie Yihui 2013 Dynamic report generation with r and knitr Boca Raton Cha-pman amp Hall Crc

Zhao Yanchang 2012 R and Data Mining Examples and Case Studies 1 izdajaAmsterdam Academic Press

Zhao Yanchang in Yonghua Cen 2013 Data Mining Applications with R 1 izdajaAmsterdam Boston Academic Press

Zuur Alain F Elena N Ieno in Erik HWG Meesters 2009 A Beginnerrsquos Guideto R New York Springer

  • Predgovor
  • Kazalo
  • Slike
  • Tabele
  • Uvod v R
    • Uvodni primer
    • Osnovne informacije
      • Osnovne racunske operacije
      • Spremenljivke
      • Uporaba funkcij in pomoci
      • Paketki
      • Drugi osnovni podatki
        • Podatkovne strukture
          • Osnovni podatkovni tipi
          • Vektor
          • Nominalne in ordinalne spremenljivke
          • Seznam
          • Matrika
          • Polje ndash Array
          • Podatkovni okvir ndash Data frame
          • Vaje
            • Funkcije in programiranje
              • Nekaj koristnih funkcij
              • Definiranje funkcij
              • Programski tok
              • Vaje
                • Delo z datotekami
                  • Tekstovne datoteke
                  • Shranjevanje in branje objektov
                  • Branje in pisanje datotek drugih programov
                  • Vaje
                    • Risanje
                      • Visokonivojske funkcije za risanje
                      • Nizkonivojske funkcije za risanje
                      • Shranjevanje slik
                      • Vaje
                        • Priprava dokumentov z rezultati iz R-ja
                        • Rešitve vaj
                          • Podatkovne strukture
                          • Funkcije in programiranje
                          • Risanje
                            • Viri za poglabljanje znanja
                              • Spletni viri
                              • Knjižni viri
                                • Vprašanja za ponavljanje
                                  • Univariatna in bivariatna statistika
                                    • Uporabljeni podatki
                                    • Osnovne statistike
                                    • Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja
                                      • Preverjanje domneve o srednji vrednosti in pripadajoci interval zaupanja
                                      • Preverjanje domneve o razliki med srednjima vrednostma na odvisnih vzorcih in pripadajoci interval zaupanja
                                      • Preverjanje domneve o razliki med srednjima vrednostma na neodvisnih vzorcih in pripadajoci interval zaupanja
                                        • Preverjanje domnev o deležih in pripadajoci intervali zaupanja
                                          • Preverjanje domneve o vrednosti deleža in pripadajoci interval zaupanja
                                          • Preverjanje domnev o razliki med deležema na neodvisnih vzorcih in pripadajoci intervali zaupanja
                                            • Frekvencne in kontingencne tabele
                                              • Frekvencne tabele
                                              • Kontingencne tabele
                                              • Povezanost spremenljivk
                                                • Korelacija
                                                • Viri za poglabljanje znanja
                                                • Vprašanja za ponavljanje
                                                  • Analiza variance in linearna regresija
                                                    • Uporabljeni podatki
                                                    • Analiza variance (ANOVA)
                                                      • Enofaktorska analiza variance za neodvisne vzorce
                                                      • Vecfaktorska analiza variance za neodvisne vzorce
                                                      • Enofaktorska analiza variance za odvisne vzorce
                                                        • Linearna regresija
                                                          • Dodatne spremenljivke
                                                          • Bivariatna regresija
                                                          • Nelinearna regresija
                                                          • Multipla regresija
                                                          • Vkljucevanje nominalnihordinalnih spremenljivk
                                                          • Interakcije med spremenljivkami
                                                          • Preverjanje predpostavk
                                                          • V razmislek
                                                          • Izracun na roke
                                                            • Viri za poglabljanje znanja
                                                            • Vprašanja za ponavljanje
                                                              • Za konec
                                                              • Literatura
Page 2: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji

Osnovna statisticna analiza v R-ju

Ales Ziberna

12 julij 2016

CIP - Katalozni zapis o publikacijiNarodna in univerzitetna knjiznica Ljubljana

004423111(0758)(00342)

ZIBERNA AlesOsnovna statistiena analiza v R-ju [Elektronski vir] Ales Ziberna - El

knjiga - Ljubljana Fakulteta za druzbene vede Zalozba FDV 2016

ISBN 978-961- 235-779- 5 (pdf)

284426496

Moji druzini

Zeni Tamari za ljubezen in podporo

Hcerkam Hani Zivi in Zoji ker so svojo otrosko igrivostjo

moji soncki

i

Predgovor

Pricujoci ucbenik je namenjen studentom ki ze poznajo osnove univariatne in bi-variatne statistike ter multiple regresije in se zelijo nauciti omenjene metode upo-rabljati v programskem paketu R ali pa zelijo predvsem spoznati osnove uporabestatisticnega programskega paketa R V ucbeniku je torej precej natancno pred-stavljena uporaba R-ja tako za opravljanje splosnih opravil ki se uporabljajo privecini analiz (priprava podatkov risanje grafov) kot tudi za izvedbo univariatnihin bivariatnih statisticnih analiz ter multiple regresije sama statisticna teorija pa jeobravnavana le toliko kolikor se mi je zdelo glede na predznanje studentov (vec otem v naslednjem odstavku) nujno potrebno

V prvi vrsti je ucbenik namenjen studentom predmetov Statistika in analiza podat-kov na magistrskem programu Druzboslovna informatika na Fakulteti za druzbenevede (v nadaljevanju FDV) Univerze v Ljubljani (v nadaljevanju UL) Tehnicni ininformacijski sistemi na dodiplomskem programu Druzboslovna informatika na FDVUL in Multivariatna analiza na magistrskem programu Uporabna statistika na UL(medfakultetni program) njegova uporaba pa se nacrtuje tudi pri predmetu Osnovestatisticne obdelave s pomocjo informacijske tehnologije na Fakulteti za socialnodelo UL Tako ucbenik predvideva znanje opisne statistike in statisticnega sklepanjas podrocij univariatne in bivariatne statistike ter multivariatne regresije v obsegukot se obravnava pri predmetih Statistika in Statistika II z racunalnisko analizo po-datkov na FDV UL Obravnavane metode zato niso sirse predstavljene razen namestih kjer potrebno predznanje presega tisto kara so studenti obravnavali pri prejomenjenih predmetih (predvsem pri neparametricnih testih)

Ucbenik predvsem njegovo prvo najobseznejse poglavje je namenjen tudi vsem kibi radi spoznali R ne glede na to na katerem podrocju ga bodo kasneje uporabljaliR se namrec lahko uporablja na mnogo podrocjhi od ze omenjene osnovne stati-sticne analize do multivariatne analize biostatistike statisticne analize financnihpodatkov podatkovnega rudarjenja strojnega ucenja racunalniske analize besedilavtomatskega zajema podatkov s spleta

R (httpwwwr-projectorg) je odprtokodno programsko okolje za statisticneanalize R ima kar nekaj lastnosti ki ga naredijo zelo privlacnega

bull je brezplacen

ii Predgovor

bull podpira vecino statisticnih metod (preko paketkov)

bull se veliko uporablja v raziskovanju (instituti univerze )

bull deluje na vecini operacijskih sistemov (Windows Mac OSOS X Linux )

bull omogoca programiranje

bull je zelo primeren za simulacije in generiranje slucajnih spremenljivk

Medtem ko vecina studentov ceni predvsem prvo izmed nastetih lastnosti (brezplac-nost) pa je njegov razcvet v veliki meri povezan s preostalimi

Predvsem za zacetnike pa ima R tudi nekaj slabosti Glavna slabost je da v osnovnirazlicici nima graficnega vmesnika (vsaj ne v klasicnem smislu kjer bi preko meni-jev in oken zahtevali izvedbo analiz) zato vsaj na zacetku ucenje poteka pocasnejekot pri programih z graficnim vmesnikom (na primer SPSS PSPP Stata ) Tuje sicer treba omeniti da obstaja tudi nekaj graficnih vmesnikov za R med ka-terimi bi izpostavil predvsem Rcommander (httpwwwrcommandercom) sajje najobseznejsi in omogoca izvajanje najvecjega nabora analiz se posebej s po-mocjo velikega stevila paketkov ki razsirjajo njegovo funkcionalnost Tega vme-snika kot receno v tem ucbeniku ne obravnavam je pa vsaj za osnovno stati-sticno analizo ta opisan v ucbeniku Kastelec Damijana in Katarina Kosmelj 2009Statisticna analiza podatkov s programoma Excel 2003 in R Ljubljana Bioteh-niska fakulteta URL httpwwwbfuni-ljsifileadmingroups2763C5

A1tudijsko_gradivoSAP_2003pdf

V ucbeniku se omejim na uporabo preko ukazne vrstice Glavni razlog za to je dalahko le s tako uporabo izkoristimo vse prednosti R-ja taka uporaba pa je tudi nujnamed drugim za analize meri simulacije avtomatsko izdelavo porocil ter mnogo dru-gih opravil

Ucbenik je razdeljen na tri osnovna poglavja Prvo je Uvod v R in je namenjenospoznavanju R-ja Zacne se z uvodnim primerom statisticnih analiz nadaljuje pase z razmeroma sistematicnim pregledom podrocij ki so pomembna za uporabotega programskega okolja Podrocja vsebujejo tako osnovne podatkovne strukturein osnove programiranja kot tudi delo z datotekami risanje in pripravo porocil napodlagi opravljenih analiz Pravzaprav to poglavje vsebuje tiste rdquonestatisticnerdquo vse-bine ki so potrebne za osnovno uporabo R-ja Poznavanje vecine izmed teh vsebin(z izjemo programiranja v R-ju ndash podpodpoglavji 142 in 143) je kljucno za ucin-kovito izvajanje in porocanje o takorekoc vseh statisticnih analizah in torej tudi zarazumevanje preostalih dveh poglavij Pri tem se prvo poglavje v veliki meri lahkobere rdquopo potrebirdquo se pravi kot prirocnik kjer se prebere doloceno poglavje ko sepokaze potreba po posameznih znanjih Z vidika uporabe R-ja je to pravzapravnajzahtevnejse poglavje zato vsebuje tudi vrsto vaj z resitvami (resitve so na koncupoglavja)

Predgovor iii

Drugo poglavje je vsebinsko najsirse saj v njem obravnavamo kar veliko tako univari-atnih kot bivariatnih metod Pod bivariatne metode sicer spadata tudi enofaktorskaanaliza variance in bivariatna regresija vendar pa ju skupaj z njunima multivari-atnima razlicicama obravnavamo loceno v naslednjem poglavju V tem poglavjuobravnavamo tako osnovne opisne statistike kot tudi inferencno statistiko Znotrajinferencne statistike obravnavamo pri srednjih vrednostih tako izracune intervalovzaupanja kot preverjanje domnev pri bivariatni povezanosti pa le preverjanje do-mnev Pri vecini metod in statistik predstavljena le uporaba v R-ju in podaniprimeri izjema so neparametricni testi kjer so obravnavane metode tudi teoreticnopredstavljene

V tretjem poglavju sta predstavljeni analiza variance in linearna regresija Pri obehzacnemo z najenostavnejsim (bivariatnim) primerom nato pa dodajamo dodatneelemente (vec neodvisnih spremenljivk interakcije med ucinki ) Pri analizi variancpredstavimo tudi njeno neparametericno razlicico Pri obeh metodah je posebnapozornost namenjena tudi preverjanju predpostavk obeh metod

Vsako od treh glavnih poglavji se zakljuci z viri za poglabljanje in vprasanji zaponavljanje Na koncu ucbenika sledi se sklepno poglavje v katerem povzamemokaj vse je bilo v ucbeniku obdelano Nekaj podpoglavij vsebuje tudi zahtevnejsosnov ki za enostavno uporabo ni potrebna Naslovi takih podpoglavij so oznaceniz zvezdico ()

Velik del ucbenika predstavlja tudi prikaz dela v R-ju s pomocjo izpisov iz rdquokonzolerdquooziroma ukazne vrstice Izpisi iz ukazne vrstice so vizualno loceni z zaobljenimiokvirji s sivim ozadjem in z uporabo drugacne pisave in sicer posevne pisave

s fiksno sirino crk (Curier)1 za ukaze in obicajne pisave s fiksno sirino

crk za izpise Vsaka vrstica kjer nastopa ukaz se zacne z znakom gt Ukaz se lahkonadaljuje cez vec vrstic V tem primeru se naslednja vrstica zacne z dvema presled-koma Vrstice ki se ne zacnejo z znakom gt in niso nadaljevanje ukaza iz prejsnjevrstice vsebujejo izpise R-jevih funkcij V R-ju je komentar vse kar sledi znaku pojavlja pa se lahko na zacetku vrstice ali kasneje Vsa R-jeva koda uporabljena vtem ucbeniku je na voljo na spletnem naslovu www2arnessi~aziber4R

Primer izpisa iz R-ja s komentarjem je videti takole

gt 2 + 1 tole je ukaz za sestevanje dveh stevil

[1] 3

V ucbeniku uporabljam se dve posebni graficni obliki Prva je opozorilo

1 Enaka pisava se sicer uporablja tudi znotraj besedila za R-jevo kodo

iv Predgovor

Opozorilo

V opozorilih opozarjam na se posebej pomembne stvari katerih neupostevanjelahko vodi do resnih in pogosto nepricakovanih posledic

Druga oblika so dodatna pojasnila

Dodatna pojasnila so pojasnila ki jih lahko vecina bralcev brez hujsih posledic izpustivseeno pa lahko pripomorejo k boljsem razumevanju snovi

Pri pripravi ucbenika je bil uporabljen R razlicice 322 Razlicico R-ja lahko pre-verite med drugim z izpisom spremenljivke Rversionstring

gt Rversionstring

[1] R version 322 (2015-08-14)

v

Kazalo

Predgovor i

Kazalo v

Slike viii

Tabele x

1 Uvod v R 111 Uvodni primer 112 Osnovne informacije 14

121 Osnovne racunske operacije 14122 Spremenljivke 15123 Uporaba funkcij in pomoci 16124 Paketki 18125 Drugi osnovni podatki 19

13 Podatkovne strukture 20131 Osnovni podatkovni tipi 20132 Vektor 22133 Nominalne in ordinalne spremenljivke 26134 Seznam 27135 Matrika 30136 Polje ndash Array 35137 Podatkovni okvir ndash Data frame 35138 Vaje 38

14 Funkcije in programiranje 38141 Nekaj koristnih funkcij 39142 Definiranje funkcij 43143 Programski tok 44144 Vaje 47

15 Delo z datotekami 47151 Tekstovne datoteke 48152 Shranjevanje in branje objektov 50153 Branje in pisanje datotek drugih programov 51

vi Kazalo

154 Vaje 5516 Risanje 56

161 Visokonivojske funkcije za risanje 56162 Nizkonivojske funkcije za risanje 58163 Shranjevanje slik 60164 Vaje 62

17 Priprava dokumentov z rezultati iz R-ja 6318 Resitve vaj 66

181 Podatkovne strukture 66182 Funkcije in programiranje 67183 Risanje 70

19 Viri za poglabljanje znanja 71191 Spletni viri 71192 Knjizni viri 73

110 Vprasanja za ponavljanje 75

2 Univariatna in bivariatna statistika 7721 Uporabljeni podatki 7722 Osnovne statistike 7823 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali za-

upanja 86231 Preverjanje domneve o srednji vrednosti in pripadajoci inter-

val zaupanja 88232 Preverjanje domneve o razliki med srednjima vrednostma na

odvisnih vzorcih in pripadajoci interval zaupanja 91233 Preverjanje domneve o razliki med srednjima vrednostma na

neodvisnih vzorcih in pripadajoci interval zaupanja 9524 Preverjanje domnev o delezih in pripadajoci intervali zaupanja 98

241 Preverjanje domneve o vrednosti deleza in pripadajoci intervalzaupanja 99

242 Preverjanje domnev o razliki med delezema na neodvisnihvzorcih in pripadajoci intervali zaupanja 101

25 Frekvencne in kontingencne tabele 103251 Frekvencne tabele 103252 Kontingencne tabele 105253 Povezanost spremenljivk 109

26 Korelacija 11227 Viri za poglabljanje znanja 11828 Vprasanja za ponavljanje 119

3 Analiza variance in linearna regresija 12131 Uporabljeni podatki 12132 Analiza variance (ANOVA) 122

321 Enofaktorska analiza variance za neodvisne vzorce 123

Kazalo vii

322 Vecfaktorska analiza variance za neodvisne vzorce 131323 Enofaktorska analiza variance za odvisne vzorce 138

33 Linearna regresija 141331 Dodatne spremenljivke 141332 Bivariatna regresija 143333 Nelinearna regresija 147334 Multipla regresija 150335 Vkljucevanje nominalnihordinalnih spremenljivk 155336 Interakcije med spremenljivkami 160337 Preverjanje predpostavk 163338 V razmislek 174339 Izracun rdquona rokerdquo 176

34 Viri za poglabljanje znanja 18335 Vprasanja za ponavljanje 184

4 Za konec 187

Literatura 191

viii

Slike

11 Strukturni stolpci in krog za spol 312 Strukturni stolpci za povezanost dveh nominalnih spremenljivk 413 Histograma za ekstravertiranost in emocionalno stabilnost 514 Razsevni grafikon za ekstravertiranost in emocionalno stabilnost 815 Dendrogram ndash Wardovo razvrscanje s kvadrirano evklidsko razdaljo

na podlagi spremenljivk emocionalne stabilnosti 1016 Graf povprecij po skupinah dobljenih z metodo voditeljev 1217 Resitev razvrscanja v prostoru glavnih komponent 1418 Stirje obrazi 1919 Strutkutna stolpca in krog na eni sliki 58110 Slika z veliko dodanimi elementi 60111 Resitev vaje 1 (Risanje) 70112 Resitev vaje 2 (Risanje) 72113 Resitev vaje 3 (Risanje) 73

21 Porazdelitev bruto place 8922 Porazdelitev zaupanja v Drzavni zbor in Evropski parlament 9223 Porazdelitev razlike med zaupanjem v Drzavni zbor in zaupanjem v

Evropski parlament 9324 Porazdelitev bruto place pri moskih in zenskah 9625 Razsevni grafikon ndash izobrazba in bruto placa 11326 Razsevni grafikoni med vsemi spremenljivkami ki merijo zaupanje v

institucije 115

31 Porazdelitve uporabljenih spremenljivk 12532 Porazdelitev bruto place po krajih bivanja 12733 Porazdelitve uporabljenih spremenljivk 13234 Porazdelitev bruto place po krajih bivanja in spolu 13435 Porazdelitve dodatnih spremenljivk 14336 Odnos med bruto placo in stevilom let solanja 14437 Porazdelitev rezidualov 14638 Diagnosticni grafikoni za linearno regresijo 14739 Exponentna zveza ndash transformacija 149310 Ocenjevanje nelinearne zveze 151

Slike ix

311 Odnos med bruto placo in tipicnim stevilom delovnih ur na teden 151312 Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk 154313 Porazdelitev rezidualov 155314 Diagnosticni grafikoni za linearno regresijo 156315 Diagnosticni grafikoni za linearno regresijo ndash model z interakcijo 164316 Histogram rezidualov 165317 Grafikon za ocenjevanje heteroskedasticnosti 165318 Grafikoni delnih ostankov 172319 Ceres grafikoni 173320 Diagnosticni grafikoni za linearno regresijo 175321 Odnos med izobrazbo in bruto placo po spolu 177

x

Tabele

11 Frekvencna tabela za spol 212 Hierarhicno razvrscanje - povprecja po skupinah 1113 Metoda voditeljev ndash povprecja po skupinah 1214 Primerjava koncnih razvrstitev po enotah 13

1

1 poglavje

Uvod v R

Prvo poglavje je namenjeno spoznavanju R-ja Zacne se z uvodnim primerom sta-tisticnih analiz nato pa se nadaljuje z razmeroma sistematicnim pregledom podro-cij ki so pomembna za uporabo tega programskega okolja Sistematicni pregledse zacne z osnovnimi informacijami kjer velja se posebej izpostaviti navodila zauporabo funkcij in pomoci ter paketkov Tem sledi pregled podatkovnih strukturtorej osnovnih nacinov na katere lahko v R-ju shranjujemo podatke in rezultate (injih nato nadalje obdelujemo) Nadaljuje se s pregledom nekaterih (s statisticnegavidika) najkoristnejsih funkcij za napredne uporabnike pa tudi pravila za pisanjenovih funkcij in napotki za programiranje Zelo pomembno podpoglavje je tudi pod-poglavje o delu z datotekami saj preko le teh rdquoberemordquo in shranjujemo podatke terpogosto tudi rezultate statisticnih obdelav R je znan tudi po zelo kvalitetnih grafihin prav risanje ter shranjevanje grafov in drugih slik je opisano v naslednjem podpo-glavju Vsebinsko se poglavje zakljuci s pregledom nacinov za pripravo dokumentovz rezultati analiz iz R-ja kjer se osredotocimo na izvoz tabel v dokumente kompa-tibilne z urejevalniki besedila Ker je to poglavje z vidika uporabe R-ja pravzapravnajzahtevnejse poglavje vsebuje tudi vrsto vaj z resitvami (po podpoglavjih) ki sopodane na koncu poglavja

11 Uvodni primer

Za predstavitev nacina analize z R-jem zacnimo z realnim primerom Primer pri-kazuje uporabo metod predstavljenih v tem ucbeniku poleg tega pa prikazuje tudiuporabo multivariatnih metod z R-jem

Podatki na katerih temelji primer so bili zbrani v okviru raziskave Kakovost mer-jenja egocentricnih socialnih omrezij (Ferligoj in drugi 2000) Podroben opis raz-iskave je na voljo na spletni strani Arhiva druzboslovnih podatkov (ADP) (httpwwwadpfdvuni-ljsiopisiegoomr00) s katere je (po predhodni registra-

2 11 Uvodni primer

ciji) mogoce tudi prenesti podatke Za ta primer sem prenesel podatke v SPSS-ovemformatu (obicajnem ne rdquoportablerdquo (prenosljivem) torej datoteka s koncnico rdquosavrdquo)saj ga R dobro bere Kot sicer natancneje obravnavamo v podpodpoglavju 153lahko R bere in zapisuje tudi podatke izv mnogih-o drugih formatov med kate-rimi posebej izpostavim Statin format (predvsem zaradi prirocnosti pri pisanju) Vpodpodpoglavju 153 so opisani tudi razlogi za uporabo SPSS-ovega formata v temucbeniku in napotki v primeru da bralec bere podatke iz kaksnega drugega formata

Pred zacetka dela v R-ju preberemo funkcije (prej pripravljene iz datoteke rdquoUcbenikR-funkcijeRrdquo) in podatke Ker zelimo analizo izvesti samo na posameznikih ki so biliosebno anketirani opravimo se izbor enot

gt nalozimo datoteko s posebej pripravljenimi funkcijami

gt source(UcbenikR-funkcijeR)

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign)

gt preberemo podatke

gt ego1lt-readspss(egoomr00_f2savtodataframe=TRUE

usevaluelabels = FALSEusemissings=TRUE)

gt izbor samo tistih ki so bili osebno anketirani

gt egolt-ego1[ego1$MODE==1]

gt kopiranje atributov (zaradi prejsne izbire enot)

gt for(i in names(ego1))attributes(ego[i])lt-attributes(ego1[i])

Naredimo se frekvencno tabelo (lepo izpisana z LATEX-om je v tabeli 11) in grafa(slika 11) Najprej frekvencno tabelo

gt ego$E_SPOLlt-makeFactorLabels(ego$E_SPOL)

gt table(ego$E_SPOL)

moski zenski

267 364

gt frekTab(ego$E_SPOLdec=1)

Frekvenca Kum frek Kumulativni

moski 267 267 423 423

zenski 364 631 577 1000

Tabela 11 Frekvencna tabela za spol

Frekvenca Kum frek Kumulativni moski 267 267 423 423zenski 364 631 577 1000

Sedaj pa narisimo se strukturna stolpca in krog

1 poglavje ndash Uvod v R 3

Slika 11 Strukturni stolpci in krog za spol

moški ženski

Strukturna stolpca

050

150

250

350

moški

ženski

Strukturni krog

gt par(mfrow=c(12)) dva grafa na eno stran

gt barplot(table(ego$E_SPOL)main=Strukturna stolpca)

gt pie(table(ego$E_SPOL)main=Strukturni krog)

gt par(mfrow=c(11))

Delamo lahko tudi dvodimenzionalne tabele in jih na enostaven nacin narisemo (slika12)

gt ego$IZOBlt-makeFactorLabels(ego$IZOB)

gt tbllt-table(spol=ego$E_SPOLizobrazba=ego$IZOB)

gt tbl

izobrazba

spol nedokoncana osnovna sola osnovna sola

moski 1 18

zenski 5 36

izobrazba

spol poklicna sola stiriletna srednja sola visja sola

moski 44 110 28

zenski 44 157 40

izobrazba

spol visoka sola magisterij doktorat

moski 55 3 8

zenski 75 5 2

gt plot(tbllas=1 main=)

4 11 Uvodni primer

Slika 12 Strukturni stolpci za povezanost dveh nominalnih spremenljivk

spol

izob

razb

a

moški ženskinedokončana osnovna šolaosnovna šola

poklicna šola

štiriletna srednja šola

višja šola

visoka šola

magisterijdoktorat

Sledi transformacija spremenljivk ndash rdquoobracanjerdquo lestvice in izracun Likertovih lestvicza ekstravertiranost in emocionalno stabilnost

gt seznam spremenljivk ki jim je treba obrniti lestvico

gt spremZaRekodlt-c(O4 O7 O9 O10 O11 O12

O13 O14 O15 O17 O18 O19 O20)

gt imena za nove spremenljivke

gt rekodiraneSpremlt-paste(spremZaRekodRsep=)

gt obracanje vrednosti

gt ego[rekodiraneSprem]lt- 6 - ego[spremZaRekod]

gt spremEkstlt-c(O1 O2 O5 O8 O9R O12R O14R

O15R O16 O18R)

gt spremEmoclt-c(O3 O4R O6 O7R O10R O11R

O13R O17R O19R O20R)

gt uvedemo novi spremenljivki

gt ego$ekst_sco lt- apply(ego[spremEkst]1sum)

gt ego$emoc_sco lt- apply(ego[spremEmoc]1sum)

1 poglavje ndash Uvod v R 5

Porazdelitev teh dveh spremenljivk je prikazana na sliki 13 Porazdelitev obehspremenljivk je priblizno normalna se pa nakazuje rahla asimetrija v levo

gt par(mfrow=c(12)) dva grafa na eno stran

gt hist(ego$ekst_sco xlab=ekstravertiranost main=

freq=FALSEylab=gostota)

gt dodamo normalno krivuljo

gt curve(dnorm(xmean=mean(ego$ekst_sconarm=TRUE)

sd=sd(ego$ekst_sconarm=TRUE))add=TRUExpd=NA)

gt raje z gostoto

gt hist(ego$emoc_sco xlab=emocionalna stabilnost main=

freq=FALSEylab=gostota)

gt dodamo normalno krivuljo

gt curve(dnorm(xmean=mean(ego$emoc_sconarm=TRUE)

sd=sd(ego$emoc_sconarm=TRUE))add=TRUExpd=NA)

gt xpd=NA uporabimo da se vidi tudi vrh krivulje

gt par(mfrow=c(11))

Slika 13 Histograma za ekstravertiranost in emocionalno stabilnost

ekstravertiranost

gost

ota

10 20 30 40 50

000

002

004

emocionalna stabilnost

gost

ota

10 20 30 40 50

000

001

002

003

004

Izracunajmo se opisne statistike po skupinah glede na spol

gt opisne statistike po skupinah

gt ekstravertiranost

gt by(ego$ekst_sco INDICES=ego$E_SPOL

6 11 Uvodni primer

FUN = function(x)c(povprecje=mean(xnarm=TRUE)

sd=sd(xnarm=TRUE)n=sum(isna(x))))

ego$E_SPOL moski

povprecje sd n

34159696 7711717 263000000

---------------------------------------------

ego$E_SPOL zenski

povprecje sd n

34659091 8031826 352000000

gt emocionalna stabilnost

gt by(ego$emoc_sco INDICES=ego$E_SPOL

FUN = function(x)c(povprecje=mean(xnarm=TRUE)

sd=sd(xnarm=TRUE)n=sum(isna(x))))

ego$E_SPOL moski

povprecje sd n

36306818 8223621 264000000

---------------------------------------------

ego$E_SPOL zenski

povprecje sd n

33986111 9184723 360000000

Pri ekstravertiranosti (prvi izpis) imajo zenske malce vecje povprecje vendar pa stasi povprecji precej podobni Pri emocionalni stabilnosti imajo moski vecje povprecjePri obeh spremenljivkah pa je variabilnost med zenskami vecja kot med moskimiV nadaljevanju za emocionalno stabilnost preverimo domnevo da sta aritmeticnisredini v obeh skupinah (pri obeh spolih) enaki

gt EMOCIONALNA STABILNOST

gt testiramo enakost varianc (vec razlicnih testov)

gt vartest(emoc_sco~E_SPOLdata=ego)

F test to compare two variances

data emoc_sco by E_SPOL

F = 080167 num df = 263 denom df = 359 p-value =

005669

alternative hypothesis true ratio of variances is not equal to 1

95 percent confidence interval

06411573 10063491

sample estimates

ratio of variances

0801667

gt ce zelimo klasicen t-test (predpostavka enakih varianc)

gt ttest(emoc_sco~E_SPOL data=egovarequal = TRUE)

1 poglavje ndash Uvod v R 7

Two Sample t-test

data emoc_sco by E_SPOL

t = 32579 df = 622 p-value = 0001184

alternative hypothesis true difference in means is not equal to 0

95 percent confidence interval

09218292 37195850

sample estimates

mean in group moski mean in group zenski

3630682 3398611

Ker je ena izmed predpostavk klasicnega t-testa tudi enakost varianc po skupinahsmo najprej preverili to domnevo Domneve pri 5-odstotnem tveganju ne moremozavrniti zato izvedemo klasicno razlicico t-testa Ta nam pove da lahko pri tveganjupriblizno 01 trdimo da so moski (v Ljubljani) bolj emocionalno stabilni kotzenske

Izracunajmo se korelacijo med ekstravertiranostjo in emocionalno stabilnostjo pre-verimo domnevo da je ta korelacija enaka 0 ter prikazimo odnos z njima na razsev-nem grafikonu Ta je prikazan na sliki 14 kjer smo z razlicnimi barvami in znakioznacili tudi spol

gt plot(jitter(emoc_sco)~jitter(ekst_sco)

pch=asnumeric(E_SPOL)col=asnumeric(E_SPOL)data=ego

ylab=emocionalna stabilnostxlab=ekstravertiranost)

gt jitter malce razprsi tocke da se ne prekrivajo

gt legend(x=30y=525xjust=05yjust=0legend=c(moski

zenski)pch=12col=12horiz = TRUEtitle=Spol

xpd=TRUE)

Izracunamo se korelacijo med novima spremenljivkama in preverimo domnevo daje korelacija enaka 0

gt Pearsonov koeficient korelacije

gt cor(ego[c(emoc_scoekst_sco)]method = pearson

use=pairwisecompleteobs)

emoc_sco ekst_sco

emoc_sco 10000000 02278617

ekst_sco 02278617 10000000

gt cortest(y=ego$emoc_scox=ego$ekst_sco)

Pearsons product-moment correlation

data ego$ekst_sco and ego$emoc_sco

t = 57703 df = 608 p-value = 1261e-08

8 11 Uvodni primer

Slika 14 Razsevni grafikon za ekstravertiranost in emocionalno stabilnost

10 20 30 40 50

1020

3040

50

ekstravertiranost

emoc

iona

lna

stab

ilnos

t

Spol

moški ženski

alternative hypothesis true correlation is not equal to 0

95 percent confidence interval

01512119 03017878

sample estimates

cor

02278617

gt pravzarav bi bil dovolj samo ta drugi ukaz

gt prednost prvega je da bi lahko izracunali tudi korelacijo

gt med vec spremenljivkami

Korelacija je sicer razmeroma sibka in pozitivna a mocno statisticno znacilna (p lt0001)2 V povprecju imajo osebe z visjo ekstravertiranostjo tudi visjo emocionalnostabilnost in obratno a ta povezanost je kot receno sibka

2 Tako nizka stopnja tveganja (rdquomocnardquo statisticna znacilnost) je predvsem posledica velikegavzorca

1 poglavje ndash Uvod v R 9

Nadaljujemo z multivariatno analizo ndash razvrscanjem v skupine Multivariatne ana-lize sicer v ucbeniku ne obravnavam3 V uvodni primer sem jo vkljucil da bi vsajnakazal da R omogoca se bistveno vec kot je predstavljeno v tem ucbeniku

Zaceli bomo z razvrscanje v skupine Najprej izlocimo enote z manjkajocimi vre-dnostmi nato izracunamo kvadrirano evklidsko razdaljo in jo uporabimo za hierar-hicno razvrscanje z Wardovo metodo Na podlagi dobljenega dendrograma na sliki15 ocenimo da v podatkih nastopata 2 skupini

gt Hierarhicno razvrscanje v skupine

gt odstranimo enote z manjkajocimi vrednostmi

gt emoclt-naomit(ego[spremEmoc])

gt standardiziramo podatke s funkcijo scale

gt Zemoclt-scale(emoc)

gt izracunamo evklidsko razdaljo na standardiziranih podatkih

gt dlt-dist(Zemoc)

gt za kvadrirano evklidsko razdaljo jo kvadriramo

gt d2lt-d^2

gt uporabimo Wardovo metodo

gt wardlt-hclust(d=d2method=wardD)

gt narisemo dendrogram

gt plot(ward)

gt abline(h=1500 col=red)

Ti dve skupini shranimo in na nestandardiziranih spremenljivkah izracunamo pov-precja po skupinah Povprecja so prikazana v tabeli 12

gt izberemo 2 skupini (in shranimo pripadnost)

gt wardCluK2lt-cutree(wardk=2)

gt stevilo enot po skupinah

gt table(wardCluK2)

wardCluK2

1 2

352 272

gt izracunamo povprecja po skupinah

gt aggregate(x=emoc by=list(wardCluK2) FUN=mean)

Group1 O3 O4R O6 O7R O10R

1 1 3022727 2428977 3892045 2650568 2448864

2 2 4000000 4485294 4621324 4139706 4117647

3 Obstaja veliko splosnih ucbenikov za multivariatno analizo (na primer Johnson in Wichern 2007Tabachnick in Fidell 2007 Jesenko in Jesenko 2007) uporaba multivariatne analize v R-ju pa jepredstavljena predvsem v Everitt (2005) Everitt in Hothorn (2011)

10 11 Uvodni primer

Slika 15 Dendrogram ndash Wardovo razvrscanje s kvadrirano evklidsko razdaljo napodlagi spremenljivk emocionalne stabilnosti

543

627

590

880

755

1010 43

279

810

15 754

905

892

999

13 842

454

480

476

909

706

746

776

793

894

579

854

491

559

984

533

716

525

977

536

481

873

441

783

884

1025

857

572

478

938

692

861

968

841

663

1012

927

900

790

722

687

531

563

805

777

903

895

542

682

761

887

464

492

465

988

530

571

958

562

736

983

473

631

726

752

908 2

615

956

1003

442

498

742

788 15 815

494

768

643

851

775

493

767

883 7

753

450

637

890

518

630

676

803

636

665

824

526

506

923

1027

639

975

845

1017 70

272

943

783

643

457

3 980

774

354

654

914 51

067

786

752

746

710 49

661

172

453

755

365

874

196

984

773

177

8 564

269

884

910

01 656

634

930

797

598

673

732

564

834

468

647

1002

1028

462

769

757

813

850

539

906

858

863

779

978

709

575

548

955

689

1013

1009 99

796

293

791

591

491

088

187

184

378

169

368

368

067

164

963

560

460

358

643

052

042

656

192

845

846

395

298

682

696

010

07 678 6

532

691

951

648

1032

727

902

932

581

852

904

699

965

874

998

982

684

972

650

891

948

552

594

1033 63

878

292

189

743

985

976

584

499

570

092

460

176

056

066

495

496

386

252

391

244

471

250

559

712 57

897

997

199

651

964

586

088

953

574

862

193

582

859

266

869

561

651

292

052

987

642

210

16 427

547

515

591

738

947

580

582

632

893

882

608

720

555

772

1030

557

654

740

538

655

925

870

934

607

808

756

1000 56

870

463

375

999

173

551

754

159

577

452

879

688

546

910

08 605

714

945

585

830

451

600

501

846 1

503

715

1019

589

879

1024

721

919

521

1022 71

193

698

550

487

557

076

642

174

479

169

450

280

189

845

276

469

097

098

042

558

778

579

573

396

160

281

451

196

610

04 475

747

435

822

449

474

990

792

438

701

644

869

551

820

878

703

718

868

810

939

457

943

460

576

544

812

508

827

610

669

967

922

1011 70

793

180

056

969

762

086

583

244

654

079

981

751

376

349

794

191

692

967

944

062

666

675

157

780

948

688

893

383

188

680

657

410

20 609

588

661

524

696

829

428 8

821 16

447

949

907

1018 67

064

666

073

094

447

772

870

577

194

653

471

759

383

562

981

687

2 390

1 461

848

997

489

982

595

975

087

791

194

210

21 472

993

479

653

973

786

819

856

839

1029 54

562

878

499

455

081

1 1110

2342

494

0 1770

886

645

943

362

564

168

866

745

386

444

396

446

661

473

751

691

767

471

351

483

378

948

771

950

099

268

591

883

882

310

06 509

484

651

495

981

606

675

499

483

749

420

624

802

583

662

686

987

456

596

436

762

773

840

855

565

848

913

926

976

558

853

950

471

710

681

780

490

739

455

989

461

584

725

522

612

448

507

1031

1026

770

1005 64

065

265

944

548

874

562

379

465

762

280

461

978

755

473

455

695

748

275

842

948

543

161

767

256

759

983

795

310

14

050

010

0015

0020

0025

00

Cluster Dendrogram

hclust ( wardD)d2

Hei

ght

O11R O13R O17R O19R O20R

1 2306818 3301136 2974432 3536932 2758523

2 3746324 3786765 4220588 4639706 4518382

Dobili smo eno skupino s srednjo in eno z visoko emocionalno stabilnostjo Posku-simo se ali lahko z metodo voditeljev dobimo boljsi rezultat Povprecja po skupinahna nestandardiziranih spremenljivkah so prikazana v tabeli 13 in na sliki 16

gt Razvrscanje v skupine z metodo voditeljev

gt kMeansR10lt-kmeans(Zemoc centers=2 itermax = 50 nstart = 10)

gt ponovimo kar 10-krat (da se izognemo lokalnim minimumom)

gt koncni voditelji na standardiziranih spremenljivkah

gt (te smo uporabili za razvrscanje)

gt kMeansR10$centers

O3 O4R O6 O7R O10R

1 02807587 05873913 02360699 05311423 06126683

1 poglavje ndash Uvod v R 11

Tabela 12 Hierarhicno razvrscanje - povprecja po skupinah

1 2O3 302 400

O4R 243 449O6 389 462

O7R 265 414O10R 245 412O11R 231 375O13R 330 379O17R 297 422O19R 354 464O20R 276 452

2 -03449321 -07216522 -02900287 -06525462 -07527067

O11R O13R O17R O19R O20R

1 03711498 02967399 05099416 04663205 05518454

2 -04559841 -03645662 -06264997 -05729081 -06779815

gt velikosti skupin

gt kMeansR10$size

[1] 344 280

gt vrednost Wardove kriterijske funkcije

gt kMeansR10$totwithinss

[1] 4585664

gt povprecja na nestandardiziranih spremenljivkah po skupinah

gt aggregate(x=emoc by=list(kMeansR10$cluster) FUN=mean)

Group1 O3 O4R O6 O7R O10R

1 1 3854651 4261628 4470930 4104651 4098837

2 2 2950000 2175000 3889286 2310714 2042857

O11R O13R O17R O19R O20R

1 3526163 3947674 4290698 4613372 4322674

2 2207143 2978571 2567857 3285714 2546429

gt graf

gt meanslt-aggregate(x=emocby=list(kMeansR10$cluster)FUN=mean)

gt matplot(t(means[-1])type=oxaxt=nylab=povprecje)

gt axis(side=1at=1dim(means[-1])[2]

labels=colnames(means)[-1]las=2)

Primerjajmo se obe razbitji (dobljeni z razlicnima metodama) Vrednost kriterijskefunkcije za razbitje izracunano z Wardovo metodo je 491353 za tisto z metodovoditeljev pa 458566 Razbitje dobljeno z metodo voditeljev je torej boljse Kako

12 11 Uvodni primer

Tabela 13 Metoda voditeljev ndash povprecja po skupinah

1 2O3 385 295

O4R 426 217O6 447 389

O7R 410 231O10R 410 204O11R 353 221O13R 395 298O17R 429 257O19R 461 329O20R 432 255

Slika 16 Graf povprecij po skupinah dobljenih z metodo voditeljev

1

1

1

1 1

1

1

1

1

1

20

25

30

35

40

45

povprečje

2

2

2

2

2

2

2

2

2

2

O3

O4R O6

O7R

O10R

O11R

O13R

O17R

O19R

O20R

se razporeditvi prekrivata je prikazano v tabeli 14 Prekrivanje je zelo veliko sajse razbitji pri vecini enot ujemata (ne ujemata se le pri manjsem stevilu enot)4

4 Vecina enot ki je v prvi skupini po Wardovi metodi je v drugi po metodi voditeljev medtemko je vecina tistih ki so z Wardovo metodo razporejene v drugo skupino z metodo voditeljev

1 poglavje ndash Uvod v R 13

gt Primerjava kriterijskih funkcij

gt wardKF(ZemocwardCluK2) Wardova metoda

[1] 4913525

gt kMeansR10$totwithinss metoda voditeljev

[1] 4585664

gt Primerjava koncnih razvrstitev po enotah

gt table(Wardova metoda=wardCluK2

Metoda voditeljev=kMeansR10$cluster)

Metoda voditeljev

Wardova metoda 1 2

1 85 267

2 259 13

Tabela 14 Primerjava koncnih razvrstitev po enotah

1 21 85 2672 259 13

Razbitje prikazano v prostoru prvih dveh glavnih komponent je prikazano na sliki17 Vidi se da prva glavna komponenta zelo dobro loci med skupinama dobljenimaz metodo voditeljev

gt metoda glavnih komponent

gt PClt-princomp(Zemoc)

gt plot(PC$scores[12]ylab=2 komponentaxlab=1 komponenta

pch=kMeansR10$clustercol=kMeansR10$cluster)

gt legend(x=mean(range(PC$scores[1])) y=max(PC$scores[2])+05

legend = c(1 skupina 2 skupina)

title=Metoda voditeljevxjust=05 yjust=0xpd=TRUE

pch=kMeansR10$clustercol=kMeansR10$clusterhoriz=TRUE)

S tem zakljucujemo uvodni primer V nadaljevanju sledi pregled osnovnih informacijo delu s programskim paketom R

razporejena v prvo skupino Pri teh enotah se razvrstitvi ujemata saj oznake skupin (prvadruga) pri razvrscanju v skupine niso pomembne

14 12 Osnovne informacije

Slika 17 Resitev razvrscanja v prostoru glavnih komponent

-2 0 2 4 6

-20

24

1 komponenta

2 k

ompo

nent

a

Metoda voditeljev

1 skupina 2 skupina

12 Osnovne informacije

121 Osnovne racunske operacije

Najprej spoznajmo osnovne racunske operacije V R-ju se zanje uporabljajo stan-dardni simboli Morda omenimo le da je ˆ(stresica) znak za potenco sqrt pafunkcija kvadratnega korena

gt 2+2

[1] 4

gt 6-2

[1] 4

gt 35

[1] 15

gt 25

[1] 04

gt 52 vrne ostanek pri deljenju

1 poglavje ndash Uvod v R 15

[1] 1

gt 5^2 potenca

[1] 25

gt sqrt(25) kvadratni koren preko funkcije

[1] 5

gt 25^(12) in drugace (bolj splosno)

[1] 5

gt zgoraj upostevamo da je koren le posebna razlicica

gt potence in sicer oblike 1(stopnja korena)

122 Spremenljivke

Vrednost shranimo tako da jo priredimo spremenljivki (objektu) Za prirejanje upo-rabimo znak rdquolt-rdquo(uporabljamo lahko tudi znak rdquo=rdquo a se njegova uporaba odsvetuje)Spremenljivkeobjekte nato uporabljamo namesto vrednosti ki so shranjene v njih

V imenih spremenljivk lahko nastopajo

bull crke (velike in male ndash velikost crk je pomembna)

bull stevilke

bull znak rdquo rdquo ndash do verzije 180 R-ja bil uporabljan kot znak za prirejanje na karje treba biti pozoren ce naletite na kaksno zelo staro kodo

bull znak rdquordquo ndash predvsem pri funkcijah ima znak rdquordquo v imenu funkcije tudi posebenpomen (uporablja se za prilagoditev funkcije za dolocen razred objekta) zatose uporaba rdquordquo v drugih primerih odsvetuje (ni pa prepovedana)

Ime spremenljivke se mora nujno zaceti s crko ali piko (rdquordquo) Spremenljivke ki sezacenjajo s piko (rdquordquo) so skrite se pravi da se ne izpisejo s funkcijo ls() (ta funkcijaizpise vse vidne objekte v okolju)

Primer uporabe spremenljivk

gt a lt- 5 priredimo vrednost spremenljivki

gt a izpisemo vrednost spremenljivke

[1] 5

gt a + 4

[1] 9

gt b lt- a2 nekaj izracunamo in rezultat priredimo

gt b

[1] 10

gt (c lt- a + b) Kaj se zgodi zaradi oklepajev

[1] 15

16 12 Osnovne informacije

Zaradi oklepajev se najprej izvede izraz znotraj oklepaja torej se rezultat sesteva-nja shrani v spremenljivko c Nato pa se se rdquopoklicerdquo oklepaj kar izpise vrednostspremenljivke c

123 Uporaba funkcij in pomoci

Funkcija ls je prva R-jeva funkcija ki smo jo spoznali Za pomoc o katerikoli R-jevifunkciji napisemo v R eno od spodnjih moznostiime_funkcije

help(ime_funkcije)

Za iskanje po pomoci lahko uporabitehelpsearch(iskalni pogoj)

iskalni pogoj

Dodatno pomoc pa najdete tudi v meniju Help

Za iskanje funkcije katere ime ustreza dolocenemu vzorcu pa uporabite funkcijoapropos

Vsaka spremenljivka je pravzaprav objekt (objekti so tudi funkcije) Objekte lahkobrisemo s funkcijo rm

Funkcijo klicemo tako da navedemo njeno ime in potem v oklepajih () njene ar-gumente locene z vejico Nujno moramo navesti vse argumente ki nimajo privzetevrednosti ostale pa le ce nam privzeta vrednost ne ustreza Tudi ce ne navedemonobenega argumenta moramo nujno navesti oklepaje () kamor v tem primeru nenapisemo nic Za primer glejte podpodpoglavje 135 (Matrika)

Pri navajanju argumentov imamo dve moznosti

bull Argumente navajamo v takem vrstnem redu kot so navedeni v funkciji Tanacin lahko uporabimo samo pri argumentih ki so na zacetku oziroma prikaterih smo navedli tudi vse argumente pred njimi

bull Argumente navajamo v poljubnem vrstnem redu skupaj z njihovimi imeni kotdvojice ime=vrednost

V vsakem primeru argumente locimo z vejicami Drugi nacin je dosti varnejsi Prvise ponavadi uporablja le za prvi argument ali pri zelo pogosto uporabljenih funkcijahceprav tudi takrat ni priporocljiv

gt ls() Klicemo funkcijo ls ne da bi navedli kak argument

[1] a b

[3] c colinEigen

1 poglavje ndash Uvod v R 17

[5] corTestDf d

[7] d2 ego

[9] ego1 emoc

[11] frekTab i

[13] insert kMeansR10

[15] makeFactorLabels means

[17] PC plotMeans

[19] printCorTestDf razsiriPodatke

[21] rekodiraneSprem spremEkst

[23] spremEmoc spremZaRekod

[25] ss ssAllVar

[27] tbl ward

[29] wardCluK2 wardKF

[31] Zemoc

gt Argumenti niso potrebni ker je pri vseh argumentih

gt privzeta vrednost ustrezna

gt Z njo izpisemo vse vidne objekte - med njimi je tudi a

gt

gt alt-1 kreiramo a

gt rm(a) izbrisemo a - argument funkcije je

gt Pozor argument funkcije je objekt (ne njegovo ime)

gt ls() a-ja ni vec med objekti

[1] b c

[3] colinEigen corTestDf

[5] d d2

[7] ego ego1

[9] emoc frekTab

[11] i insert

[13] kMeansR10 makeFactorLabels

[15] means PC

[17] plotMeans printCorTestDf

[19] razsiriPodatke rekodiraneSprem

[21] spremEkst spremEmoc

[23] spremZaRekod ss

[25] ssAllVar tbl

[27] ward wardCluK2

[29] wardKF Zemoc

gt ls pomoc za funkcijo ls

gt help(ls) enako

gt List Objects isce po pomoci

gt ls(allnames = TRUE) izpisemo vse objekte tudi skrite

[1] cairo Randomseed

[3] b c

18 12 Osnovne informacije

[5] colinEigen corTestDf

[7] d d2

[9] ego ego1

[11] emoc frekTab

[13] i insert

[15] kMeansR10 makeFactorLabels

[17] means PC

[19] plotMeans printCorTestDf

[21] razsiriPodatke rekodiraneSprem

[23] spremEkst spremEmoc

[25] spremZaRekod ss

[27] ssAllVar tbl

[29] ward wardCluK2

[31] wardKF Zemoc

gt torej tudi tiste ki se zacnejo s piko ()

gt

gt rm(list=ls()) izbrisemo vse vidne objekte

gt ta ukaz uporabljajte zelo pazljivo

gt

gt ustvarimo nekaj spremenljivk

gt alt-1blt-2aalt-3aaaabblt-4daalt-5

gt V R-ju lahko v eno vrstico napisemo tudi vec ukazov

gt ki jih locimo s podpicji

gt ponavadi to sicer ni priporocljivo

gt

gt ls(pattern = aa) vsi objekti ki imajo v imenu aa

[1] aa aaaabb daa

gt uporabimo lahko sicer tudi regularne izraze

gt za vec informacij vtipkajte regexp

124 Paketki

Vse funkcije (ki jih nismo napisali sami) in tudi veliko podatkov je v R-ju shra-njeno v paketkih Paketke nalozimo preko menija Packages|Load package alienostavneje s funkcijama library ali require Edina razlika med njima je v temda prva ob neuspehu (ce na primer paketek ni namescen oziroma instaliran) javinapako druga pa vrednost FALSE Da pa paketke lahko nalozimo morajo biti prejnamesceni

Na voljo je veliko paketkov 30 osnovnih paketkov je vkljucenih ze v osnovno distri-bucijo R-ja (in jih imate tako po namestitvi R-ja ze namescene) veliko vec (trenutno8551) pa jih je na voljo na CRAN-u (Comprehensive R Archive Network)

1 poglavje ndash Uvod v R 19

Slika 18 Stirje obrazi

1 2

3 4

Paketke najlazje namestimo neposredno iz CRAN-a in sicer preko menija Packa-ges|Install package(s) ali preko funkcije installpackages

gt installpackages(TeachingDemos)

package TeachingDemos successfully unpacked and MD5 sums checked

The downloaded binary packages are in

CUsersAlesAppDataLocalTempRtmpcFnMNjdownloaded_packages

gt namestimo paketek s CRAN-a

gt library(TeachingDemos) nalozimo paketek

gt funkcija faces ni na voljo ce prej ne nalozimo paketka

gt faces() uporabimo funkcijo iz paketka - narisemo 4 obraze

Rezultat funkcije je na sliki 18

125 Drugi osnovni podatki

Prostor kamor v R-ju pisemo ukaze se imenuje ukazna vrstica oziroma konzolaVanjo lahko ukaze tipkamo lepimo ali posljemo iz urejevalnika besedil (ce le-ta toomogoca)

Zelo prirocno je tudi pomikanje po ze uporabljenih ukazih (za ponavljanje ali manjsespremembe) s smernimi tipkami za gor uarr in dol darr Po posameznem ukazu pa sepremikamo s smernimi tipkami za levo larr in desno rarr

20 13 Podatkovne strukture

R zapremo preko menija File|Exit ali s funkcijama q oziroma quit (funkciji staidenticni) Ko ga ugasnemo nas R tudi vprasa (ce nismo tega rdquopovedalirdquo ze zargumenti prej omenjenih funkcij) ali zelimo shraniti delovno okolje (workspace) inzgodovino

Stanje delovnega okolja (workspace) lahko kadarkoli shranimo s funkcijo saveimageali preko menija File|Save Workspace zgodovino ukazov pa s savehistory ozi-roma preko menija File|Save History Vse datoteke se (ce ne izberemo drugace)shranijo v delovno mapo (working directory) Delovno mapo lahko spremenimopreko funkcije setwd ali preko menija File|Change dir Nacin spreminjanjamape preko menija lahko uporabimo tudi le za to da najdemo trenutno delovnomapo lahko pa to ugotovimo tudi s funkcijo getwd

Shranjeno okolje lahko potem nalozimo na vec nacinov Ce nismo spreminjali imen(privzeto ime je rdquoRDatardquo za delovno okolje in rdquoRHistoryrdquo za zgodovino) potemse oboje samodejno nalozi ce bodisi zazenemo R v isti mapi bodisi zazenemo R zdvoklikom na shranjeno okolje rdquoRDatardquo Delovno okolje lahko nalozimo tudi takoda datoteko rdquoprenesemordquo v R-jevo okno s pomocjo funkcije loadimage ali prekomenija File|Load Workspace Podobno velja tudi za zgodovino

Zgodovino lahko kadarkoli izpisemo tudi s funkcijo history

R kot decimalno locilo uporaba piko () na primer 12

zapisemo kot 05 Pri ukazih setega ne da spreminjati (kar je nujno za konsistentno delovanje kateregakoli program-skega jezika) pri izpisih pa to lahko nastavimo preko funkcije optios Ce zelimokot decimalno locilo nastaviti vejico () torej decimalno locilo ki ga uporabljamo vslovenscini uporabimo ukaz options(OutDec = )

V tem ucbeniku uporabljam kot decimalno locilo piko () kjub temu da se zavedamda je to v nasprotju s slovenskim pravopisom Razloga za to sta dva oba pa izhajataiz narave ucbenika torej ucenje R-ja Prvi je v tem da menim da bi uporaba enegadecimalnega locila (pike) pri ukazih in drugega (vejice) pri izpisih lahko zmedlabralca Drugi je v tem da zelim da lahko uporabniki z uporabo ukazov iz ucbenikadobijo enak izpis kot ga podajam v ucbeniku Zato raje (kjer ni potrebno) nespreminjam zacetnih nastavitev S pomocjo funkcije options je mogoce nastavljatitudi veliko drugih nastavitev na primer sirino izpisa (tekstovnega) nacin izpisastevil (stevilo decimalnih mest znanstven ali obicajen zapis ) Za pregled in opisnastavitev ki jih je mogoce spreminjati uporabite options

13 Podatkovne strukture

131 Osnovni podatkovni tipi

R pozna naslednje osnovne podatkovne tipe

1 poglavje ndash Uvod v R 21

logical logicni vektor ndash vrednosti TRUE in FALSE

integer cela stevila

numeric realna stevila ndash to je privzeta vrednost za vsa stevila v R-ju tudi cela naprimer 2

complex kompleksna stevila

character znaki (poljubno stevilo) ndash vedno jih moramo pisati v narekovajih saj sedrugace upostevajo kot imena spremenljivk ali drugih objektov (funkcij)

raw shranjuje surove bajte (ang byte) ndash tega ne rabite

Podatkovne tipe spreminjamo s funkcijami asnekaj kjer je rdquonekajrdquo ime tipa Sfunkcijo isnekaj preverimo ali je nek podatek tipa rdquonekajrdquo (torej nekega doloce-nega tipa) Kaksnega tipa je nek podatek (objekt) pa preverimo s funkcijo mode

Obstajajo pa se sledece posebne vrednosti

NA Not available ndash ni na voljo oziroma R-jeva koda za manjkajoco vrednost

NaN Not a Number ndash ni stevilo Relevantno samo pri stevilskih tipih uporablja sekadar rezultat nekega izracuna ni definiran na primer 00

NULL Absoluten nic v R-ju prazen element

Pri prvih dveh (NA NaN) je rezultat izracuna kjer nastopa katera od teh vrednostiprakticno vedno kar ta vrednost tretji pa ima podobno vlogo kot prazen element

gt 4 realno stevilo

[1] 4

gt isnumeric(4)

[1] TRUE

gt isinteger(4) ni celo stevilo

[1] FALSE

gt a lt- asinteger(4) smo naredili celo stevilo

gt isinteger(a)

[1] TRUE

gt alt-to je znakovna spremenljivka

gt alt-4 se vedno znakovna spremenljivka

gt a cetudi je znak stevilka - ne moremo racunati

[1] 4

gt asnumeric(a)+3 po spremembi lahko racunamo

[1] 7

gt 00

[1] NaN

gt 1 + NA

[1] NA

Pri realnih podatkih prav pridejo spodaj prikazane funkcije za zaokrozevanje

22 13 Podatkovne strukture

gt floor(26) navzdol

[1] 2

gt ceiling(21) navzgor

[1] 3

gt round(21) na najblizjo vrednost

[1] 2

gt round(26)

[1] 3

gt round(15) pozor - uporablja standard IEC 60559

[1] 2

gt vrednosti na meji (5 na koncu) se zaokrozujejo na najblizje

gt sodo stevilo

gt round(25)

[1] 2

gt round(pidigits=3) lahko nastavimo tudi stevilo decimalk

[1] 3142

132 Vektor

Vektor je najosnovnejsa podatkovna struktura Vsebuje lahko samo podatke enegatipa Ce zelimo ustvariti vektor iz podatkov razlicnih tipov jih R sam pretvori vtip ki je najsplosnejsi (ce ns primer zdruzujemo stevilke in znake v tip rdquocharacterrdquo)Vektor ustvarimo tako da zdruzimo (combine) vrednosti s pomocjo funkcije c

R (oziroma njegov predhodnik S) je vektorski jezik kar pomeni da se ce ne izberemole posameznega dela operacije izvajajo na vseh elementih vektorja

Opozorilo

R dovoli tudi mnozenje dveh vektorjev razlicnih dolzin V primeru da dolzinadaljsega ni mnogokratnik dolzine krajsega izpise opozorilo sicer pa le izracunarezultat

Elemente vektorja izbiramo tako da njihove indekse navedemo v oglatih oklepajih [

] (glejte primer spodaj) Izbrane dele lahko tudi spreminjamo Negativna vrednostv oglatih oklepajih pomeni da izberemo vse razen tistega kar sledi rdquo-rdquo

gt alt-c(467312) ustvarimo vektor

gt a izpisemo vektor

[1] 4 6 7 3 1 2

gt a + 3

[1] 7 9 10 6 4 5

1 poglavje ndash Uvod v R 23

gt vsem elementom vektorja a pristejemo 3 (a se seveda ne

gt spremeni)

gt

gt blt-c(123456)

gt a+b elementi se sestejejo

[1] 5 8 10 7 6 8

gt ab oziroma zmnozijo

[1] 4 12 21 12 5 12

gt blt- c(12)

gt a+b b se 3x ponovi da doseze dolzino a-ja

[1] 5 8 8 5 2 4

gt pri tem R ne izpise kakrsnegakoli opozorila

gt ab

[1] 4 12 7 6 1 4

gt length(a) izpisemo dolzino vektorja a

[1] 6

gt length(b)

[1] 2

gt length(ab) dolzina rezultata je enaka dolzini daljsega

[1] 6

gt blt-c(1234)

gt ab b se ponovi 15-krat Izpise se opozorilo

[1] 4 12 21 12 1 4

gt a[3] izberemo 3 element vektorja a (stetje se zacne z 1)

[1] 7

gt clt-c(36d) ce zdruzimo razlicne elemente

gt c dobimo najsplosnejsi tip (znakovni)

[1] 3 6 d

gt c[2]lt-bla bla spremenimo 2 element v vektorju b

gt c

[1] 3 bla bla d

gt c[-2] izpisemo vse elemente razen drugega

[1] 3 d

Vektorzaporedje celih stevil od a do b tvorimo tako da napisemo ab kjer a

in b zamenjamo z ustreznima steviloma oziroma kjer sta to dve spremenljivki zustreznima vrednostma To lahko s pridom uporabljamo tudi pri izbiranju delavektorja saj lahko izberemo tudi vec kot en element vektorja tako da kot indekspodamo vektor stevil

Namesto indeksov lahko uporabimo tudi enako (kot originalni) dolg logicni vektor(ta ima samo vrednosti TRUE in FALSE) Izbrani so elementi kjer je vrednost TRUE

24 13 Podatkovne strukture

gt 15 vektor od 1 do 5

[1] 1 2 3 4 5

gt alt- -1010 kreiramo vektor od -10 do 10 in ga shranimo v a

gt a izpisemo vektor

[1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3

[15] 4 5 6 7 8 9 10

gt a[510] izpisemo stevilke na mestih od 5 do 10 (vkljucno)

[1] -6 -5 -4 -3 -2 -1

gt a[510][13]

[1] -6 -5 -4

gt izmed stevilk na mestih od 5 do 10 izberemo prve 3

gt

gt agt0 dobimo logicni vektor ki ga lahko uporabimo za izbor

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

[10] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

[19] TRUE TRUE TRUE

gt a[agt0] izberemo samo pozitivna stevila

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

gt a[c(11121)] izberemo stevilke na mestih 1 11 in 21

[1] -10 0 10

gt a[-c(11121)]

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

gt izberemo vse razen tistih na mestih 1 11 in 21

gt a[-(15)] izberemo vse razen tistih na mestih od 1 do 5

[1] -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10

Opozorilo

Ce pri zadnjem izrazu spustimo oklepaj to ni veljavno ker imajo potem indeksivrednosti od minus1 do 5 kar pa ni dovoljeno Pri indeksih ne smemo mesatinegativnih in pozitivnih stevil

Splosnejsa zaporedja dobimo s funkcijo seq Pri pisanju zank je se posebej uporabnafunkcija seq_len ki ima samo en argument in sicer dolzino zaporedja Njenaprednost je v tem da ce je dolzina 0 dejansko ustvari vektor dolzine 0

gt seq(from=1 to = 11 by= 2)

[1] 1 3 5 7 9 11

gt seq(from=1 to = 12 by= 2)

[1] 1 3 5 7 9 11

gt enako ker pri koraku 2 stevilo 12 tako ali tako izpustimo

gt seq(from=10 to = 0 by= -1) v obratnem vrstnem redu

1 poglavje ndash Uvod v R 25

[1] 10 9 8 7 6 5 4 3 2 1 0

gt nlt-5

gt 1n

[1] 1 2 3 4 5

gt seq_len(n) enako kot zgoraj

[1] 1 2 3 4 5

gt nlt-0

gt 1n morda ne ravno tisto kar smo pricakovali

[1] 1 0

gt seq_len(n) vektor dolzine 0 - bistveno bolj varno pri zankah

integer(0)

gt seq(lengthout=n) enako kot prej

integer(0)

Elementom vektorja (in tudi drugih struktur ki jih bomo spoznali kasneje) lahkodamo tudi imena To lahko storimo ko jih ustvarimo ali kasneje s funkcijo namesS to funkcijo jih tudi priklicemo Imena lahko uporabimo namesto indeksov zadostopanje do posameznih elementov

gt alt-13 ustvarimo vektor brez imen (za elemente)

gt a elementi nimajo imen

[1] 1 2 3

gt names(a)lt-c(abc)

gt a cleni imajo sedaj imena ki se izpisejo nad njimi

a b c

1 2 3

gt a[b] izberemo 2 element - b

b

2

gt ce zelimo izbrati vec kot en element moramo uporabiti

gt vektor imen

gt a[c(ac)]

a c

1 3

gt names(a)lt-NULL imena izbrisemo

gt blt-c(1a=1b=23 element=3) imena podamo ob nastanku

gt ce imamo v imenih presledke ali ce se zacnejo s stevilko

gt jih moramo dati v narekovaje sicer ni nujno

gt b

1a b 3 element

1 2 3

gt names(b)[2]lt-bbb spremenimo ime 2 clena

gt b

26 13 Podatkovne strukture

1a bbb 3 element

1 2 3

133 Nominalne in ordinalne spremenljivke

Ceprav bi nominalne spremenljivke lahko predstavili z znakovno spremenljivko (cha-racter) je priporocljivo da za njih uporabljamo tip factor Tak pristop je varnejsi(definiramo lahko kategorije) in ucinkovitejsi Ustvarimo jih s funkcijo factor ozi-roma spremenimo iz znakovnih spremenljivk s funkcijo asfactor

Zelo pomembni argumenti funkcije factor so

levels Vrednosti ki jih spremenljivka lahko zavzame Vrednosti morajo torej bititake kot vrednosti originalne spremenljivke Ce je argument podan se vse vre-dnosti spremenljivke ki niso tu navedene izlocijo Ce je vrednost argumentaordered=TRUE argument poda tudi vrstni red vrednosti Privzeta vrednostso vse vrednosti spremenljivke v takem vrstnem redu kot se prvic pojavijo(kar je zelo pomembno za pravilno uporabo argumenta labels)

labels Imena za posamezne vrednosti Prvo ime je ime vrednosti ki je kot prvapodana v levels drugo ime za vrednost ki je podana kot druga v levels

Uporaba labels brez levels ni priporocljiva Ce pa ze uporabljamolabels brez levels se moramo zavedati kaksna je privzeta vrednost zalevels (glejte zgoraj)

ordered Ta pove ali naj bo faktor rdquourejenrdquo torej ordinalna spremenljivka

Opozorilo

Pravilen tip spremenljivke je pri R-ju zelo pomemben ker se uposteva tudi pristatisticnih modelih Pri linearni regresiji na primer R iz spremenljivke tipafactor (nominalne) samodejno tvori umetne spremenljivke

Nekaj primerov

gt factor(rep(13times=3))

[1] 1 2 3 1 2 3 1 2 3

Levels 1 2 3

gt nominalna spremenljivka z vrednostmi 1 2 in 3

gt factor(rep(13times=3)levels=13 labels=c(abc))

[1] a b c a b c a b c

Levels a b c

gt nominalna spremenljivka z vrednostmi a b in c

gt factor(rep(13times=3)levels=c(abc))

1 poglavje ndash Uvod v R 27

[1] ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt

Levels a b c

gt vse vrednosti so NA - ce je levels specificiran

gt se kot veljavne vrednosti v originalni spremenljivki

gt upostevajo samo vrednosti v levels

gt factor(rep(13times=3)labels=c(abc))

[1] a b c a b c a b c

Levels a b c

gt sicer kot prej z levels a bolj nevarno

gt npr ce bi bila prva vrednost 3 bi a predstavljal 3

gt factor(rep(13times=3)labels=c(abc)levels=c(312))

[1] b c a b c a b c a

Levels a b c

gt ker je podal levels v drugacnem vrstnem redu

gt sedaj a predstavlja 3

gt

gt factor(rep(13times=3)ordered=TRUE)

[1] 1 2 3 1 2 3 1 2 3

Levels 1 lt 2 lt 3

gt ordinalna spremenljivka

gt factor(rep(13times=3)ordered=TRUElevels=c(312))

[1] 1 2 3 1 2 3 1 2 3

Levels 3 lt 1 lt 2

gt drugacen vrstni red kategorij

gt factor(rep(13times=3)ordered=TRUElevels=c(312)

labels=c(cab))

[1] a b c a b c a b c

Levels c lt a lt b

gt drugacen vrstni red kategorij z imeni

gt imena smo nastavili tako da a predstavlja 1

gt f1lt-factor(rep(13times=3)levels=13labels=c(abc))

gt factor(f1ordered=TRUElevels=c(cab))

[1] a b c a b c a b c

Levels c lt a lt b

gt v 2 korakih a morda bolj razumljivo

134 Seznam

Seznam (ang oziroma v R-ju list) je posebna oblika vektorja kjer so elementilahko karkoli (katerikoli elementi se pravi posamezna stevila vektorji matrike po-datkovni okvirji seznami celo funkcije)

28 13 Podatkovne strukture

Ustvarimo jih s funkcijo list ali tako da s funkcijo c skupaj zlepimo sezname Doposameznih elementov dostopamo tako da njihove indekse ali imena navedemo meddvojne oglate oklepaje ndash [[]] Ce navedemo imena ali indekse v enojnih oglatihoklepajih [] potem je rezultat nov seznam z izbranimi elementi (tudi ce izberemosamo enega)

Ce imajo elementi imena lahko do njih dostopamo tudi tako da za imenom seznamanapisemo znak za dolar $ ki mu sledi ime elementa

Na seznamih sta zelo uporabni sestrski funkciji lapply in sapply Obe funkcijiposkusata neko funkcijo (ki jo podamo kot argument) uporabiti na vseh elementihseznama Razlika je v tem da poskusa sapply poenostaviti rezultat (v vektor alimatriko) lapply pa vedno vrne seznam

gt llt-list(a=c(upsabc)b=15c=list(aa=abb=57)d=list)

gt zdruzili smo razlicne elemente - zadnji je funkcija list

gt

gt l[[a]] izberemo 1 element - vektor

[1] ups abc

gt l[[1]] enako

[1] ups abc

gt l[a] naredimo seznam ki ima samo 1 element starega

$a

[1] ups abc

gt l[1] enako

$a

[1] ups abc

gt l[13] izberemo prve 3 elemente

$a

[1] ups abc

$b

[1] 1 2 3 4 5

$c

$c$aa

[1] a

$c$bb

[1] 5 6 7

gt l[[13]] ne deluje - oziroma ima drugacno funkcijo

gt

gt

gt l[[c]][[2]][1]

1 poglavje ndash Uvod v R 29

[1] 5

gt izbrali smo 3 element (c) osnovnega seznama

gt ki pa je tudi seznam

gt v tem seznamu smo izbrali 2 element ki je vektor

gt v vektorju smo izbrali 1 element (stevilko 5)

gt l[[3]][[2]][1] enako

[1] 5

gt l[[3]][[2]] izberemo 2 element v 3 elementu

[1] 5 6 7

gt l[[32]] tokrat deluje in je enako kot zgoraj

[1] 5 6 7

gt mocno odsvetujem

gt

gt l$a ce imamo imena lahko uporabimo tudi ta nacin

[1] ups abc

gt l$c$aa deluje tudi v vec stopnjah

[1] a

gt xlt-l$d(346) ce je element seznama funkcija jo

gt lahko tudi uporabimo

gt x

[[1]]

[1] 3

[[2]]

[1] 4

[[3]]

[1] 6

gt l da se spomnimo kaj je l

$a

[1] ups abc

$b

[1] 1 2 3 4 5

$c

$c$aa

[1] a

$c$bb

[1] 5 6 7

30 13 Podatkovne strukture

$d

function () Primitive(list)

gt lapply(lFUN=length) izracunamo dolzino vseh elementov

$a

[1] 2

$b

[1] 5

$c

[1] 2

$d

[1] 1

gt zdaj smo dobili seznam

gt

gt sapply(lFUN=length) sapply vrne vektor

a b c d

2 5 2 1

gt to je mogoce ker so bili vsi elementi posamezna stevila

gt paziti je treba da je funkcija taka da se jo da

gt uporabiti na vseh elementih

135 Matrika

Matrika je pravzaprav vektor (katerekoli oblike razen seznama) ki ima dve dimenziji(stolpce in vrstice) Do elementov dostopamo tako da v oglatih oklepajih navedemoindekse ali imena celic v obeh dimenzijah (locene z vejicami ndash [ab]) ki jih zelimoizbrati Ce zelimo v kateri dimenziji izbrati vse celice lahko indekseimena za todimenzijo izpustimo (vseeno moramo pisati vejico)

Ustvarimo jo s funkcijo matrix Spodaj je prikazan klic funkcije in v njem tudi vsiargumenti Vrednosti ki so tu pripisane argumentom so privzete vrednosti Vec opomenu argumentov lahko preberemo v pomocimatrix(data = NA nrow = 1 ncol = 1 byrow = FALSE dimnames = NULL)

Matriko lahko ustvarimo tudi tako da vektorje rdquozlepimordquoskupaj kot stolpce (funkcijacbind) ali vrstice (funkcija rbind)

gt matrix dostop do pomoci za razlago argumentov

gt Alt-matrix(data=124nrow=6) ustvarimo matriko s 6 vrsticami

gt in 4 stolpci -gt ker je 24

gt elementov v data

1 poglavje ndash Uvod v R 31

gt

gt A ustvarjena matrika

[1] [2] [3] [4]

[1] 1 7 13 19

[2] 2 8 14 20

[3] 3 9 15 21

[4] 4 10 16 22

[5] 5 11 17 23

[6] 6 12 18 24

gt A[32] izberemo 2 element v 3 vrstici

[1] 9

gt oziroma vse elemente ki so v 3 vrstici in 2 stolpcu

gt

gt A[3] izberemo 3 vrstico

[1] 3 9 15 21

gt A[2] izberemo 2 stolpec

[1] 7 8 9 10 11 12

gt A[13] izberemo prve 3 vrstice

[1] [2] [3] [4]

[1] 1 7 13 19

[2] 2 8 14 20

[3] 3 9 15 21

gt izberemo elemente ki so v 2 ali 3 vrstici in

gt v 1 ali 4 stolpcu

gt A[c(24)c(14)]

[1] [2]

[1] 2 20

[2] 4 22

gt alt-14

gt blt-25

gt Blt-cbind(ab) matrika z dvema stolpcema

gt B

a b

[1] 1 2

[2] 2 3

[3] 3 4

[4] 4 5

gt Clt-rbind(ab) matrika z dvema vrsticama

gt C

[1] [2] [3] [4]

a 1 2 3 4

b 2 3 4 5

32 13 Podatkovne strukture

R vsebuje tudi jezik za matricno racunanje Pri tem sta najpomembnejsa operatorza matricno mnozenje in funkcija solve ki omogoca izracun inverzne matrikeNekaj primerov

gt Alt-matrix(data=124nrow=6)

gt klasicno se operacije pri matriki izvajajo tako kot pri

gt vektorjih torej po elementih

gt A+2

[1] [2] [3] [4]

[1] 3 9 15 21

[2] 4 10 16 22

[3] 5 11 17 23

[4] 6 12 18 24

[5] 7 13 19 25

[6] 8 14 20 26

gt A2

[1] [2] [3] [4]

[1] 05 35 65 95

[2] 10 40 70 100

[3] 15 45 75 105

[4] 20 50 80 110

[5] 25 55 85 115

[6] 30 60 90 120

gt A2

[1] [2] [3] [4]

[1] 2 14 26 38

[2] 4 16 28 40

[3] 6 18 30 42

[4] 8 20 32 44

[5] 10 22 34 46

[6] 12 24 36 48

gt A+A

[1] [2] [3] [4]

[1] 2 14 26 38

[2] 4 16 28 40

[3] 6 18 30 42

[4] 8 20 32 44

[5] 10 22 34 46

[6] 12 24 36 48

gt AA tudi ce je operacija mnozenje

[1] [2] [3] [4]

[1] 1 49 169 361

[2] 4 64 196 400

1 poglavje ndash Uvod v R 33

[3] 9 81 225 441

[4] 16 100 256 484

[5] 25 121 289 529

[6] 36 144 324 576

gt to ni matricno mnozenje

gt

gt A(14)

[1] [2] [3] [4]

[1] 1 21 13 57

[2] 4 32 28 80

[3] 9 9 45 21

[4] 16 20 64 44

[5] 5 33 17 69

[6] 12 48 36 96

gt tako kot pri racunanju z vektorji se krajsi reciklira

gt torej se tolikokrat ponovi da doseze dolzino daljsega

gt

gt t(A) transponiramo matriko - zamenjamo vrstice in stolpce

[1] [2] [3] [4] [5] [6]

[1] 1 2 3 4 5 6

[2] 7 8 9 10 11 12

[3] 13 14 15 16 17 18

[4] 19 20 21 22 23 24

gt dim(A) ugotovimo dimenziji matrike

[1] 6 4

gt dim(t(A)) pri transponirani matriki sta ravno obrnjeni

[1] 4 6

gt A t(A) matricno mnozenje

[1] [2] [3] [4] [5] [6]

[1] 580 620 660 700 740 780

[2] 620 664 708 752 796 840

[3] 660 708 756 804 852 900

[4] 700 752 804 856 908 960

[5] 740 796 852 908 964 1020

[6] 780 840 900 960 1020 1080

gt A (14) matricno mnozenje z vektorjem

[1]

[1] 130

[2] 140

[3] 150

[4] 160

[5] 170

[6] 180

34 13 Podatkovne strukture

gt R samodejno poskrbi da je vektor ustrezen

gt (stolpicni ali vrsticni)

gt bolje je sicer ce za to poskrbimo sami

gt alt-matrix(14ncol=1) stolpicni vektor

gt A a

[1]

[1] 130

[2] 140

[3] 150

[4] 160

[5] 170

[6] 180

gt izracunamo lahko tudi inverz matrike

gt seveda samo kvadratne in take z nenicelno determinanto

gt AA lt- A t(A) naredimo kvadratno matriko

gt det(AA) izracunamo determinanto

[1] 5494284e-59

gt determinanta je prakticno nic zato te matrike ne moremo

gt uporabiti

gt

gt Blt-matrix(c(163737379)ncol=3)

gt naredimo kvadratno matriko katere determinanta ni 0

gt det(B) izracunamo determinanto

[1] -154

gt invBlt-solve(B) izracunamo inverz matrike B

gt shranili smo ga v invB

gt invB izpisemo

[1] [2] [3]

[1] 01428571 2727273e-01 -025974026

[2] 02142857 4205453e-18 -007142857

[3] -02142857 -9090909e-02 025324675

gt B invB dokaz da smo izracunali inverz

[1] [2] [3]

[1] 1000000e+00 8326673e-17 0

[2] -3053113e-16 1000000e+00 0

[3] -1387779e-16 1387779e-16 1

gt rezultat je enotska matrika

gt na diagonali so samo enice drugod povsod nicle

gt nekatere vrednosti niso 0 ampak skoraj 0 zaradi

gt nenatancnosti izracuna -gt nekaterih vrednosti v racunalniku

gt ne moremo predstaviti natancno

gt zapsmall(BinvB)

1 poglavje ndash Uvod v R 35

[1] [2] [3]

[1] 1 0 0

[2] 0 1 0

[3] 0 0 1

gt funkcija zapsmall vrednosti ki so skoraj 0 spremeni v 0

Podobno kot lahko na seznamih uporabljamo funkciji lapply in sapply lahko namatrikah uporabimo funkcijo apply Tej moramo poleg matrike in funkcije podatitudi dimenzijo (vrstice ali stolpce) na kateri zelimo funkcijo uporabiti

gt Alt-matrix(data=124nrow=6)

gt apply(X=AMARGIN=1FUN=sum) vsota po vrsticah

[1] 40 44 48 52 56 60

gt apply(X=AMARGIN=2FUN=sum) vsota po stolpcih

[1] 21 57 93 129

136 Polje ndash Array

Nadgradnja matrike je polje (ang array) Od matrike se razlikuje po tem daima poljubno stevilo dimenzij Za vec poglejte array Tudi na poljih je mogoceuporabiti funkcijo apply

137 Podatkovni okvir ndash Data frame

Podatkovni okvir je podatkovna struktura ki je obicajno najprimernejsa za shra-njevanje podatkovij Ima podobno vlogo in strukturo kot podatkovne datoteke priostalih statisticnih programih na primer SPSS-u V vrsticah so enote v stolpcih paspremenljivke oziroma rdquovektorjirdquo

Podatkovni okvirji imajo tako nekatere lastnosti matrik pa tudi nekatere lastnostiseznamov Po eni strani so podobni matrikam vendar pa lahko pri podatkovnihokvirjih stolpci hranijo razlicne tipe podatkov Se bolj so podobni seznamom sajpravzaprav so seznami kjer so vsi elementi vektorji enake dolzine Se pravi soseznami kjer je vsak element (v statisticnem smislu) neka spremenljivka

Tudi do elementov lahko dostopamo tako kot pri seznamih ali tako kot pri matrikah

Podatkovni okvir ustvarimo s funkcijo dataframe ali tako da vanj preoblikujemomatriko ali seznam (ki mora biti ustrezne oblike) s funkcijo asdataframe

gt ustvarimo nekaj vektorjev

gt generiramo vrednosti slucajno iz normalne porazdelitve

36 13 Podatkovne strukture

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt ustvarimo slucajen vektor z nestevilskimi elementi

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt izberemo vzorec s ponavljanjem velikosti 10

gt podatkilt-dataframe(x1x2x3)

gt podatki

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 c

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 10202235 a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt names(podatki) imena kot pri seznamu

[1] x1 x2 x3

gt dim(podatki) preverimo dimenzije kot pri matriki

[1] 10 3

gt colnames(podatki) preverimo imena stolpcev kot pri matriki

[1] x1 x2 x3

gt dimnames(podatki) kot pri matriki - imena stolpcev in vrstic

[[1]]

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

[[2]]

[1] x1 x2 x3

gt izbiramo stolpce

gt podatki[x1] kot pri matriki (stolpci so 2 dimenzija)

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt podatki$x1 kot pri seznamu

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt podatki[x1]

x1

1 1772191

2 1685902

3 1820382

4 1800462

1 poglavje ndash Uvod v R 37

5 1788490

6 1768851

7 1741618

8 1835689

9 1724907

10 1726332

gt kot pri seznamu - to je se vedno podatkovni okvir

gt

gt podatki[c(x1x3)]

x1 x3

1 1772191 c

2 1685902 c

3 1820382 b

4 1800462 b

5 1788490 b

6 1768851 a

7 1741618 b

8 1835689 c

9 1724907 c

10 1726332 a

gt kot pri seznamu - to je se vedno podatkovni okvir

gt podatki[[x1]] kot pri seznamu - to je zdaj vektor

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt vektor dobimo (eno samo spremenljivko ker smo uporabili

gt dvojne oglate oklepaje)

gt

gt vrstice

gt podatki[13] kot pri matriki (vrstice so 2 dimenzija)

x1 x2 x3

1 1772191 1169315 c

2 1685902 1009201 c

3 1820382 1206257 b

gt elemente

gt podatki[2x1] kot pri matriki

[1] 1685902

gt tako lahko tudi vec naenkrat

gt podatki[24c(x1x3)] kot pri matriki

x1 x3

2 1685902 c

3 1820382 b

4 1800462 b

gt podatki$x1[13] kot pri seznamu - samo v enem stolpcu naenkrat

38 14 Funkcije in programiranje

[1] 1772191 1685902 1820382

gt podatki[[x1]][13] enako na drug nacin

[1] 1772191 1685902 1820382

138 Vaje

Vaja 1

Recimo da imate sledece vrednosti 10 23 43 43 32 12

Izracunajte povprecje varianco in standardni odklon Za izracun vsote lahko upo-rabite funkcijo sum naprednejsih vgrajenih funkcij pa ne uporabljajte (za variancostandardni odklon )

Vaja 2

Recimo da imamo tri spremenljivke ndash y x1 in x2 ki imajo sledece vrednostiy 10 23 43 43 32 12x1 15 23 54 45 42 10x2 210 183 186 164 175 200

Recimo da je y odvisna spremenljivka ter da sta x1 in x2 neodvisni spremenljivkiS pomocjo matricnega racunanja izracunajte vrednosti regresijskih koeficientov na-povedanih vrednosti in vrednosti rezidualov Poskrbite da bodo vsi trije rezultativektorji (rezultat matricnega racunanja je matrika)

Vse tri rezultate shranite v seznam

Namig Matricna formula za izracun regresijskih koeficientov je

β = (XprimeX)minus1Xprimey

Matrika X mora biti sestavljena iz stolpca enic in po enega stolpca za vsako neod-visno spremenljivko Formula za izracun napovedi pa je

yprime = Xβ

14 Funkcije in programiranje

Zaporedje ukazov ki jih pogosto uporabljamo skupaj je smiselno zdruziti skupaj vfunkcijo To omogoca da jih zelo enostavno veckrat uporabimo na razlicnih podat-kih

1 poglavje ndash Uvod v R 39

141 Nekaj koristnih funkcij

Poleg statisticnih funkcij R vsebuje tudi veliko funkcij za manipulacijo s podatkiNavedimo le nekaj najpomembnejsih

sort Uredi enote (v stevilskem vektorju po velikosti)

order Vrne zaporedno stevilko vsake enote ce jih uredimo glede na dolocenvektor Zelo uporabno za rdquosortiranjerdquo podatkovnih okvirjev

naomit Iz podatkovnega okvirja izbrise vse enote (vrstice) kjer nastopajomanjkajoce vrednosti To nam omogoca da pri vseh spremenljivkah uposte-vajo iste enote

attributes Vrne lastnosti (ang rdquoattributesrdquo) nekega objekta

sample Vrne slucajen vzorec izbrane velikosti iz izbranega vektorja ali se-znama Privzeto je vzorcenje brez ponavljanja lahko pa tudi nastavimo vzor-cenje s ponavljanjem Ce zelimo lahko tudi nastavimo verjetnosti za posame-zne elemente

which Vrne indekse (zaporedne stevilke) pri katerih je vrednost izraza TRUE

(nek pogoj je izpolnjen)

Poleg funkcij so pomembni tudi operatorji ki so sicer tudi sami neke vrste funkcija

Operatorji primerjav == (je enako ndash dva enacaja) gt= lt= gt lt =(ni enako)

Operator negacije Uporablja se z logicnimi vrednostmi ndash TRUE spremeniv FALSE in obratno

in Operator vsebovanja Pove ali so elementi 1 vektorja vsebovani v 2elementu

gt x1 lt- podatki$x1

gt x1 prvotna razporeditev

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt sort(x1) vrednosti urejene po velikosti narascajoce

[1] 1685902 1724907 1726332 1741618 1768851 1772191

[7] 1788490 1800462 1820382 1835689

gt sort(x1 decreasing = TRUE) urejene po velikosti padajoce

[1] 1835689 1820382 1800462 1788490 1772191 1768851

[7] 1741618 1726332 1724907 1685902

gt order(x1) zaporedne st v takem vrstnem redu

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

gt da bi bile vrednosti urejene po velikosti

gt x1[order(x1)] enak rezultat kot sort(x1)

40 14 Funkcije in programiranje

[1] 1685902 1724907 1726332 1741618 1768851 1772191

[7] 1788490 1800462 1820382 1835689

gt podatki originalni vrstni red

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 c

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 10202235 a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt podatki[order(podatki$x3)]

x1 x2 x3

6 1768851 10202235 a

10 1726332 11636876 a

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

7 1741618 8816272 b

1 1772191 11693152 c

2 1685902 10092010 c

8 1835689 8434124 c

9 1724907 9802423 c

gt podatki urejeni po velikosti x3 (abc)

gt podatki[order(podatki$x3podatki$x1)]

x1 x2 x3

10 1726332 11636876 a

6 1768851 10202235 a

7 1741618 8816272 b

5 1788490 9900317 b

4 1800462 10295941 b

3 1820382 12062572 b

2 1685902 10092010 c

9 1724907 9802423 c

1 1772191 11693152 c

8 1835689 8434124 c

gt podatki urejeni najprej glede na x3

gt znotraj kategorij x3 pa glede na x1

gt

gt podatkiNAlt-podatki skopiramo podatke

1 poglavje ndash Uvod v R 41

gt dodajmo v podatke manjkajoce vrednosti NA

gt podatkiNA[3x1]lt-NA

gt podatkiNA[6x2]lt-NA

gt podatkiNA[2x3]lt-NA

gt podatkiNA[3x2]lt-NA

gt podatkiNA podatki z manjkajocimi vrednostmi

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 ltNAgt

3 NA NA b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 NA a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt podatkiNAomitlt-naomit(podatkiNA)

gt odstranimo podatke z manjkajocimi enotami

gt podatkiNAomit

x1 x2 x3

1 1772191 11693152 c

4 1800462 10295941 b

5 1788490 9900317 b

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt attributes(podatkiNAomit)$naaction

2 3 6

2 3 6

attr(class)

[1] omit

gt informacija o tem katere vrstice smo odstranili

gt

gt sample(x=1100size=5)

[1] 94 55 41 83 23

gt slucajni vzorec 5 enot iz vektorja 1100 brez ponavljanja

gt sample(x=15size=5) permutacija (ker porabimo vse enote)

[1] 4 3 1 5 2

gt abclt-c(abc)

gt sample(x=abcsize=10replace=TRUE) vzorec s ponavljanjem

[1] c b c b a a b a b c

42 14 Funkcije in programiranje

gt sample(x=abcsize=10replace=TRUE prob=c(060202))

[1] a a b c b a c a c c

gt vzorec s ponavljanjem - razlicne verjetnosti izbora

gt

gt abclt-c(abc)

gt rep(abctimes=3) vektor ponovimo 3-krat

[1] a b c a b c a b c

gt rep(abceach=3) vsak element ponovimo 3-krat

[1] a a a b b b c c c

gt rep(abceach=3times=2)

[1] a a a b b b c c c a a a b b

[15] b c c c

gt vsak element ponovimo 3-krat vektor 2-krat

gt

gt

gt xlt-sample(x=abcsize=10replace=TRUE prob=c(060202))

gt x

[1] b b c a a a c c a a

gt which(x==a) na katerih mestih so a-ji

[1] 4 5 6 9 10

gt x[which(x==a)]

[1] a a a a a

gt x in c(bc)

[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

[10] FALSE

gt (x==a) enako

[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

[10] FALSE

Poleg zgornjih je treba omeniti se funkcije za generiranje psevdoslucajnih stevil Rvsebuje mnogo funkcij za generiranje slucajnih vrednosti iz razlicnih porazdelitevNaj omenimo samo najpomembnejse

rnorm normalna porazdelitev

runif enakomerna porazdelitev

rbinom binomska porazdelitev

rbeta beta porazdelitev (zelo fleksibilna)

rexp eksponentna porazdelitev

rf F porazdelitev

rt t porazdelitev

r Se kar nekaj drugih porazdelitev Ime funkcije se vedno zacne z rdquorrdquo sledioznaka (ime ali okrajsava) za porazdelitev

1 poglavje ndash Uvod v R 43

Vse zgoraj navedene funkcije kot prvi argument sprejmejo n ki pove koliko stevilzelimo generirati Poleg tega kot dodatne argumente sprejmejo parametre porazde-litve Pozor Porazdelitvene funkcije so lahko definirane drugace kot ste navajeni

Vse zgoraj navedene funkcije imajo tudi rdquosestrerdquo ki se namesto z rdquorrdquo zacnejo z

d funkcija gostote

p (kumulativna) porazdelitvena funkcija

q kvantilna funkcija ndash vrne vrednost ki pripada dolocnem kvantilnem rangu

Pomembna je tudi funkcija setseed kjer lahko nastavimo seme (koristno ce bi sekdaj zeleli generirati enake vrednosti)

Spodaj je nekaj primerov za generiranje slucajnih stevil iz razlicnih porazdelitev

gt setseed(1)

gt rnorm(n=5)

[1] -06264538 01836433 -08356286 15952808 03295078

gt 5 slucajnih stevil iz standardizirane normalne porazdelitve

gt rnorm(n=5 mean=10sd=2) drugacno povprecje in sd

[1] 8359063 10974858 11476649 11151563 9389223

gt rexp(n=10rate=05) 10 stevil iz eksponentne porazdelitve

[1] 0294092 2781470 1524060 2475207 8847868 2109086

[7] 2070488 3752070 1309493 0673867

gt rbeta(n=5 shape1=1shape2=1)

[1] 02057601 02762891 01790537 02170672 04702804

gt kovanec vrzemo 100-krat

gt predvidevamo da je posten (prob=05)

gt kolikokrat pade cifra

gt poskus ponovimo 10-krat

gt rbinom(n=10 size=100 prob=05)

[1] 46 56 50 52 42 44 49 54 39 52

142 Definiranje funkcij

Funkcija je zaporedje ukazov ki se izvrsi na vhodnih parametrih (ce jih funkcijaima) Funkcija lahko kaj vrne ni pa nujno Osnovna sintaksa funkcije jeime_funkcije lt-function(argumenti)

izraz1izraz2izraz3return(nek_objekt)

44 14 Funkcije in programiranje

Izrazi so lahko katerikoli veljavni R izrazi Ukaz return ni nujen Ce ukaza return

ni funkcija vrne rezultat zadnjega izracuna Ce zelimo da funkcija ne vrne nicesar(ce jo uporabljamo zaradi rdquostranskih ucinkovrdquo kot je na primer risanje pisanje vdatoteko ) potem moramo eksplicitno napisati return(NULL) Funkcija se vednozakljuci pri ukazu return (ce ta obstaja) Karkoli za njim se ne izvede

Argumente navedemo tako da navedemo njihova imena Ce jim zelimo pripisati tudiprivzete vrednosti (le-te se uporabijo ce ob klicu ne navedemo drugih) navedemoargumente kot

ime1=privzeta_vrednost1 ime2=privzeta_vrednost2 itd

Poseben argument je tudi argument rdquordquo Ce vsebuje funkcija ta argument sprejmetudi katerikoli argument ki ni eksplicitno naveden v definiciji funkcije uporablja pase predvsem za posredovanje argumentov funkcijam znotraj funkcije

V funkciji seveda lahko uporabimo tudi druge funkcije in tudi funkcijo ki jo pisemoSlednje je lahko zelo mocno orodje a tudi zelo nevarno (nujna je uporaba pogojev)

gt funkcija ki izracuna ploscino kroga

gt plKrogalt-function(r)

Funkcija ima samo en argument in sicer polmer kroga

Zamiki niso potrebni je pa koda tako preglednejsa

pllt-pir^2 pi je vrednost konstante pi

return(pl) Ta vrstica pravzaprav ni nujna

saj funkcija tudi sicer vrne pl

ker je to rezultat zadnjega izracuna

je pa to dobra praksa

gt plKroga(10) poklicemo funkcijo

[1] 3141593

gt rezultat lahko tudi shranimo

gt plR10lt-plKroga(10)

gt plR10

[1] 3141593

143 Programski tok

Pri kateremkoli programu je zelo pomembno usmerjanje programskega toka

V ta namen so v R-ju na voljo sledeci ukazi

if Pogojni stavek Telo stavka se izvrsi ce je pogoj izpolnjen oziroma ce je vrednostpogoja TRUE Ukaz ima oblikoif(pogoj)izraz1 else izraz2

1 poglavje ndash Uvod v R 45

pogoj je nekaj kar ima kot rezultat TRUE ali FALSE Ce je vrednost pogojaTRUE se izvede izraz1 sicer pa izraz2 Pozor R smatra 0 kot FALSE vseostale stevilke pa kot TRUEelse del ni obvezen Ce ga ni se v primeru da je vrednost pogoja FALSE neizvede nic

while Pogojno ponavljanjezanka Telo stavka se ponavlja dokler je pogoj izpol-njen oziroma dokler je vrednost pogoja TRUE Ukaz ima oblikowhile(pogoj)izraz

repeat Neskoncno ponavljanje oziroma neskoncna zanka Telo stavka se ponovidokler znotraj ne naleti na ukaz break (glejte naprej) Ukaz ima oblikorepeatizraz

Opozorilo

Ukaz repeat je zelo nevaren Nujno moramo v izraz zapisati ukaz breaksicer dobimo neskoncno zanko (smrt vsakega programa)

for Ponavljanjezanka preko zaporedja Telo stavka se ponavlja tolikokrat dazanka rdquoobdelardquo vse elemente zaporedja Ukaz ima oblikofor(spremenljivka in zaporedje) izrazizraz se ponavlja dokler spremenljivka ne pride cez vse elemente zaporedjaZanka se torej ponovi tolikokrat kolikor je elementov zaporedjaspremenljivka ima v vsaki ponovitvi drugacno vrednost vrednost naslednjegaelementa iz zaporedjazaporedje je ponavadi nek vektor (lahko tudi seznam) zelo pogosto kar rezultatfunkcije seq oziroma izraza ab

break Prekinitev zanke Ukaz se uporablja le znotraj zank in sprozi takojsnjo pre-kinitev zanke

next Naslednji Ukaz se uporablja le znotraj zank in sprozi zacetek naslednje po-novitve (trenutna ponovitev se na mestu ukaza konca)

Uporaba ukazov break in next je smiselna le znotraj if stavka (ko se ukaza izvedetale pod dolocenim pogojem) saj zanka sicer nima smisla

gt xlt-1

gt if(x==1)print(ok)elseprint(ups)

[1] ok

gt pogoj je bil izpolnjen zato se izpise ok

gt

gt xlt-2

gt if(x==1)print(ok)elseprint(ups)

[1] ups

46 14 Funkcije in programiranje

gt pogoj ni bil izpolnjen zato se izpise ups

gt

gt for(i in 15)

print(i)

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt xlt-1

gt while(xlt=5)

print(x)

xlt-x+1

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt xlt-1

gt repeat

print(x)

xlt-x+1

if(xgt5) break

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt for(i in 15)

if(i2==0) next

print(i)

[1] 1

[1] 3

[1] 5

1 poglavje ndash Uvod v R 47

144 Vaje

Vaja 1

Za probleme iz vaj v prejsnjem podpoglavju (podpoglavje Podatkovne strukturepodpodpoglavje 138 na strani 38) napisite funkcije tako da jih bo moc uporabitina poljubnem stevilu enot Prikazite uporabo

Vaja 2

Z uporabo zank napisite funkcijo za izracun vsote vseh elementov vektorja

Vaja 3

Napisite funkcijo ki izracuna fakulteto poljubnega naravnega stevila Poskusitenapisati funkcijo z zankami in z uporabo rekurzivne funkcije (funkcije v funkciji)

Namig Fakulteto stevila izracunamo po naslednji funkciji

n = n middot (nminus 1) middot (nminus 2) middot middot middot 2 middot 1 =nprodk=1

k = n middot (nminus 1)

Pozor Fakulteta hitro postane zelo veliko stevilo zato funkcije preizkusajte namanjsih stevilih (recimo do 10)

Vaja 4

Napisite funkcijo za izracun mediane

Namig 1 Za ureditev enot po vrsti lahko uporabite funkcijo sort

Namig 2 Za ugotovitev ali je stevilo enot sodo ali liho pride prav operator kivam vrne ostanek pri deljenju

15 Delo z datotekami

Nekaj dela z datotekami (shranjevanje in nalaganje delovnega okolja in zgodovine)smo ze obdelali v podpodpoglavju 125 Tu pa si bomo pogledali predvsem funkcijeza branje in pisanje podatkov

48 15 Delo z datotekami

151 Tekstovne datoteke

Tekstovne datoteke so datoteke ki jih lahko beremo z urejevalniki besedila (naprimer TextPad Notepad Notepad++ ) in ne z urejevalniki dokumentov kotso Microsoft (Office) Word ali OpenOfficeorg Writer Ponavadi so podatki urejenitako da so v stolpcih spremenljivke v vrsticah pa enote Stolpci so loceni z nekimznakom ki je lahko tabulator (t) podpicje () vejica () presledek ( )

Za branje tekstovnih datotek se najpogosteje uporablja funkcija readtable innjene izpeljanke Izpeljanke so identicne originalni funkciji le da imajo drugacneprivzete vrednosti ki so primerne za branje dolocenih formatov tekstovnih dato-tek Predvsem se pogosto uporabljata funkciji (za ostale glejte pomoc za funkcijoreadtable)

readcsv2 Za branje datotek rdquocsvrdquo Na koncu imena je rdquo2rdquo ker je to verzija zadatoteke rdquocsvrdquo ki za locilo uporabljajo podpicje () vejico () pa za decimalnolocilo kot je standard pri nas Obstaja tudi verzija brez koncnice rdquo2rdquo kisledi ameriskemu standardu Take datoteke znajo brati in pisati programi zadelo s preglednicami na primer Excel Tak program je obicajno tudi privzetiprogram za odpiranje takih datotek

readdelim2 Za branje datotek ki so locene z tabulatorjem (t) Na koncu imenaje rdquo2rdquo ker je to verzija za datoteke ki za decimalno locilo uporabljajo vejico() kot je standard pri nas Obstaja tudi verzija brez rdquo2rdquo ki sledi ameri-skemu standardu Tudi take datoteke znajo brati in pisati programi za delo spreglednicami na primer Excel

Funkcija readtable in njene izvedenke kot glavni argument sprejmejo ime datoteke(s potjo ce je potrebno) vrnejo pa podatkovni okvir Imajo se vrsto argumentov skaterimi je mogoce dolocati kako se obravnavajo znakovne spremenljivke kodiranje

Sedaj bomo prebrali tekstovno datoteko rdquoizborESSn30txtrdquo Njenih prvih nekaj vr-stic je videti takole

spol izobrazba kraj placa

1 zenski 12 kmetija 170

2 moski 12 manjse mesto 140

3 moski 11 manjse mesto 130

4 zenski 14 predmestje 150

V 1 vrstici so imena spremenljivk v 1 stolpcu pa rdquoimenardquo vrstic Prva vrstica(imena spremenljivk) se zacne kar s prvo spremenljivko (in ne z imenom stolpca zaimena vrstic) kar funkcija readdelim (obe verziji saj se razlikujeta le v decimal-nem locilu) tudi pricakuje Stolpci so loceni s tabulatorjem ceprav to iz zgornjegazapisa ni vidno v boljsih urejevalnikih besedila pa je mogoce nastaviti da so vidni

1 poglavje ndash Uvod v R 49

Narekovaji okoli nenumericnih spremenljivk sicer niso nujni (kadar so vrednosti locenes tabulatorji) so pa priporocljivi

gt izborlt-readdelim(file=izborESSn30txt)

gt izbor[14] izpisemo samo zgornje vrstice

spol izobrazba kraj placa

1 zenski 12 kmetija 170

2 moski 12 manjse mesto 140

3 moski 11 manjse mesto 130

4 zenski 14 predmestje 150

gt sapply(izborclass) pogledamo tipe spremenljivk

spol izobrazba kraj placa

factor integer factor integer

Ko smo prebrali podatke smo izpisali tipe spremenljivk Nenumericne spremenljivkeso v R-ju postale spremenljivke tipa factor Ce tega ne zelimo ce zelimo daso tipa character lahko to spremenimo z argumentom stringsAsFactors ki ganastavimo na FALSE

Za pisanje tekstovnih datotek se najpogosteje uporablja funkcija writetable innjene izpeljanke (writecsv in writecsv2)

Podatki ki jih zelimo zapisati s funkcijo writetable morajo biti v obliki matrikeali podatkovnega okvirja

Za bolj splosno branje tekstovnih datotek (v obliki tabel) se uporablja funkcija scanza pisanje takih datotek pa funkcija cat Za vec informacij glejte njuno pomoc

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt in se eno nenumericno

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt izberemo vzorec s ponavljanjem velikosti 10

gt podatkilt-dataframe(x1x2x3)

gt writetable(x=podatki file=podatkitxt sep = t

dec = rownames = FALSE)

gt sep = t - locilo stolpcev je tabulator

gt dec = - decimalno locilo je vejica

gt rownames = FALSE - imena vrstic ne shranimo

gt tako datoteko lahko preberemo z readdelim2

50 15 Delo z datotekami

152 Shranjevanje in branje objektov

Za shranjevanje R-jevih objektov je najprimernejsa funkcija save Je zelo podobnafunkciji saveimage ki smo jo spoznali v podpodpoglavju 125 Razlika je le v temda funkcija save shrani le izbrane objekte saveimage pa vse objekte v delovnemokolju

Objekte ki jih shranimo s funkcijo save lahko preberemo s funkcijo load niso paprimerni za branje z drugimi programi ali z urejevalniki besedila Obicajno damodatotekam koncnico RData

gt save(podatki file=podatkiRdata)

gt rm(podatki)

gt ls() objekta podatki ni vec

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] l n plKroga

[19] plR10 podatkiNA podatkiNAomit

[22] x x1 x2

[25] x3

gt load(file=podatkiRdata)

gt podatki so spet na voljo

x1 x2 x3

1 1742265 9081960 b

2 1808787 10511680 a

3 1798966 8305955 c

4 1711787 12149536 b

5 1710475 12970600 b

6 1785521 9449168 a

7 1813797 8433798 a

8 1752136 10854579 b

9 1821678 9797418 b

10 1787867 13602427 a

Drug nacin ki pa ne deluje dobro pri cisto vseh objektih je uporaba funkcije dump zapisanje in source za branje Funkcija dump poskusa predstaviti objekt z besedilomin to besedilo zapisati v tekstovno datoteko Deluje vedno kadar je mogoce objektpredstaviti z besedilom Ta nacin je posebej primeren za shranjevanjenalaganjefunkcij funkcija source pa tudi za nalaganje kode ki smo jo na primer napisali vurejevalniku besedila Obicajno damo datotekam koncnico R

Funkcija dump je uporabna tudi ko zelimo videti predstavitev objekta z besedilom

1 poglavje ndash Uvod v R 51

gt kvadratlt-function(x)x^2

gt ls()

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] kvadrat l n

[19] plKroga plR10 podatki

[22] podatkiNA podatkiNAomit x

[25] x1 x2 x3

gt dump(list=c(podatkikvadrat) file=raznoR)

gt rm(list=c(podatkikvadrat))

gt ls() objektov podatki in kvadrat ni vec

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] l n plKroga

[19] plR10 podatkiNA podatkiNAomit

[22] x x1 x2

[25] x3

gt source(file=raznoR)

gt ls() pa sta nazaj

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] kvadrat l n

[19] plKroga plR10 podatki

[22] podatkiNA podatkiNAomit x

[25] x1 x2 x3

153 Branje in pisanje datotek drugih programov

R vsebuje tudi paketek ( foreign) ki omogoca branje in pisanje datotek drugih sta-tisticnih programov Tako med drugim bere podatke iz formata sledecih programov

bull SPSS

bull Stata

52 15 Delo z datotekami

bull SAS

bull Weka

bull Octave

bull Minitab

Zaradi razsirjenosti SPSS-a v druzboslovju v tem ucbeniku najveckrat uporabljamfunkcijo readspss ki omogoca branje SPSS-ovih datotek obstajajo pa tudi po-dobne funkcije za ostale popularne statisticne programe (glejte zgoraj)

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign)

gt preberemo podatke

gt egolt-readspss(egoomr00_f2savtodataframe=TRUE

usevaluelabels = FALSEusemissings=TRUE)

gt ego[1319] izpisemo prve tri enote in prvih 9 spremenljivk

EGOID Q1A Q2A Q3A Q4A DQ1A DQ2A DQ3A DQ4A

1 1001 5 NA 5 NA 4 NA 4 NA

2 1003 5 6 6 6 5 6 6 6

3 1004 6 3 5 5 6 NA 5 5

Najpomembnejsi argumenti funkcije readspss so

todataframe Ce ga nastavimo na TRUE bo rezultat funkcije podatkovni okvir(kar ponavadi zelimo) sicer pa seznam (privzeta vrednost)

usevaluelabels Ali naj R uposteva opise vrednosti (rdquovalue labelsrdquo) iz SPSS-ove datoteke Ce ga nastavimo na TRUE potem bodo vse spremenljivke kiimajo nastavljene opise vrednosti obravnavane kot faktorji torej kot nomi-nalne spremenljivke Ne glede na vrednost argumenta se opisi vrednosti shra-nijo v rdquoattributerdquo z imenom rdquovalue labelsrdquo Do njih lahko dostopamo prekoukaza attr(xvaluelabels) kjer je x spremenljivka (npr ego$E_SPOL)za katero zelimo prebrati opise Ce smo uporabili usevaluelabels=FALSEje za spremembo spremenljivke v faktor uporabna funkcija makeFactorLabels

iz datoteke rdquoUcbenikR-funkcijeRrdquo

maxvaluelabels Argument je uporaben le kadar je usevaluelabels=TRUEV tem primeru lahko tudi nastavimo koliko razlicnih vrednosti ima lahkospremenljivka (v podatkih) da se se uporabijo opisi ndash da se spremenljivkaobravnava kot nominalna spremenljivka

usemissings Ali naj se upostevajo kode za manjkajoce vrednosti Ce je TRUE sevse SPSS-ove rdquouporabniske manjkajoce vrednostirdquopretvorijo v NA OpozoriloTa pretvorba ne deluje vedno v redu zato je dosti varneje ce uporabniskemanjkajoce vrednosti pretvorimo v sistemske manjkajoce vrednost v SPSS-u

1 poglavje ndash Uvod v R 53

V tem ucbeniku beremo vse podatke iz SPSS-ovega formata Razlog za izbor tegaformata je predvsem v razsirjenosti uporabe tega formata in tudi samega programaSPSS na Fakulteti za druzbene vede Univerze v Ljubljani pa tudi v obstoju odpr-tokodnega programa PSPP (httpwwwgnuorgsoftwarepspp) ki omogocabranje in pisanje podatkov v tem formatu Seveda pa je moc podatke iz ADP pre-nesti tudi v drugih formatih in jih prebrati v R Vecina ukazov v primerih v temucbeniku bo delovala neodvisno od izvornega zapisa vendar pa mora uporabnik vtem primeru sam poskrbeti za dostop do dolgih imen spremenljivk ter imen vredno-sti spremenljivk Funkcija makeFactorLabels denimo ne bo vec delovala Vendarpa njena uporaba v nekaterih primerih niti ni potrebna na primer pri branju izStatinega (dta) formata

V nadaljevanju sledi se primer branja podatkov is Statinega formata (dta) Pre-brali bomo enake podatke kot so uporabljeni v uvodnem primeru oziroma zgornjemprimeru za branje s funkcijo readspss le da smo te podatke iz ADP-ja prenesliv Statinem formatu Tokrat bomo uporabili funkcijo readdta ki je za uporabose preprostejsa saj obicajno zelen rezultat dobimo ze s privzetimi vrednostmi ar-gumentov Tako izpostavimo le argument convertfactors ki nadzoruje ali najse stevilske spremenljivke z opisi vrednosti shranijo kot faktorji Privzeta vrednostTRUE kot faktorje shrani tiste spremenljivke ki imajo definirane opise za vse vre-dnosti Pri vrednost FALSE se nobena spremenljivka ne shrani kot faktor (kot prireadspss pri vrednosti usevaluelabes=FALSE) pri vrednosti NA pa se vse spre-menljivke ki imajo za vsaj kaksno vrednost definiran opis shranijo kot faktorji (kotpri readspss pri vrednosti usevaluelabes=TRUE) Funkcija readdta vrnepodatkovni okvir Dolga imena spremenljivk so shranjena v atributu varlabels

vrnjenega podatkovnega okvirja opisi vrednosti spremenljivk pa v atributu la-

beltable

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign) ni potrebno ker bi moral biti ze nalozen

gt preberemo podatke s privzetimi nastavitvami

gt ki so obicajno primerne

gt egoStatalt-readdta(egoomr00_f2dta)

gt egoStata[1319]

EGOID Q1A Q2A

1 1001 precej zadovoljen-a ltNAgt

2 1003 precej zadovoljen-a zelo zadovoljen-a

3 1004 zelo zadovoljen-a malo nezadovoljen-a

Q3A Q4A

1 precej zadovoljen-a ltNAgt

2 zelo zadovoljen-a zelo zadovoljen-a

3 precej zadovoljen-a precej zadovoljen-a

DQ1A DQ2A DQ3A

54 15 Delo z datotekami

1 malo zadovoljen-a ltNAgt malo zadovoljen-a

2 precej zadovoljen-a zelo zadovoljen-a zelo zadovoljen-a

3 zelo zadovoljen-a ltNAgt precej zadovoljen-a

DQ4A

1 ltNAgt

2 zelo zadovoljen-a

3 precej zadovoljen-a

gt izpisemo prve enote in prvih 9 spremenljivk

gt

gt preberemo ponovno - tokrat brez pretvorbe v faktorje

gt egoStata2lt-readdta(egoomr00_f2dta convertfactors=FALSE)

gt egoStata2[1319]

EGOID Q1A Q2A Q3A Q4A DQ1A DQ2A DQ3A DQ4A

1 1001 5 NA 5 NA 4 NA 4 NA

2 1003 5 6 6 6 5 6 6 6

3 1004 6 3 5 5 6 NA 5 5

gt zopet izpisemo prve tri enote in prvih 9 spremenljivk

gt

gt attributes(egoStata2)$varlabels[13]

[1] ID ega

[2] zadovoljstvo z materialno oporo-1merjenje

[3] zadovoljstvo z informacijsko oporo-1merjenje

gt attributes(egoStata2)$labeltable[13]

$Q1A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

$Q2A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

$Q3A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

1 poglavje ndash Uvod v R 55

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

Za pisanje datotek ki jih zelimo uvoziti v SPSS bi sicer glede na opis funkcije lahkouporabili funkcijo writeforeign z argumentom package = rsquoSPSSrsquo Ta funkcijagenerira dve tekstovni datoteki podatkovno in datoteko s sintakso Vendar paSPSS pri branju zal javi napako Tudi ce bi postopek deloval je lazje zapisatidatoteko v formatu programa Stata s funkcijo writedta saj lahko ta format uvozitudi SPSS

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt podatkilt-dataframe(x1x2x3)

gt library(foreign) ni potrebno ker bi moral biti ze nalozen

gt writedta(dataframe=podatki file=podatkidta)

154 Vaje

Vaja 1

Ustvarite podatkovno datoteko rdquocsvrdquo (recimo v Excel-u) V datoteko vpisite vsaj10 enot in vsaj 4 spremenljivke (vsaj eno numericno in eno nominalno opisno)Datoteko si oglejte tudi z urejevalnikom besedila Datoteko preberite z R-jem

Vaja 2

Poljubne podatke shranite v tekstovno datoteko in jo potem poglejte v urejevalnikubesedila in programu za delo s preglednicami Lahko izberete tudi podatke ki sodostopni v R-ju preko funkcije data (napisite data() za seznam podatkovij)

Vaja 3

Uvozite podatke iz poljubne SPSS-ove datoteke Poskrbite da boste dobili podat-kovni okvir in da bodo uporabniske manjkajoce vrednosti opredeljene kot manjka-joce

56 16 Risanje

Vaja 4

Podatke iz Vaje 2 (ali kaksne druge) izvozite tako da jih boste lahko odprli z SPSS-om Med podatki naj bo vsaj ena spremenljivka tipa factor Podatke odprite zSPSS-om So pri spremenljivki tipa factor (v R-ju) vidni opisi vrednosti v SPSS-u

16 Risanje

R ima zelo dobro podprto grafiko oziroma risanje grafov Za vpogled v to kaj vse jemogoce narisati z R-jem in tudi za ideje kako kaj narediti sta zelo koristni stranirdquoR Graphical Manualrdquo (httpbm2genesnigacjpRGM2 in rdquoR graph galleryrdquohttpaddictedtorfreefrgraphiques

161 Visokonivojske funkcije za risanje

Visokonivojske funkcije za risanje so tiste ki ustvarijo nov graf Kasneje bomospoznali tudi nizkonivojske ki le dodajo elemente na obstojeci graf Locnica medvisoko- in nizko-nivojskimi funkcijami sicer ni ostra saj se nekatere funkcije lahkouporabljajo v obeh vlogah

Osnovna funkcija za risanje v R-ju je plot Delovanje funkcije se razlikuje glede natip objekta ki ji ga posredujemo kot argument Funkcija namrec poskusa pripra-viti graf ki je primeren vhodnemu argumentu Tu ne bomo mogli pregledati vsehmoznosti zato navajam le nekaj primerov

gt uporabimo podatke iz izborESSn30txt

gt izborlt-readdelim(file=izborESSn30txt)

gt sapply(izborclass) ponovimo kaksne tipe podatkov imamo

spol izobrazba kraj placa

factor integer factor integer

gt plot(izbor$placa)

gt na y osi je placa na x pa indeksi (zaporedne stevilke enot)

gt plot(izbor$placatype=o)

gt plot(izbor$spol) strukturni stolpci ker je spol nominalka

gt plot(placa~spoldata=izbor) skatlasti grafikon (z zavihki)

gt plot(spol~placadata=izbor) porazdelitev po razredih

gt plot(kraj~spoldata=izbor)

gt plot(placa~izobrazbadata=izbor)

gt pod data navedemo podatkovni okvir kjer se nahajajo sprem

gt razsevni grafikon - odvisnost place od izobrazbe

gt plot(placa~izobrazbadata=izbor)

1 poglavje ndash Uvod v R 57

gt plot(izbor) razsevni grafikon za vsak par spremenljivk

gt lmFitlt-lm(placa~izobrazba data=izbor) linearna regresija

gt plot(lmFit)

gt plot(placa~izobrazbadata=izborpch=asnumeric(spol)

col=spol cex=2 main = Razsevni grafion

xlab=Izobrazba v letih ylab = Placa v 1000 sit)

Kot smo videli funkcija plot vedno skusa narisati nekaj primernega tudi takrat kosmo kot argument uporabili rezultat linearne regresije Ta funkcija in vecina funk-cij za risanje sprejme vec argumentov s katerimi lahko prilagajamo risanje (glejtepredvsem daljsi primer na strani 59) Nekaj najpogostejsih

type Tip grafikona Relevantno pri razsevnih grafikonih ndash tocke crta tocke pove-zane s crto

data Iz katerega podatkovnega okvirja (ali seznama) naj uporabi podatke Pred-vsem se uporablja kadar je osnovni argument formula

main Glavni naslov

xlab ylab Ime osi x in y

pch Simbol ki naj se uporablja za risanje tock Lahko ima samo eno vrednost alipa je vrednost vektor ki za vsako tocko poda simbol

col Barva (ponavadi tocke) Podobno kot zgoraj

cex Velikost tocke Podobno kot zgoraj

xlim ylim Meje risanja na osi x in y (se nismo uporabili bomo kasneje)

Obstaja se veliko dodatnih argumentov s katerimi je mogoce po zelji prilagoditiprikaz Za pregled teh argumentov si poglejte pomoc za funkciji plotdefault inpar

Predvsem argumente slednje je treba pogosto nastaviti s klicem funkcije par predklicem izbrane funkcije Tak zelo uporaben argument je na primer argument mfrowoziroma mfcol ki nam omogoca da na eno sliko narisemo vec grafov Primer je nasliki 19 (koda sledi v naslednjem primeru)

Vseeno pa privzeti graf ni vedno tisti ki ga zelimo Poglejmo si se dodatne funkcijeza risanje grafov

hist Histogram

barplot Stoplci Pozor Za klasicne strukturne stolpce mora biti argument tabela(le-to dobimo s funkcijo table)

pie Strukturni krog Enako kot zgoraj

boxplot Skatlasti grafikon (z zavihki)

curve Risanje krivulj

58 16 Risanje

Slika 19 Strutkutna stolpca in krog na eni sliki

moski zenski

05

1015 moski

zenski

gt curve(dnorm(x)xlim=c(-44))

gt standardna normalna porazdelitev

gt

gt hist(izbor$placa) histogram - frekvence

gt hist(izbor$placa freq=FALSE) frekvence - gostota

gt boxplot(izbor$placa) ena skupina

gt boxplot(placa~spol data=izbor) dve skupini

gt par(mfrow=c(21)) spodnja 2 grafa zelimo imeti na eni sliki

gt barplot(table(izbor$spol))

gt pie(table(izbor$spol))

gt par(mfrow=c(11)) povrnemo originalne nastavitve

162 Nizkonivojske funkcije za risanje

Nizkonivojske funkcije za risanje ne ustvarijo novega grafa ampak le dodajo elementena obstojeci graf Nekaj najpomembnejsih

points lines Dodata tocke crte ali tocke povezane s crto

text Doda tekst

mtext Doda tekst na obrobeosi

axis Doda osi

title Doda naslov

legend Doda legendo

1 poglavje ndash Uvod v R 59

expression Uporabljamo ga za vnasanje matematicnih formul ali simbolov na slike5

bquote Uporablja se za vnasanje matematicnih formul ki vkljucujejo izracunanekolicine na slike (podobno kot expression)

Posebej je treba razloziti uporabo expression Vcasih zelimo na sliki izpisati tudimatematicne formule ali znake Le-te lahko uporabimo takorekoc povsod kjer lahkopisemo besedilo (na primer naslovi legende oznake osi oznake na oseh ) V temprimeru namesto besedila dolocenemu argumentu (na primer main text labels kot vrednost podamo expression Slabost tega nacina pa je da ne omogocardquomesanjardquo izracunih kolicin (recimo izracunano vrednost R2 v naslednjem primeru)in matematicnih oznak Nacin pisanja za obe moznosti je opisan v pomoci podgeslom plotmath (za dostop do pomoci torej uporabimo plotmath) je pa precejpodoben LATEX-u Primer slike z veliko dodatnimi elementi je na sliki 110

gt lmFitlt-lm(placa~izobrazba data=izbor) linearna regresija

gt maroldlt-par(mar)

gt par(mar=c(5444)+01)

gt plot(placa~izobrazbadata=izborpch=asnumeric(spol)

col=spol cex=1 main = Razsevni grafikon

xlab=Izobrazba v letih ylab = Placa v 1000 sit)

gt abline(lmFit)

gt axis(side=4 at=(28)2100239641000

labels = (28)2100)

gt mtext(text=Placa v EUR side=4line=25)

gt par(mar=marold) graficne parametre nastavimo nazaj

gt na staro vrednost

gt legend(x=5 y = 400 legend = c(moski zenski)

title=Spolpch=12col=12 xjust=0 yjust=1)

gt text(x=5 y = 300 adj=0labels=

paste(R kvadrat =round(summary(lmFit)$rsquared3)))

gt text(x=5 y = 280 adj=0

labels=expression(paste(R^2 = 0536)))

gt text(x=5 y = 260 adj=0

labels=bquote(R^2 == (round(summary(lmFit)$rsquared3))))

Poleg tega je mogoce veliko visokonivojskih funkcij uporabljati tudi za dodajanje naobstojeci graf (na primer curve hist ) tako da jim dodamo argument add=TRUE

5 Glavni rezultat funkcije je sicer da ustvari R-jev izraz ki pa se ne izvede (oziroma evalviraizracuna)

60 16 Risanje

Slika 110 Slika z veliko dodanimi elementi

5 10 15 20

100

150

200

250

300

350

400

Razsevni grafikon

Izobrazba v letih

Pla

ča v

100

0 si

t

400

600

800

1000

1200

1400

1600

Pla

ča v

EU

R

Spol

moškiženski

R kvadrat = 0536

R2 = 0536

R2 = 0536

gt hist(izbor$placa freq=FALSE) frekvence - gostota

gt curve(dnorm(xmean=mean(izbor$placa) sd=sd(izbor$placa))

add=TRUE) vrisemo normalno krivuljo

163 Shranjevanje slik

Slike narisane z R-jem je zelo enostavno shraniti v vec formatih To je moznostoriti na vec nacinov

1 Preko menija ki se odpre s klikom desnega miskinega gumba kjerkoli na slikiPreko tega menija je mogoce

(a) Shraniti slike v datoteko formata Windows metafile (WMFEMF) aliPostScript (PSEPS)

1 poglavje ndash Uvod v R 61

(b) Kopirati sliko v odlozisce v obliki bitne slike (rdquobitmaprdquo) ali v formatuWindows metafile To lahko potem s rdquoprilepirdquo oziroma rdquopasterdquo prilepite vvecino programov (na primer Word )

2 Preko funkcije savePlot je mogoce shraniti sliko iz trenutno aktivnega grafic-nega okna v enem izmed naslednjih formatov Windows metafile PNG JPEGBMP (Windows bitmap format) TIFF PostScript in PDF Tudi s pomocjote funkcije je mogoce shraniti sliko v odlozisce

3 Tako da rdquorisemordquo neposredno v datoteko oziroma na rdquonapravordquo (device) kipredstavlja datoteko Postopek je sestavljen iz sledecih korakov

(a) Odpremo izbrano napravo Za seznam razlicnih naprav (tipov dato-tek) uporabite ukaz Devices Moznosti in argumenti ki so dovoljenipri klicu funkcij ki odpirajo naprave se razlikujejo glede na vrsto na-pravedatoteke

(b) Risemo na enak nacin kot ce bi risali v odprto okno

(c) Napravo zapremo s funkcijo devoff()

Ta (tretji) nacin omogoca najvecjo fleksibilnost pri dolocanju lastnosti koncneslike (na primer kvalitete pri slikah jpg)

Recimo da zelimo narisati porazdelitve vseh spremenljivk v podatkih izbor vsakona svoj graf Te grafe zelimo shraniti v datoteke tipa png To lahko naredimo sspodnjo kodo

gt plotnumericlt-hist

gt S tem nastavimo histogram za privzeti prikaz numericnih

gt spremenljivk Tako pocetje je NEVARNO ker spreminjamo

gt privzeto obanasanje funkcije plot

gt png(filename = Slikadpngwidth = 1200 height = 1200

res=200) namesto d se bo v ime datoteke zapisala

gt zaporedna stevilka slike

gt nekaj parametrov smo nastavili po svoje

gt for(i in names(izbor)) plot(izbor[[i]]main=ixlab=i)

gt devoff()

pdf

2

gt rm(plotnumeric) Odstranimo nevarno nastavitev

Pojasnila

bull V imenu slike smo uporabili rdquodrdquo To nam omogoca da naredimo vec slik neda bi za vsako posebej klicali funkcij png in devoff Png namrec omogocale eno sliko na datoteko

62 16 Risanje

bull Ker je png nevektorski format sirino in visino podamo v tockah (pikslih)Velikost slike dolocimo z argumentom res kjer dolocimo stevilo tock na incPri vektorskih formatih (na primer pdf) sirino in visino podamo v incih

bull Na zacetku smo uporabili ukaz plotnumericlt-hist S tem smo nastavilihistogram za privzeti prikaz numericnih spremenljivk Tako pocetje je NE-VARNO saj bi nam povzrocalo probleme pri risanju razsevnih grafikonovZato smo na koncu tudi uporabili rm(plotnumeric) Ker ta funkcija prej niobstajala smo s tem povrnili prejsnje stanje

Narisimo se isto v datoteko pdf Ker pdf podpira vec strani lahko vse 4 grafenarisemo v eno datoteko

gt plotnumericlt-hist

gt pdf(file = StiriSlikepdf width = 6 height = 6)

gt nekaj parametrov smo nastavili po svoje

gt for(i in names(izbor)) plot(izbor[[i]]main=ixlab=i)

gt devoff()

pdf

2

gt rm(plotnumeric)

Opomba Pri formatih pdf eps in ps lahko velikost rdquopapirjardquo dolocamo neodvisno odvelikosti slike z argumentom papersize Privzeta vrednost je sicer da je velikostpapirja enaka velikosti slike

164 Vaje

Vaja 1

Narisite histogram za poljubno spremenljivko Vrisite tudi normalno krivuljo Glavninaslov in imena osi nastavite rocno (ne uporabite privzetih) Stolpci naj bodo modrebarve

Namig Normalno krivuljo je veliko lazje vrisati ce pri histogramu risete gostoto inne frekvenc

Vaja 2

Na eno sliko narisite 4 histograme (v 2 vrstici s po 2 stolpcema) za poljubno spre-menljivko Na vsakem histogramu uporabite drugo stevilo razredov

1 poglavje ndash Uvod v R 63

Vaja 3

Narisite razsevni grafikon za poljubni dve intervalni spremenljivki Izberite vsaj enoizmed sledecih moznosti

bull Velikost tocke naj se razlikuje glede na vrednost neke tretje razmernostnespremenljivke

bull Oblika tocke naj se razlikuje glede na vrednost neke nominalne spremenljivke

17 Priprava dokumentov z rezultati iz R-ja

R podpira vec nacinov za pripravo dokumentov z rezultati analiz Najzmogljivejsitemeljijo na konceptu ponovljive znanosti (ang rdquoreproducible researchrdquo) Pri pri-pravi tega ucbenika je uporabljen sistem Sweave (Leisch 2002) (httpwwwstatuni-muenchende~leischSweave) ki je del osnovne R-jeve distribucije Sistemomogoca da v enem dokumentu zdruzimo tekst in R-jevo kodo ter rezultate iz R-ja(izpis tabele grafi ) Osnovni sistem je bil razvit za LATEX preko paketka R2HTML

pa omogoca tudi uporabo HTML-ja Zelo podoben sistem podpira tudi paketekknitr (httpyihuinameknitr) ki ima dodatno prednost da lahko za ure-janje besedila uporablja tudi druge sisteme (ne samo LATEX) na primer HTML inMarkdown Predvsem Markdown je zelo enostaven za uporabo omogoca pa tudiizdelavo koncnega dokumenta v razlicnih formatih (Word PDF ali HTML)

Sweave sistem je mogoce uporabiti tudi preko dokumentov formata rdquoOpen Do-cument Formatrdquo oziroma rdquoODFrdquo ki jih na primer uporabljata OpenOfficeorg inLibre Office To omogoca paketek odfWeave(httpcranr-projectorgwebpackagesodfWeaveindexhtml) Prednost tega je da ne zahteva znanja LATEX-aali HTML-ja

Za uporabnike Microsoft (Office) Worda pa sta najbolj zanimiva paketeka R2wd

in rtf Prednost prvega je da omogoca vstavljanje neposredno v odprt Wordovdokument drugega pa da ne potrebuje dodatnih programov (npr Worda) in nimaz njimi povezanih omejitev sej neposredno ustvari RTF (rich text format) dokumentTako je mogoce neposredno ustvariti porocilo ali pa vanj le izvoziti tabele ki jihpotem lahko zelo enostavno prenesemo v Word

Poglejmo najprej paketek R2wd ki deluje le v povezavi z 32-bitnim Wordom Vprimeru da je namen dodajati rezultate iz R-ja v Word in ne avtomatsko generi-ranje porocil je verjetno najuporabnejsa funkcija wdTable Najbolj problematicnopri izvozu rezultatov v Word je namrec dodajanje tabel saj je osnovni R-jev izpistekstovni kar v porocilih ni videti lepo Ravno funkcija wdTable pa omogoca vsta-vljanje lepo oblikovanih tabel v Word zal pa je precej pocasna Preden pa lahkokarkoli pisemo v dokument ga moramo najprej odpreti s funkcijo wdGet

64 17 Priprava dokumentov z rezultati iz R-ja

S spodnjo kodo bomo v Word nalepili tri tabele

gt library(R2wd)

gt wdGet() odpremo nov ali obstojeci (kot argument podamo ime

gt in po potrebi pot do njega) dokument

gt vmes moramo pocakati da se dokument odpre

gt najbolj varno je da prej nimamo odprtega nobenega dokumenta

gt

gt wdTable(izbor) izvozimo tabelo (podatke) v dokument

gt tabela se pojavi na mestu kjer je kazalnik (oz kurzor)

gt

gt wdTable(table(Kraj=izbor$krajSpol=izbor$spol))

gt kontingencna tabela

gt

gt regKoeflt-summary(lm(placa~izobrazba+spoldata=izbor))$coef

gt regKoeflt-format(asdataframe(regKoef)digits=c(4441)

scien=FALSE) da bo lepsi format

gt wdTable(format(regKoef))

gt izvozimo tabelo regresijskih koeficientov

gt

gt Xlt-matrix(115ncol=3)

gt wdTable(X)

gt tole bi javilo napako

gt tabela ali matrika mora imeti definirana imena stolpcev in

gt vrstic

gt colnames(X)lt-c(abc)

gt rownames(X)lt-15

gt wdTable(X)

gt R2wd-package

gt vec pomoci o paketku

Kot lahko vidite na podlagi pomoci za paketek (R2wd-package) paketek omo-goca generiranje celotnih Wordovih dokumentov av tem ucbeniku je predstavljenle najbolj problematicen del Za vstavljanje slik sicer lahko uporabimo funkcijo wd-

Plot lahko pa tudi sliko iz R-ja enostavno skopiramo v odlozisce ali shranimo vdatoteko (glejte podpodpoglavje 163) in od tam prilepimo v Word

Poglejmo sedaj se uporabo paketka rtf Tudi tu je najbolj kljucna funkcija za iz-voz tabel funkcija addTable predstavljena pa je se uporaba funkcij addHeader zaustvarjanje naslovov in addText za vstavljanje navadnega besedila Pred obliko-vanjem dokumenta ga moramo najprej ustvariti s funkcijo RTF (ki kot argumentsprejme ime datoteke) in na koncu zapreti s funkcijo done

1 poglavje ndash Uvod v R 65

gt library(rtf)

gt rtfDoclt-RTF(testrtf) kreiramo novo datoteko in shranimo

gt dobljeni objekt

gt

gt dodamo naslov in podnaslov

gt addHeader(rtfDoctitle=Testsubtitle=Osnovni podatki)

gt addTable(rtfDocizbor)

gt addText(rtfDocTole so osnovni podatkin) dodamo tekst

gt addHeader(rtfDoctitle=NULLsubtitle=Kontingencna tabela)

gt addTable(rtfDoctable(Kraj=izbor$krajSpol=izbor$spol))

gt kontingencna tabela

gt

gt

gt regKoeflt-summary(lm(placa~izobrazba+spoldata=izbor))$coef

gt regKoeflt-format(asdataframe(regKoef)digits=c(4441)

scien=FALSE) da bo lepsi format

gt addHeader(rtfDoctitle=NULLsubtitle=Regresijski koeficienti)

gt addTable(rtfDocformat(regKoef))

gt izvozimo tabelo regresijskih koeficientov

gt

gt

gt Xlt-matrix(115ncol=3)

gt addHeader(rtfDoctitle=NULL

subtitle=Matrika brez imen stolpcev in vrstic)

gt dodajo se privzeta imena stolpcev

gt addTable(rtfDocX)

gt addText(rtfDocDodana so bila privzeta imena stolpcevn)

gt dodamo tekst

gt

gt colnames(X)lt-c(abc)

gt rownames(X)lt-15

gt addHeader(rtfDoctitle=NULL

subtitle=Matrika z imeni stolpcev in vrstic)

gt addTable(rtfDocX rownames=TRUE)

gt ce zelimo izpisati imena vrstic

gt done(rtfDoc) zapremo datoteko

gt rtf-package

gt vec pomoci o paketku

66 18 Resitve vaj

18 Resitve vaj

181 Podatkovne strukture

Vaja 1

gt xlt-c(10 23 43 43 32 12)

gt povXlt-sum(x)length(x)

gt povX

[1] 2716667

gt varXlt-sum((x - povX)^2)length(x)

gt varX

[1] 1778056

gt sdXlt-varX^(12) ali sqrt(varX)

gt sdX

[1] 1333437

gt reslt-c(povprecje=povXvarianca=varXsd=sdX)

gt res

povprecje varianca sd

2716667 17780556 1333437

Vaja 2

gt ylt-c(10 23 43 43 32 12)

gt x1lt-c(15 23 54 45 42 10)

gt x2lt-c(210 183 186 164 175 200)

gt Xlt-cbind(1x1x2)

gt blt-asvector(solve(t(X) X) t(X) y)

gt b

[1] 52819111 6240474 -0243166

gt names(b)lt-colnames(X)

gt b

x1 x2

52819111 6240474 -0243166

gt yNap lt- asvector(X b)

gt e lt- y - yNap

gt cbind(y=ynapoved=yNaprezidual=e)

y napoved rezidual

[1] 10 1111496 -11149560

[2] 23 2267282 03271824

[3] 43 4128879 17112125

1 poglavje ndash Uvod v R 67

[4] 43 4102201 19779861

[5] 32 3647505 -44750455

[6] 12 1042638 15736205

gt reslt-list(b=b napovedi=yNap rezidual=e)

gt res

$b

x1 x2

52819111 6240474 -0243166

$napovedi

[1] 1111496 2267282 4128879 4102201 3647505 1042638

$rezidual

[1] -11149560 03271824 17112125 19779861 -44750455

[6] 15736205

182 Funkcije in programiranje

Vaja 1

Resitev Vaje 1 iz podpodpoglavja 138 (podpoglavje Podatkovne struk-ture) v obliki funkcije

gt definicija funkcije

gt opisStatlt-function(x)

povXlt-sum(x)length(x)

varXlt-sum((x - povX)^2)length(x)

sdXlt-varX^(12) ali sqrt(varX)

reslt-c(povprecje=povXvarianca=varXsd=sdX)

return(res)

gt xlt-c(10 23 43 43 32 12)

gt opisStat(x)

povprecje varianca sd

2716667 17780556 1333437

Resitev Vaje 2 iz podpodpoglavja 138 (podpoglavje Podatkovne struk-ture) v obliki funkcije

gt regresijalt-function(yX)

Xlt-cbind(1X)

68 18 Resitve vaj

blt-asvector(solve(t(X) X) t(X) y)

names(b)lt-colnames(X)

yNap lt- asvector(X b)

e lt- y - yNap

reslt-list(b=b napovedi=yNap rezidual=e)

return(res)

gt ylt-c(10 23 43 43 32 12)

gt x1lt-c(15 23 54 45 42 10)

gt x2lt-c(210 183 186 164 175 200)

gt Xlt-cbind(x1x2)

gt regresija(yX)

$b

x1 x2

52819111 6240474 -0243166

$napovedi

[1] 1111496 2267282 4128879 4102201 3647505 1042638

$rezidual

[1] -11149560 03271824 17112125 19779861 -44750455

[6] 15736205

Vaja 2

gt vsotalt-function(x)

vsotalt-0

for(i in x)

vsota lt- vsota + i

return(vsota)

gt xlt-c(10 23 43 43 32 12)

gt vsota(x)

[1] 163

gt sum(x) enak rezultat

[1] 163

Vaja 3

1 poglavje ndash Uvod v R 69

gt funkcija s for zanko

gt fakForlt-function(n)

reslt-1

for(i in seq_len(n))

reslt-resi

return(res)

gt funkcija z while zanko

gt fakWhilelt-function(n)

reslt-1

while(ngt1)

reslt-resn

nlt-n-1

return(res)

gt funkcija z rekurzivno funkcijo

gt fakReklt-function(n)

if(nlt=1)

return(1)

else

return(nfakRek(n-1))

gt vse funkcije dajo seveda enak rezultat

gt fakFor(10)

[1] 3628800

gt fakWhile(10)

[1] 3628800

gt fakRek(10)

[1] 3628800

gt factorial(10) tudi R-jeva vgrajena funkcija

[1] 3628800

Vaja 4

gt medlt-function(x)

xlt-sort(x)

nlt-length(x)

if(n 2 ==0)

70 18 Resitve vaj

Slika 111 Resitev vaje 1 (Risanje)

Lep histogram

Moja spremenljivka

Gos

tota

6 8 10 12 14

000

005

010

015

return((x[n2]+x[n2+1])2)

else

return(x[ceiling(n2)])

gt xlt-c(10 23 43 43 32 12)

gt med(x)

[1] 275

183 Risanje

Vaja 1

gt setseed(2010)

gt xlt-rnorm(100mean=10sd=2)

gt hist(xcol=lightbluemain=Lep histogram

xlab=Moja spremenljivkafreq=FALSEylab=Gostota)

gt curve(dnorm(xmean=10sd=2)add=TRUExpd=NA)

Rezultat je prikazan na sliki 111

1 poglavje ndash Uvod v R 71

Vaja 2

gt setseed(2010)

gt xlt-rnorm(1000mean=10sd=2)

gt par(mfrow=c(22))

gt hist(xmain=priblizno 5 razredovfreq=FALSE

ylab=Gostota br=5)

gt hist(xmain=priblizno 10 razredovfreq=FALSE

ylab=Gostotabr=10)

gt hist(xmain=priblizno 30 razredovfreq=FALSE

ylab=Gostotabr=30)

gt hist(xmain=priblizno 50 razredovfreq=FALSE

ylab=Gostotabr=50)

gt par(mfrow=c(11))

Rezultat je prikazan na sliki 112

Vaja 3

gt setseed(2010)

gt xlt- rnorm(100mean=0sd=2)

gt ylt- x^2 +rnorm(100sd=3)

gt zlt-abs(abs(yx)^(14)+rnorm(100sd=05))

gt klt-asnumeric(cut(x+rnorm(100sd=1)breaks=5))

gt plot(y~xpch=kcex=z)

Rezultat je prikazan na sliki 113

19 Viri za poglabljanje znanja

191 Spletni viri

R je odprtokodni program zato je veliko virov na voljo tudi na spletu Tukajnastevamo nekaj najpomembnejsih

R-project Glavna spletna stran za R ki vsebuje veliko uporabnih vsebin pred-vsem pa omogoca tudi prenos programskega paketa RURL httpwww

r-projectorg

R-project ndash rdquouradnirdquo prirocniki Uradni prirocniki za R - precej tehnicno inosnovno URL httpcranr-projectorgmanualshtml

72 19 Viri za poglabljanje znanja

Slika 112 Resitev vaje 2 (Risanje)

približno 5 razredov

x

Gostota

5 10 15

000

005

010

015

približno 10 razredov

x

Gostota

4 6 8 10 12 14 16000

005

010

015

približno 30 razredov

x

Gostota

4 6 8 10 12 14 16

000

005

010

015

020

približno 50 razredov

x

Gostota

4 6 8 10 12 14 16

000

005

010

015

020

R-project ndash ostali prirocniki Poleg uradnih prirocnikov je na voljo tudi mnogodrugih prirocnikov in podobnega gradiva ki so ga prispevali uporabniki R-jaURL httpcranr-projectorgother-docshtml

Rseek Spletni iskalnik po vsebinah povezanih z R-jem vkljucno s seznami zaelektronsko posto za pomoc uporabnikom URL httpwwwrseekorg

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

R Graph Gallery Galerija grafov narejenih z R-jem vkljucno z uporabljeno kodoURL httpaddictedtorfreefrgraphiques

1 poglavje ndash Uvod v R 73

Slika 113 Resitev vaje 3 (Risanje)

-4 -2 0 2 4

-50

510

1520

x

y

RStudio Integrirano razvojno okolje za R Zdruzuje urejevalnik besedila z oznace-vanjem in samodokoncanjem R-jeve kode konzolo pomoc okno za graficneprikaze in se veliko vec URL httprstudioorg

Spletna stran prof dr Andreja Blejca o R-ju Vsebuje veliko koristnih vse-bin povezanih z R-jem vkljucno s prirocnikom Introduction to R URL httpablejecnibsiR

192 Knjizni viri

Splosne knjige o R-ju

Knjige v tem poglavju so splosni prirocniki za programski paket R Pokrivajo vsaali vecino podpoglavij tega poglavja vecinoma pa tudi podrocja iz ostalih dvehpoglavjih

74 19 Viri za poglabljanje znanja

bull Zuur Alain F Elena N Ieno in Erik HWG Meesters 2009 A BeginnerrsquosGuide to R New York Springer6

Zelo nezahtevna samo osnove R-ja (skoraj) brez statistike

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer7

Se posebej primerna za tiste ki ze poznajo SPSS ali SAS

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC8

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer9

Knjige o programiranju

bull Matloff Norman 2011 The Art of R Programming A Tour of StatisticalSoftware Design San Francisco No Starch PressManj zahtevna

bull Venables William N in Brian D Ripley 2000 S programming New YorkSpringerBolj zahtevna

Knjige o risanju

Prakticno vse splosne knjige o R-ju vsebujejo tudi poglavje o risanju ki ponavadizadostuje za osnovne grafe Spodaj nasteti knjigi pa bolj poglobljeno predstavljatarazlicne sisteme za risanje v R-ju (prva) ali se posebej podrobno dolocen nacinrisanja (druga)

bull Murrell Paul 2011 R graphics Boca Raton CRC PressRazlicni sistemi za risanje

bull Wickham Hadley 2009 ggplot2 Elegant Graphics for Data Analysis Do-rdrecht New York Springer URL httppubliceblibcomEBLPublic

PublicViewdoptiID=51146810

Sistem za risanje ki temelji na Wilsonovi (2005) graficni slovnici

6 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani7 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani8 Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf9 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani10Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani

1 poglavje ndash Uvod v R 75

Priprava dokumentovporocil

bull Xie Yihui 2013 Dynamic report generation with r and knitr Boca RatonChapman amp Hall Crc

bull Gandrud Christopher 2013 Reproducible research with R and RStudio BocaRaton Chapman amp HallCRC

110 Vprasanja za ponavljanje

1 R je vektorski jezik Kaj to pomeni

2 Katera podatkovna struktura v R-ju je najprimernejsa za shranjevanje podat-kovij ndash podatkov o vec spremenljivkah na vec enotah

3 Kako v R-ju priklicemo pomoc za neko funkcijo in kako iscemo po pomoci

4 Kateri izmed sledecih znakov so dovoljeni v imenih objektov v R-ju |- +

5 Na kaksen nacin v R-ju predstavimo nominalne spremenljivke

6 Ali R omogoca matricno racunanje

7 Kako R razsirimo z dodatnimi funkcijami

8 Katere vrste zank poznamo v R-ju in v cem se razlikujejo

9 Ali lahko z R-jem beremo podatkovne datoteke iz ostalih popularnih statistic-nih paketov (SPSS Stata ) Ce da kateri paketek potrebujemo za to

10 Katere funkcije lahko uporabimo za branje in pisanje tekstovnih podatkovnihdatotek

11 Od cesa je odvisno kaksne vrste graf narise funkcija plot

12 Kaksna je razlika med visokonivojskimi in nizkonivojskimi funkcijami za risa-nje

13 Kaj pomeni notacija y x in zakaj se uporablja v funkcijah za risanje

14 Kaksen graf narise funkcija plot ce kot argument podamo nominalno spre-menljivko in kaksen ce kot argumenta podamo dve intervalni spremenljivki

15 Na kaksne nacine lahko shranjujemo slike

16 Kako za neko funkcijo poiscemo njene argumente

17 V katerih formatih (vrstah datotek) lahko izdelujemo porocila z R-jem

77

2 poglavje

Univariatna in bivariatna statistika

Drugo poglavje obravnava kar veliko univariatnih in bivariatnih statisticnih metodtako s podrocja osnovne opisne statistike kot tudi inferencne statistike Na zacetkupoglavja so najprej predstavljeni podatki ki jih uporabljamo v tem poglavju skupajz navodili za njihovo pridobitev iz Arhiva druzboslovnih podatkov in branje z R-jem Sledi predstavitev osnovnih opisnih statistik predvsem mer srednjih vrednostiin variabilnosti ter mer za obliko porazdelitve (asimetrija sploscenost) Od tu naprejucbenik obravnava tudi metode inferencne statistike najprej pri pregledu metod zapreverjanje domnev o srednjih vrednostih (o eni srednji vrednosti in o razliki medsrednjimi vrednostmi za neodvisne in odvisne vzorce) in racunanje ustreznih inter-valov zaupanja kjer poleg parametricnih metod obravnavamo tudi neparametricneTo je tudi skoraj edini del ucbenika kjer tudi teoreticno predstavimo obravnavanemetode Sledi preverjanje domnev o delezih ter racunanje ustreznih intervalov zau-panja Na koncu poglavja obravnavamo se metode za merjenje o povezanosti dvehspremenljivk glede na merske lestvice spremenljivk ter za preverjanje domnev o po-vezanosti

21 Uporabljeni podatki

Za prikaz predstavljenih metod bomo uporabili podatke iz Evropske druzboslovneraziskave (httpwwweuropeansocialsurveyorg) za Slovenijo za leto 2004Uporabljena datoteka je bila pridobljena iz Arhiva druzboslovnih podatkov (Tosin drugi 2004) Opis raziskave in povezave do datoteke so dostopni na tem spletnemnaslovu httpwwwadpfdvuni-ljsiopisisjm042

Iz Arhiva druzboslovnih podatkov sem prenesel podatke v SPSS-formatu (rdquosavrdquo)Najprej preberemo podatke iz SPSS-ove datoteke ter uvozimo funkcije iz datotekerdquoUcbenikR-funkcijeRrdquo

78 22 Osnovne statistike

gt nalozimo podatke

gt library(foreign)

gt datalt-readspss(file=sjm042_f1sav

todataframe = TRUE usevaluelabels = TRUE

maxvaluelabels=5 usemissings=TRUE)

gt nalozimo tudi dodatne funkcije

gt source(UcbenikR-funkcijeR)

Nato preverimo stevilo enot in spremenljivk ter katere spremenljivke so v podatkih zuporabo funkcije names Dolga imena spremenljivk iz SPSS-a (labels) so shranjenav atributu variablelabels

gt dim(data) stevilo enot in spremenljivk

gt names(data)

gt attributes(data)$variablelabels

Zaradi dolzine izpisa ga tu ne navajamo

22 Osnovne statistike

R ze v osnovni razlicici (brez dodatnih paketkov) vsebuje funkcije za prakticno vseosnovne statistike Navedimo nekaj najosnovnejsih

mean aritmeticna sredina

median mediana

sd in var standardni odklon in varianca (vzorcna ndash (n - 1) v imenovalcu)

min in max minimum in maksimum

range razpon (vrne minimum in maksimum kot vektor)

quantile kvantili

Vse zgoraj nastete funkcije kot argument sprejmejo vektor (spremenljivko) V pri-vzeti obliki ne dovoljujejo manjkajocih vrednosti (NA) saj v tem primeru tudi vrnejoNA Vendar pa je mogoce nastaviti da manjkajoce vrednosti ignorirajo s parametromnarm=TRUE

Recimo da nas se posebej zanima spremenljivka G91 ndash Bruto placa Tako bomo nanjej izracunali osnovne statistike

gt G91 - bruto placa

gt izracunajmo osnovne statistike zanjo

gt sum(isna(data$G91))

2 poglavje ndash Univariatna in bivariatna statistika 79

[1] 325

gt prestejemo stevilo enot z veljavnimi vrednostmi pri G91

gt imamo jih samo 325

gt

gt hist(data$G91)narisemo histogram

gt pri vseh sledecih funkcijah dodamo argument narm=TRUE

gt brez njega bi zaradi manjkajocih vrednosti dobili

gt rezultat NA

gt range(data$G91 narm=TRUE) preverimo razpon

[1] 53 760

gt mean(data$G91 narm=TRUE) aritmeticna sredina

[1] 2257108

gt sd(data$G91 narm=TRUE) standardni odklon

[1] 120953

gt median(data$G91 narm=TRUE) mediana

[1] 200

gt quantile(data$G91 probs=c(02505075) narm=TRUE)

25 50 75

140 200 280

gt izracunamo kvartile

Zelo koristna je tudi funkcija summary ki izracuna povzetek ki je primeren gledena tip objektaspremenljivke Funkcija se lahko uporabi na razlicnih podatkovnihstrukturah (tudi na primer na celotnem podatkovnem okvirju)

Funkcija summary sicer naredi kar dober povzetek vendar pa pri stevilskih spre-menljivkah pogresam vsaj izracun standardnega odklona Lahko bi sicer naredilisvojo funkcijo lahko pa uporabimo funkcijo describe iz paketka psych ki polegtega izracuna tudi mere asimetrije in sploscenosti Tudi funkcijo describe lahkouporabimo le na eni spremenljivki ali na celotnem podatkovnem okvirju Je pa tafunkcija primerna le za intervalne in razmernostne spremenljivke Izracun naredisicer tudi za ostale a ni smiseln in zato jih v rezultatih oznaci z rdquordquo

V paketku psych najdemo tudi funkciji za koeficient asimetrije skew in splosce-nosti kurtosi in se veliko drugih uporabnih funkcij (ki se uporabljajo predvsem vpsihologiji in druzboslovju)

Poglejmo torej najprej uporabo summary na eni sami spremenljivki

gt povzetek za stevilsko spremenljivko

gt summary(data$G91)

Min 1st Qu Median Mean 3rd Qu Max NAs

530 1400 2000 2257 2800 7600 1117

gt in se za nominalno - spol

gt summary(data$O1F2)

80 22 Osnovne statistike

moski zenski NAs

648 762 32

gt summary uposteva tip podatka

gt

gt uporabili bomo tudi spremenljivko F6

gt ki jo moramo prej spremeniti nazaj v faktor

gt data$F6lt-makeFactorLabels(data$F6)

gt summary(data$F6)

nedokoncana OS dokoncana OS

69 368

2-3 letna poklicna gimnazija

347 434

2-letna visja visoka sola ali fakulteta

72 138

magisterij doktorat NAs

11 3

Funkcijo summary lahko uporabimo tudi na vec spremenljivkah ali celo na celotnempodatkovju (podatkovnem okvirju) a jo bomo tu zaradi varcevanja s prostoromuporabili le na nekaj izbranih spremenljivkah

gt izbraneSpremlt-c(O1F3O1F2F5F6F7G91G92)

gt izbor shranimo ker ga bomo uporabljal veckrat

gt da se lazje spomnimo kaj merijo

gt attributes(data)$variablelabels[izbraneSprem]

O1F3

leto rojstva

O1F2

spol

F5

Kje zivite

F6

izobrazba

F7

leta solanja

G91

Koliksna je obicajno vasa bruto placa

G92

Koliksna je obicajno vasa neto placa

gt summary(data[izbraneSprem])

O1F3 O1F2 F5

Min 1909 moski 648 veliko mesto132

1st Qu1944 zenski762 predmestje 204

2 poglavje ndash Univariatna in bivariatna statistika 81

Median 1960 NAs 32 manjse mesto326

Mean 1959 vas 626

3rd Qu1975 kmetija 148

Max 1989 NAs 6

NAs 16

F6 F7

gimnazija 434 Min 100

dokoncana OS 368 1st Qu 800

2-3 letna poklicna 347 Median 1100

visoka sola ali fakulteta138 Mean 1127

2-letna visja 72 3rd Qu1300

(Other) 80 Max 2300

NAs 3 NAs 11

G91 G92

Min 530 Min 70

1st Qu1400 1st Qu 725

Median 2000 Median 1200

Mean 2257 Mean 1248

3rd Qu2800 3rd Qu1700

Max 7600 Max 6000

NAs 1117 NAs 1046

Je s temi podatki kaj narobe

Minimum za spremenljivko G92 je rdquo7rdquo To mora biti napaka saj nihce ne moreimeti bruto place samo 7000 sit Verjetno gre za napako pri vnosu rdquo7rdquo je pogo-sta koda za manjkajoco vrednost pri tej spremenljivki pa bi se morala uporabljatikoda rdquo7777777rdquo Preglejmo ali je takih vrednosti vec Recimo tako da izpisemofrekvencno tabelo za to spremenljivko Nato popravimo podatke tako da vrednostiki niso mogoce (se posebej ce predvidevamo da gre za kode manjkajocih vrednosti)spremenimo v NA Nato ponovno izpisemo povzetek in se prepricamo da je sedajvse v redu

gt table(data$G92)

7 8 40 60 70 71 73 75 78 80 82 85 86 87 88

76 13 1 4 4 1 1 5 2 8 2 8 1 1 1

89 90 92 95 100 104 105 107 108 110 112 114 115 117 120

1 11 1 5 19 1 2 1 1 10 1 1 4 2 19

122 125 130 132 135 137 138 140 145 150 153 154 155 160 165

2 3 13 1 1 1 1 12 1 26 1 1 1 12 2

170 180 185 186 190 191 200 205 210 215 220 230 232 240 250

13 8 2 1 4 1 19 1 5 2 6 6 1 2 11

260 270 280 300 320 336 360 370 380 400 480 600

2 6 2 10 1 1 1 1 1 2 1 1

82 22 Osnovne statistike

gt data$G92[data$G92 in c(78)]lt-NA

gt vrednosti 7 in 8 spremenimo v NA

gt summary(data$G92)

Min 1st Qu Median Mean 3rd Qu Max NAs

400 1045 1500 1589 2000 6000 1135

Opozorilo

Kot kaze zgornji primer moramo vedno pred analizo opraviti osnovni pregledpodatkov da ugotovimo ali so v njih prisotne kaksne napake

Za racunanje opisnih statistik za stevilske spremenljivke pa je kot receno bolj pri-merna funkcija describe iz paketka psych Uporabimo se to

gt ce paketek psych ni namescen ga je treba namestiti z

gt installpackages(psych)

gt library(psych)

gt describe(data$G91)

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

range skew kurtosis se

1 707 146 252 671

gt lahko jo izracunamo tudi za vse podatke a tu jo zaradi

gt varcevanja s prostorom le za nekaj izbranih spremenljivk

gt describe(data[izbraneSprem])

vars n mean sd median trimmed mad min

O1F3 1 1426 195864 1896 1960 195917 2372 1909

O1F2 2 1410 154 050 2 155 000 1

F5 3 1436 332 112 4 339 148 1

F6 4 1439 337 134 3 326 148 1

F7 5 1431 1127 341 11 1120 297 1

G91 6 325 22571 12095 200 20885 10378 53

G92 7 307 15893 7413 150 14975 7413 40

max range skew kurtosis se

O1F3 1989 80 -020 -097 050

O1F2 2 1 -016 -198 001

F5 5 4 -060 -048 003

F6 7 6 046 -030 004

F7 23 22 013 026 009

G91 760 707 146 252 671

G92 600 560 165 481 423

gt skew(data$G91)

[1] 1455042

2 poglavje ndash Univariatna in bivariatna statistika 83

gt kurtosi(data$G91)

[1] 2516902

Spremenljivka rdquoBruto placardquo (G91) ima aritmeticno sredino 226 tisoc sit (enote so1000 sit) standardni odklon pa 121 tisoc sit Njena porazdelitev je precej asimetricnav desno in konicasta kar je pri porazdelitvi place sicer pricakovano

Funkciji summary in describe smo ze lahko neposredno uporabili na vec spremen-ljivkah naenkrat Pri funkcijah ki se uporabljajo na vektorjih pa upostevamo dalahko neko funkcijo uporabimo tudi na vec spremenljivkah s pomocjo funkcij applylapply in sapply

gt naredimo nov izbor s samo vsaj intervalnimi spremenljivkami

gt torej s samo intervalnimi in razmernostnimi spremenljivkami

gt izbraneIntSpremlt-c(O1F3F7G91G92)

gt izracunajmo aritmeticno sredino

gt apply(data[izbraneIntSprem]2mean narm=TRUE)

O1F3 F7 G91 G92

195863534 1126625 22571077 15893485

gt sapply(data[izbraneIntSprem]mean narm=TRUE) enako

O1F3 F7 G91 G92

195863534 1126625 22571077 15893485

gt lapply(data[izbraneIntSprem]mean narm=TRUE) drugacen izpis

$O1F3

[1] 1958635

$F7

[1] 1126625

$G91

[1] 2257108

$G92

[1] 1589349

gt standardni odklon

gt sapply(data[izbraneIntSprem]sd narm=TRUE)

O1F3 F7 G91 G92

18961464 3412601 120952965 74128283

gt razpon - funkcija lahko vrne tudi vec vrednosti

gt sapply(data[izbraneIntSprem]range narm=TRUE)

O1F3 F7 G91 G92

[1] 1909 1 53 40

[2] 1989 23 760 600

84 22 Osnovne statistike

gt za vecjo prilagodljivost lahko napisemo svojo funkcijo

gt mojPovzeteklt-function(x)c(

arit sredina = mean(xnarm=TRUE)

std odklon = sd(xnarm=TRUE)

st veljavnih vrednosti = sum(isna(x)))

gt sapply(data[izbraneIntSprem]mojPovzetek)

O1F3 F7 G91

arit sredina 195863534 11266247 2257108

std odklon 1896146 3412601 1209530

st veljavnih vrednosti 142600000 1431000000 3250000

G92

arit sredina 15893485

std odklon 7412828

st veljavnih vrednosti 30700000

Ce zelimo statistike izracunati po skupinah dolocenih z neko drugo spremenljivkoso koristne splosne funkcije kot je denimo aggregate ki omogocajo uporabo funkcijna skupinah Natancna uporaba je razvidna iz primera (in pomoci) Funkcija kotenega od argumentov sprejme funkcijo ki jo uporabi na vsaki skupini

V paketku psych pa obstaja tudi funkcija describeBy ki to omogoca neposredno

gt data$O1F2lt-factor(data$O1F2) odstranimo prazne kategorije

gt glede na eno spremenljivko

gt aggregate(x=data[c(G91G92)] by = list(data$O1F2)

FUN=mean narm=TRUE) rezultat je ena stevilka

Group1 G91 G92

1 moski 2375896 1689868

2 zenski 2099103 1472517

gt aggregate(x=data[c(G91G92)] by = list(data$O1F2)

FUN=mojPovzetek) vec stevilk

Group1 G91arit sredina G91std odklon

1 moski 2375896 1263618

2 zenski 2099103 1127086

G91st veljavnih vrednosti G92arit sredina

1 1730000 16898675

2 1450000 14725170

G92std odklon G92st veljavnih vrednosti

1 8153142 15100000

2 6430224 14700000

gt funkcija aggregate dela le na R 211 in novejsih

gt na starejsih verzijah R-ja javi napako

gt

2 poglavje ndash Univariatna in bivariatna statistika 85

gt glede na dve spremenljivki

gt aggregate(x=data[c(G91G92)]

by = list(data$O1F2 data$F5)

FUN=mean narm=TRUE) rezultat je ena stevilka

Group1 Group2 G91 G92

1 moski veliko mesto 2520000 1887059

2 zenski veliko mesto 2523333 1830000

3 moski predmestje 2311250 1593810

4 zenski predmestje 2092381 1472000

5 moski manjse mesto 2886923 1894186

6 zenski manjse mesto 2101143 1612353

7 moski vas 2270870 1574615

8 zenski vas 2028060 1335000

9 moski kmetija 1888889 1460556

10 zenski kmetija 1880000 1042857

gt aggregate(x=data[c(G91G92)]

by = list(data$O1F2 data$F5)

FUN=mojPovzetek) vec stevilk

Group1 Group2 G91arit sredina G91std odklon

1 moski veliko mesto 25200000 12794650

2 zenski veliko mesto 25233333 14355172

3 moski predmestje 23112500 9543917

4 zenski predmestje 20923810 9989640

5 moski manjse mesto 28869231 14734656

6 zenski manjse mesto 21011429 9263679

7 moski vas 22708696 12535992

8 zenski vas 20280597 12044064

9 moski kmetija 18888889 9864713

10 zenski kmetija 18800000 9854441

G91st veljavnih vrednosti G92arit sredina

1 1400000 18870588

2 1500000 18300000

3 2400000 15938095

4 2100000 14720000

5 3900000 18941860

6 3500000 16123529

7 6900000 15746154

8 6700000 13350000

9 2700000 14605556

10 700000 10428571

G92std odklon G92st veljavnih vrednosti

1 8084148 1700000

2 8344260 1900000

86 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

3 5339052 2100000

4 5679202 2500000

5 7964362 4300000

6 6177675 3400000

7 9427670 5200000

8 5901313 6200000

9 6550929 1800000

10 3413070 700000

Za funkcijo describeBy je koda spodaj izpis pa je zaradi varcevanja s prostoromizpuscen (seveda lahko kodo preizkusite sami)

gt z describeBy

gt glede na eno spremenljivko

gt describeBy(x=data[c(G91G92)]

group = data$O1F2)

gt glede na dve spremenljivki

gt describeBy(x=data[c(G91G92)]

group = list(data$O1F2 data$F5))

23 Preverjanje domnev o srednjih vrednostih in

pripadajoci intervali zaupanja

V tem podpodpoglavju so obravnavane le metode za preverjanje domnev o srednjivrednosti in o razliki dveh srednjih vrednosti (na odvisnih in neodvisnih vzorcih)Metode za preverjanje domnev o vec srednjih vrednostih so obravnavane v podpo-glavju 32 (Analiza variance (ANOVA)) Poleg tega bomo pri parametricnih pristopih(t-testih) omenili tudi pripadajoci interval zaupanja

Poleg parametricnega tukaj obravnavamo tudi neparametricni pristop Nekaj besedo razliki med obema

parametricni testi So rdquomocnejsirdquo11 a imajo obicajno strozje predpostavke

neparametricni testi Imajo manj predpostavk a so rdquosibkejsirdquo Ce predpo-stavke parametricnih testov (priblizno) drzijo izberemo parametricne testesicer neparametricne (ce njihove predpostavke drzijo)

Neparametricne teste pogosteje uporabljamo na manjsih vzorcih saj ima tam krsenjepredpostavk parametricnih testov hujse posledice

11Mocnejsi test je tisti ki pri izbrani stopnji tveganja zazna (statisticno znacilne) razlike pri manjsirazliki med vzorcno statistiko in vrednostjo iz nicelne domneve

2 poglavje ndash Univariatna in bivariatna statistika 87

Opozorilo

Neparametricni testi niso samo rdquorobustnejsa verzijardquo parametricnih ampak pre-verjajo drugacne domneve Za primere za katere tu ne podamo testa aliintervala zaupanja je ponavadi priporocljivo uporabiti metode ponovnega vzor-cenja

V ta namen so uporabne predvsem sledece funkcije

ttest Za vse vrste t-testov

vartest Test enakosti varianc Za preverjanje predpostavk t-testa

flignertest Se en test enakosti varianc Manj obcutljiv na odstopanje odnormalnosti Za preverjanje predpostavk t-testa

leveneTest Se en test enakosti varianc iz paketka car Tudi ta je manj ob-cutljiv na odstopanje od normalnosti Z argumentom center=mean (kar niprivzeta moznost) je to test ki ga uporablja SPSS Za preverjanje predpo-stavk t-testa

wilcoxtest Wilcoxonovi testi za en ali dva vzorca Test za dva neodvisnavzorca je znan tudi kot Mann-Whitneyjev test ali Wilcoxon-Mann-Whitneyjevtest

binomtest Uporaben za izvedbo testa predznaka (ang sign test) ki se upo-rablja kot test mediane

Preverjanje domnev uporabimo ce imamo oblikovano nicelno domnevo ki jo zelimo(obicajno) zavrniti Postopek temelji na tem da preverimo kako verjetno bi biloda bi na vzorcu dane velikosti dobili tako rdquoekstremnordquo vrednost testne statistike kotsmo jo dobili na nasem vzorcu

Intervale zaupanja podamo kadar zelimo podati oceno nekega parametra Ker ocenoracunamo na podlagi vzorca tockovna ocena (skoraj) zagotovo ni pravilna Takozelimo izracunati nek interval za katerega lahko z danim tveganjem (gotovostjo)trdimo da vsebuje populacijski parameter Ce se na primer vzorcne ocene g pa-rametra γ porazdeljujejo normalno s standardnim odklonom SE(g) potem lahkointerval zaupanja pri tveganju α izracunamo kot

P (g minus zα2SE(g) le γ ge g + zα2SE(g)) = 1minus α

Bolj splosno (tudi ce se vzorcne ocene ne porazdeljujejo normalno) vedno velja

P (Fminus1(p = α2 g ) le γ ge Fminus1(p = 1minus α2 g )) = 1minus α

Fminus1 je kvantilna funkcija za porazdelitev vzorcnih ocen g oziroma inverzna funkcijaporazdelitveni funkciji F Tu velja omeniti da R vsebuje kvantilne funkcija zavecino v statistiki uporabljenih porazdelitev Naj omenim samo najpomembnejse

qnorm Normalna porazdelitev

88 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

qt t porazdelitev

qf F porazdelitev

qbinom Binomska porazdelitev

qchisq χ2 porazdelitev

qunif Enakomerna porazdelitev

qexp Eksponentna porazdelitev

q Se kar nekaj drugih porazdelitev Ime funkcije se vedno zacne s rdquoqrdquosledi oznaka (ime ali okrajsava) za porazdelitev

Izracun intervala zaupanja bomo podrobneje prikazali samo za aritmeticno sredinoceprav bi lahko na zelo podoben nacin izracunali tudi intervala za razliko dveh arit-meticnih sredin na neodvisnih in odvisnih vzorcih (razlika je predvsem pri izracunustandardne napake vzorcne ocene

231 Preverjanje domneve o srednji vrednosti in pripada-joci interval zaupanja

Kaj je to srednja vrednost je odvisno od testa Pri parametricnih testih je to pravi-loma aritmeticna sredina drugje pa ni nujno To velja tudi pri problemih in testihki jih obravnavamo v sledecih podpodpoglavjih

T-test za en vzorec verjetno ze dobro poznate tako si poglejmo malce podrobnejele neparametricna testa za preverjanje domneve o srednji vrednosti

Wilcoxonov test oziroma Wilcoxonov test oznacenih rangov

bull Predpostavlja vsaj intervalno mersko lestvico

bull Naceloma predpostavlja simetricno porazdelitev rArr potem se lahko upo-rablja kot test mediane

bull V splosnem to torej ni test mediane in vsekakor ne rdquorobustenrdquotest o vrednosti aritmeticne sredine

bull Pogosto navajajo tudi da testira ali je porazdelitev simetricna glede natestno vrednost

bull Tehnicno gledano preverja ali je vsota rangov negativnih odklonov vecjaod pozitivnih

bull Uporablja se predvsem na majhnih vzorcih ko je porazdelitev simetricnaa ne normalna

Test predznaka Pogosto se uporablja tudi ime test mediane

bull Predpostavlja vsaj ordinalno mersko lestvico Zanima nas samopredznak odklona od testne vrednosti torej katera vrednost je vecja

2 poglavje ndash Univariatna in bivariatna statistika 89

Slika 21 Porazdelitev bruto place

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

020

4060

80

bull Testira domnevo o vrednosti mediane oziroma natancneje domnevoda je stevilo pozitivnih in negativnih odklonov enako

Najprej preverimo domnevo o srednji vrednosti V splosnem naj bo domneva H0Srednja vrednost bruto place je enaka 220 tisoc sit

Poleg tega izracunajmo tudi 90- interval zaupanja za povprecno placo

Porazdelitev bruto place je prikazana na sliki 21

gt najprej si oglejmo porazdelitev

gt hlt-hist(data$G91br=(016)50xlab=Bruto placa v 1000 sit

main=ylab=Frekvenca)

gt curve(dnorm(xmean=mean(data$G91narm=TRUE)

sd=sd(data$G91narm=TRUE))diff(h$breaks)[1]

sum(isna(data$G91)) add=TRUE)

gt describe(data$G91)

90 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

range skew kurtosis se

1 707 146 252 671

Iz slike 21 in opisnih statistik je razvidno da porazdelitev ni niti priblizno nor-malna Sedaj preverimo ali lahko zavrnemo domnevo da je povprecna placa enaka220000 sit prav tako pa izracunajmo tudi 90- interval zaupanja za povprecnobruto placo

gt ttest(data$G91mu=220conflevel = 090)

One Sample t-test

data data$G91

t = 085118 df = 324 p-value = 03953

alternative hypothesis true mean is not equal to 220

90 percent confidence interval

2146434 2367782

sample estimates

mean of x

2257108

Niti pri 10- tveganju ne moremo trditi da je povprecna bruto placa razlicna od220 tisoc sit Z 10- tveganjem lahko trdimo da je povprecna bruto placa med21464 in 23678 tisoc sit

gt interval zaupanja bi lahko izracunali tudi takole

gt nlt- sum(isna(data$G91)) stevilo veljavnih vrednosti

gt alfa lt- 01

gt mean(data$G91narm=TRUE) +

qt(c(alfa21-alfa2)df=n-1)sd(data$G91narm=TRUE)sqrt(n)

[1] 2146434 2367782

Wilcoxonov test se lahko uporablja za preverjanje domneve ali je porazdelitev brutoplace simetricna okoli 220000 sit Vendar pa ta domneva nima ravno smisla saj smovideli da je porazdelitev izrazito nesimetricna Tehnicno gledano preverja domnevoda je vsota rangov negativnih odklonov enaka vsoti rangov pozitivnih odklonov (priracunanju rangov se predznak ne uposteva)

gt wilcoxtest(data$G91mu=220)

Wilcoxon signed rank test with continuity correction

data data$G91

2 poglavje ndash Univariatna in bivariatna statistika 91

V = 21965 p-value = 01245

alternative hypothesis true location is not equal to 220

Tudi z Wilcoxonovim testom nicelne domneve pri 10- tveganju ne moremo za-vrniti Opravimo sedaj se test predznaka oziroma test medianePreverimo torejali je negativnih odklonov vec kot pozitivnih (pri tem odklonov z vrednostjo 0 neupostevamo)

gt nPozlt-sum(data$G91gt220 narm = TRUE)

gt manjkajoce vrednosti ignoriramo

gt nNeglt-sum(data$G91lt220 narm = TRUE)

gt binomtest(x=nPozn=nPoz+nNegp=05)

Exact binomial test

data nPoz and nPoz + nNeg

number of successes = 124 number of trials = 312

p-value = 00003462

alternative hypothesis true probability of success is not equal

to 05

95 percent confidence interval

03427360 04541027

sample estimates

probability of success

03974359

gt median(data$G92narm=TRUE)

[1] 150

Nicelno domnevo da je mediana place enaka 220 lahko zavrnemo pri 003- tve-ganju kar niti ni presenetljivo saj je vrednost mediane 200 binomtest lahkoklicemo tudi takole

gt binomtest(x=c(nPoznNeg)p=05)

232 Preverjanje domneve o razliki med srednjima vrednostmana odvisnih vzorcih in pripadajoci interval zaupanja

Vsi obravnavani testi za odvisne vzorce so enakovredni testom za en vzorec (o vre-dnosti srednje vrednosti) ki se izvedejo na razliki dveh spremenljivk To velja upo-stevati tudi pri interpretaciji rezultatov Pri t-testu to sicer ni problematicno sajvelja da je aritmeticna sredina razlike enaka razliki aritmeticnih sredin Enako pane velja za mediano ndash mediana razlike ni enaka razliki median

92 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

Slika 22 Porazdelitev zaupanja v Drzavni zbor in Evropski parlament

Zaupanje v Državni zbor

Fre

kven

ca

0 2 4 6 8 10

050

150

250

Zaupanje v Evropski parlament

Fre

kven

ca0 2 4 6 8 10

050

150

250

Opozorilo

Test predznaka torej preverja domnevo o vrednosti mediane razlike inne o vrednosti razlike median

Primer domneve je lahko H0 Zaupanje v drzavni zbor je v rdquopovprecjurdquo enakozaupanju v evropski parlament

Poleg tega izracunajmo tudi 90- interval zaupanja za razliko v zaupanju v obaparlamenta

Poglejmo si najprej porazdelitve obeh spremenljivk (slika 22) Kot vemo je kljucnaporazdelitev razlike obeh spremenljivk12 (slika 23) saj so testi za odvisne vzorceenakovredni testom za en vzorec na razliki spremenljivk

gt Pregledamo porazdelitve in opisne statistike

gt originalnih spremenljivk

gt par(mfrow=c(12))

gt hist(data$B4xlab=Zaupanje v Drzavni zbormain=

ylab=Frekvenca)

gt hist(data$B9xlab=Zaupanje v Evropski parlamentmain=

ylab=Frekvenca)

gt par(mfrow=c(11))

gt describe(data[c(B4B9)])

12Razliko izracunamo kot prva spremenljivka ndash druga spremenljivka

2 poglavje ndash Univariatna in bivariatna statistika 93

Slika 23 Porazdelitev razlike med zaupanjem v Drzavni zbor in zaupanjem v Evrop-ski parlament

Razlika v zaupanju (Državni zbor ndash Evropski parlament)

Fre

kven

ca

-10 -5 0 5

010

020

030

040

0

vars n mean sd median trimmed mad min max range

B4 1 1387 413 238 4 410 148 0 10 10

B9 2 1247 453 241 5 457 297 0 10 10

skew kurtosis se

B4 011 -054 006

B9 -009 -070 007

gt razlike

gt hlt-hist(data$B4-data$B9main=ylab=Frekvencabr=-107

xlab=Razlika v zaupanju (Drzavni zbor - Evropski parlament))

gt curve(dnorm(xmean=mean(data$B4-data$B9narm=TRUE)

sd=sd(data$B4-data$B9narm=TRUE))diff(h$breaks)[1]

sum(isna(data$B4-data$B9)) add=TRUE)

gt describe(data$B4-data$B9)

vars n mean sd median trimmed mad min max range

1 1 1231 -041 21 0 -037 148 -10 7 17

94 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

skew kurtosis se

1 -031 182 006

Na slikah 22 in 23 ter zgornjem izpisu vidimo da je porazdelitev obeh spremenljivkpodobna porazdelitev razlike pa sicer priblizno normalna z rahlo asimetrijo v levoin znatno konicavostjo

Sedaj preverimo se (nicelno) domnevo da je povprecno zaupanje v oba parlamentaenako ter izracunajmo 90- interval zaupanja

gt ttest(x=data$B4y=data$B9 paired=TRUE conflevel = 090)

Paired t-test

data data$B4 and data$B9

t = -6883 df = 1230 p-value = 9317e-12

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

-05093517 -03127442

sample estimates

mean of the differences

-04110479

Ugotovimo lahko da je razlika med obema povprecjema statisticno znacilna prizanemarljivem tveganju Z 10- tveganjem lahko trdimo da smo Slovenci leta 2004v povprecju med minus051 in minus031 tocke bolj zaupali Evropskemu parlamentu kotdrzavnemu zboru

Sedaj opravimo se neparametricne teste Pri Wilcoxonovem testu je formalna do-mneva da je vsota rangov negativnih vrednosti enaka vsoti rangov pozitivnih vre-dnosti (pri racunanju rangov se predznak ne uposteva) Pri testu predznakamedianepreverimo ali je negativnih odklonov vec kot pozitivnih (odklonov z vrednostjo 0ne upostevamo)

gt wilcoxtest(x=data$B4y=data$B9 paired=TRUE)

Wilcoxon signed rank test with continuity correction

data data$B4 and data$B9

V = 112990 p-value = 9524e-12

alternative hypothesis true location shift is not equal to 0

gt nPozlt-sum((data$B4-data$B9)gt0 narm = TRUE)

gt manjkajoce vrednosti ignoriramo

gt nNeglt-sum((data$B4-data$B9)lt0 narm = TRUE)

gt binomtest(x=nPozn=nPoz+nNegp=05)

2 poglavje ndash Univariatna in bivariatna statistika 95

Exact binomial test

data nPoz and nPoz + nNeg

number of successes = 308 number of trials = 790

p-value = 6433e-10

alternative hypothesis true probability of success is not equal

to 05

95 percent confidence interval

03556961 04248759

sample estimates

probability of success

03898734

Na podlagi obeh testov lahko ugotovimo da je razlika med povprecjema statisticnoznacilno razlicna od 0 pri zanemarljivem tveganju oziroma da srednji vrednosti nistaenaki

233 Preverjanje domneve o razliki med srednjima vrednostmana neodvisnih vzorcih in pripadajoci interval zaupanja

Edini neparametricni test ki ga bomo obravnavali tu je Mann-Whitneyjev test(oziroma Wilcoxonov test za neodvisna vzorca ali Wilcoxon-Mann-Whitneyjev test)

bull Predpostavlja vsaj ordinalno mersko lestvico

bull Testira ali sta povprecna ranga enaka oziroma ali je verjetnost da imaenota iz 1 skupine vecjo vrednost kot enota iz 2 skupine enaka 05

bull Ce sta obliki porazdelitev v obeh skupinah podobni se lahko uporablja za testenakosti srednjih vrednosti

Primer domneve je lahko H0 rdquoSrednja vrednostrdquo za bruto placo je enaka pri moskihin zenskah

Poleg tega izracunajmo tudi 90- interval zaupanja za razliko v bruto placi moskihin zensk

Poglejmo si najprej opisne statistike in porazdelitvi spremenljivke na obeh vzorcih(slika 24)

gt opisne statistike

gt describeBy(x=data$G91group=data$O1F2mat=TRUE)

item group1 vars n mean sd median trimmed

11 1 moski 1 173 2375896 1263618 200 2184460

12 2 zenski 1 145 2099103 1127086 184 1951026

mad min max range skew kurtosis se

96 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

Slika 24 Porazdelitev bruto place pri moskih in zenskah

Moški

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

010

2030

40

Ženske

Bruto plača v 1000 sit

Fre

kven

ca0 200 400 600 800

010

2030

40

11 889560 61 760 699 1573864 2777364 9607112

12 978516 53 700 647 1263913 1745150 9359942

gt poglejmo porazdelitev

gt par(mfrow=c(12))

gt hist(data$G91[data$O1F2==moski]br=(016)50

xlab=Bruto placa v 1000 sitmain=Moskiylab=Frekvenca)

gt hist(data$G91[data$O1F2==zenski]br=(016)50

xlab=Bruto placa v 1000 sitmain=Zenskeylab=Frekvenca)

gt par(mfrow=c(11))

Predpostavka klasicne razlicice t-testa za neodvisne vzorce je tudi enakost variancZato izvedemo tudi test enakosti varianc a se nanj ni dobro prevec opirati Privelikih vzorcih je namrec precej obcutljiv in zazna razlike v variancah veliko prejkot le-te zacnejo vplivati na veljavnost klasicnega t-testa

gt vartest(G91~O1F2data=data)

F test to compare two variances

data G91 by O1F2

F = 12569 num df = 172 denom df = 144 p-value =

01561

alternative hypothesis true ratio of variances is not equal to 1

95 percent confidence interval

09159805 17172157

sample estimates

2 poglavje ndash Univariatna in bivariatna statistika 97

ratio of variances

1256949

gt flignertest(G91~O1F2data=data)

Fligner-Killeen test of homogeneity of variances

data G91 by O1F2

Fligner-Killeenmed chi-squared = 013014 df = 1

p-value = 07183

gt neobcutljiv na odstopanja od normalnosti

gt library(car)

gt leveneTest(G91~O1F2data=data)

Levenes Test for Homogeneity of Variance (center = median)

Df F value Pr(gtF)

group 1 00538 08167

316

gt neobcutljiv na odstopanja od normalnosti

gt leveneTest(G91~O1F2data=data center=mean)

Levenes Test for Homogeneity of Variance (center = mean)

Df F value Pr(gtF)

group 1 0369 0544

316

gt razlicica kot jo uporablja SPSS

gt malce manj robustna

Glede na to da so vsi testi enakosti varianc pokazali da domneve o enakih variancahne moremo zavrniti lahko (brez zadrzkov kar se tice enakosti varianc) izvedemo t-test s predpostavko enakih varianc Poleg tega bomo izracunali tudi 90- intervalzaupanja za razliko aritmeticnih sredin

gt ttest(G91~O1F2data=datavarequal=TRUE conflevel = 090)

Two Sample t-test

data G91 by O1F2

t = 2043 df = 316 p-value = 004188

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

5328537 50029964

sample estimates

mean in group moski mean in group zenski

2375896 2099103

Pri 5- tveganju so razlike statisticno znacilne torej lahko s takim tveganje trdimoda imajo moski v povprecju visjo placo tudi na populaciji Z 10- tveganjem lahkotrdimo da imajo moski v povprecju od 533 do 5003 tisoc sit visjo placo kot zenske

98 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

Ce ne bi zeleli predpostaviti enakih varianc bi bila koda kot sledi Testa ne bomoopravili ker v tem primeru ni potrebe

gt ttest(G91~O1F2data=datavarequal=FALSE conflevel = 090)

gt ali

gt ttest(G91~O1F2data=data conflevel = 090)

gt argumenta varequal=FALSE ni treba navajati

gt ker je to privzeta vrednost

Sedaj pa opravimo se ustrezen neparametricen test torej Mann-Whitneyjev test

gt wilcoxtest(G91~O1F2data=data)

Wilcoxon rank sum test with continuity correction

data G91 by O1F2

W = 14496 p-value = 00167

alternative hypothesis true location shift is not equal to 0

Tudi tu ugotovimo da so razlike med srednjimi vrednostmi statisticno znacilne pri5- tveganju oz natancneje v tem primeru pri 17- tveganju

24 Preverjanje domnev o delezih in pripadajoci

intervali zaupanja

Domneve o delezih lahko preverjamo na vec nacinov V primeru velikih vzorcevobicajno predpostavljamo da se delezi ali razlike med delezi porazdeljujejo pribli-zno normalno Alternativni nacin za preverjanje domnev o delezih je s pomocjokontingencnih tabel in χ2 porazdelitve vendar je tudi ta le priblizen Za posamezneprobleme bomo obravnavali tudi natancne teste ki pa se od problema do problemarazlikujejo

V praksi se pogosto uporablja tudi pristop pri katerem se deleze obravnava kotpovprecja spremenljivk ki imajo vrednosti 0 in 1 V primeru dovolj velikih vzorcevin neekstremnih delezev (ki niso blizu 0 ali 1) je ta pristop primeren

2 poglavje ndash Univariatna in bivariatna statistika 99

241 Preverjanje domneve o vrednosti deleza in pripadajociinterval zaupanja

Nekih volitev se jih je udelezilo 687 anketirancev Preverili bomo domnevo dase je volitev udelezilo 70 volilnih upravicencev Ker je vzorec velik in delez niekstremen uporaba priblizkov ni problematicna

gt pogledamo frekvencno tabelo odgovorov (vec o tem kasneje)

gt tbllt-table(data$B11)

gt tbl

da ne

940 432

gt izracunamo deleze

gt proptable(tbl)

da ne

06851312 03148688

gt stevilo tistih ki so odgovorili z da ali ne

gt nlt-sum(tbl)

gt n

[1] 1372

gt delez tistih ki so glasovali

gt plt-tbl[1]n

gt p

da

06851312

gt preverjanje domneve s pomocjo klasicnega z-testa

gt H0 pi=piH=070

gt piHlt-070

gt izracun standardne napake

gt sePlt-sqrt(p(1-p)n)

gt izracun z statistike

gt zlt-(p-piH)seP

gt izracunamo p-vrednost (dvostranska)

gt 2pnorm(-abs(z))

da

02357121

Domnevo bi lahko zavrnili sele pri 236- tveganju in je zato ne zavrnemo Torej nemoremo trditi da se volitev ni udelezilo 70 volilnih upravicencev (ampak vec alimanj)

Namesto normalne bi bilo sicer bolje uporabiti t-porazdelitev (ker smo standardnonapako ocenili na vzorcu) a pri tako velikih vzorcih v obeh primerih dobimo enakrezultat

100 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

gt 2pt(-abs(z)df=n-1)

da

02359176

Izracunajmo sedaj se klasicna intervala zaupanja (z uporabo normalne in t poraz-delitve)

gt alfa lt- 01

gt (intZlt-p + qnorm(c(alfa21-alfa2))seP)

[1] 06645058 07057566

gt (intTlt-p + qt(c(alfa21-alfa2)df=n-1)seP)

[1] 06644919 07057705

S 10- tveganjem torej lahko trdimo da se je volitev udelezilo med 066 (066 pri t-porazdelitvi) in 071 volilnih upravicencev

Sedaj bomo preverili domnevo se s χ2-testom in natancnim testom (preko binomskeporazdelitve) Test preko binomske porazdelitve je pravzaprav najnatancnejsi Obefunkciji zraven izracunata tudi interval zaupanja

gt preko hi-kvadrat testa

gt proptest(x=tbl[1]n=np=piH conflevel=1-alfa)

1-sample proportions test with continuity correction

data tbl[1] out of n null probability piH

X-squared = 13745 df = 1 p-value = 0241

alternative hypothesis true p is not equal to 07

90 percent confidence interval

06637884 07057324

sample estimates

p

06851312

gt dobimo tudi interval zaupanja

gt

gt se natancen test

gt binomtest(x=tbl[1]n=np=piH conflevel=1-alfa)

Exact binomial test

data tbl[1] and n

number of successes = 940 number of trials = 1372

p-value = 02273

alternative hypothesis true probability of success is not equal

to 07

2 poglavje ndash Univariatna in bivariatna statistika 101

90 percent confidence interval

06638601 07058132

sample estimates

probability of success

06851312

Rezultatov zaradi podobnosti s prejsnjimi ne bom interpretiral

Za konec naredimo se test preko povprecij torej t-test Tu upostevamo da je pov-precje spremenljivke ki ima vrednosti le 0 in 1 pravzaprav delez enic Ta test jezaradi popolne krsitve predpostavke o normalnosti manj primeren ceprav priblizekpri velikih vzorcih ni slab

gt xlt-data$B11

gt xlt-(x==da)1

gt ttest(xmu=piH conflevel=1-alfa)

One Sample t-test

data x

t = -11853 df = 1371 p-value = 02361

alternative hypothesis true mean is not equal to 07

90 percent confidence interval

06644843 07057780

sample estimates

mean of x

06851312

Kot vidimo so rezultati v tem primeru (zaradi velikega vzorca) res skoraj identicni

242 Preverjanje domnev o razliki med delezema na neod-visnih vzorcih in pripadajoci intervali zaupanja

Tudi tu lahko uporabimo podobne pristope kot pri prejsnjem primeru Preverimodomnevo da je delez volivcev enak pri zenskah in moskih Najprej izracunamokontingencno tabelo (vec o tem v podpodpoglavju 252)

gt izracunamo kontingencno tabelo

gt tbllt-table(data$O1F2data$B11)

gt tbl

da ne

moski 427 188

zenski 492 235

102 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

gt izracunamo deleze

gt proptable(tblmargin=1)

da ne

moski 06943089 03056911

zenski 06767538 03232462

gt stevilo enot

gt nlt-apply(tbl1sum)

gt n

moski zenski

615 727

gt delez tistih ki so glasovali

gt plt-tbl[1]n

gt p

moski zenski

06943089 06767538

Najprej zopet s pomocjo klasicnega z-testa preverimo domnevo

gt H0 piM=piZ

gt izracun standardne napake

gt pSkuplt-sum(tbl[1])sum(n)

gt sePlt-sqrt(sum(pSkup(1-pSkup)n))

gt izracun z statistike

gt zlt-(p[1]-p[2])seP

gt izracunamo p-vrednost (dvostranska)

gt 2pnorm(-abs(z))

moski

04903852

Domnevo o enakosti delezev bi lahko zavrnili sele pri 49- tveganju in je zato nezavrnemo Tako ne moremo trditi da se delez volivcev na populaciji med spolomarazlikuje Sledijo se ostali testi torej χ2-test in test preko povprecij Pri obehdobimo tudi interval zaupanja za razliko delezev

gt preko hi-kvadrat testa

gt proptest(x=tbl conflevel=1-alfa)

2-sample test for equality of proportions with

continuity correction

data tbl

X-squared = 039783 df = 1 p-value = 05282

alternative hypothesis twosided

90 percent confidence interval

2 poglavje ndash Univariatna in bivariatna statistika 103

-002575264 006086296

sample estimates

prop 1 prop 2

06943089 06767538

gt dobimo tudi interval zaupanja

gt

gt preko povprecij

gt xlt-data$B11

gt xlt-(x==da)1

gt spollt-data$O1F2

gt ttest(x~spol varequal=TRUE conflevel=1-alfa)

Two Sample t-test

data x by spol

t = 06893 df = 1340 p-value = 04908

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

-002436485 005947517

sample estimates

mean in group moski mean in group zenski

06943089 06767538

Tu ugotovimo da ne moremo trditi da se delez volivcev na populaciji med spolomarazlikuje Kot receno dobimo tudi intervala zaupanja Ce upostevamo prvega kije zanesljivejsi lahko pri 10- tveganju trdimo da je razlika v delezu volivcev medmoskimi in zenskami med minus002575 in 006086

25 Frekvencne in kontingencne tabele

251 Frekvencne tabele

Frekvencne in kontingencne tabele v R-ju dobimo z ukazom table ki izracunasamo frekvence Za dodajanje vsote (rdquoSkupajrdquo) lahko potem uporabimo funkcijoaddmargins za izracun odstotkov pa proptable

Funkcija table s privzetimi vrednostmi ne uposteva manjkajocih vrednosti Cezelimo imeti v tabeli tudi manjkajoce vrednosti (NA) moramo pri klicu funkcijetable nastaviti exclude=NULL

Malce bogatejso frekvencno tabelo je moc dobiti tudi s funkcijo frekTab ki senahaja v datoteki rdquoUcbenikR-funkcijeRrdquo

Za risanje frekvencnih tabel sta primerni predvsem funkciji barplot in pie

104 25 Frekvencne in kontingencne tabele

Zacnimo s frekvencno tabelo

gt tbllt-table(data$F5)

gt tbl

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija

148

gt addmargins(tbl) a skupaj

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija Sum

148 1436

gt addmargins(proptable(tbl)) + skupaj

veliko mesto predmestje manjse mesto vas

009192201 014206128 022701950 043593315

kmetija Sum

010306407 100000000

gt barplot(tbl)

gt pie(tbl)

Z argumentom exclude=NULL zahtevamo naj se izpisejo tudi manjkajoce vrednosti(oz natancneje naj se iz tabele nicesar ne izpusti)

gt z NA

gt table(data$F5exclude=NULL)

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija ltNAgt

148 6

Se primer malce bogatejse frekvencne tabele s funkcijo frekTab (iz datoteke rdquoUcbenikR-funkcijeRrdquo)

gt s funkcijo frekTab

gt frekTab(data$F5)

Frekvenca Kum frek Kumulativni

veliko mesto 132 132 9192201 9192201

predmestje 204 336 14206128 23398329

manjse mesto 326 662 22701950 46100279

vas 626 1288 43593315 89693593

kmetija 148 1436 10306407 100000000

2 poglavje ndash Univariatna in bivariatna statistika 105

252 Kontingencne tabele

Za kontingecne tabele lahko uporabimo iste funkcije kot za frekvencne tabele Ce ze-limo na primer na podlagi dveh spremenljivk oblikovati osnovno kontingencno tabelouporabimo funkcijo table in ji kot argumente podamo spremenljivke na podlagikaterih zelimo oblikovati tabelo (najprej spremenljivka v vrsticah nato v stolpcih)Ce pri podajanju spremenljivk (argumentov) podamo tudi imena argumentov (nprKraj=data$F5 spodaj) postanejo imena argumentov imena posameznih dimenzijtabele

Najprej izracunajmo kontingencno tabelo za kraj bivanja in spol skupaj z vsotamiVrednosti v tabeli tudi pretvorimo v deleze in zopet dodamo vsote

gt tbl2Dlt-table(Kraj=data$F5Spol=data$O1F2)

gt tbl2D

Spol

Kraj moski zenski

veliko mesto 56 72

predmestje 94 110

manjse mesto 151 160

vas 264 351

kmetija 78 69

gt skupaj z vsotami

gt addmargins(tbl2D)

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

Sum 643 762 1405

gt preracun v skupne deleze

gt proptable(tbl2D)

Spol

Kraj moski zenski

veliko mesto 003985765 005124555

predmestje 006690391 007829181

manjse mesto 010747331 011387900

vas 018790036 024982206

kmetija 005551601 004911032

gt ptbllt-proptable(tbl2D)

gt addmargins(tbl2D)

106 25 Frekvencne in kontingencne tabele

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

Sum 643 762 1405

gt preracun v deleze po stolpcih

gt proptable(tbl2Dmargin=2)

Spol

Kraj moski zenski

veliko mesto 008709176 009448819

predmestje 014618974 014435696

manjse mesto 023483670 020997375

vas 041057543 046062992

kmetija 012130638 009055118

gt addmargins(tbl2Dmargin=2)

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

gt ptbllt-addmargins(proptable(addmargins(tbl2Dmargin=2)

margin=2)margin=1)

gt ptbl

Spol

Kraj moski zenski Sum

veliko mesto 008709176 009448819 009110320

predmestje 014618974 014435696 014519573

manjse mesto 023483670 020997375 022135231

vas 041057543 046062992 043772242

kmetija 012130638 009055118 010462633

Sum 100000000 100000000 100000000

gt v na 2 decimalki

gt round(ptbl1002)

Spol

Kraj moski zenski Sum

veliko mesto 871 945 911

predmestje 1462 1444 1452

manjse mesto 2348 2100 2214

2 poglavje ndash Univariatna in bivariatna statistika 107

vas 4106 4606 4377

kmetija 1213 906 1046

Sum 10000 10000 10000

Za dvodimenzionalne tabele pa lahko za bogatejsi izpis (tipa SPSS) uporabimo tudifunkcijo CrossTable iz paketka gmodels

gt enostavneje s paketkom gmodels

gt installpackages(gmodels)

gt library(gmodels)

gt CrossTable(data$F5data$O1F2)

Cell Contents

|-------------------------|

| N |

| Chi-square contribution |

| N Row Total |

| N Col Total |

| N Table Total |

|-------------------------|

Total Observations in Table 1405

| data$O1F2

data$F5 | moski | zenski | Row Total |

-------------|-----------|-----------|-----------|

veliko mesto | 56 | 72 | 128 |

| 0114 | 0096 | |

| 0438 | 0562 | 0091 |

| 0087 | 0094 | |

| 0040 | 0051 | |

-------------|-----------|-----------|-----------|

predmestje | 94 | 110 | 204 |

| 0004 | 0004 | |

| 0461 | 0539 | 0145 |

| 0146 | 0144 | |

| 0067 | 0078 | |

-------------|-----------|-----------|-----------|

manjse mesto | 151 | 160 | 311 |

| 0528 | 0446 | |

| 0486 | 0514 | 0221 |

| 0235 | 0210 | |

108 25 Frekvencne in kontingencne tabele

| 0107 | 0114 | |

-------------|-----------|-----------|-----------|

vas | 264 | 351 | 615 |

| 1083 | 0914 | |

| 0429 | 0571 | 0438 |

| 0411 | 0461 | |

| 0188 | 0250 | |

-------------|-----------|-----------|-----------|

kmetija | 78 | 69 | 147 |

| 1710 | 1443 | |

| 0531 | 0469 | 0105 |

| 0121 | 0091 | |

| 0056 | 0049 | |

-------------|-----------|-----------|-----------|

Column Total | 643 | 762 | 1405 |

| 0458 | 0542 | |

-------------|-----------|-----------|-----------|

gt zelimo samo po stolpcih + hi-kvadrat test - SPSS format

gt CrossTable(data$F5data$O1F2 propr=FALSE propc=TRUE

propt=FALSE propchisq=FALSE chisq = TRUE format=c(SPSS))

Cell Contents

|-------------------------|

| Count |

| Column Percent |

|-------------------------|

Total Observations in Table 1405

| data$O1F2

data$F5 | moski | zenski | Row Total |

-------------|-----------|-----------|-----------|

veliko mesto | 56 | 72 | 128 |

| 8709 | 9449 | |

-------------|-----------|-----------|-----------|

predmestje | 94 | 110 | 204 |

| 14619 | 14436 | |

-------------|-----------|-----------|-----------|

manjse mesto | 151 | 160 | 311 |

| 23484 | 20997 | |

-------------|-----------|-----------|-----------|

vas | 264 | 351 | 615 |

| 41058 | 46063 | |

-------------|-----------|-----------|-----------|

2 poglavje ndash Univariatna in bivariatna statistika 109

kmetija | 78 | 69 | 147 |

| 12131 | 9055 | |

-------------|-----------|-----------|-----------|

Column Total | 643 | 762 | 1405 |

| 45765 | 54235 | |

-------------|-----------|-----------|-----------|

Statistics for All Table Factors

Pearsons Chi-squared test

------------------------------------------------------------

Chi^2 = 6340168 df = 4 p = 01751438

Minimum expected frequency 5857936

Frekvencne tabele z vec kot dvema dimenzijama lahko ustvarimo na enak nacin kotdvodimenzionalne tabele s funkcijo table a je izpis pogosto zelo nepregleden Zapreglednejsi izpis lahko uporabimo funkcijo ftable ali tabelo pred izpisom pretvo-rimo v podatkovni okvir z asdataframe Kljub temu je izpis zelo dolg in ga zatoizpuscam

gt 3 in vec dimenzionalne tabele

gt tbl3Dlt-table(data$O1F2data$F5data$F6)

gt tbl3D

gt izpis postane zelo nepregleden

gt

gt ftable(tbl3D)

gt asdataframe(tbl3D)

253 Povezanost spremenljivk

S pomocjo kontingencnih tabel in na njih osnovanih mer lahko merimo in preverjamopovezanost med nominalnimi spremenljivkami

Za preverjanje domneve o neodvisnosti med dvema spremenljivkama lahko upora-bimo χ2-test Na voljo je v funkciji chisqtest ki kot argument sprejme vektormatriko ali dvodimenzionalno kontingencno tabelo Kot smo ze videli pa χ2-testvrne (ce tako izberemo) tudi funkcija CrossTable iz paketka gmodels

110 25 Frekvencne in kontingencne tabele

Funkcija chisqtest s privzetimi vrednostmi argumentov pri 2x2 tabelah uporabitudi Yatesov popravek omogoca pa tudi izracun (bolj) natancnih p vrednosti spomocjo simulacij (preko permutacijskega testa)

Statistiki si glede uporabe Yatesovega popravka niso enotni χ2-test ni natancen testampak le priblizek Uporaba Yatesovega popravka lahko v nekaterih primerih tapriblizek izboljsa lahko pa naredi χ2-test tudi prevec konzervativen

Za 2x2 tabele je na voljo tudi Fisherjev natancni test preko funkcije fishertest

Naredimo najprej obicajni χ2-test za povezanost tipa kraja bivanja in spola Prica-kujemo da nicelne domneve ne bomo mogli zavrniti

gt tblF5O1F2lt-table(data$F5data$O1F2)

gt tblF5O1F2

moski zenski

veliko mesto 56 72

predmestje 94 110

manjse mesto 151 160

vas 264 351

kmetija 78 69

gt chisqtest(tblF5O1F2)

Pearsons Chi-squared test

data tblF5O1F2

X-squared = 63402 df = 4 p-value = 01751

Domnevo bi lahko zavrnili sele pri 1751- tveganju in je zato ne zavrnemo

Poglejmo se primer tabele 2x2 kjer bomo preverjali domnevo o povezanosti (nicelnadomneva seveda predpostavlja neodvisnost) spremenljivk spol in rdquoclanstvo v politicnistrankirdquo Ker gre za tabelo 2x2 lahko uporabimo Yatesov popravek Izracunali bomoobe moznosti (s popravkom in brez njega)

gt attributes(data)$variablelabels[B21]

B21

Ali ste clan kaksne politicne stranke

gt data$B21lt-factor(data$B21)

gt (tblGndrBlt-table(data$B21data$O1F2)) 2x2 tabela

moski zenski

da 29 21

ne 618 738

2 poglavje ndash Univariatna in bivariatna statistika 111

gt hi-kvadrat test z Yatesovim popravkom (privzeta moznost)

gt chisqtest(tblGndrB)

Pearsons Chi-squared test with Yates continuity

correction

data tblGndrB

X-squared = 25174 df = 1 p-value = 01126

gt hi-kvadrat test brez Yatesovega popravka

gt chisqtest(tblGndrBcorrect = FALSE)

Pearsons Chi-squared test

data tblGndrB

X-squared = 29967 df = 1 p-value = 008343

Ce uporabimo privzeto moznost ce torej uporabimo Yatesov popravek lahko tuditu ugotovimo da niti pri 10- tveganju ne moremo trditi da sta spremenljivki spolin rdquoclanstvo v politicni strankirdquo povezani

Ce pa tega popravka ne bi uporabili bi pri 10- tveganju ze lahko trdili da staspremenljivki povezani

Ker je χ2-test pravzaprav le priblizek tukaj pa imamo celo dve razlicici pravilnostizracuna preverimo preko simulacij in Fisherjevega natancnega testa

gt chisqtest(tblGndrBsim=TRUE) p-vrednost preko simulacij

Pearsons Chi-squared test with simulated p-value

(based on 2000 replicates)

data tblGndrB

X-squared = 29967 df = NA p-value = 01134

gt fishertest(tblGndrB)

Fishers Exact Test for Count Data

data tblGndrB

p-value = 01112

alternative hypothesis true odds ratio is not equal to 1

95 percent confidence interval

08979363 30744330

sample estimates

odds ratio

1648488

Oba izracuna potrdita pravilnost izracuna χ2 z Yatesovim popravkom V primeruda bi izbrali χ2-test brez Yatesovega popravka bi dobili precej manjso stopnjo tve-ganja (priblizno 8-) ki pa bi bila glede na rezultate simulacij in Fisherjevega

112 26 Korelacija

natancnega testa napacna Uporaba popravka je torej v tem primeru primerna nipa vedno tako saj lahko popravek naredi test prevec konzervativen

Povezanost spremenljivk merimo s kontingencnimi koeficienti Ti so med drugim navoljo v funkciji assocstats v paketku vcd Razlaga vrnjenih koeficientov (glede naFerligoj 1994 166)

Phi-Coefficien Koren Pearsonovega koeficienta ndash pravzaprav gre v primeru binar-nih spremenljivk za Pearsonov korelacijski koeficient in ima tudi enako inter-pretacijo

Contingency Coeff Kontingencni koeficient (brez popravka)

Cramerrsquos V Kramerjev koeficient

gt installpackages(vcd)

gt library(vcd)

gt tblF5O1F2lt-table(data$F5data$O1F2)

gt assocstats(tblF5O1F2)

X^2 df P(gt X^2)

Likelihood Ratio 63309 4 017576

Pearson 63402 4 017514

Phi-Coefficient NA

Contingency Coeff 0067

Cramers V 0067

Vsi koeficienti imajo vrednost 0067 kar kaze da spremenljivki pravzaprav nistapovezani (oz sta zelo zelo sibko povezani)

26 Korelacija

Povezanost med ordinalnimi spremenljivkami in intervalnimi ali ordinalnimi spre-menljivkami merimo s pomocjo korelacijskih koeficientov

V R-ju lahko korelacijsko matriko izracunamo s pomocjo funkcije cor domneve okorelaciji pa lahko preverjamo s funkcijo cortest Prva (cor) izracuna korelacijomed vsemi spremenljivkami v podatkovnem okvirju ali matriki druga (cortest)izracuna in testira le eno korelacijo naenkrat Obe funkciji poznata naslednje kore-lacijske koeficiente

pearson Pearsonov koeficient (linearne) korelacije (privzeta moznost)

spearman Spearmanov koeficient korelacije

kendall Kendallov (τ) koeficient korelacijekonkordance

2 poglavje ndash Univariatna in bivariatna statistika 113

Slika 25 Razsevni grafikon ndash izobrazba in bruto placa

5 10 15 20

100

200

300

400

500

600

700

Izobrazba

Bru

to p

lača

Od teh treh je morda le Kendallov manj znan Tako kot Spearmanov koeficient ko-relacije je tudi Kendallov uporaben na ordinalnih spremenljivkah njegova vrednostpa se izracuna kot

(stevilo parov ki se ujemajo) ndash (stevilo parov ki se ne ujemajo)

stevilo vseh moznih parov

Pari ki se ujemajo so pari kjer je vrstni red enot (v paru) glede na obe spremenljivkienak tisti ki se ne ujemajo pa tisti kjer imata enoti drugacen vrstni red prispremenljivkah Stevilo vseh parov je n(nminus1)

2

Za primer vzemimo korelacijo med stevilom let solanja (F7) in bruto placo (G91)Odnos je prikazan tudi na sliki 25 Ocitno je zveza med spremenljivkama pozitivnaa nelinearna Izracunajmo in testirajmo vse tri koeficiente

gt narisemo razsevni grafikon

gt plot(G91~F7data=dataxlab=Izobrazbaylab=Bruto placa)

114 26 Korelacija

gt izracunamo Pearsonov koeficient korelacije

gt cor(x=data$F7y=data$G91use=completeobsmethod=pearson)

[1] 0550864

gt in preverimo domnevo (ki tudi izracuna korelacijo)

gt cortest(x=data$F7y=data$G91 method=pearson)

Pearsons product-moment correlation

data data$F7 and data$G91

t = 11862 df = 323 p-value lt 22e-16

alternative hypothesis true correlation is not equal to 0

95 percent confidence interval

04702540 06223585

sample estimates

cor

0550864

gt Spearmanov

gt cortest(x=data$F7y=data$G91 method=spearman)

Spearmans rank correlation rho

data data$F7 and data$G91

S = 2392800 p-value lt 22e-16

alternative hypothesis true rho is not equal to 0

sample estimates

rho

05817806

gt Kendallov

gt cortest(x=data$F7y=data$G91 method=kendall)

Kendalls rank correlation tau

data data$F7 and data$G91

z = 11146 p-value lt 22e-16

alternative hypothesis true tau is not equal to 0

sample estimates

tau

04474194

Vsi trije koeficienti kazejo na srednje mocno povezanost a vseeno je vrednost Ken-dallovega koeficienta bistveno nizja vrednost Spearmanovega pa najvisja

Kot smo ze omenili funkcija cor izracuna korelacijo med vsemi spremenljivkamiv podatkovnem okvirju funkcija cortest pa izracuna in testira le eno korelacijonaenkrat V ta namen je v datoteki rdquoUcbenikR-funkcijeRrdquo funkcija corTestDf kiomogoca da funkcijo cortest uporabimo na vec spremenljivkah Lepsi izpis sedobi z uporabo funkcije printCorTestDf

2 poglavje ndash Univariatna in bivariatna statistika 115

Slika 26 Razsevni grafikoni med vsemi spremenljivkami ki merijo zaupanje v in-stitucije

B4

0 4 8 0 4 8 0 4 8

04

8

04

8

B5

B6

04

8

04

8

B7

B8

04

8

04

8

B9

0 4 8 0 4 8 0 4 8 0 4 8

04

8

B10

Poglejmo si torej korelacije in statisticne znacilnosti na primeru sklopa spremenljivkB4-B10 (zaupanje v institucije) Izracunali bomo Pearsonove in Kendallove koefi-ciente Hiter pregled povezanosti med njimi je na sliki 26 (tocke so zaradi boljsepreglednosti rdquozatresenerdquo)

gt izbor shranimo

gt izborlt-c(B4 B5 B6 B7 B8 B9 B10)

gt izpisemo imena

gt attributes(data)$variablelabels[izbor]

B4 B5

drzavnemu zboru pravnemu sistemu

116 26 Korelacija

B6 B7

policiji politikom

B8 B9

politicnim strankam Evropskemu parlamentu

B10

Zdruzenim narodom

gt narisemo grafe

gt pairs(apply(data[izbor]2jitter)cex=03)

gt izracunamo Pearsonove korelacije

gt cor(data[izbor]use=pairwisecompleteobsmethod=pearson)

B4 B5 B6 B7 B8

B4 10000000 05946718 04616891 06415600 06311402

B5 05946718 10000000 05633582 05902897 05644650

B6 04616891 05633582 10000000 04800425 04414586

B7 06415600 05902897 04800425 10000000 08322464

B8 06311402 05644650 04414586 08322464 10000000

B9 06179115 05648233 04733737 05792044 05935754

B10 05188249 04824849 04596825 04667185 04893612

B9 B10

B4 06179115 05188249

B5 05648233 04824849

B6 04733737 04596825

B7 05792044 04667185

B8 05935754 04893612

B9 10000000 07889287

B10 07889287 10000000

gt tmplt-corTestDf(data[izbor]method=pearson)

gt printCorTestDf(tmp)

B4 B5 B6 B7 B8 B9 B10

B4 cor 0595 0462 0642 0631 0618 0519

p 0000 0000 0000 0000 0000 0000

n 1387 1358 1368 1374 1373 1231 1276

B5 cor 0595 0563 0590 0564 0565 0482

p 0000 0000 0000 0000 0000 0000

n 1358 1376 1365 1365 1364 1228 1274

B6 cor 0462 0563 0480 0441 0473 0460

p 0000 0000 0000 0000 0000 0000

n 1368 1365 1401 1380 1372 1238 1287

B7 cor 0642 0590 0480 0832 0579 0467

p 0000 0000 0000 0000 0000 0000

n 1374 1365 1380 1398 1380 1236 1283

B8 cor 0631 0564 0441 0832 0594 0489

2 poglavje ndash Univariatna in bivariatna statistika 117

p 0000 0000 0000 0000 0000 0000

n 1373 1364 1372 1380 1392 1236 1285

B9 cor 0618 0565 0473 0579 0594 0789

p 0000 0000 0000 0000 0000 0000

n 1231 1228 1238 1236 1236 1247 1227

B10 cor 0519 0482 0460 0467 0489 0789

p 0000 0000 0000 0000 0000 0000

n 1276 1274 1287 1283 1285 1227 1295

gt se Kendallove

gt cor(data[izbor]use=pairwisecompleteobsmethod=kendall)

B4 B5 B6 B7 B8

B4 10000000 04909485 03667314 05291117 05160148

B5 04909485 10000000 04606602 04794322 04546308

B6 03667314 04606602 10000000 03844481 03523638

B7 05291117 04794322 03844481 10000000 07607492

B8 05160148 04546308 03523638 07607492 10000000

B9 05049790 04485398 03736321 04639373 04807420

B10 04279313 03891029 03600516 03761712 03943594

B9 B10

B4 05049790 04279313

B5 04485398 03891029

B6 03736321 03600516

B7 04639373 03761712

B8 04807420 03943594

B9 10000000 06927734

B10 06927734 10000000

gt tmplt-corTestDf(data[izbor]method=kendall)

gt printCorTestDf(tmp)

B4 B5 B6 B7 B8 B9 B10

B4 cor 0491 0367 0529 0516 0505 0428

p 0000 0000 0000 0000 0000 0000

n 1387 1358 1368 1374 1373 1231 1276

B5 cor 0491 0461 0479 0455 0449 0389

p 0000 0000 0000 0000 0000 0000

n 1358 1376 1365 1365 1364 1228 1274

B6 cor 0367 0461 0384 0352 0374 0360

p 0000 0000 0000 0000 0000 0000

n 1368 1365 1401 1380 1372 1238 1287

B7 cor 0529 0479 0384 0761 0464 0376

p 0000 0000 0000 0000 0000 0000

n 1374 1365 1380 1398 1380 1236 1283

B8 cor 0516 0455 0352 0761 0481 0394

118 27 Viri za poglabljanje znanja

p 0000 0000 0000 0000 0000 0000

n 1373 1364 1372 1380 1392 1236 1285

B9 cor 0505 0449 0374 0464 0481 0693

p 0000 0000 0000 0000 0000 0000

n 1231 1228 1238 1236 1236 1247 1227

B10 cor 0428 0389 0360 0376 0394 0693

p 0000 0000 0000 0000 0000 0000

n 1276 1274 1287 1283 1285 1227 1295

Pri zanemarljivi stopnji tveganja lahko pri obeh koeficientih ugotovimo da so vsespremenljivke na populaciji povezane kar bi glede na to da merijo sorodne stvari inglede na velikost vzorca tudi pricakovali Tudi tu se pokaze da je linearna poveza-nost izmerjena s Pearsonovim koeficientom vecja od tiste izmerjene s Kendallovim

27 Viri za poglabljanje znanja

Za poglabljanje snovi iz tega poglavja so uporabni tudi spletni viri navedeni vpodpodpoglavju 191 (Spletni viri) a jih ju tu ponovno ne navajam Izpostavljamsamo enega s pomocjo katerega je mogoce zelo enostavno in hitro najti ustrezneukaze za izvedbo zelenih analiz

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

Za poglabljanje znanja iz statistike so primerni prakticno vsi splosni statisticni uc-beniki na primer

bull Minium Edward W Robert C Clarke in Theodore Coladarci 1999 Elementsof statistical reasoning New York Wiley

bull Levin Jack James Alan Fox in David R Forde 2013 Elementary Statisticsin Social Research (12th Edition) Pearson

bull Wonnacott Thomas H in Ronald J Wonnacott 1990 Introductory statisticsNew York Wiley

bull Kosmelj Blazenka in Joze Rovan 2007 Statisticno sklepanje Ljubljana Eko-nomska fakultetaSlovenski ucbenik ki ga uporabljajo na Ekonomski fakulteti Univerze v Lju-bljani

Osnovne statisticne analize v R-ju pa pokrivajo sledeci ucbeniki ki so bili sicervecinoma navedeni tudi pri virih v prvem poglavju

2 poglavje ndash Univariatna in bivariatna statistika 119

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer13

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer14

Se posebej primeren za tiste ki ze poznajo SPSS ali SAS sicer pa zelo zgoscenaobravnava

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC15

28 Vprasanja za ponavljanje

1 Kaj moramo narediti da nam funkcije kot so na primer mean in min vrnejoveljavno vrednost tudi ce imamo v podatkih manjkajoce vrednosti (NA) Ena-kovredno vprasanje je kaj moramo storiti da izracunajo statistiko samo napodlagi veljavnih (nemanjkajocih) vrednosti

2 Kateri paketek vsebuje veliko funkcij ki so zelo uporabne v druzboslovju in seposebej v psihologiji

3 S katerim argumentov vecini statisticnih funkcij povemo iz katerega podat-kovja (oziroma podatkovnega okvirja) naj crpa podatke (isce spremenljivke)

4 Kaksna je razlika med parametricnimi in neparametricnimi testi

5 Katero funkcijo ali funkcije moramo izbrati ce zelimo izvesti t-test za en vzo-rec za dva odvisna vzorca in za dva neodvisna vzorca Na podlagi cesa seodlocimo katerega izmed teh testov je treba izvesti

6 Kateri test za preverjanje domneve o srednji vrednosti ne zahteva vsaj inter-valne merske lestvice

7 Ali funkcija ttest s privzetimi argumenti pri izvedbi t-testa za neodvisnavzorca predpostavlja enako ali razlicno velike variance po skupinah

8 Kako funkcija table s privzetimi vrednostmi argumentov v kontingencnihtabelah izpisuje manjkajoce vrednosti (NA)

9 Kdaj lahko uporabimo Fisherjev natancni test za preverjanje domneve o po-vezanosti dveh nominalnih spremenljivk

10 Katere korelacijske koeficiente lahko izracuna funkcija cor

13Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani14Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani15Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf

120 28 Vprasanja za ponavljanje

11 Kako funkcija cor s privzetimi argumenti obravnava manjkajoce vrednosti ceracunamo korelacijsko matriko med vec spremenljivkami Kaksne so ostalemoznosti

12 Ali lahko na podlagi izpisa funkcije cor povemo ali lahko nicelno domnevo onepovezanosti dveh spremenljivk zavrnemo

121

3 poglavje

Analiza variance in linearna regre-sija

V zadnjem poglavju sta predstavljeni analiza variance in linearna regresija Pri obehzacnemo z najenostavnejsim (bivariatnim) primerom nato pa dodajamo dodatne ele-mente Poglavje kot obicajno zacnemo s predstavitvijo podatkov Sledi podpoglavjeo analizi variance kjer zacnemo z enofaktorsko analizo variance ki jo potem nad-gradimo v vecfaktorsko analizo variance kjer so mozne tudi interakcije med ucinkineodvisnih spremenljivk Prav tako obravnavamo tudi enofaktorsko analizo varianceza odvisne vzorce in Kruskal-Wallisov test vsote rangov neparametricno razlicicoklasicne enofaktorske analize variance za neodvisne vzorce

Analizi variance sledi podpoglavje o linearni regresiji kjer ponovno zacnemo z eno-stavno bivariatno linearno regresijo V nadaljevanju linearno regresijo najprej nad-gradimo z nelinearno regresijo vecina poglavja pa je namenjena multipli linearniregresiji torej linearni regresiji z vec neodvisnimi spremenljivkami Pri tem prika-zemo tudi kako lahko kot neodvisne spremenljivke vkljucimo nominalne in ordinalnespremenljivke ter kako v model vkljucimo interakcije med vplivi neodvisnih spremen-ljivk Proti koncu poglavja posebno pozornost namenimo preverjanju predpostavkZa bolj zagnane studente pa sta dodana podpodpoglavje o moznosti nadgrajevanjaoziroma izpopolnjevanja predstavljenega empiricnega primera (338) in podpodpo-glavje s prikazom izracuna ocen parametrov linearne regresije brez uporabe vgrajenihfunkcij za linearno regresijo (339) predvsem z uporabo linearne algebre (matric-nega racunanja)

31 Uporabljeni podatki

Za prikaz predstavljenih metod bomo tudi tu uporabili podatke iz Evropske druz-boslovne raziskave (httpwwweuropeansocialsurveyorg) za Slovenijo za leto

122 32 Analiza variance (ANOVA)

2004 Uporabljena datoteka je bila pridobljena iz Arhiva druzboslovnih podatkov(Tos in drugi 2004) Opis raziskave in povezave do datoteke so dostopne na tem sple-tnem naslovu httpwwwadpfdvuni-ljsiopisisjm042 Iz Arhiva druz-boslovnih podatkov sem prenesel podatke v SPSS-ovem formatu (rdquosavrdquo)

Uporabili bomo predvsem sledece spremenljivke

G91 bruto placa v 1000 sit

F5 kraj bivanja (5 kategorij)

O1F2 spol

Preberemo podatke iz SPSS-ove datotke

gt nalozimo podatke

gt library(foreign)

gt datalt-readspss(file=sjm042_f1sav

todataframe = TRUE usevaluelabels = TRUE

maxvaluelabels=5 usemissings=TRUE)

gt nalozimo tudi dodatne funkcije

gt source(UcbenikR-funkcijeR)

32 Analiza variance (ANOVA)

Analiza variance (ANOVA) je splosno ime za metode ki primerjajo pojasnjeno va-riabilnost (obicajno merjeno z vsoto kvadratov odklonov) z nepojasnjeno Ce jepojasnjena variabilnost dovolj velika v primerjavi z nepojasnjeno potem lahko za-kljucimo da ima tisto kar jo pojasnjuje nek vpliv na obravnavano odvisno spre-menljivko16

Omejili se bomo na probleme pri katerih preverjamo ali se aritmeticne sredinerazlikujejo med vzorci oziroma skupinami Pri takih primerih je pojasnjena varia-bilnost variabilnost med aritmeticnimi sredinami teh vzorcevskupin (variabilnostmed vzorci) nepojasnjena pa variabilnost znotraj vzorcev (variabilnost posameznihvrednosti okoli aritmeticnih sredin posameznih vzorcevskupin) Pojasnjena varia-bilnost je obicajno pojasnjena z eno ali vec nominalnimi17 spremenljivkami

16V splosnem je sicer odvisnih spremenljivk lahko tudi vec a tega ne bomo obravnavali17Oziroma spremenljivkami ki jih obravnavamo kot nominalne

3 poglavje ndash Analiza variance in linearna regresija 123

321 Enofaktorska analiza variance za neodvisne vzorce

Ta verzija analize variance je najbolj znana in najpogosteje uporabljena tako davecina ljudi ob izrazu rdquoanaliza variancerdquo pomisli ravno nanjo

Klasicna enofaktorska analiza variance za neodvisne vzorce ima sledece predpo-stavke

Normalnost (angl normality) Odvisna spremenljivka se znotraj vsake popula-cije porazdeljuje normalno

Enakost varianc (angl homogeneity of variance) Variabilnost je enaka v vseh(pod)populacijah (skupinah)

Ce je zadosceno tema dvema predpostavkama lahko uporabimo F-test (analizo va-riance) za testiranje domnev o razliki aritmeticnih sredin

Ce imamo velik vzorec (na primer kot 30 enot v vsakem vzorcu) lahko uporabimoF-test tudi ce predpostavki o normalnosti ni popolnoma zadosceno Pomembno jeda je porazdelitev v vseh populacijah priblizno enaka (na primer povsod podobnoasimetricna v desno) Pri majhnih vzorcih pa v primeru razlicnih varianc ne moremouporabiti obicajnega F-testa

V primeru da je krsena predpostavka o enakosti varianc pa lahko uporabimo Wel-chevo analizo variance (Welch 1951)

Predpostavko o normalnosti obicajno preverjamo graficno (histogram po skupinah)predpostavko o enakosti varianc pa preko opisnih statistik in formalnih testov Nekajmoznih testov

bartletttest Primeren ce je predpostavka o normalnosti izpolnjena

flignertest Neobcutljiv na odstopanja od normalnosti Temelji na rangih

leveneTest Tudi ta je neobcutljiv na odstopanja od normalnosti Z argumentomcenter=mean (kar ni privzeta moznost) je to test ki ga uporablja SPSS Navoljo je v paketku car

Enofaktorsko analizo variance in njeno neparametricno razlicico lahko izvedemo ssledecimi funkcijami

onewaytest Izvede klasicno in Welchevo enofaktorsko analizo variance

aov Bolj splosna funkcija za analizo variance (tudi vecfaktorsko) ki pa ne omogocamoznosti za razlicne variance (vsaj ne na enostaven nacin)

kruskaltest Kruskal-Wallisov test vsote rangov ndash neparametricna razlicica ana-lize variance oziroma razlicica Mann-Whitneyjevega testa za vec kot 2 vzorca

124 32 Analiza variance (ANOVA)

Opozorilo

Funkcija aov tako kot veliko drugih statisticnih funkcij kot glavni argumentsprejme formulo ki pove vpliv katerih neodvisnih spremenljivk na katero odvi-sno spremenljivko preucujemo Ce zelimo da se neodvisne spremenljivke obrav-navajo kot nominalne spremenljivke (in ne kot intervalne) morajo biti obveznotipa faktor (ali kvecjemu character ki ga funkcija samodejno spremeni vfaktor) Sicer je tisto kar dobimo bolj podobno linearni regresiji

Za primerjave katera povprecja se statisticno znacilno razlikujejo izvedemo takoimenovane rdquopost hocrdquo teste Za ta namen lahko v splosnem uporabimo funkcijopairwisettest Parne primerjave namrec niso nic drugega kot t-testi kjer do-bljene p-vrednosti popravimo tako da je skupno tveganje enako izbrani stopnji αPri funkciji pairwisettest lahko izberemo tudi metodo popravka p-vrednostiPriporocena je Holmova metoda (Holm 1979) ki je tudi splosno veljavna18 in jeboljsa kot Bofferonijeva

Ko je izpolnjena predpostavka o enakih variancah in smo za analizo variance upora-bili funkcijo aov lahko za te primerjave uporabimo tudi Tukeyjev test preko funkcijeTukeyHSD

Najprej preglejmo podatke ki jih bomo uporabljali v nadaljevanju (ne le v tempodpodpoglavju)

gt popravimo faktorje

gt table(data$O1F2)

moski zenski

648 762

gt table(data$F5)

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija

148

Spodaj je nekaj osnovnih izracunov Porazdelitve osnovnih spremenljivk so prika-zane na sliki 31

gt library(psych)

gt describe(data$G91)

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

18Tudi ce na primer ne moremo predpostavljati neodvisnosti med testi

3 poglavje ndash Analiza variance in linearna regresija 125

Slika 31 Porazdelitve uporabljenih spremenljivk

moski zenski

Spol

010

020

030

040

050

060

070

0

veliko mesto

predmestje

manjse mesto

vas

kmetija

Kraj bivanja

0 100 200 300 400 500 600

Bruto plača

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

050

100

150

range skew kurtosis se

1 707 146 252 671

gt frekTab(data$F5dec=2)[c(13)]

Frekvenca

veliko mesto 132 919

predmestje 204 1421

manjse mesto 326 2270

vas 626 4359

kmetija 148 1031

gt frekTab(data$O1F2dec=2)[c(13)]

Frekvenca

moski 648 4596

zenski 762 5404

gt if(exists(mardef)) mardeflt-par(mar)

gt par(mfrow=c(13))

gt plot(data$O1F2 main=Spol)

gt par(mar=c(3731))

gt plot(data$F5horiz=TRUElas=1main=Kraj bivanja)

gt par(mar=mardef)

gt hlt-hist(data$G91main=Bruto placa

xlab=Bruto placa v 1000 sit ylab=Frekvenca)

gt curve(dnorm(xmean=mean(data$G91narm=TRUE)

sd=sd(data$G91narm=TRUE))diff(h$breaks)[1]

sum(isna(data$G91)) add=TRUE)

gt par(mfrow=c(11))

Sedaj izracunajmo se opisne statistike za bruto placo po posameznih tipih krajevbivanja in narisemo ustrezne grafikone

126 32 Analiza variance (ANOVA)

gt describeBy(data$G91group=data$F5mat=TRUE)

item group1 vars n mean sd median

11 1 veliko mesto 1 30 2561000 13322715 225

12 2 predmestje 1 45 2209111 9705313 200

13 3 manjse mesto 1 77 2544675 12983812 220

14 4 vas 1 139 2138273 12217005 188

15 5 kmetija 1 34 1887059 9712271 170

trimmed mad min max range skew kurtosis

11 2532500 1690164 75 450 375 02320304 -156727318

12 2118919 1008168 95 490 395 08192702 -003695316

13 2374286 1037820 100 750 650 13747886 180644481

14 1961593 919212 53 760 707 17963112 418899970

15 1728929 593040 80 528 448 17785525 318494875

se

11 2432384

12 1446783

13 1479643

14 1036233

15 1665641

gt par(mfrow=c(23))

gt for(i in levels(data$F5))

hist(data$G91[data$F5==i] xlab=Bruto placa main=i

ylab=Frekvenca)

gt par(mfrow=c(11))

Namesto histograma pa lahko s spodnjo kodo zelo enostavno narisemo tudi skatlastegrafikone po skupinah

gt plot(G91~F5data=data)

V posameznih kategorijah imamo razmeroma malo enot vendar pa se vedno v vsakinad 30 Morda bi bilo smiselno narediti manj kategorij a glede na opisne statistikese kaksno zelo smiselno rekodiranje ravno ne ponuja19

Iz opisnih statistik vidimo da so standardni odkloni (koreni varianc) po skupinahrazmeroma podobni Tako lahko tudi brez testa sklepamo da s predpostavko oenakosti varianc ne bi prevec zgresili Bolj pa je problematicno ker sta asimetrija in(se bolj) konicavost bistveno visji v zadnjih dveh kategorijah (vas in kmetija) To jerazvidno tudi iz slike 32 Kljub temu bomo za demonstracijo izvedli tudi vse teste

19Ce bi kategorije zdruzevali na podlagi opisnih statistik (predvsem aritmeticnih sredin) bi bilo tonarobe Test ki bi ga naredili na podlagi tako zdruzenih kategorij ne bi bil veljaven

3 poglavje ndash Analiza variance in linearna regresija 127

Slika 32 Porazdelitev bruto place po krajih bivanja

veliko mesto

Bruto plača

Fre

kven

ca

100 200 300 400

01

23

45

6

predmestje

Bruto plača

Fre

kven

ca

100 200 300 400 500

02

46

810

12

manjse mesto

Bruto plača

Fre

kven

ca

100 200 300 400 500 600 700 800

05

1015

2025

3035

vas

Bruto plača

Fre

kven

ca

0 200 400 600 800

010

2030

4050

6070

kmetija

Bruto plača

Fre

kven

ca

100 200 300 400 500

02

46

810

12

gt bartletttest(G91~F5data=data)

Bartlett test of homogeneity of variances

data G91 by F5

Bartletts K-squared = 77277 df = 4 p-value =

01021

gt flignertest(G91~F5data=data)

Fligner-Killeen test of homogeneity of variances

data G91 by F5

Fligner-Killeenmed chi-squared = 11456 df = 4

p-value = 002189

gt neobcutljiv na odstopanja od normalnosti

gt library(car)

gt leveneTest(G91~F5data=data)

Levenes Test for Homogeneity of Variance (center = median)

Df F value Pr(gtF)

group 4 1789 01307

320

128 32 Analiza variance (ANOVA)

gt neobcutljiv na odstopanja od normalnosti

gt leveneTest(G91~F5data=data center=mean)

Levenes Test for Homogeneity of Variance (center = mean)

Df F value Pr(gtF)

group 4 22227 006639

320

---

Signif codes

0 0001 001 005 01 1

gt razlicica kot jo uporablja SPSS

gt malce manj robustna

Barlettov in Levenov test pokazeta da bi lahko domnevo o enakosti varianc zavrnilisele pri vec kot 10- tveganju Nasprotno pa Fligner-Killeenjev test domnevo zavrneze pri 22- tveganju Glede na to da same razlike med standardnimi odkloni nisotako velike lahko predpostavko o enakosti varianc obdrzimo Kljub temu pa bomo(za demonstracijo) izvedli obe razlicici analize variance (klasicno in Welchevo) Polegtega bomo izvedli tudi neparametricni Kruskal-Wallisov test

gt predpostavljamo enake variance

gt onewaytest(G91~F5data=datavarequal=TRUE)

One-way analysis of means

data G91 and F5

F = 27695 num df = 4 denom df = 320 p-value =

002742

gt predpostavljamo razlicne variance

gt varequal=FALSE bi lahko tudi izpustili ker je to

gt privzeta moznost

gt onewaytest(G91~F5data=datavarequal=FALSE)

One-way analysis of means (not assuming equal

variances)

data G91 and F5

F = 27964 num df = 400 denom df = 10316 p-value

= 002988

gt se preko funkcije aov

gt fitlt-aov(G91~F5data=data)

gt summary(fit)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 158604 39651 277 00274

Residuals 320 4581392 14317

---

3 poglavje ndash Analiza variance in linearna regresija 129

Signif codes

0 0001 001 005 01 1

1117 observations deleted due to missingness

gt rezultat je identicen kot pri prejsnji funkciji

gt ko smo predpostavljali enake variance

gt

gt kruskaltest(G91~F5data=data)

Kruskal-Wallis rank sum test

data G91 by F5

Kruskal-Wallis chi-squared = 12557 df = 4 p-value

= 001365

Obe razlicici ANOVE nam vrneta zelo podoben rezultat Glede na oba lahko stveganjem manjsim kot 3 trdimo da se povprecna bruto placa razlikuje gledena kraj bivanja Glede na Kruskal-Wallisov test pa lahko predpostavko o enakostisrednjih vrednosti zavrnemo ze pri 14- tveganju

Opozorilo

Domneva ki jo preverjamo s Kurskal-Walisovim testom ni vec enakaa

a Kruskal-Wallisov test preverja podobno domnevo kot Mann-Whitneyjev test ki je podrob-neje razlozen v podpodpoglavju 233

Poglejmo se katera povprecja so razlicna V primeru enakih varianc je za ta namennajprimernejsa funkcija TukeyHSD (ki jo uporabimo na rezultatu funkcije aov) re-zultat katere lahko tudi lepo narisemo V primeru neenakih varianc pa uporabimofunkcijo pairwisettest

gt TukeyHSD(fit) fit mora biti rezultat funkcije aov

Tukey multiple comparisons of means

95 family-wise confidence level

Fit aov(formula = G91 ~ F5 data = data)

$F5

diff lwr upr

predmestje-veliko mesto -35188889 -11255949 42181712

manjse mesto-veliko mesto -1632468 -7228018 69015248

vas-veliko mesto -42272662 -10835533 23810003

kmetija-veliko mesto -67394118 -14961878 14830549

manjse mesto-predmestje 33556421 -2803788 95150721

vas-predmestje -7083773 -6338365 49216108

130 32 Analiza variance (ANOVA)

kmetija-predmestje -32205229 -10679513 42384676

vas-manjse mesto -40640194 -8727244 5992052

kmetija-manjse mesto -65761650 -13335265 1829353

kmetija-vas -25121456 -8792562 37682705

p adj

predmestje-veliko mesto 07232946

manjse mesto-veliko mesto 09999963

vas-veliko mesto 04019543

kmetija-veliko mesto 01647508

manjse mesto-predmestje 05667485

vas-predmestje 09969399

kmetija-predmestje 07603006

vas-manjse mesto 01204253

kmetija-manjse mesto 00608866

kmetija-vas 08078518

gt par(mar=mardef+c(0800))

gt plot(TukeyHSD(fit)las=1) se graficna predstavitev rezultatov

gt par(mar=mardef)

gt TukeyHSD je primeren le ob predpostavki enakih varianc

gt

gt pairwisettest(x=data$G91g=data$F5padjustmethod= holm

poolsd=TRUE)

Pairwise comparisons using t tests with pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 100 - - -

manjse mesto 100 082 - -

vas 056 100 016 -

kmetija 020 100 008 100

P value adjustment method holm

gt pairwisettest(x=data$G91g=data$F5padjustmethod= bonf

poolsd=TRUE)

Pairwise comparisons using t tests with pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 100 - - -

manjse mesto 100 100 - -

vas 080 100 017 -

3 poglavje ndash Analiza variance in linearna regresija 131

kmetija 025 100 008 100

P value adjustment method bonferroni

gt ce ne zelimo uporabiti predpostavke o enakosti varianc

gt nastavimo poolsd=FALSE

gt

gt pairwisettest(x=data$G91g=data$F5padjustmethod= holm

poolsd=FALSE)

Pairwise comparisons using t tests with non-pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 0821 - - -

manjse mesto 1000 0754 - -

vas 0754 1000 0233 -

kmetija 0233 0754 0041 0821

P value adjustment method holm

Ce predpostavljamo enake variance lahko najdemo statisticno znacilne razlike selepri 10- tveganju (oziroma 6ndash8-) in se to le med manjsim mestom in kmetijoPodobno je tudi ce privzamemo da so variance razlicne le da lahko v tem primeruto trditev postavimo ze pri 41 tveganju

Za konec povprecja se graficno predstavimo na sliki 33

gt library(gplots)

gt plotmeans(G91~F5data=data)

322 Vecfaktorska analiza variance za neodvisne vzorce

Vecfaktorska analiza variance je analiza variance kjer so skupine dolocene z vec kotenim faktorjem Z njo torej preverjamo domnevo o vplivu dveh ali vec nominalnih(oziroma vsaj tako jih obravnavamo) neodvisnih spremenljivk na odvisno spremen-ljivko

Predpostavke vecfaktorske analize variance so podobne predpostavkam enofaktor-ske ndash porazdelitev v vseh skupinahcelicah (dolocenih s kombinacijo vseh faktorjevoziroma neodvisnih spremenljivk) je normalna z enako varianco

Analiza je bistveno enostavnejsa ce so neodvisne spremenljivke med seboj neodvi-snenepovezane kar pa se v druzboslovju (oziroma kjerkoli kjer podatke dobimo z

132 32 Analiza variance (ANOVA)

Slika 33 Porazdelitve uporabljenih spremenljivk

150

200

250

300

F5

G91

veliko mesto manjse mesto vas kmetija

n=30 n=45 n=77 n=139 n=34

opazovanjeanketiranjem in ne eksperimentom) redko zgodi V primeru da neod-visne spremenljivke med seboj niso neodvisne je pomemben vrstni red faktorjevModel namrec najprej poskusa pojasniti cim vec variabilnosti odvisne spremenljivkes 1 faktorjem nato z 2 3

Rezultati se torej spremenijo ce zamenjamo vrstni red faktorjev Od vrstnega redaje tudi odvisno kaj nek test sploh preverja Pri prvem faktorju test preverja ali le-ta pojasni vsaj nekaj variabilnosti odvisne spremenljivke (oziroma ali vpliva nanjo)Pri vseh ostalih pa preverja ali faktor pojasni kak del variabilnosti odvisne spre-menljivke ki se ni pojasnjen s faktorji ki so v modelu pred obravnavanim faktorjemVse to velja ce uporabimo rdquoklasicnordquo vsoto kvadratov oziroma vsoto kvadratov tipaI Obstajajo tudi druge vrste vsote kvadratov (tip II III IV za vec glejte Fox (2008159) Muenchen (2011 633ndash635) in IBM (2011)) vendar jih tu ne bomo obravnavaliVsote kvadratov tipa II in III lahko izracunate s pomocjo funkcije Anova iz paketkacar Pri tipu III vrstni red faktorjev ni pomemben

Preverjamo lahko tudi ali obstaja interakcija med vplivi posameznih faktorjev In-terakcija med vplivi faktorjev pomeni da se vpliv nekega faktorja razlikuje glede navrednosti nekega drugega faktorja

Na nasem primeru bomo preverjali ali lahko trdimo da kraj bivanja in spol vplivatana bruto placo Poleg tega bomo preverili tudi ali lahko trdimo da spol vpliva nabruto placo ce predhodno izlocimo vpliv kraja bivanja

3 poglavje ndash Analiza variance in linearna regresija 133

Pred izracunom bomo pripravili podatke in sicer tako da bomo v nov podatkovniokvir shranili samo za to analizo potrebne spremenljivke Tu bomo potem odstra-nili vse enote ki imajo manjkajoco vrednost pri katerikoli spremenljivki To bomonaredili tako da bomo v nadaljevanju pri vseh analizah upostevali iste enote (karnam bo omogocalo da bomo modele primerjali med seboj)

nnajprej torej pripravimo nov podatkovni okvir in odstranimo enote z manjkajocimivrednostmi Nato podobno kot pri enofaktorski ANOVI preverimo predpostavke(izracunamo opisne statistike po skupinah)

gt dataAovlt-data[c(G91O1F2F5)]

gt dataAovlt-naomit(dataAov)

gt odstranili smo enote z manjkajocimi vrednostmi

gt

gt describeBy(dataAov$G91group=dataAov[c(O1F2F5)]

mat=TRUE)

item group1 group2 vars n mean sd

11 1 moski veliko mesto 1 14 2520000 12794650

12 2 zenski veliko mesto 1 15 2523333 14355172

13 3 moski predmestje 1 24 2311250 9543917

14 4 zenski predmestje 1 21 2092381 9989640

15 5 moski manjse mesto 1 39 2886923 14734656

16 6 zenski manjse mesto 1 35 2101143 9263679

17 7 moski vas 1 69 2270870 12535992

18 8 zenski vas 1 67 2028060 12044064

19 9 moski kmetija 1 27 1888889 9864713

110 10 zenski kmetija 1 7 1880000 9854441

median trimmed mad min max range skew

11 226 2502500 1423296 75 450 375 03270494

12 200 2503846 1482600 80 450 370 02540330

13 200 2233500 1074885 120 490 370 07883115

14 184 1970000 948864 95 450 355 08518656

15 250 2741212 889560 110 750 640 11844391

16 170 1992759 770952 100 500 400 11385801

17 200 2089825 741300 61 760 699 19229792

18 180 1859091 1037820 53 700 647 15723492

19 170 1723913 593040 80 528 448 19727940

110 132 1880000 429954 103 350 247 06346745

kurtosis se

11 -142834380 3419514

12 -178216305 3706489

13 -002979449 1948144

14 -023542599 2179918

134 32 Analiza variance (ANOVA)

Slika 34 Porazdelitev bruto place po krajih bivanja in spolu

moski veliko mesto

Bruto plača

Fre

quen

cy

0 100 200 300 400 500

01

23

45

moski predmestje

Bruto plača

Fre

quen

cy

100 200 300 400 500

01

23

45

67

moski manjse mesto

Bruto plača

Fre

quen

cy

100 300 500 7000

510

15

moski vas

Bruto plača

Fre

quen

cy

0 200 400 600 800

05

1015

2025

3035

moski kmetija

Bruto plača

Fre

quen

cy

0 100 300 500

05

1015

zenski veliko mesto

Bruto plača

Fre

quen

cy

0 100 200 300 400 500

01

23

45

6

zenski predmestje

Bruto plača

Fre

quen

cy

100 200 300 400

01

23

45

6

zenski manjse mesto

Bruto plača

Fre

quen

cy

100 200 300 400 500

02

46

810

12

zenski vas

Bruto plača

Fre

quen

cy

0 200 400 600

05

1015

2025

30

zenski kmetija

Bruto plača

Fre

quen

cy

100 150 200 250 300 350

01

23

4

15 078377390 2359433

16 089652400 1565848

17 453230346 1509156

18 314171911 1471417

19 393661300 1898465

110 -156138214 3724628

gt par(mfrow=c(25))

gt for(iGndr in levels(dataAov$O1F2))

for(iF5 in levels(dataAov$F5))

hist(dataAov$G91[(dataAov$F5==iF5)ampdataAov$O1F2==iGndr]

xlab=Bruto placa main=paste(iGndriF5sep= ))

gt par(mfrow=c(11))

Sedaj je v nekaterih skupinah ze zelo malo enot Standardni odkloni med skupinaminiso pretirano razlicni se pa precej razlikujejo koeficienti asimetrije in sploscenostiVsekakor rezultati kazejo na to da porazdelitev v vseh skupinah ni (niti pribli-zno) normalna in tudi ne podobna med skupinami Predpostavke metode torej nisoizpolnjene zato moramo rezultate metode jemati z veliko rezervo

3 poglavje ndash Analiza variance in linearna regresija 135

Sedaj najprej ponovimo enofaktorsko ANOVO s funkcijo aov za vsak faktor po-sebej Poleg tega preverimo tudi ali sta neodvisni spremenljivki med seboj pove-zani

gt fitG91_F5lt-aov(G91~F5data=dataAov)

gt summary(fitG91_F5)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2298 00589

Residuals 313 4503794 14389

---

Signif codes

0 0001 001 005 01 1

gt fitG91_O1F2lt-aov(G91~O1F2data=dataAov)

gt summary(fitG91_O1F2)

Df Sum Sq Mean Sq F value Pr(gtF)

O1F2 1 60436 60436 4174 00419

Residuals 316 4575644 14480

---

Signif codes

0 0001 001 005 01 1

V primeru da bi bile predpostavke klasicne analize variance (normalnost enakevariance) izpolnjene (prej smo ugotovili da so krsene) bi lahko pri 59- tveganjutrdili da kraj bivanja vpliva na bruto placo in pri 42- tveganju da spol vplivana bruto placo

Kot smo omenili je pri vecfaktorski analizi variance pomembno ali sta neodvisnispremenljivki povezani Preverimo torej to predpostavko in izracunajmo moc pove-zanosti

gt tbllt-table(dataAov$O1F2dataAov$F5)

gt proptable(tblmargin=2)

veliko mesto predmestje manjse mesto vas

moski 04827586 05333333 05270270 05073529

zenski 05172414 04666667 04729730 04926471

kmetija

moski 07941176

zenski 02058824

gt lazje opazimo ali sta spremenljivki povazani

gt chisqtest(tbl)

Pearsons Chi-squared test

136 32 Analiza variance (ANOVA)

data tbl

X-squared = 98558 df = 4 p-value = 004293

gt installpackages(vcd)

gt library(vcd)

gt assocstats(tbl)

X^2 df P(gt X^2)

Likelihood Ratio 105712 4 0031830

Pearson 98558 4 0042928

Phi-Coefficient NA

Contingency Coeff 0173

Cramers V 0176

gt (pricakovana) zanimivost - na vseh podatkih povezanosti ni

gt chisqtest(table(data$O1F2data$F5))

Pearsons Chi-squared test

data table(data$O1F2 data$F5)

X-squared = 63402 df = 4 p-value = 01751

V nasih podatkih (tistih ki jih bomo uporabili pri analizi variance20) sta spremen-ljivki kraj bivanja in spol sibko povezani To je posledica tega da upostevamo samoenote z veljavnimi vrednostmi za bruto placo Na vseh enotah namrec povezanostini oziroma povezanost ni statisticno znacilna

Rekli smo da bomo preverjali ali lahko trdimo da kraj bivanja in spol vplivata nabruto placo Test celotnega modela je malce zahtevnejsi Standardne funkcije ga neizvedejo Lahko pa ga izvedemo zelo enostavno tako da model primerjamo z nicelnimmodelom Nicelni model je model kjer nimamo pojasnjevalnih spremenljivk V temmodelu so napovedi enake povprecju

Poleg tega bomo preverili tudi ali lahko trdimo da spol vpliva na bruto placo cepredhodno kontroliramo za vpliv kraja bivanja Tako bomo v model kot 1 spre-menljivko dali kraj bivanja kot 2 pa spol

gt izvedemo dvofaktorsko ANOVO

gt fitG91_F5O1F2lt-aov(G91~F5+O1F2data=dataAov)

gt summary(fitG91_F5O1F2)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2334 00556

O1F2 1 83242 83242 5875 00159

Residuals 312 4420552 14168

20Izlocili smo tiste enote ki vsaj pri eni spremenljivki niso imele veljavne vrednosti v veliki vecinipri bruto placi

3 poglavje ndash Analiza variance in linearna regresija 137

---

Signif codes

0 0001 001 005 01 1

gt rezultat pri spolu nam pove koliko ta model pojasni

gt vec kot model s samo krajem bivanja

gt anova(fitG91_F5fitG91_F5O1F2)

Analysis of Variance Table

Model 1 G91 ~ F5

Model 2 G91 ~ F5 + O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 313 4503794

2 312 4420552 1 83242 58752 001592

---

Signif codes

0 0001 001 005 01 1

gt ocenimo nicelni model

gt fitG91_1lt-update(fitG91_F5O1F2~1)

gt funkcija update popravi model glede na argumente

gt ali

gt fitG91_1lt-aov(G91~1data=dataAov)

gt

gt primerjamo model z nicelnim

gt da ocenimo statisticno znacilnost celotnega modela

gt anova(fitG91_1fitG91_F5O1F2)

Analysis of Variance Table

Model 1 G91 ~ 1

Model 2 G91 ~ F5 + O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 317 4636080

2 312 4420552 5 215527 30424 001069

---

Signif codes

0 0001 001 005 01 1

Iz rezultatov lahko razberemo

bull Pri 56- tveganju lahko trdimo da kraj bivanja vpliva na bruto placo Sto-pnja tveganja je manjsa kot pri enofaktorski ANOVI (kjer je bila 59-) kerje manjsa nepojasnjena varianca (del variance je sedaj pojasnjen s spolom)

bull Pri 16- tveganju lahko trdimo da spol vpliva na bruto placo ce izlocimovpliv kraja bivanja Ta stopnja tveganja je bistveno manjsa kot prej Pravza-prav je tudi pojasnjena vsota kvadratov (pri spolu) tu vecja To pomeni da

138 32 Analiza variance (ANOVA)

so razlike v bruto placi med spoloma vecje ce jih gledamo loceno po krajihbivanja kot ce jih gledamo skupaj

bull S priblizno 1- tveganjem lahko trdimo da spol ali kraj bivanja (vsaj enaizmed teh dveh spremenljivk) vplivata na bruto placo

Preverimo se ali obstaja tudi interakcija med vplivom spola in kraja bivanja Tardquoucinekrdquo moramo v model vedno vkljuciti oziroma navesti na koncu

gt izvedemo dvofaktorsko ANOVO

gt fitG91_F5O1F2Ilt-aov(G91~F5O1F2data=dataAov)

gt summary(fitG91_F5O1F2I)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2334 00557

O1F2 1 83242 83242 5874 00159

F5O1F2 4 56064 14016 0989 04136

Residuals 308 4364488 14170

---

Signif codes

0 0001 001 005 01 1

gt primerjamo model z nicelnim

gt da ocenimo statisticno znacilnost celotnega modela

gt anova(fitG91_1fitG91_F5O1F2I)

Analysis of Variance Table

Model 1 G91 ~ 1

Model 2 G91 ~ F5 O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 317 4636080

2 308 4364488 9 271591 21296 002692

---

Signif codes

0 0001 001 005 01 1

Interakcija med ucinkoma ni statisticno znacilna Ne moremo torej trditi da spoldrugace vpliva na bruto placo v razlicnih krajih bivanja Posledicno se tudi skupnaznacilnost modela zaradi vkljucitve interakcije zniza

323 Enofaktorska analiza variance za odvisne vzorce

Pogledali si bomo le najenostavnejsi primer analize variance za odvisne vzorce Ana-liza variance za odvisne vzorce je sorodna t-testu za odvisne vzorce le da je vzor-cevspremenljivk katerih povprecje preverjamo vec

3 poglavje ndash Analiza variance in linearna regresija 139

Analizo variance za odvisne vzorce lahko prav tako kot prejsnje tipe naredimopreko funkcije aov z ustreznimi argumenti vendar pa moramo pred uporabo po-datke prilagoditi Podatke je treba preurediti v podobno obliko kot jo imamo prineodvisnih vzorcih Potrebujemo torej eno odvisno spremenljivko in spremenljivkoki rdquodolocardquovzorce (oziroma originalne spremenljivke) Poleg tega pa moramo za vsakpodatek tudi vedeti kateri enoti pripada Za vsako enoto moramo imeti podatke zavse vzorcespremenljivke

Za to je uporabna tale funkcija21

gt razsiriPodatkelt-function(Xid=rownames(X)

varNames=colnames(X))

funkcija za pretvorbo podatkov v obliko

kot jo razumeta funkciji aov ali lm

n12lt-dim(X)

nlt-n12[1]

mlt-n12[2]

if(isnull(varNames)) varNameslt-1m

if(isnull(id)) idlt-1n

reslt-NULL

for(i in 1m)

reslt-rbind(resdataframe(id=idx=X[i]

var=varNames[i]))

return(res)

Funkcijo aov sicer uporabimo kot obicajno le da navedemo katera spremenljivkanam rdquodolocardquo enote oziroma natancneje povemo napake katerih rdquozapisovrdquo so kore-lirane Pozor Klic funkcije je casovno zahteven

Preverjali bomo domnevo ali Slovenci enako zaupamo Drzavnemu zboru (spremen-ljivka B4) Evropskemu parlamentu (B9) in Zdruzenim narodom (B10) Preglejmonajprej opisne statistike in pripravimo podatke

gt dataB4910lt-naomit(data[c(B4B9B10)])

gt za uporabo funkcije razsiriPodatke pripravimo

gt nov podatkovni okvir ki vsebuje le uporabljene

gt spremenljivke

gt describe(dataB4910)

21Funkcija se nahaja tudi v datoteki rdquoUcbenikR-funkcijeRrdquo

140 32 Analiza variance (ANOVA)

vars n mean sd median trimmed mad min max range

B4 1 1213 413 238 4 410 297 0 10 10

B9 2 1213 453 241 5 456 297 0 10 10

B10 3 1213 457 267 5 460 297 0 10 10

skew kurtosis se

B4 010 -057 007

B9 -008 -070 007

B10 -004 -082 008

gt dataB4910razlt-razsiriPodatke(dataB4910)

gt dataB4910raz[110] novi podatki izgledajo takole

id x var

1 1 2 B4

2 2 8 B4

3 4 4 B4

4 5 8 B4

5 6 3 B4

6 7 3 B4

7 8 7 B4

8 9 3 B4

9 11 2 B4

10 14 5 B4

Zaupanje v Evropski parlament in Zdruzene narode je bistveno visje kot v Drzavnizbor Preverimo ali je razlika statisticno znacilna

gt aovReplt-aov(x~var+Error(id)data=dataB4910raz)

gt summary(aovRep)

Error id

Df Sum Sq Mean Sq F value Pr(gtF)

Residuals 1212 17257 1424

Error Within

Df Sum Sq Mean Sq F value Pr(gtF)

var 2 148 7410 3404 264e-15

Residuals 2424 5277 218

---

Signif codes

0 0001 001 005 01 1

gt modeltables(aovReptype=means)

Tables of means

Grand mean

4409453

3 poglavje ndash Analiza variance in linearna regresija 141

var

var

B4 B9 B10

4125 4528 4575

Pri zanemarljivi stopnji tveganja lahko trdimo da Slovenci ne zaupamo vsem treminstitucijam enako

33 Linearna regresija

Z linearno regresijo ugotavljamo ce in ce kako ena ali vec neodvisnih spremenljivkvpliva(jo) na odvisno spremenljivko To vkljucuje tudi ugotavljanje moci vplivaocenjevanje prileganja modela oziroma pojasnjevalne moci modela preverjane pred-postavk in se kaj

Kot ze samo ime pove se omejimo na linearne vplive spremenljivk kar ce malcepoenostavimo pomeni da se vpliv posamezne spremenljivke ne spreminja v odvi-snosti od vrednosti odvisne spremenljivke Obstaja sicer tudi nelinearna regresija kijo lahko izvedemo na vec nacinov Pogosto tudi preko ustrezne transformacije spre-menljivk nelinearno regresijo prevedemo v linearno regresijo Na kratko se te temedotaknemo v podpodpoglavju 333 sicer pa tema ze presega obseg tega ucbenika

V ucbeniku tudi ne obravnavamo naprednejsih tem kot so na primer posploseni line-arni modeli in hierarhicni vecnivojski ali mesani modeli (glej Faraway 2006 Gelmanin Hill 2006 Snijders in Bosker 2012) Prav tako obravnavamo samo podatke zbranev eni casovni tocki ne pa na primer panelnih podatkov (glejte na primer Wooldridge2002)

Se vedno pa v tem podpoglavju obravnavamo precej siroko podrocje zato se tu sebolj kot v ostalih delih ucbenika omejimo na izvedbo analize (linearne regresije)v R-ju same teorije pa ne obravnavamo Za pridobitev znanja s tega podrocjapriporocam uporabo virov ki so navedeni v podpodpoglavju 34 se posebej Fox(2008)

331 Dodatne spremenljivke

Poleg spremenljivk ki smo jih ze uporabili pri analizi variance (glejte podpoglavje32) bomo od tu naprej uporabljali se spremenljivki F7 rdquoStevilo let solanjardquo in F21rdquoTipicno stevilo delovnih ur (vkljucno z nadurami) na tedenrdquo Graficni prikaz njunihporazdelitev je na sliki 35

Pri tem so upostevane samo enote ki imajo veljavne vrednosti pri vseh spremenljiv-kah ki jih bomo uporabili v regresiji (v kateremkoli modelu) ndash to so G91 O1F2 F5

142 33 Linearna regresija

F7 in F21 Na teh podatkih bomo opravili tudi vse linearne regresije Ta pristop smoizbrali zato da lahko rezultate razlicnih analiz med seboj primerjamo Funkcija lm 22

namrec izvede analizo na enotah ki imajo pri uporabljenih spremenljivkah veljavnevrednosti Posledica tega je da ce izvajamo vec razlicnih analiz z razlicnimi neod-visnimi spremenljivkami na originalnih podatkih niso v vseh analizah uporabljeneiste enote in zato rezultati niso primerljivi23

V praksi je v fazi izbire modela tak pristop (ce problem manjkajocih podatkov niprevelik) priporocljiv ko pa izberemo koncni model (predvsem dokoncno dolocimoneodvisne spremenljivke) pa je bolje ce upostevamo vse razpolozljive podatke (torejvse enote ki imajo veljavne vrednosti na spremenljivkah ki jih uporabimo v nekemmodelu)

V primeru manjkajocih vrednosti (torej takorekoc vedno) je najbolje da upostevamovse veljavne vrednosti (torej tudi veljavne vrednosti pri enotah ki imajo sicer tudikaksno manjkajoco vrednost) Izmed dobrih pristopov se najpogosteje uporabljajoveckratne imputacije oz multiple imputacije (Rubin 1987 1996) ki so tudi zelodobro podprte v paketku mice (Buuren in Groothuis-Oudshoorn 2011 Buuren 2012)Vendar pa to ze presega obseg tega ucbenika

Pripravimo torej najprej podatke ter preglejmo opisne statistike in porazdelitvi zadodatni spremenljivki

gt dataLRlt-naomit(data[c(G91O1F2F5F7F21)])

gt describe(dataLR[c(F7F21)])

vars n mean sd median trimmed mad min max range

F7 1 312 1236 308 12 1232 148 1 23 22

F21 2 312 4249 1240 42 4353 445 0 80 80

skew kurtosis se

F7 005 115 017

F21 -133 400 070

gt par(mfrow=c(12)mar=mardef)

gt hlt-hist(dataLR$F7main=Stevilo let solanja

xlab=Stevilo let solanja ylab=Frekvenca)

gt curve(dnorm(xmean=mean(dataLR$F7narm=TRUE)

sd=sd(dataLR$F7narm=TRUE))diff(h$breaks)[1]

sum(isna(dataLR$F7)) add=TRUE)

gt hlt-hist(dataLR$F21main=Tipicno stevilo delovnih ur na teden

xlab=Tipicno stevilo delovnih ur na teden ylab=Frekvenca)

22Enako velja za ostale R-jeve funkcije za regresijske metode (kar vkljucuje tudi analizo variance)23Se posebej je to problem ce zelimo modele formalno primerjati na primer s funkcijo anova ndash

glejte podpodpoglavje 335

3 poglavje ndash Analiza variance in linearna regresija 143

Slika 35 Porazdelitve dodatnih spremenljivk

Število let šolanja

Število let šolanja

Fre

kven

ca

0 5 10 15 20

050

100

150

Tipično število delovnih ur na teden

Tipično število delovnih ur na teden

Fre

kven

ca0 20 40 60 80

020

6010

0

gt curve(dnorm(xmean=mean(dataLR$F21narm=TRUE)

sd=sd(dataLR$F21narm=TRUE))diff(h$breaks)[1]

sum(isna(dataLR$F21)) add=TRUE)

gt par(mfrow=c(11))

Opazimo lahko da porazdelitev obeh spremenljivk ni normalna se posebej pa odnormalnosti odstopa porazdelitev spremenljivke rdquoTipicno stevilo delovnih ur na te-denrdquo ki je zelo konicasta in asimetricna v levo

332 Bivariatna regresija

Zacnimo z najenostavnejsim primerom bivariatne linearne regresije Preverimo kakostevilo let solanja vpliva na bruto placo

Odnos med spremenljivkama je graficno predstavljen na sliki 36 Za zdaj odmislimopolno crtopremico na tej sliki Rdeca crtkana crta pa prikazuje glajena povprecjaodvisne spremenljivke glede na vrednosti neodvisne

gt par(mar=mardef+c(00-30))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt lines(with(data=dataLRlowess(G91~F7))lwd=2lty=2col=red)

gt par(mar=mardef)

Iz slike lahko razberemo naslednje stvari

144 33 Linearna regresija

Slika 36 Odnos med bruto placo in stevilom let solanja

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

bull Ce stevilo let solanja narasca v povprecju narasca tudi bruto placa

bull Variabilnost bruto place narasca s stevilom let solanja kar je krsitev ene izmedpredpostavk linearne regresije

bull Videti je da s stevilom let solanja bruto placa najprej narasca pocasi (alisploh ne) kasneje pa narasca vse hitreje Torej je mogoce da linearna zvezani primerna

bull Videti je da zacne izobrazba vplivati na placo sele ko stevilo let solanja preseze12 let

Kljub pomislekom nadaljujmo najprej z enostavno linearno regresijo Za ocenjeva-nje linearne regresije uporabimo funkcijo lm za preverjanje domnev o koeficientih incelotnega modela za izracun determinacijskega ter nekaterih drugih statistih funk-cijo summary za izracun intervalov zaupanja pa funkcijo confint iz paketka carNarisemo tudi sliko ki prikazuje odvisnost bruto place od stevila let solanja

gt (fitG91_F7lt-lm(G91~F7data=dataLR))

Call

lm(formula = G91 ~ F7 data = dataLR)

Coefficients

(Intercept) F7

-3841 2139

3 poglavje ndash Analiza variance in linearna regresija 145

gt summary(fitG91_F7) za bolj bogat izpis

Call

lm(formula = G91 ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26809 -6502 -1833 4786 45609

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -3841 2407 -1596 0112

F7 2139 189 11320 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1025 on 310 degrees of freedom

Multiple R-squared 02925 Adjusted R-squared 02902

F-statistic 1281 on 1 and 310 DF p-value lt 22e-16

gt library(car)

gt confint(fitG91_F7level=09) 90 intervala zaupanja

5 95

(Intercept) -7812024 1296065

F7 1827676 24512959

gt par(mar=mardef+c(00-30))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt lines(with(data=dataLRlowess(G91~F7))lwd=2lty=2col=red)

gt abline(fitG91_F7lwd=2)

gt par(mar=mardef)

Z variabilnostjo v stevilu let solanja lahko pojasnimo 292 variabilnosti v brutoplaci Ce se stevilo let solanja poveca za eno leto se bo bruto placa v povprecjupovecala za 214 tisoc sit Vpliv stevila let solanja na bruto placo je staticno znacilenpri zanemarljivi stopnji tveganja

S pomocjo funkcije confint iz paketka car smo izracunali tudi 90- intervalazaupanja za regresijski koeficient in konstanto

Na podlagi rezultata smo na sliko 36 vrisali premico ki prikazuje ocenjeni odnosmed spremenljivkama Ocitno je da se premica pri velikih in majhnih vrednostihspremenljivke rdquoStevilo let solanjardquo ne prilega

To je morda se bolj ocitno ce si pogledamo graf kjer na y os nanasamo rezidualena x os pa vrednosti neodvisne spremenljivke (1 graf na sliki 37) Histogram na

146 33 Linearna regresija

Slika 37 Porazdelitev rezidualov

5 10 15 20

-200

020

040

0

Razsevni grafikon rezidualov gledena vrednosti neodvisne spremenljivke

Število let šolanja

Rez

idua

li

Histogram rezidualovz vrisano normalno krivuljo

Reziduali

Gos

tota

-200 0 200 4000

000

000

20

004

sliki 37 pa kaze da je krsena tudi predpostavka o normalni porazdelitvi rezidua-lovnapak Koda za sliko sledi

gt par(mfrow=c(12)xpd=NA)

gt plot(fitG91_F7$residuals~dataLR$F7

ylab=Reziduali xlab=Stevilo let solanja

main=Razsevni grafikon rezidualov glede

na vrednosti neodvisne spremenljivke)

gt hist(fitG91_F7$residuals freq=FALSE br=15

xlab=Reziduali ylab=Gostota

main=Histogram rezidualovnz vrisano normalno krivuljo)

gt curve(dnorm(xmean=0sd=sd(fitG91_F7$residuals))add=TRUE)

gt par(mfrow=c(11)xpd=FALSE)

Podobne zakljucke lahko izpeljemo tudi na podlagi grafikonov na sliki 38 ki so (vR-ju) standardni diagnosticni prikazi za linearno regresijo (tudi multiplo) zato jihdobimo zelo enostavno

gt par(mfrow=c(22)) zahtevamo 4 grafe na eno sliko

gt plot(fitG91_F7)

gt par(mfrow=c(11))

Graf levo zgoraj je podoben razsevnemu grafikonu na sliki 37 le da so na y osinapovedane vrednosti in ne neodvisna spremenljivka Pri bivariatni regresiji grepravzaprav le za linearno transformacijo skale (mnozenje in sestevanje) pri multipli

3 poglavje ndash Analiza variance in linearna regresija 147

Slika 38 Diagnosticni grafikoni za linearno regresijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641784 525

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641

784525

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641

784 525

000 001 002 003 004

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05

Residuals vs Leverage

199

784641

pa sluzijo napovedane vrednosti kot nek nadomestek za vse neodvisne spremenljivke(saj so napovedane vrednosti linearne kombinacije neodvisnih spremenljivk)

Graf desno zgoraj pa podaja podobno informacijo kot histogram Imenuje se Q-Qplot (Q je okrajsava za quantile) Ce so reziduali normalno porazdeljeni lezijo vsetocke na crtkani premici

333 Nelinearna regresija

Ugotovili smo da linearna zveza med spremenljivkama na danih podatkih morda ninajbolj optimalna Odnos je videti dosti bolj linearen ce bruto placo logaritmiramo

148 33 Linearna regresija

Na takih podatkih lahko ocenimo tudi linearno regresijo in sicer tako da znotrajformule bruto placo logaritmiramo Sicer se koda skorajda ne spremeni Rezultatlahko potem narisemo tudi na originalni lestvici Oboje je prikazano na sliki 39)

gt fitLnG91_F7lt-lm(log(G91)~F7data=dataLR)

gt summary(fitLnG91_F7) za bolj bogat izpis

Call

lm(formula = log(G91) ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-126487 -029420 002024 027755 145055

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 4224075 0098354 4295 lt2e-16

F7 0086630 0007723 1122 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 04189 on 310 degrees of freedom

Multiple R-squared 02887 Adjusted R-squared 02864

F-statistic 1258 on 1 and 310 DF p-value lt 22e-16

gt par(mfrow=c(12))

gt plot(log(G91)~F7data=dataLRxlab=Stevilo let solanja

ylab=Logaritem bruto place v 1000 sit

main=Pollogaritemski grafikon)

gt abline(fitLnG91_F7)

gt text(x=25y=65

labels=bquote(italic(G91)minute==

(round(coef(fitLnG91_F7)[1]3))

+(round(coef(fitLnG91_F7)[2]3))italic(F7)))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja

main=Originalna skala)

gt curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]x)

add=TRUE)

gt text(x=25y=700

labels=bquote(italic(G91)minute==

italic(e)^((round(coef(fitLnG91_F7)[1]3))

+(round(coef(fitLnG91_F7)[2]3))italic(F7))))

gt par(mfrow=c(11))

3 poglavje ndash Analiza variance in linearna regresija 149

Slika 39 Exponentna zveza ndash transformacija

5 10 15 20

40

50

60

Pollogaritemski grafikon

Število let šolanja

Loga

ritem

bru

to p

lače

v 1

000

sit

4224 + 0087F7

5 10 15 2010

030

050

070

0

Originalna skala

Število let šolanja

Bru

to p

lača

v 1

000

sit = e(4224+0087F7)

Ob tem pa se je treba zavedati da kadarkoli transformiramo odvisno spremenljivkoizracuni niso vec pravilni oziroma optimalni V tem primeru namrec ne minimizi-ramo vec vsote kvadratov odklonov originalne ampak transformirane spremenljivke(linearna regresija za ocenjevanje uporablja metodo najmanjsih kvadratov) Zaradiistega razloga tudi statistike R2 in podobne niso pravilne Pravilen izracun za R2 bibil

gt resLoglt-dataLR$G91- exp(fitLnG91_F7$fitted)

gt odkloniPovlt-dataLR$G91- mean(dataLR$G91)

gt R2loglt-1-sum(resLog^2)sum(odkloniPov^2)

gt R2log

[1] 02825734

Dejanski R2 je torej se nizji Sedaj smo sicer pravilno izracunali R2 a se vedno jeocenjevanje parametrov neoptimalno Parametre bi namrec morali ocenjevati takoda bi minimizirali vsoto kvadratov odklonov originalne spremenljivke

To lahko naredimo takole

gt expZvezalt-function(byX)

Xlt-asmatrix(X)

sslt-sum((y - exp(cbind(1X)b))^2)

return(ss)

gt optExplt-optim(par=coef(fitLnG91_F7)

fn=expZvezay=dataLR$G91X=dataLR[c(F7)])

150 33 Linearna regresija

gt resOptimlt-dataLR$G91 -

exp(optExp$par[1] + optExp$par[2]dataLR$F7)

gt odkloniPovlt-dataLR$G91-mean(dataLR$G91)

gt R2optimlt-1-sum(resOptim^2)sum(odkloniPov^2)

gt R2optim

[1] 0316329

gt R2log

[1] 02825734

gt summary(fitG91_F7)$rsq

[1] 02924672

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt curve(exp(optExp$par[1]+optExp$par[2]x)add=TRUEcol=blue)

gt curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]x)

add=TRUEcol=red)

gt abline(fitG91_F7col=green3)

gt text(x=19y=650

labels=bquote(italic(G91)minute==

italic(e)^((round(optExp$par[1]3)) +

(round(optExp$par[2]3))italic(F7)))col=blue)

gt legend(x=12y=790legend=c(linearna zveza

eksponentna zveza preko transformacije

eksponentna zveza preko optimizacije)

col=c(green3redblue)lty=1xjust=05yjust=0

xpd=TRUE)

Rezultat ocenjevanja je prikazan na sliki 310 R2 je sedaj znatno vecji kot prikateremkoli prejsnjem pristopu in znasa 0316

334 Multipla regresija

Sedaj razsirimo nas model tako da vkljucimo se eno intervalno neodvisno spremen-ljivko in sicer F21 rdquoTipicno stevilo delovnih ur (vkljucno z nadurami) na tedenrdquo

Tudi za to spremenljivko je pred vkljucitvijo dobro preveriti obliko njene povezanostiz odvisno spremenljivko Ustrezni prikaz je na sliki 311

gt par(mar=mardef+c(00-30))

gt plot(G91~F21data=dataLRylab=Bruto placa v 1000 sitxlab=

Tipicno stevilo delovnih ur (vkljucno z nadurami) na teden)

gt lines(with(data=dataLRlowess(G91~F21))lwd=2lty=2col=red)

gt par(mar=mardef)

3 poglavje ndash Analiza variance in linearna regresija 151

Slika 310 Ocenjevanje nelinearne zveze

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

G91 prime = e(4224+0093F7)

linearna zvezaeksponentna zveza preko transformacijeeksponentna zveza preko optimizacije

Slika 311 Odnos med bruto placo in tipicnim stevilom delovnih ur na teden

0 20 40 60 80

100

200

300

400

500

600

700

Tipično število delovnih ur (vključno z nadurami) na teden

Bru

to p

lača

v 1

000

sit

152 33 Linearna regresija

Kaksne posebne povezanosti med spremenljivkama ne vidimo Ker pa zelimo to tudiformalno preveriti bomo spremenljivko o stevilu delovnih ur vseeno vkljucili v line-arno regresijo Preverili bomo torej ali spremenljivka rdquoTipicno stevilo delovnih ur(vkljucno z nadurami) na tedenrdquo vpliva na bruto placo ce izlocimo vpliv izobrazbe(spremenljivka rdquoStevilo let solanjardquo) Zanima nas torej ali se bruto placa v pov-precju kaj spremeni ce se stevilo delovnih ur na teden poveca izobrazba pa ostanenespremenjena

Pri linearni regresiji vrstni red vkljucitve ni pomemben

Kljub temu da bi bila glede na nase podatke primernejsa nelinearna regresija bomo(iz pedagoskih razlogov) nadaljevali z linearno Enostaven popravek bi bil ce bisamo zamenjali G91 (bruto placo) z logaritmom te spremenljivke kar sicer (kot smovideli) ni optimalno

gt fitG91_F7F21lt-update(fitG91_F7~+F21)

gt prejsnjemu modelu dodamo dodatno neodvisno spremenljivko

gt ali daljse

gt fitG91_F7F21lt-lm(G91~F7+F21data=dataLR)

gt summary(fitG91_F7F21)

Call

lm(formula = G91 ~ F7 + F21 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26576 -6489 -1866 4783 45844

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -327354 311367 -1051 0294

F7 214004 18929 11306 lt2e-16

F21 -01352 04695 -0288 0774

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1027 on 309 degrees of freedom

Multiple R-squared 02927 Adjusted R-squared 02881

F-statistic 6392 on 2 and 309 DF p-value lt 22e-16

gt confint(fitG91_F7F21level=09)

5 95

(Intercept) -841046492 186338373

3 poglavje ndash Analiza variance in linearna regresija 153

F7 182775218 245233578

F21 -09098706 06394045

gt summary(fitG91_F7)

Call

lm(formula = G91 ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26809 -6502 -1833 4786 45609

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -3841 2407 -1596 0112

F7 2139 189 11320 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1025 on 310 degrees of freedom

Multiple R-squared 02925 Adjusted R-squared 02902

F-statistic 1281 on 1 and 310 DF p-value lt 22e-16

Za primerjavo smo izpisali se rezultat modela brez spremenljivke F21 Vpliv spre-menljivke F21 (kot smo pricakovali glede na sliko 311) ni statisticno znacilen Po-sledicno tudi njena vkljucitev ne vpliva bistveno na rezultate (R2 se je sicer malcepovecal popravljeni R2 pa malce zmanjsal vpliv spremenljivke F7 na G91 pa jeostal skoraj nespremenjen) Vseeno pa je interpretacija regresijskih koeficientov primultipli regresiji malce drugacna kot pri bivariatni regresiji Regresijski koeficientza stevilo let solanja 214 na primer pomeni da se bruto placa poveca za 214 tisocsit ce se stevilo let solanja poveca za eno leto in ostane tipicno stevilo delovnihur na teden nespremenjeno oziroma ce ostanejo vrednosti vseh ostalih neodvisnihspremenljivk (tu imamo pac samo eno) nespremenjene

Pri multipli regresiji je pomemben rezultat tudi F statistika in pripadajoci F -testTa nam v nasem primeru pove da lahko pri zanemarljivi stopnji tveganja trdimoda vsaj ena izmed neodvisnih spremenljivk vpliva na odvisno spremenljivko

Tudi tu bi bilo dobro preveriti porazdelitev rezidualov To storimo podobno kotpri bivariatni regresiji Ker pa imamo sedaj dve neodvisni spremenljivki bi moralinarisati dva razsevna grafikona (vsakega za svojo neodvisno spremenljivko na x osi)Taka grafa sta prikazana na sliki 312 Tako kot pri bivariatni regresiji se na prvemgrafu vidi heteroskedasticnost (variabilnost napak ni povsod enaka) na drugem pabi tezko z gotovostjo prepoznali nek vzorec (na sredini osi je x sicer variabilnostvideti najvecja a je tam tudi najvec vrednosti)

154 33 Linearna regresija

Slika 312 Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk

5 10 15 20

-200

020

040

0

Število let šolanja

Rez

idua

li

0 20 40 60 80-2

000

200

400

Število tipičnih delovnih ur

Rez

idua

li

gt par(mfrow=c(12)mar=mardef-c(0030))

gt plot(fitG91_F7F21$residuals~dataLR$F7

ylab=Reziduali xlab=Stevilo let solanja

main=)

gt plot(fitG91_F7F21$residuals~dataLR$F21

ylab=Reziduali xlab=Stevilo tipicnih delovnih ur

main=)

gt par(mfrow=c(11)mar=mardef)

Ker pa je takih grafov pri multipli regresiji lahko veliko je bolj prakticno da nari-semo samo en graf kjer na y os nanasamo napovedane vrednosti in ne neodvisnihspremenljivk Kot smo ze omenili tako napovedane vrednosti sluzijo kot nadomestekza vse neodvisne spremenljivke (saj so napovedane vrednosti linearne kombinacijeneodvisnih spremenljivk) Tak graf je skupaj s histogramom rezidualov prikazan nasliki 313

gt par(mfrow=c(12))

gt plot(fitG91_F7F21$residuals~fitG91_F7F21$fitted

ylab=Reziduali xlab=Napovedane vrednosti

main=Razsevni grafikon rezidualov glede

na napovedane vrednosti)

gt hist(fitG91_F7F21$residuals freq=FALSE br=15

xlab=Reziduali ylab=Gostota

main=Histogram rezidualovnz vrisano normalno krivuljo)

3 poglavje ndash Analiza variance in linearna regresija 155

Slika 313 Porazdelitev rezidualov

0 100 200 300 400

-200

020

040

0

Razsevni grafikon rezidualov gledena napovedane vrednosti

Napovedane vrednosti

Rez

idua

li

Histogram rezidualovz vrisano normalno krivuljo

Reziduali

Gos

tota

-200 0 200 4000

000

000

20

004

gt curve(dnorm(xmean=0sd=sd(fitG91_F7F21$residuals))add=TRUE)

gt par(mfrow=c(11))

R-jevi standardni diagnosticni prikazi za linearno regresijo so prikazani na sliki 314

gt par(mfrow=c(22))

gt plot(fitG91_F7)

gt par(mfrow=c(11))

335 Vkljucevanje nominalnihordinalnih spremenljivk

V linearno regresijo lahko kot neodvisne spremenljivke vkljucimo tudi nominalnespremenljivke in sicer preko umetnih spremenljivk Umetnih spremenljivk nam nitreba ustvariti saj jih samodejno ustvari funkcija lm Kot referencno kategorijoizbere tisto ki je pri faktorju navedena kot prva v levels

Funkcija lm kot nominalne spremenljivke obravnava le spremenljivke tipa factor incharacter ki pa jih pred uporabo spremeni v tip factor

156 33 Linearna regresija

Slika 314 Diagnosticni grafikoni za linearno regresijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641784 525

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641

784525

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641

784 525

000 001 002 003 004

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05

Residuals vs Leverage

199

784641

Opozorilo

Funkcija lm obravnava spremenljivke tipa ordered oziroma urejen factor takoda za njih na poseben nacin izracuna ndash rdquokontrasterdquo Tega nacina ne bomo obrav-navali saj je razmeroma zahteven za interpretacijo in razumevanje zato je pri-porocljivo da tudi za ordinalne spremenljivke uporabljate neurejen factor

Poglejmo najprej najenostavnejsi primer ko ima nominalna spremenljivka samo 2vrednosti V nas model torej vkljucimo se spol

3 poglavje ndash Analiza variance in linearna regresija 157

gt fitG91_F7F21O1F2lt-lm(G91~F7+F21+O1F2data=dataLR)

gt summary(fitG91_F7F21O1F2)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24770 -6939 -1786 5278 44416

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -170737 312701 -0546 058546

F7 216213 18731 11543 lt 2e-16

F21 -02170 04651 -0467 064108

O1F2zenski -330047 115776 -2851 000466

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1015 on 308 degrees of freedom

Multiple R-squared 03108 Adjusted R-squared 03041

F-statistic 4631 on 3 and 308 DF p-value lt 22e-16

Med rezultati je dodaten regresijski koeficient rdquoO1F2Zenskirdquo Iz njega vidimo daje bila kot referencna kategorija vzeta kategorija rdquoMoskirdquo saj te ni med koeficientiVrednost tega koeficienta (minus330) nam pove da imajo zenske v povprecju pri enakihvrednostih ostalih spremenljivk (izobrazba stevilo delovnih ur na teden) za 33 tisocsit nizjo placo kot moski Pri takem kodiranju je vrednost regresijskega koeficientavedno primerjava izbrane kategorije z referencno Vpliv spola je statisticno znacilenpri tveganju 047

Opozorilo

Klasicna interpretacija da se odvisna spremenljivka spremeni za bx ce se xpoveca za eno enoto in ostale spremenljivke ostanejo nespremenjene tu ni pri-merna ker se spol pri neki osebi naceloma ne spreminja

Dodajmo kot spremenljivko se kraj bivanja

gt fitG91_F7F21O1F2F5lt-lm(G91~F7+F21+O1F2+F5data=dataLR)

gt summary(fitG91_F7F21O1F2F5)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 data = dataLR)

158 33 Linearna regresija

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -105263 375909 -0280 077965

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5predmestje -158647 246244 -0644 051989

F5manjse mesto 114633 225129 0509 061099

F5vas -62163 212181 -0293 076974

F5kmetija -32327 268104 -0121 090411

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

Ker je bilo rdquoVeliko mestordquo izbrano kot referencna kategorija imamo v izpisu regre-sijske koeficiente za vse ostale kategorije Vsak izmed teh regresijskih koeficientovnam poda primerjavo med kategorijo in velikim mestom Tako nam vrednost koefi-cienta rdquoF5Vasrdquominus62 pove da imajo osebe ki zivijo na vasi v povprecju pri enakihvrednostih ostalih spremenljivk (izobrazba stevilo delovnih ur na teden spol) za 62tisoc sit nizjo bruto placo kot tisti ki zivijo v velikih mestih

Ce zelimo nastaviti kot referencno kaksno drugo kategorijo to najlazje storimo takoda zamenjamo vrstni red levels pri faktorju pred klicem funkcije lm Ce bi ze-leli da je na primer referencna kategorija rdquomanjse mestordquo lahko to dosezemo ta-kole

gt dataLR$F5alt-factor(dataLR$F5

levels=levels(dataLR$F5)[c(31245)])

gt lm(G91~F7+F21+O1F2+F5adata=dataLR)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5a data = dataLR)

Coefficients

(Intercept) F7 F21

09370 214129 -02492

3 poglavje ndash Analiza variance in linearna regresija 159

O1F2zenski F5aveliko mesto F5apredmestje

-331629 -114633 -273280

F5avas F5akmetija

-176796 -146960

gt sedaj je referencna kategorija manjse mesto

gt summary(lm(G91~F7+F21+O1F2+F5adata=dataLR))

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5a data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 09370 349314 0027 097862

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5aveliko mesto -114633 225129 -0509 061099

F5apredmestje -273280 199023 -1373 017073

F5avas -176796 149753 -1181 023869

F5akmetija -146960 220729 -0666 050605

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

Pri enakih vrednostih ostalih neodvisnih spremenljivk bi v vseh drugih krajih bivanjav povprecju pricakovali nizjo bruto placo kot v velikem mestu vendar pa ni nobedenod regresijskih koeficientov statisticno znacilen (niti pri 10- tveganju)

Vendar na podlagi tega izpisa ne sklepati o domnevi da kraj bivanja ne vpliva nabruto placo (oziroma ne moremo ugotoviti da tega ne moremo trditi na primer pri10- tveganju) Za preverjanje te domneve bi morali s pomocjo F -testa ta modelprimerjati z modelom brez kraja bivanja (torej s prejsnjim modelom) Medtem koizbor referencne kategorije vpliva na posamezne regresijske koeficiente in posledicnotudi na teste znacilnosti le-ta ne vpliva na rezultate F -testa kjer preverjamo vplivrdquocelotnerdquo nominalne spremenljivke (ali katerekoli druge posamezne spremenljivke alikombinacije vec spremenljivk)

160 33 Linearna regresija

gt anova(fitG91_F7F21O1F2fitG91_F7F21O1F2F5)

Analysis of Variance Table

Model 1 G91 ~ F7 + F21 + O1F2

Model 2 G91 ~ F7 + F21 + O1F2 + F5

ResDf RSS Df Sum of Sq F Pr(gtF)

1 308 3173025

2 304 3149602 4 23423 05652 06881

Sele ta primerjava nam pove da bi morali tvegati vec kot 70 ce bi zeleli trditida kraj bivanja vpliva na bruto placo ce izlocimo vplive stopnje izobrazbe steviladelovnih ur in spola

336 Interakcije med spremenljivkami

Interakcije med (ucinki) spremenljivk vkljucimo v model tako da kot dodatno ne-odvisno spremenljivko v model vkljucimo zmnozek spremenljivk V primeru nomi-nalnih spremenljivk morajo biti te ustrezno kodirane (na primer kot umetne spre-menljivke)

Opozorilo

Ko navajamo v R-ju rdquoformulordquo(npr y ~ x1 + x2) znak rdquordquopomeni da zelimov model vkljuciti izbrane spremenljivke in vse mozne interakcije med njimi in nedejanskega mnozenja (upostevajo se na primer tudi tipi spremenljivk) Ce zelimovkljuciti samo interakcijo potem damo med spremenljivki(ke) znak rdquordquo Takoje na primer y ~ x1x2x3 enako kot y ~ x1 + x2 + x3 + x1x2 + x1x3

+ x2x3 Ce zelimo da se nek operator (na primer ) interpretira dobesednodamo izraz kot argument funkciji I (na primer I(x1x2))

Ce torej zelimo vkljuciti interakcijo med spolom in izobrazbo (edini spremenljivki kista imeli statisticno znacilen vpliv) lahko to naredimo tako kot prikazuje naslednjiizpis

gt fitG91_F7F21O1F2F5int lt- lm(G91 ~ F7O1F2 + F21 + F5

data=dataLR)

gt ali takole

gt fitG91_F7F21O1F2F5int lt- lm(G91 ~ F7 + F21 + O1F2 + F5

gt + F7O1F2 data=dataLR)

gt summary(fitG91_F7F21O1F2F5int)

Call

lm(formula = G91 ~ F7 O1F2 + F21 + F5 data = dataLR)

3 poglavje ndash Analiza variance in linearna regresija 161

Residuals

Min 1Q Median 3Q Max

-23387 -6501 -2010 5017 43674

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -5052516 4638880 -1089 0277

F7 2455524 289956 8469 109e-15

O1F2zenski 3700699 4928161 0751 0453

F21 -020133 047672 -0422 0673

F5predmestje -1607825 2457842 -0654 0514

F5manjse mesto 829630 2257400 0368 0713

F5vas -701999 2118518 -0331 0741

F5kmetija -002075 2684935 -0001 0999

F7O1F2zenski -563564 384354 -1466 0144

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1016 on 303 degrees of freedom

Multiple R-squared 03207 Adjusted R-squared 03028

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

Vpliv interakcije ni statisticno znacilen Prav tako pa ni vec statisticno znacilenvpliv spola To je posledica multikolinearnosti ki jo bomo omenili v naslednjempodpodpoglavju Problem lahko zmanjsamo ce intervalne spremenljivke pred ra-cunanjem interakcije centriramo (od vsake vrednosti odstejemo povprecje) Zaradilepsega izpisa je bolje da to naredimo pred klicem funkcije lm

gt dataLR$F7centGndrZenskilt- (dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

gt fitG91_F7F21O1F2F5int2lt-lm(G91~F7+F21+O1F2+F5 +

F7centGndrZenskidata=dataLR)

gt summary(fitG91_F7F21O1F2F5int2)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 + F7centGndrZenski

data = dataLR)

Residuals

Min 1Q Median 3Q Max

-23387 -6501 -2010 5017 43674

162 33 Linearna regresija

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -5052516 4638880 -1089 02769

F7 2455524 289956 8469 109e-15

F21 -020133 047672 -0422 06731

O1F2zenski -3264380 1177205 -2773 00059

F5predmestje -1607825 2457842 -0654 05135

F5manjse mesto 829630 2257400 0368 07135

F5vas -701999 2118518 -0331 07406

F5kmetija -002075 2684935 -0001 09994

F7centGndrZenski -563564 384354 -1466 01436

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1016 on 303 degrees of freedom

Multiple R-squared 03207 Adjusted R-squared 03028

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

Spremenil se je le koeficient za spol vsi ostali rezultati (vkljucno z R2 in F -statistiko)pa so ostali nespremenjeni Pravzaprav se je spremenilo samo rdquokodiranje spremen-ljivkrdquo Ce vpliv spremenljivk vkljucenih v interakcije preverjamo na pravilen nacintorej tako da preverjamo vpliv celotne spremenljivke se pravi rdquoglavnirdquo ucinek in vseinterakcije v katerih nastopa preko F -testa potem kodiranje ni pomembno Pravilnobi ucinek spola torej preverjali tako kot sledi v nadaljevanju kjer nacin kodiranja narezultat testa ne vpliva

gt ocenimo model brez spola

gt fitG91_F7F21F5int lt- lm(G91 ~ F7 + F21 + F5 data=dataLR)

gt preverimo skupni vpliv spola tako da primerjamo

gt model brez spola z modelom s spolom

gt anova(fitG91_F7F21F5int fitG91_F7F21O1F2F5int)

Analysis of Variance Table

Model 1 G91 ~ F7 + F21 + F5

Model 2 G91 ~ F7 O1F2 + F21 + F5

ResDf RSS Df Sum of Sq F Pr(gtF)

1 305 3231587

2 303 3127412 2 104176 50465 0006983

---

Signif codes

0 0001 001 005 01 1

3 poglavje ndash Analiza variance in linearna regresija 163

Ugotovimo lahko da je vpliv spola (kjer upostevamo tudi njegov vpliv preko inte-rakcije z izobrazbo) statisticno znacilen pri stopnji tveganja 07

337 Preverjanje predpostavk

Analiza rezidualov

Deloma smo preverjanje predpostavk ze obdelali ko smo si ogledali diagnosticnegrafikone za porazdelitev rezidualov Veliko predpostavk je namrec vezanih na po-razdelitev rezidualov Se na zadnjem modelu (z interakcijo 2) poglejmo standardnegrafikone za diagnostiko Grafi so prikazani na sliki 315

gt par(mfrow=c(22))

gt plot(fitG91_F7F21O1F2F5int2)

gt par(mfrow=c(11))

Iz grafov na sliki 315 lahko razberemo

bull Ze na 1 grafu (levo zgoraj) se vidi da je variabilnost rezidualov vecja privecjih placah kot pri manjsih To je se bolj razvidno iz 3 grafa (levo spodaj)Graf je podoben zgornjemu (1) le da sedaj namesto rdquosurovihrdquo rezidualovna y os nanasamo korenjene absolutne standardizirane reziduale Pri temje bistveno predvsem to da nanasamo absolutne vrednosti Rdeca crta kiprikazuje glajena povprecja bi morala biti v primeru homoskedasticnosti (ko jeta predpostavka izpolnjena) ravna pri nas pa je ocitno da od takrat ko imamoneko vecje stevilo enot vseskozi narasca Torej je prisotna heteroskedasticnost

bull Na 2 grafu (desno zgoraj) vse tocke ne lezijo na premici kar pomeni dase reziduali ne porazdeljujejo normalno Predvsem imamo prevec zelo velikihvrednosti Enako lahko razberemo tudi iz histograma rezidualov z vrisanonormalno krivuljo na sliki 316

gt par(mar=mardef-c(0030))

gt hist(fitG91_F7F21O1F2F5int2$resfreq=FALSExlab=Reziduali

ylab=Gostotamain=br=15)

gt curve(dnorm(xsd=sd(fitG91_F7F21O1F2F5int2$res))add=TRUE)

gt par(mar=mardef)

Za preverjanje heteroskedasticnosti obstaja v paketku car tudi formalni test (funk-cija ncvTest) Prav tako ta paketek ponuja se dodatni grafikon ki narise logaritmi-rane absolutne vrednosti studentiziranih rezidualov v odvisnosti od logaritmiranihnapovedanih vrednosti (funkcija spreadLevelPlot) Zaradi uporabe logaritmovizpusti vse negativne napovedane vrednosti (in v tem primeru izpise opozorilo)

164 33 Linearna regresija

Slika 315 Diagnosticni grafikoni za linearno regresijo ndash model z interakcijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641525784

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641525784

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641525784

000 002 004 006 008 010 012

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

Residuals vs Leverage

784

199

525

Funkcija predlaga tudi transformacijo odvisne spremenljivke za odpravljanje pro-blema heteroskedasticnosti Graf je prikazan na sliki 317

gt ncvTest(fitG91_F7F21O1F2F5int2)

Non-constant Variance Score Test

Variance formula ~ fittedvalues

Chisquare = 1484605 Df = 1 p = 00001166521

gt spreadLevelPlot(fitG91_F7F21O1F2F5int2)

Suggested power transformation 05373901

3 poglavje ndash Analiza variance in linearna regresija 165

Slika 316 Histogram rezidualov

Reziduali

Gostota

-200 -100 0 100 200 300 400

0000

0001

0002

0003

0004

0005

Slika 317 Grafikon za ocenjevanje heteroskedasticnosti

50 100 200 500

000

50

020

010

00

500

200

0

Spread-Level Plot for fitG91_F7F21O1F2F5int2

Fitted Values

Abs

olut

e S

tude

ntiz

ed R

esid

uals

166 33 Linearna regresija

Na podlagi testa lahko domnevo o homoskedasticnosti zavrnemo pri zanemarljivistopnji tveganja Iz grafa na sliki 317 pa zopet vidimo da variabilnost rezidualovz visanjem napovedanih vrednosti narasca Na podlagi regresijskega koeficientapremice na tem grafu funkcija predlaga tudi potenco na katero naj bi potenciraliodvisno spremenljivko za odpravo problema heteroskedasticnosti

Multikolinearnost

Multikolinearnost lahko ocenjujemo z vec statistikami Poglejmo si najprej izracunfaktorja povecanja variance (variance inflation factor ndash vif) in toleranc Vif lahko iz-racunamo s funkcijo vif iz paketka car tolerance pa so kar 1vif Ti dve statistikista priporocljivi ker sta razumljivi in pokazeta pri katerih spremenljivkah se pro-blem pojavlja Mere bomo izracunali za oba modela z interakcijo (ki se razlikujetav parametrizacji interakcije)

Opomnik Drugo parametrizacijo smo izbrali ravno zato ker zmanjsuje multikoline-arnost

gt prvi model

gt vif(fitG91_F7F21O1F2F5int) variance inflation factor

GVIF Df GVIF^(1(2Df))

F7 2396263 1 1547987

O1F2 18183935 1 4264263

F21 1052758 1 1026040

F5 1216437 4 1024793

F7O1F2 19529971 1 4419273

gt 1vif(fitG91_F7F21O1F2F5int)[1] tolerance

F7 O1F2 F21 F5 F7O1F2

041731645 005499360 094988557 082207330 005120335

gt drugi model

gt vif(fitG91_F7F21O1F2F5int2) variance inflation factor

GVIF Df GVIF^(1(2Df))

F7 2396263 1 1547987

F21 1052758 1 1026040

O1F2 1037582 1 1018618

F5 1216437 4 1024793

F7centGndrZenski 2259556 1 1503182

gt 1vif(fitG91_F7F21O1F2F5int2)[1] tolerance

F7 F21 O1F2

04173164 09498856 09637791

F5 F7centGndrZenski

08220733 04425648

3 poglavje ndash Analiza variance in linearna regresija 167

Tolerance so pri spolu in pri interakciji med spolom in izobrazbo veliko visje pridrugem modelu faktorji povecanja variance pa nizji

Dober pokazatelj multikolinearnosti je tudi korelacijska matrika med ocenami re-gresijskih koeficientov Ta kaze na problem ce so korelacije po absolutni vrednostiblizu 1 S funkcijo vcov dobimo variancnokovariancno matriko ki pa jo lahko sfunkcijo cov2cor pretvorimo v korelacijsko

gt prvi model

gt vcov(fitG91_F7F21O1F2F5int) kovariancna matrika

gt cov2cor(vcov(fitG91_F7F21O1F2F5int)) korelacijska matrika

(Intercept) F7 O1F2zenski

(Intercept) 10000000 -080916407 -060845623

F7 -08091641 100000000 071746753

O1F2zenski -06084562 071746753 100000000

F21 -04241575 002872814 008249693

F5predmestje -03471743 003199666 000178113

F5manjse mesto -02765647 -003856876 -008880756

F5vas -03666217 006890147 -002361653

F5kmetija -04616874 022093944 011067464

F7O1F2zenski 05880620 -073911673 -097107735

F21 F5predmestje F5manjse mesto

(Intercept) -0424157534 -0347174290 -027656470

F7 0028728137 0031996658 -003856876

O1F2zenski 0082496930 0001781130 -008880756

F21 1000000000 0008758751 -009876780

F5predmestje 0008758751 1000000000 064435236

F5manjse mesto -0098767796 0644352359 100000000

F5vas -0142169932 0689732959 076571906

F5kmetija -0057753038 0555335692 059905425

F7O1F2zenski -0068533086 0005924216 009568067

F5vas F5kmetija F7O1F2zenski

(Intercept) -036662171 -046168741 0588061950

F7 006890147 022093944 -0739116728

O1F2zenski -002361653 011067464 -0971077352

F21 -014216993 -005775304 -0068533086

F5predmestje 068973296 055533569 0005924216

F5manjse mesto 076571906 059905425 0095680667

F5vas 100000000 066452253 0025873515

F5kmetija 066452253 100000000 -0081587125

F7O1F2zenski 002587352 -008158713 1000000000

168 33 Linearna regresija

gt drugi model

gt vcov(fitG91_F7F21O1F2F5int2) kovariancna matrika

gt cov2cor(vcov(fitG91_F7F21O1F2F5int2)) korelacijska matrika

(Intercept) F7 F21

(Intercept) 10000000 -080916407 -0424157534

F7 -08091641 100000000 0028728137

F21 -04241575 002872814 1000000000

O1F2zenski -01742628 002108728 0068815958

F5predmestje -03471743 003199666 0008758751

F5manjse mesto -02765647 -003856876 -0098767796

F5vas -03666217 006890147 -0142169932

F5kmetija -04616874 022093944 -0057753038

F7centGndrZenski 05880620 -073911673 -0068533086

O1F2zenski F5predmestje F5manjse mesto

(Intercept) -0174262837 -0347174290 -027656470

F7 0021087276 0031996658 -003856876

F21 0068815958 0008758751 -009876780

O1F2zenski 1000000000 0031361616 001431086

F5predmestje 0031361616 1000000000 064435236

F5manjse mesto 0014310857 0644352359 100000000

F5vas 0005537691 0689732959 076571906

F5kmetija 0134101643 0555335692 059905425

F7centGndrZenski -0030070878 0005924216 009568067

F5vas F5kmetija F7centGndrZenski

(Intercept) -0366621708 -046168741 0588061950

F7 0068901467 022093944 -0739116728

F21 -0142169932 -005775304 -0068533086

O1F2zenski 0005537691 013410164 -0030070878

F5predmestje 0689732959 055533569 0005924216

F5manjse mesto 0765719055 059905425 0095680667

F5vas 1000000000 066452253 0025873515

F5kmetija 0664522533 100000000 -0081587125

F7centGndrZenski 0025873515 -008158713 1000000000

Ponovno je glavna razlika med obema modeloma povezana s spolom in interakcijomed spolom in izobrazbo Tokrat je dejanska razlika prav v korelaciji med ocenamateh dveh koeficientov Medtem ko je ta korelacija pri prvem modelu po absolutnivrednosti zelo blizu 1 (minus097) je ta korelacija pri drugem modelu skoraj 0 (minus003)Razmeroma visoka (minus075) je tudi korelacija med ocenama koeficientov za izobrazboin interakcijo med spolom in izobrazbo ki je minus075 Preostale razmeroma visokekorelacije so le se med sklopom spremenljivk ki merijo kraj bivanja (ker merijo istospremenljivko je to pricakovano) in med nekaterimi spremenljivkami in konstanto(kar pa ni tako pomembno)

3 poglavje ndash Analiza variance in linearna regresija 169

Multikolinearnost lahko ocenimo tudi s pomocjo indeksov pogojnosti in lastnih vre-dnosti matrike neodvisnih spremenljivk (v katero so namesto nominalnih spremen-ljivk vkljucene umetne spremenljivke) Obstaja vec nacinov kako izracunati indeksepogojnosti V nadaljevanju sta predstavljena dva Pri tem bomo uporabili funkcijocolinEigen ki je definirana spodaj sicer pa se nahaja tudi v datoteki rdquoUcbenikR-funkcijeRrdquo Funkcija temelji na izracunu lastnih vrednosti matrike kriznih produktovneodvisnih spremenljivk

gt colinEigenlt-function(fitSPSS=TRUE)

funkcija za racunanje lastnih vrednosti in indeksov

pogojnosti

Xlt-fit[x]

if(isnull(X))

stop(Fit must include x See lm for detailsn)

else

Xlt-fit$x

tXXlt-t(X)X

if(SPSS)

tXXlt-cov2cor(tXX)

e lt- eigen(tXX)

return(list(eigen=e$values

condIndex=sqrt(e$val[1]e$val)))

Izracunajmo torej indekse pogojnosti na oba nacina za oba modela

gt fitG91_F7F21O1F2F5int2lt-lm(G91~F7+F21+O1F2+F5 +

F7centGndrZenskidata=dataLRx=TRUE)

gt ponovno smo ocenili model s parametrom x=TRUE

gt da dobimo kot rezultat tudi matriko neodvisnih spremenljivk

gt fitG91_F7F21O1F2F5intlt-lm(G91~F7O1F2+F21+F5data=dataLR

x=TRUE)

gt prvi model

gt 1 nacin

gt colinEigen(fitG91_F7F21O1F2F5intSPSS=FALSE)

$eigen

[1] 6652435e+05 1558161e+04 4912678e+03 9900302e+01

[5] 5302790e+01 3528826e+01 1873120e+01 5532393e+00

[9] 2662550e+00

170 33 Linearna regresija

$condIndex

[1] 1000000 6534074 11636735 81972106 112005173

[6] 137301463 188454950 346763845 499851942

gt oziroma taki kot jih vrne SPSS

gt colinEigen(fitG91_F7F21O1F2F5intSPSS=TRUE)

$eigen

[1] 4943854688 1088057228 1002859625 1000235359

[5] 0766591055 0092809934 0066547583 0031866833

[9] 0007177695

$condIndex

[1] 1000000 2131606 2220306 2223216 2539516

[6] 7298534 8619195 12455564 26244625

gt drugi model

gt 1 nacin

gt colinEigen(fitG91_F7F21O1F2F5int2SPSS=FALSE)

$eigen

[1] 6558974e+05 6585408e+03 1173476e+03 1011405e+02

[5] 7781142e+01 5243155e+01 3498490e+01 9599113e+00

[9] 3705997e+00

$condIndex

[1] 1000000 9979909 23641818 80529554 91811327

[6] 111846291 136923385 261398078 420693096

gt oziroma taki kot jih vrne SPSS

gt colinEigen(fitG91_F7F21O1F2F5int2SPSS=TRUE)

$eigen

[1] 4340401831 1109346570 1012708187 1000586611

[5] 0923653402 0473392997 0076159218 0053759618

[9] 0009991567

$condIndex

[1] 1000000 1978023 2070250 2082752 2167756

[6] 3027987 7549249 8985389 20842421

Ne glede na izracun so indeksi pogojnosti pri prvem modelu bistveno vecji karnakazuje da je tam multikolinearnost vecji problem Kljub vsemu pa tudi tu indekspogojnosti na nacin kot ga izracuna SPSS ne preseze meje 30 kar bi bil jasen signalza multikolinearnost

Ocena oblike zveze

Povedali smo ze da je za vsako neodvisno spremenljivko vkljuceno v model dobropogledati razsevni grafikon z odvisno spremenljivko Vendar pa ta grafikon vca-

3 poglavje ndash Analiza variance in linearna regresija 171

sih ne razkrije prave zveze ker je prava zveza rdquozakritardquo z vplivi ostalih neodvisnihspremenljivk V tem primeru pride prav rdquocomponent + residual plotrdquo (oziroma grafdelnih ostankov) kjer na y os nanasamo vrednosti odvisne spremenljivke od katereprej odstejemo vplive ostalih spremenljivk Take grafe lahko narisemo s pomocjofunkcije crPlots iz paketka car Pogoj za uporabo funkcije je da v modelu ni in-terakcij zato jih bomo uporabili na zadnjem modelu kjer se nismo imeli interakcijeRezultat je prikazan na sliki 318

gt component + residual plot

gt crPlots(fitG91_F7F21O1F2F5)

Nadgradnja teh grafikonov so CERES grafi ki so na voljo v funkciji ceresPlots vistem paketku Za razliko od prejsnje le-ta ne narise grafov za nominalne spremen-ljivke Rezultat je na sliki 319

gt Ceres graf - naprednejsa verzija zgornjega

gt ceresPlots(fitG91_F7F21O1F2F5)

Najzanimivejsi zakljucek ki je bil opazen ze na navadnih razsevnih grafikonih jeda izobrazba vpliva na placo sele ko stevilo let solanja preseze 12 leta Kot resitevtega problema lahko v model vkljucimo se eno spremenljivko in sicer rdquostevilo letsolanja nad 12 letrdquo ki bo imela vrednost 0 za vse ki imajo 12 let solanja ali manj

gt dataLR$F7nad12 lt- dataLR$F7 - 12

gt dataLR$F7nad12[dataLR$F7nad12lt0]lt-0

gt fitG91_F7F21O1F2F5F7nad12lt-lm(G91~F7 +O1F2+F7nad12+F21+F5

data=dataLR)

gt summary(fitG91_F7F21O1F2F5F7nad12)

Call

lm(formula = G91 ~ F7 + O1F2 + F7nad12 + F21 + F5 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-28067 -5650 -1733 4223 42537

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 1307917 480829 2720 00069

F7 73834 36457 2025 00437

O1F2zenski -424936 116175 -3658 00003

F7nad12 240146 53287 4507 942e-06

F21 -02669 04621 -0578 05640

172 33 Linearna regresija

Slika 318 Grafikoni delnih ostankov

5 10 15 20

-200

010

020

030

040

050

0

F7

Com

pone

nt+

Res

idua

l(G91

)

0 20 40 60 80-2

000

100

200

300

400

F21

Com

pone

nt+

Res

idua

l(G91

)

moski zenski

-200

020

040

0

O1F2

Com

pone

nt+

Res

idua

l(G91

)

veliko mesto manjse mesto kmetija

-200

010

020

030

040

0

F5

Com

pone

nt+

Res

idua

l(G91

)

Component + Residual Plots

F5predmestje -94125 239206 -0393 06942

F5manjse mesto 193332 219000 0883 03780

F5vas 56539 207426 0273 07854

F5kmetija -105924 260487 -0407 06846

---

Signif codes

0 0001 001 005 01 1

Residual standard error 987 on 303 degrees of freedom

Multiple R-squared 03589 Adjusted R-squared 0342

F-statistic 212 on 8 and 303 DF p-value lt 22e-16

3 poglavje ndash Analiza variance in linearna regresija 173

Slika 319 Ceres grafikoni

5 10 15 20

-600

-400

-200

0

F7

CE

RE

S R

esid

ual(G

91)

0 20 40 60 80-3

00-1

0010

030

0F21

CE

RE

S R

esid

ual(G

91)

CERES Plots

gt summary(fitG91_F7F21O1F2F5) za primerjavo

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -105263 375909 -0280 077965

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5predmestje -158647 246244 -0644 051989

F5manjse mesto 114633 225129 0509 061099

F5vas -62163 212181 -0293 076974

F5kmetija -32327 268104 -0121 090411

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

174 33 Linearna regresija

gt par(mfrow=c(22))

gt plot(fitG91_F7F21O1F2F5F7nad12)

gt par(mfrow=c(11))

Vpliv spremenljivke F7 je bistveno manjsi in sedaj komaj statisticno znacilen pri 5-tveganju kar nam pove da izobrazba do 12 let ne vpliva mocno na bruto placo Kerpa je koeficient spremenljivke F7nad12 bistveno vecji in mocno statisticno znacilenvidimo da zacne izobrazba mocneje vplivati na bruto placo sele ko stevilo let solanjapreseze 12 let oziroma po srednji soli O tem da je model sedaj bistveno boljsi pricatudi znatno vecji R2

Diagnosticni grafikoni so prikazani na sliki 320 Rezultati so sicer malce boljsi aproblem heteroskedasticnosti ostaja

338 V razmislek

Model bi se dalo se nadgrajevati Ze samo vpliv izobrazbe na placo za razlicneskupine je zelo kompleksna stvar Kaj se zgodi ce v novi model dodamo interakcijo

gt dataLR$F7centGndrZenskilt- (dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

gt dataLR$F7nad12centGndrZenski lt- (dataLR$F7nad12-

mean(dataLR$F7nad12))(dataLR$O1F2==zenski)

gt fitG91_F7F21O1F2F5F7nad12intlt-lm(G91~F7+F7nad12+O1F2+F21+F5+

F7centGndrZenski + F7nad12centGndrZenski data=dataLR)

gt summary(fitG91_F7F21O1F2F5F7nad12int)

Call

lm(formula = G91 ~ F7 + F7nad12 + O1F2 + F21 + F5 +

F7centGndrZenski + F7nad12centGndrZenski data = dataLR)

Residuals

Min 1Q Median 3Q Max

-25391 -5885 -1694 4557 42166

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 1701907 632377 2691 0007516

F7 28595 52133 0549 0583754

F7nad12 358691 73064 4909 15e-06

O1F2zenski -415327 115258 -3603 0000367

F21 -01829 04595 -0398 0690894

F5predmestje -86485 237140 -0365 0715590

3 poglavje ndash Analiza variance in linearna regresija 175

Slika 320 Diagnosticni grafikoni za linearno regresijo

100 200 300 400 500

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641525

1368

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641525

1368

100 200 300 400 500

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641525

1368

000 002 004 006 008 010 012

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05Residuals vs Leverage

784

362

525

F5manjse mesto 173586 218196 0796 0426918

F5vas 59867 205770 0291 0771297

F5kmetija -91023 259186 -0351 0725693

F7centGndrZenski 100282 70140 1430 0153828

F7nad12centGndrZenski -251789 103129 -2441 0015203

(Intercept)

F7

F7nad12

O1F2zenski

F21

176 33 Linearna regresija

F5predmestje

F5manjse mesto

F5vas

F5kmetija

F7centGndrZenski

F7nad12centGndrZenski

---

Signif codes

0 0001 001 005 01 1

Residual standard error 9783 on 301 degrees of freedom

Multiple R-squared 03744 Adjusted R-squared 03536

F-statistic 1801 on 10 and 301 DF p-value lt 22e-16

Vidimo da se odstotek pojasnjene variance se malce poveca To nam pravzapravnakazuje da bi morda morali ze na zacetku gledati graf na sliki 321

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanjapch=asnumeric(O1F2)

col=ifelse(O1F2==moskibluered))

gt dataLRzenlt-dataLR[dataLR$O1F2==zenski]

gt lines(with(data=dataLRzenlowess(G91~F7))lwd=2lty=2col=red)

gt dataLRmoslt-dataLR[dataLR$O1F2==moski]

gt lines(with(data=dataLRmoslowess(G91~F7))lwd=2lty=2

col=blue)

gt legend(x=1y=750legend=c(MoskiZenske)lty=2

col=c(bluered)pch=12yjust=1xjust=0

merge=FALSElwd=2)

339 Izracun rdquona rokerdquo

Za boljse razumevanje je koristno da naredimo izracune brez vgrajenih funkcij (ozi-roma s cim bolj enostavnimi) Ocenimo drugi model z interakcijo iz podpodpoglavja336 (ki smo ga shranili v objekt fitG91_F7F21O1F2F5int2) se na tak nacin

Najprej pripravimo podatke Pri tem je pomembno predvsem da naredimo umetnespremenljivke za nominalne spremenljivke

gt ylt-dataLR$G91 odvisna spremenljivka

gt Xlt-cbind(konstanta=1dataLR[c(F7F21)]

konstanta in intervalni neodvisni spremenljivki

O1F2Zenski=asnumeric(dataLR$O1F2==zenski)

3 poglavje ndash Analiza variance in linearna regresija 177

Slika 321 Odnos med izobrazbo in bruto placo po spolu

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

MoškiŽenske

F5Predmestje=asnumeric(dataLR$F5==predmestje)

F5Manjse mesto=asnumeric(dataLR$F5==manjse mesto)

F5Vas=asnumeric(dataLR$F5==vas)

F5Kmetija=asnumeric(dataLR$F5==kmetija)

F7centGndrZenski=(dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

)

gt Xlt-asmatrix(X)

gt preverimo rezultat

gt X[110]

konstanta F7 F21 O1F2Zenski F5Predmestje F5Manjse mesto

1 1 6 42 0 0 0

4 1 12 50 1 0 0

6 1 12 40 1 0 0

16 1 11 62 0 0 0

22 1 14 48 0 0 1

23 1 12 0 0 0 1

26 1 16 45 1 0 0

35 1 12 40 1 0 0

41 1 18 46 0 0 1

49 1 11 40 1 0 1

F5Vas F5Kmetija F7centGndrZenski

1 0 1 00000000

178 33 Linearna regresija

4 1 0 -03589744

6 1 0 -03589744

16 1 0 00000000

22 0 0 00000000

23 0 0 00000000

26 0 1 36410256

35 0 0 -03589744

41 0 0 00000000

49 0 0 -13589744

gt to je enako kot

gt fitG91_F7F21O1F2F5int2$x[110]

(Intercept) F7 F21 O1F2zenski F5predmestje

1 1 6 42 0 0

4 1 12 50 1 0

6 1 12 40 1 0

16 1 11 62 0 0

22 1 14 48 0 0

23 1 12 0 0 0

26 1 16 45 1 0

35 1 12 40 1 0

41 1 18 46 0 0

49 1 11 40 1 0

F5manjse mesto F5vas F5kmetija F7centGndrZenski

1 0 0 1 00000000

4 0 1 0 -03589744

6 0 1 0 -03589744

16 0 1 0 00000000

22 1 0 0 00000000

23 1 0 0 00000000

26 0 0 1 36410256

35 0 0 0 -03589744

41 1 0 0 00000000

49 1 0 0 -13589744

Spomnimo se da je matricna formula za izracun regresijskih koeficientov

b = (XprimeX)minus1Xprimey

Formuli za izracun napovedi in rezidualov pa

yprime = Xb

e = y minus yprime

3 poglavje ndash Analiza variance in linearna regresija 179

Na podlagi tega lahko izracunamo s[e] R2 popravljen R2pop in F -statistiko

se =

nsumi=1

e2

nminus k

R2 =var(yprime)

var(y)

R2pop = 1minus s2e

var(y)= 1minus (1minusR2)

nminus 1

nminus k

F =

nsumi=1

yprimei minus y

k minus 1nsumi=1

yi minus yprimei

nminus k

=

R2

k minus 11minusR2

nminus k

Izracunajmo

gt blt-solve(t(X) X) t(X) y

gt b

[1]

konstanta -5052516310

F7 2455524459

F21 -020132728

O1F2Zenski -3264379964

F5Predmestje -1607824506

F5Manjse mesto 829629531

F5Vas -701999244

F5Kmetija -002074509

F7centGndrZenski -563564466

gt kar je enako kot (do natancnosti racunalnika)

gt coef(fitG91_F7F21O1F2F5int2)

(Intercept) F7 F21

-5052516310 2455524459 -020132728

O1F2zenski F5predmestje F5manjse mesto

-3264379964 -1607824506 829629531

F5vas F5kmetija F7centGndrZenski

-701999244 -002074509 -563564466

gt yNap lt- X b

gt e lt- y - yNap

gt nlt-dim(X)[1]

gt klt-length(b)

180 33 Linearna regresija

gt sErrlt-sqrt(sum(e^2)(n-k))

gt sErr

[1] 1015947

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$sigma

[1] 1015947

gt R2=var(yNap)var(y)

gt R2

[1]

[1] 03207477

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$rsquared

[1] 03207477

gt R2poplt-1-sErr^2var(y)

gt R2pop

[1] 03028137

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$adjrsquared

[1] 03028137

gt F=(R2(k-1))((1-R2)(n-k))

gt F

[1]

[1] 1788484

gt (df1lt-k-1)

[1] 8

gt (df2lt-n-k)

[1] 303

gt pf(q=Fdf1=df1df2=df2lowertail =FALSE)

[1]

[1] 7405752e-22

gt cat(captureoutput(summary(fitG91_F7F21O1F2F5int2))[27]n)

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

gt p-vrednosti se malce razlikujeta a sta obe prakticno 0

gt verjetno gre za vprasanje racunske natancnosti

Izracunajmo se variancno-kovariancno matriko za ocene regresijskih koeficientov iniz nje se standardne napake za ocene regresijskih koeficientov Na podlagi variancno-kovariancne matrike lahko izracunamo se korelacijsko matriko ocen regresijskih ko-eficientov (za ocenjevanje multikolinearnosti)

Sb = s2e middot XprimeXminus1

se(bi) =radicSb[i i]

w = diag

(1radic

diag(Sb)

)

3 poglavje ndash Analiza variance in linearna regresija 181

Cb = w middot Sb middot w

Na podlagi ocen standardnih napak pa lahko izracunamo t-statistike kot t = bise(bi))

gt Sblt-sErr^2solve(t(X) X)

gt Sb

konstanta F7 F21

konstanta 2151921149 -10883837598 -938010552

F7 -108838376 840745537 003971066

F21 -9380106 003971066 022726613

O1F2Zenski -95163435 071978854 038619681

F5Predmestje -395835418 228029391 010262743

F5Manjse mesto -289613230 -252450622 -106289703

F5Vas -360299394 423246067 -143584413

F5Kmetija -575035961 1720043074 -073922389

F7centGndrZenski 104849908 -823715261 -012557392

O1F2Zenski F5Predmestje F5Manjse mesto

konstanta -951634352 -3958354175 -289613230

F7 07197885 22802939 -2524506

F21 03861968 01026274 -1062897

O1F2Zenski 1385811962 90741196 3802999

F5Predmestje 90741196 6040986074 357508039

F5Manjse mesto 38029995 3575080389 509585361

F5Vas 13810615 3591427268 366193057

F5Kmetija 423857670 3664741109 363085097

F7centGndrZenski -13605987 05596501 8301651

F5Vas F5Kmetija F7centGndrZenski

konstanta -360299394 -5750359613 1048499077

F7 4232461 172004307 -82371526

F21 -1435844 -07392239 -01255739

O1F2Zenski 1381062 423857670 -13605987

F5Predmestje 359142727 3664741109 05596501

F5Manjse mesto 366193057 3630850975 83016508

F5Vas 448811895 3779859757 21067811

F5Kmetija 377985976 7208876587 -84195178

F7centGndrZenski 2106781 -84195178 147728263

gt kar je enako kot

gt vcov(fitG91_F7F21O1F2F5int2)

gt max(abs(Sb-vcov(fitG91_F7F21O1F2F5int2)))

[1] 1364242e-12

gt seblt-sqrt(diag(Sb))

gt seb

182 33 Linearna regresija

konstanta F7 F21

463888041 28995612 04767244

O1F2Zenski F5Predmestje F5Manjse mesto

117720515 245784175 225739974

F5Vas F5Kmetija F7centGndrZenski

211851810 268493512 38435435

gt enakost z izracunom s funkcijo lm bomo preverili kasneje

gt

gt wlt-diag(1seb)

gt Cblt-w Sb w

gt kar je enako kot

gt cov2cor(vcov(fitG91_F7F21O1F2F5int2))

gt max(abs(Cb-cov2cor(vcov(fitG91_F7F21O1F2F5int2))))

[1] 144329e-15

gt t-statistika

gt tblt-bseb

gt pblt-2pt(-abs(tb)df=n-k)

gt tabela

gt cbind(b=asvector(b)Std napaka=asvector(seb)

t=asvector(tb)p-vrednost=asvector(pb))

b Std napaka t p-vrednost

[1] -5052516310 463888041 -10891671826 2769457e-01

[2] 2455524459 28995612 84686070004 1087724e-15

[3] -020132728 04767244 -04223137835 6730955e-01

[4] -3264379964 117720515 -27729915791 5898550e-03

[5] -1607824506 245784175 -06541611171 5135042e-01

[6] 829629531 225739974 03675155600 7134911e-01

[7] -701999244 211851810 -03313633444 7405991e-01

[8] -002074509 268493512 -00007726479 9993840e-01

[9] -563564466 38435435 -14662627672 1436137e-01

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$coef

Estimate Std Error t value

(Intercept) -5052516310 463888041 -10891671826

F7 2455524459 28995612 84686070004

F21 -020132728 04767244 -04223137835

O1F2zenski -3264379964 117720515 -27729915791

F5predmestje -1607824506 245784175 -06541611171

F5manjse mesto 829629531 225739974 03675155600

F5vas -701999244 211851810 -03313633444

F5kmetija -002074509 268493512 -00007726479

F7centGndrZenski -563564466 38435435 -14662627672

Pr(gt|t|)

3 poglavje ndash Analiza variance in linearna regresija 183

(Intercept) 2769457e-01

F7 1087724e-15

F21 6730955e-01

O1F2zenski 5898550e-03

F5predmestje 5135042e-01

F5manjse mesto 7134911e-01

F5vas 7405991e-01

F5kmetija 9993840e-01

F7centGndrZenski 1436137e-01

Seveda bi se na tak nacin dalo izracunati se marsikaj a bomo tu zakljucili

34 Viri za poglabljanje znanja

Za poglabljanje snovi iz tega poglavja so uporabni tudi spletni viri navedeni vpodpodpoglavju 191 (Spletni viri) a jih tu posebej ne navajam Tu izpostavljamsamo enega s pomocjo katerega je mogoce zelo enostavno in hitro najti ustrezneukaze za izvedbo zelenih analiz

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

Za poglabljanje znanja iz analize variance in linearne regresije je primerna vecinaucbenikov s teh podrocij na primer

bull Fox John 2008 Applied regression analysis and generalized linear modelsLos Angeles Sage

bull Kosmelj Blazenka 2005 Analiza odvisnosti za vzorcne podatke LjubljanaEkonomska fakultetaSlovenski ucbenik ki ga uporabljajo na Ekonomski fakulteti Univerze v Lju-bljani

bull Iversen Gudmund R in Helmut Norpoth 2002 Analysis of variance NewburyPark London New Delhi Sage

Vsebina tega poglavja je tudi vsaj deloma pokrita v nekaterih ucbenikih omenjenihv prejsnjem poglavju

Izvedbo analize variance in linearne regresije v R-ju pa pokrivajo sledeci ucbeniki

184 35 Vprasanja za ponavljanje

bull Faraway Julian James 2005 Linear models with R Boca Raton Chapmanamp HallCRC24

Najbolj priporocam prav ta vir

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer25

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer26

Se posebej primerna za tiste ki ze poznajo SPSS ali SAS sicer pa zelo zgoscenaobravnava

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC27

V bolj omejenem obsegu

35 Vprasanja za ponavljanje

1 Katere so predpostavke klasicne enofaktorske analize variance in kako jih pre-verjamo

2 Analizo variance lahko izvedemo z vec funkcijami Katerimi Kaksne so razlikemed njimi oziroma katere so prednosti in slabosti posameznih funkcij

3 Ali je vrstni red faktorjev pri vecfaktorski analizi variance pomemben Poja-snite

4 V kaksni obliki morajo biti podatki ce zelimo (s funkcijo aov) izvesti enofak-torsko analizo variance za odvisne vzorce

5 Ali lahko ce na nekem podatkovju z manjkajocimi podatki veckrat zazenemolinearno regresijo z razlicnimi neodvisnimi spremenljivkami pricakujemo daso vse analize izvedene na istih enotah

6 Kako v linearno regresijo s funkcijo lm vkljucimo nominalne spremenljivkeAli jih moramo predhodno kaj transformirati Na kaj moramo biti pri vklju-cevanju pozorni

7 Kako lahko s funkcijami za linearno regresijo vsaj priblizno ocenimo tudi ne-linearne zveze Kaksne so pomanjkljivosti tega pristopa

8 Kako (s katero funkcijo in kaj uporabimo kot argument) narisemo standardnegrafe za diagnostiko oziroma preverjanje predpostavk linearne regresije

24Starejsa in manj obsezna razlicica knjige je prostodostopna tudi na httpcranr-project

orgdoccontribFaraway-PRApdf25Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani26Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani27Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf

3 poglavje ndash Analiza variance in linearna regresija 185

9 Kako preverimo ali neka nominalna spremenljivka z vec kot dvema razlic-nima vrednostma vpliva na odvisno spremenljivko ce izlocimo vplive ostalihneodvisnih spremenljivk

10 Ali lahko na podlagi standardnega izpisa ene analize ugotavljamo ali so pov-precne vrednosti katerihkoli dveh kategorij nominalne spremenljivke statisticnoznacilno razlicne (pri izbrani stopnji tveganja) ob enakih vrednostih ostalih ne-odvisnih spremenljivk

11 Kako v formuli (argumentu funkcije lm) oznacimo da zelimo vkljuciti inte-rakcijo

12 Navedite vsaj en nacin ocenjevanja multikolinearnosti ki pove tudi pri katerihspremenljivkah se multikolinearnost pojavlja

13 Kaj nam povedo grafikoni delnih ostankov (oziroma component + residualplot) oziroma za kaksen namen jih uporabljamo

187

4 poglavje

Za konec

V tem ucbeniku je precej natancno predstavljena uporaba R-ja tako za opravljanjesplosnih opravil ki se uporabljajo pri vecini analiz (priprava podatkov risanje gra-fov) kot tudi za izvedbo univariatnih in bivariatnih statisticnih analiz ter multipleregresije Sama statisticna teorija je obravnavana le toliko kolikor se mi je zdelonujno potrebno

Ucbenik je sicer prvenstveno namenjen tistim ki ze poznajo osnove statistike radipa bi se naucili le-to izvajati s pomocjo R-ja Poleg tega pa je namenjen tudi vsemki bi radi le spoznali osnovno delovanje R-ja ne glede na to na katerem podrocjuga nameravajo uporabljati Za te je predvsem koristno prvo najsplosnejse in tudinajobseznejse poglavje Naj ucbenik zakljucim s pregledom nekaterih podrocij kjerse R lahko uporablja ter navedbo nekaterih virov za uporabo R-ja na teh podrocjih

Multivariatna analiza je obicajno naslednja stopnja pri ucenju statistike ki sledispoznavanju multiple regresije 28 Kot ze samo ime pove gre pri multivaria-tni analizi predvsem za socasno obravnavo vec spremenljivk Najbolj znanemetode multivariatne analize so razvrscanje v skupine metoda glavnih kom-ponent in faktorska analiza Nekatere metode multivariatne analize so pred-stavljene tudi v Uvodnem primeru Tukaj navajam par relevantnih ucbenikov

bull Everitt Brian 2005 An R and S-PLUS companion to multivariate ana-lysis London Springer

bull Everitt Brian in Torsten Hothorn 2011 An introduction to applied mul-tivariate analysis with R New York Springer

Podatkovno rudarjenje je ime za metode katerih glavni cilj je odkrivanje upo-rabnega veljavnega nepricakovanega in razumljivega znanja iz podatkov Po-gosto se uporablja na ogromnih podatkih pogosto ne-strukturiranih in prido-bljenih iz razlicnih virov Kljub navidezno velikim razlikam se v veliki meri

28Multipla regresija pravzaprav ze sodi v podrocje Multivariatne analize

188

prekriva s statistiko se bolj pa s podrocjem strojnega ucenja (nekateri sma-trajo celo da sta to le dve razlicni imeni za isto podrocje) zato ti podrocjiomenjam skupaj Nekaj ucbenikov ki obravnavajo podatkovno rudarjenje alistrojno ucenje v R-ju

bull Williams Graham J 2011 Data mining with Rattle and R the art ofexcavating data for knowledge discovery New York SpringerTo se posebej priporocam za zacetnike

bull Zhao Yanchang in Yonghua Cen 2013 Data Mining Applications withR 1 izdaja Amsterdam Boston Academic Press

bull Zhao Yanchang 2012 R and Data Mining Examples and Case Studies1 izdaja Amsterdam Academic Press

bull Lantz Brett 2013 Machine Learning with R Packt Publishing

Metode ponovnega vzorcenja so metode ki na podlagi ponovnega vzorcenjaomogocajo preverjanje domnev ali izracun intervalov v primerih ko se spre-menljivke ne porazdeljujejo (niti priblizno) normalno kar obicajno predvide-vajo klasicne metode Spodaj navajam tri ucbenike Phillipa Gooda ki po-krivajo uporabo metod ponovnega vzorcenja se posebej v R-ju na razlicnihnivojih

bull Good Phillip I 2011 Practitioners Guide to Resampling for Data Ana-lysis Data Mining and Modeling Zany BooksZraven je koda tako za R kot za Stato

bull mdashmdashmdash 2012 Introduction to Statistics Through Resampling Methods andR 2 izdaja WileySe posebej primeren za zacetnike in zelo vezan na R

bull mdashmdashmdash 2013 Resampling Methods 3 izdaja BirkhauserR je le eden od obravnavanih programskih jezikovpaketov

Statisticna analiza financnih podatkov je tudi podrocje kjer se pogosto upo-rablja R Kot samo ime pove gre za uporabo statistike in financne matema-tike za analizo financnih podatkov za (med drugim) upravljanje s tveganjinapovedovanje vrednosti financnih kazalnikov upravljanje portfelja Nekajucbenikov ki obravnavajo uporabo R-ja na tem podrocju

bull Carmona Rene 2013 Statistical Analysis of Financial Data in R 2izdaja Springer New York

bull Daroczi Gergely Edina Berlinger Peter Csoka Daniel Havran MartonMichaletzky Zsolt Tulassay Kata Varadi in Agnes Vidovics-Dancs 2013Introduction to R for Quantitative Finance Packt Publishing

bull Arratia Argimiro 2014 Computational Finance An Introductory Coursewith R Atlantis Press

4 poglavje ndash Za konec 189

Biostatistika se ukvarja s statisticno analizo na podrocju biologije medicine in so-rodnih ved Ukvarja se na primer z ugotavljanjem vplivov razlicnih dejavnikovna rast in razvoj rastlin in zivali ter na njihove lastnosti vplivom zdravil innacinov zdravljenja na potek bolezni in se bi lahko nastevali Na tem podrocjusta R njemu soroden S-PLUS med najpogosteje uporabljenimi programskimipaketi Nekaj knjig ki obravnavajo metode s tega podrocja v R-ju

bull Brostrom Goran 2012 Event History Analysis with R Boca RatonCRC Press

bull MacFarland Thomas W 2013 Introduction to Data Analysis and Graphi-cal Presentation in Biostatistics with R 1 izdaja Springer InternationalPublishing

bull Shahbaba Babak 2011 Biostatistics with R 1 izdaja New York Sprin-ger

Analiza ogromnih podatkov in spleta postaja vse bolj pomembno podrocje rdquoBigdatardquo (oz ogromni podatki) je tako imenovani rdquobuzzwordrdquo ki pridobiva na po-menu Gre za analizo podatkov ki jih ne moremo shraniti v delovni spominracunalnika zato so za analizo potrebni posebni pristopi Pogosto se podatkipridobijo neposredno na svetovnem spletu Tudi sicer narasca zanimanje zaanalizo podatkov ki so dostopni na spletu se posebej na socialnih omrez-jih Tudi za ta namen se lahko uporabi R Po eno delo z vsakega podrocja vpovezavi z R-jem navajam spodaj

bull Danneman Nathan in Richard Heimann 2014 Social Media Mining withR Packt Publishing

bull Prajapati Vignesh 2013 Big Data Analytics with R and Hadoop PacktPublishing

To seveda niso vsa podrocja kjer se Ruporablja vendar pa se iz navedenega vidi daje R res uporaben na zelo razlicnih podrocjih lahko bi rekli da je uporaben povsodkjer se uporablja analiza podatkov Ucenje R-ja je torej koristno za vsakega ki senamerava resno ukvarjati z analizo podatkov ne glede na sicersnje podrocje delaUpam da bo pricujoc ucbenik v pomoc vsaj pri zacetnem spoznavanju tega resrdquomocnegardquo programskega okolja

191

Literatura

Arratia Argimiro 2014 Computational Finance An Introductory Course with RAtlantis Press

Brostrom Goran 2012 Event History Analysis with R Boca Raton CRC Press

Buuren Stef in Karin Groothuis-Oudshoorn 2011 MICE Multivariate imputationby chained equations in R Journal of Statistical Software 45 (3) URL http

docutwentenl78938

Buuren Stef van 2012 Flexible imputation of missing data Boca Raton FL CRCPress

Carmona Rene 2013 Statistical Analysis of Financial Data in R 2 izdaja SpringerNew York

Dalgaard Peter 2002 Introductory statistics with R New York Springer

Danneman Nathan in Richard Heimann 2014 Social Media Mining with R PacktPublishing

Daroczi Gergely Edina Berlinger Peter Csoka Daniel Havran Marton MichaletzkyZsolt Tulassay Kata Varadi in Agnes Vidovics-Dancs 2013 Introduction to Rfor Quantitative Finance Packt Publishing

Everitt Brian 2005 An R and S-PLUS companion to multivariate analysis LondonSpringer

Everitt Brian in Torsten Hothorn 2011 An introduction to applied multivariateanalysis with R New York Springer

Faraway Julian James 2005 Linear models with R Boca Raton Chapman ampHallCRC

mdashmdashmdash 2006 Extending the linear model with R generalized linear mixed effectsand nonparametric regression models Boca Raton Chapman amp HallCRC

Ferligoj Anuska 1994 Osnove statistike na prosojnicah Ljubljana samozalozbaZenel Batagelj

192 Literatura

Ferligoj Anuska Tina Kogovsek Willem E Saris Germa Coenders in ValentinaHlebec 2000 Kakovost merjenja egocentricnih socialnih omrezij [datoteka po-datkov] Ljubljana Univerza v Ljubljani Fakulteta za druzbene vede Centerza metodologijo in informatiko [izdelava] 2000 Slovenija Ljubljana Univerza vLjubljani Arhiv druzboslovnih podatkov [distribucija] 2012

Fox John 2008 Applied regression analysis and generalized linear models LosAngeles Sage

Gandrud Christopher 2013 Reproducible research with R and RStudio BocaRaton Chapman amp HallCRC

Gelman Andrew in Jennifer Hill 2006 Data Analysis Using Regression and Multi-levelHierarchical Models Cambridge New York Cambridge University Press

Good Phillip I 2011 Practitioners Guide to Resampling for Data Analysis DataMining and Modeling Zany Books

mdashmdashmdash 2012 Introduction to Statistics Through Resampling Methods and R 2izdaja Wiley

mdashmdashmdash 2013 Resampling Methods 3 izdaja Birkhauser

Holm Sture 1979 A Simple Sequentially Rejective Multiple Test Procedure Scandi-navian Journal of Statistics 6 (2) 65ndash70 URL httpwwwjstororgstable

4615733

IBM 2011 Sum of Squares (IBM SPSS help) URL httppicdheibmcom

infocenterspssstatv20r0m0topiccomibmibmcomdocbannerhtm

Iversen Gudmund R in Helmut Norpoth 2002 Analysis of variance NewburyPark London New Delhi Sage

Jesenko Joze in Manca Jesenko 2007 Multivariatne statisticne metode KranjModerna organizacija

Johnson Richard A in Dean W Wichern 2007 Applied multivariate statisticalanalysis Upper Saddle River Pearson Prentice Hall Pearson Education Interna-tional

Kastelec Damijana in Katarina Kosmelj 2009 Statisticna analiza po-datkov s programoma Excel 2003 in R Ljubljana Biotehniska fa-kulteta URL httpwwwbfuni-ljsifileadmingroups2763C5

A1tudijsko_gradivoSAP_2003pdf

Kosmelj Blazenka 2005 Analiza odvisnosti za vzorcne podatke Ljubljana Eko-nomska fakulteta

Kosmelj Blazenka in Joze Rovan 2007 Statisticno sklepanje Ljubljana Ekonomskafakulteta

Literatura 193

Lantz Brett 2013 Machine Learning with R Packt Publishing

Leisch Friedrich 2002 Sweave Dynamic Generation of Statistical Reports UsingLiterate Data Analysis V Compstat ur Professor Dr Wolfgang Hardle in Profes-sor Dr Bernd Ronz 575ndash580 Physica-Verlag HD URL httplinkspringer

comchapter101007978-3-642-57489-4_89 DOI 101007978-3-642-57489-4 89

Levin Jack James Alan Fox in David R Forde 2013 Elementary Statistics inSocial Research (12th Edition) Pearson

MacFarland Thomas W 2013 Introduction to Data Analysis and Graphical Pre-sentation in Biostatistics with R 1 izdaja Springer International Publishing

Matloff Norman 2011 The Art of R Programming A Tour of Statistical SoftwareDesign San Francisco No Starch Press

Minium Edward W Robert C Clarke in Theodore Coladarci 1999 Elements ofstatistical reasoning New York Wiley

Muenchen Robert A 2011 R for SAS and SPSS users New York Springer

Murrell Paul 2011 R graphics Boca Raton CRC Press

Prajapati Vignesh 2013 Big Data Analytics with R and Hadoop Packt Publishing

Rubin Donald B 1987 Multiple imputation for nonresponse in surveys New YorkWiley

mdashmdashmdash 1996 Multiple Imputation After 18+ Years Journal of the AmericanStatistical Association 91 (434) 473ndash489 doi 1023072291635 URL http

wwwjstororgstable2291635

Shahbaba Babak 2011 Biostatistics with R 1 izdaja New York Springer

Snijders Tom A B in Roel J Bosker 2012 Multilevel analysis an introduction tobasic and advanced multilevel modeling Los Angeles Sage

Tabachnick Barbara G in Linda S Fidell 2007 Using multivariate statisticsBoston PearsonAllyn amp Bacon

Tos Niko Brina Malnar in skupina 2004 Slovensko javno mnenje 20042 Evropskadruzboslovna raziskava [datoteka podatkov] Slovenija Ljubljana Fakulteta zadruzbene vede Center za raziskovanje javnega mnenja in mnozicnih komunikacij[izdelava] 2004 Slovenija Ljubljana Univerza v Ljubljani Arhiv druzboslovnihpodatkov [distribucija] 2009

Venables William N in Brian D Ripley 2000 S programming New York Springer

Verzani John 2005 Using R for introductory statistics Boca Raton Chapman ampHallCRC

194 Literatura

Welch B L 1951 On the Comparison of Several Mean Values An AlternativeApproach Biometrika 38 (34) 330ndash336 doi 1023072332579 URL http

wwwjstororgstable2332579

Wickham Hadley 2009 ggplot2 Elegant Graphics for Data Analysis DordrechtNew York Springer URL httppubliceblibcomEBLPublicPublicView

doptiID=511468

Wilkinson Leland in Graham Wills 2005 The grammar of graphics New YorkSpringer

Williams Graham J 2011 Data mining with Rattle and R the art of excavatingdata for knowledge discovery New York Springer

Wonnacott Thomas H in Ronald J Wonnacott 1990 Introductory statistics NewYork Wiley

Wooldridge Jeffrey M 2002 Econometric analysis of cross section and panel dataCambridge Massachusetts MIT Press

Xie Yihui 2013 Dynamic report generation with r and knitr Boca Raton Cha-pman amp Hall Crc

Zhao Yanchang 2012 R and Data Mining Examples and Case Studies 1 izdajaAmsterdam Academic Press

Zhao Yanchang in Yonghua Cen 2013 Data Mining Applications with R 1 izdajaAmsterdam Boston Academic Press

Zuur Alain F Elena N Ieno in Erik HWG Meesters 2009 A Beginnerrsquos Guideto R New York Springer

  • Predgovor
  • Kazalo
  • Slike
  • Tabele
  • Uvod v R
    • Uvodni primer
    • Osnovne informacije
      • Osnovne racunske operacije
      • Spremenljivke
      • Uporaba funkcij in pomoci
      • Paketki
      • Drugi osnovni podatki
        • Podatkovne strukture
          • Osnovni podatkovni tipi
          • Vektor
          • Nominalne in ordinalne spremenljivke
          • Seznam
          • Matrika
          • Polje ndash Array
          • Podatkovni okvir ndash Data frame
          • Vaje
            • Funkcije in programiranje
              • Nekaj koristnih funkcij
              • Definiranje funkcij
              • Programski tok
              • Vaje
                • Delo z datotekami
                  • Tekstovne datoteke
                  • Shranjevanje in branje objektov
                  • Branje in pisanje datotek drugih programov
                  • Vaje
                    • Risanje
                      • Visokonivojske funkcije za risanje
                      • Nizkonivojske funkcije za risanje
                      • Shranjevanje slik
                      • Vaje
                        • Priprava dokumentov z rezultati iz R-ja
                        • Rešitve vaj
                          • Podatkovne strukture
                          • Funkcije in programiranje
                          • Risanje
                            • Viri za poglabljanje znanja
                              • Spletni viri
                              • Knjižni viri
                                • Vprašanja za ponavljanje
                                  • Univariatna in bivariatna statistika
                                    • Uporabljeni podatki
                                    • Osnovne statistike
                                    • Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja
                                      • Preverjanje domneve o srednji vrednosti in pripadajoci interval zaupanja
                                      • Preverjanje domneve o razliki med srednjima vrednostma na odvisnih vzorcih in pripadajoci interval zaupanja
                                      • Preverjanje domneve o razliki med srednjima vrednostma na neodvisnih vzorcih in pripadajoci interval zaupanja
                                        • Preverjanje domnev o deležih in pripadajoci intervali zaupanja
                                          • Preverjanje domneve o vrednosti deleža in pripadajoci interval zaupanja
                                          • Preverjanje domnev o razliki med deležema na neodvisnih vzorcih in pripadajoci intervali zaupanja
                                            • Frekvencne in kontingencne tabele
                                              • Frekvencne tabele
                                              • Kontingencne tabele
                                              • Povezanost spremenljivk
                                                • Korelacija
                                                • Viri za poglabljanje znanja
                                                • Vprašanja za ponavljanje
                                                  • Analiza variance in linearna regresija
                                                    • Uporabljeni podatki
                                                    • Analiza variance (ANOVA)
                                                      • Enofaktorska analiza variance za neodvisne vzorce
                                                      • Vecfaktorska analiza variance za neodvisne vzorce
                                                      • Enofaktorska analiza variance za odvisne vzorce
                                                        • Linearna regresija
                                                          • Dodatne spremenljivke
                                                          • Bivariatna regresija
                                                          • Nelinearna regresija
                                                          • Multipla regresija
                                                          • Vkljucevanje nominalnihordinalnih spremenljivk
                                                          • Interakcije med spremenljivkami
                                                          • Preverjanje predpostavk
                                                          • V razmislek
                                                          • Izracun na roke
                                                            • Viri za poglabljanje znanja
                                                            • Vprašanja za ponavljanje
                                                              • Za konec
                                                              • Literatura
Page 3: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji

CIP - Katalozni zapis o publikacijiNarodna in univerzitetna knjiznica Ljubljana

004423111(0758)(00342)

ZIBERNA AlesOsnovna statistiena analiza v R-ju [Elektronski vir] Ales Ziberna - El

knjiga - Ljubljana Fakulteta za druzbene vede Zalozba FDV 2016

ISBN 978-961- 235-779- 5 (pdf)

284426496

Moji druzini

Zeni Tamari za ljubezen in podporo

Hcerkam Hani Zivi in Zoji ker so svojo otrosko igrivostjo

moji soncki

i

Predgovor

Pricujoci ucbenik je namenjen studentom ki ze poznajo osnove univariatne in bi-variatne statistike ter multiple regresije in se zelijo nauciti omenjene metode upo-rabljati v programskem paketu R ali pa zelijo predvsem spoznati osnove uporabestatisticnega programskega paketa R V ucbeniku je torej precej natancno pred-stavljena uporaba R-ja tako za opravljanje splosnih opravil ki se uporabljajo privecini analiz (priprava podatkov risanje grafov) kot tudi za izvedbo univariatnihin bivariatnih statisticnih analiz ter multiple regresije sama statisticna teorija pa jeobravnavana le toliko kolikor se mi je zdelo glede na predznanje studentov (vec otem v naslednjem odstavku) nujno potrebno

V prvi vrsti je ucbenik namenjen studentom predmetov Statistika in analiza podat-kov na magistrskem programu Druzboslovna informatika na Fakulteti za druzbenevede (v nadaljevanju FDV) Univerze v Ljubljani (v nadaljevanju UL) Tehnicni ininformacijski sistemi na dodiplomskem programu Druzboslovna informatika na FDVUL in Multivariatna analiza na magistrskem programu Uporabna statistika na UL(medfakultetni program) njegova uporaba pa se nacrtuje tudi pri predmetu Osnovestatisticne obdelave s pomocjo informacijske tehnologije na Fakulteti za socialnodelo UL Tako ucbenik predvideva znanje opisne statistike in statisticnega sklepanjas podrocij univariatne in bivariatne statistike ter multivariatne regresije v obsegukot se obravnava pri predmetih Statistika in Statistika II z racunalnisko analizo po-datkov na FDV UL Obravnavane metode zato niso sirse predstavljene razen namestih kjer potrebno predznanje presega tisto kara so studenti obravnavali pri prejomenjenih predmetih (predvsem pri neparametricnih testih)

Ucbenik predvsem njegovo prvo najobseznejse poglavje je namenjen tudi vsem kibi radi spoznali R ne glede na to na katerem podrocju ga bodo kasneje uporabljaliR se namrec lahko uporablja na mnogo podrocjhi od ze omenjene osnovne stati-sticne analize do multivariatne analize biostatistike statisticne analize financnihpodatkov podatkovnega rudarjenja strojnega ucenja racunalniske analize besedilavtomatskega zajema podatkov s spleta

R (httpwwwr-projectorg) je odprtokodno programsko okolje za statisticneanalize R ima kar nekaj lastnosti ki ga naredijo zelo privlacnega

bull je brezplacen

ii Predgovor

bull podpira vecino statisticnih metod (preko paketkov)

bull se veliko uporablja v raziskovanju (instituti univerze )

bull deluje na vecini operacijskih sistemov (Windows Mac OSOS X Linux )

bull omogoca programiranje

bull je zelo primeren za simulacije in generiranje slucajnih spremenljivk

Medtem ko vecina studentov ceni predvsem prvo izmed nastetih lastnosti (brezplac-nost) pa je njegov razcvet v veliki meri povezan s preostalimi

Predvsem za zacetnike pa ima R tudi nekaj slabosti Glavna slabost je da v osnovnirazlicici nima graficnega vmesnika (vsaj ne v klasicnem smislu kjer bi preko meni-jev in oken zahtevali izvedbo analiz) zato vsaj na zacetku ucenje poteka pocasnejekot pri programih z graficnim vmesnikom (na primer SPSS PSPP Stata ) Tuje sicer treba omeniti da obstaja tudi nekaj graficnih vmesnikov za R med ka-terimi bi izpostavil predvsem Rcommander (httpwwwrcommandercom) sajje najobseznejsi in omogoca izvajanje najvecjega nabora analiz se posebej s po-mocjo velikega stevila paketkov ki razsirjajo njegovo funkcionalnost Tega vme-snika kot receno v tem ucbeniku ne obravnavam je pa vsaj za osnovno stati-sticno analizo ta opisan v ucbeniku Kastelec Damijana in Katarina Kosmelj 2009Statisticna analiza podatkov s programoma Excel 2003 in R Ljubljana Bioteh-niska fakulteta URL httpwwwbfuni-ljsifileadmingroups2763C5

A1tudijsko_gradivoSAP_2003pdf

V ucbeniku se omejim na uporabo preko ukazne vrstice Glavni razlog za to je dalahko le s tako uporabo izkoristimo vse prednosti R-ja taka uporaba pa je tudi nujnamed drugim za analize meri simulacije avtomatsko izdelavo porocil ter mnogo dru-gih opravil

Ucbenik je razdeljen na tri osnovna poglavja Prvo je Uvod v R in je namenjenospoznavanju R-ja Zacne se z uvodnim primerom statisticnih analiz nadaljuje pase z razmeroma sistematicnim pregledom podrocij ki so pomembna za uporabotega programskega okolja Podrocja vsebujejo tako osnovne podatkovne strukturein osnove programiranja kot tudi delo z datotekami risanje in pripravo porocil napodlagi opravljenih analiz Pravzaprav to poglavje vsebuje tiste rdquonestatisticnerdquo vse-bine ki so potrebne za osnovno uporabo R-ja Poznavanje vecine izmed teh vsebin(z izjemo programiranja v R-ju ndash podpodpoglavji 142 in 143) je kljucno za ucin-kovito izvajanje in porocanje o takorekoc vseh statisticnih analizah in torej tudi zarazumevanje preostalih dveh poglavij Pri tem se prvo poglavje v veliki meri lahkobere rdquopo potrebirdquo se pravi kot prirocnik kjer se prebere doloceno poglavje ko sepokaze potreba po posameznih znanjih Z vidika uporabe R-ja je to pravzapravnajzahtevnejse poglavje zato vsebuje tudi vrsto vaj z resitvami (resitve so na koncupoglavja)

Predgovor iii

Drugo poglavje je vsebinsko najsirse saj v njem obravnavamo kar veliko tako univari-atnih kot bivariatnih metod Pod bivariatne metode sicer spadata tudi enofaktorskaanaliza variance in bivariatna regresija vendar pa ju skupaj z njunima multivari-atnima razlicicama obravnavamo loceno v naslednjem poglavju V tem poglavjuobravnavamo tako osnovne opisne statistike kot tudi inferencno statistiko Znotrajinferencne statistike obravnavamo pri srednjih vrednostih tako izracune intervalovzaupanja kot preverjanje domnev pri bivariatni povezanosti pa le preverjanje do-mnev Pri vecini metod in statistik predstavljena le uporaba v R-ju in podaniprimeri izjema so neparametricni testi kjer so obravnavane metode tudi teoreticnopredstavljene

V tretjem poglavju sta predstavljeni analiza variance in linearna regresija Pri obehzacnemo z najenostavnejsim (bivariatnim) primerom nato pa dodajamo dodatneelemente (vec neodvisnih spremenljivk interakcije med ucinki ) Pri analizi variancpredstavimo tudi njeno neparametericno razlicico Pri obeh metodah je posebnapozornost namenjena tudi preverjanju predpostavk obeh metod

Vsako od treh glavnih poglavji se zakljuci z viri za poglabljanje in vprasanji zaponavljanje Na koncu ucbenika sledi se sklepno poglavje v katerem povzamemokaj vse je bilo v ucbeniku obdelano Nekaj podpoglavij vsebuje tudi zahtevnejsosnov ki za enostavno uporabo ni potrebna Naslovi takih podpoglavij so oznaceniz zvezdico ()

Velik del ucbenika predstavlja tudi prikaz dela v R-ju s pomocjo izpisov iz rdquokonzolerdquooziroma ukazne vrstice Izpisi iz ukazne vrstice so vizualno loceni z zaobljenimiokvirji s sivim ozadjem in z uporabo drugacne pisave in sicer posevne pisave

s fiksno sirino crk (Curier)1 za ukaze in obicajne pisave s fiksno sirino

crk za izpise Vsaka vrstica kjer nastopa ukaz se zacne z znakom gt Ukaz se lahkonadaljuje cez vec vrstic V tem primeru se naslednja vrstica zacne z dvema presled-koma Vrstice ki se ne zacnejo z znakom gt in niso nadaljevanje ukaza iz prejsnjevrstice vsebujejo izpise R-jevih funkcij V R-ju je komentar vse kar sledi znaku pojavlja pa se lahko na zacetku vrstice ali kasneje Vsa R-jeva koda uporabljena vtem ucbeniku je na voljo na spletnem naslovu www2arnessi~aziber4R

Primer izpisa iz R-ja s komentarjem je videti takole

gt 2 + 1 tole je ukaz za sestevanje dveh stevil

[1] 3

V ucbeniku uporabljam se dve posebni graficni obliki Prva je opozorilo

1 Enaka pisava se sicer uporablja tudi znotraj besedila za R-jevo kodo

iv Predgovor

Opozorilo

V opozorilih opozarjam na se posebej pomembne stvari katerih neupostevanjelahko vodi do resnih in pogosto nepricakovanih posledic

Druga oblika so dodatna pojasnila

Dodatna pojasnila so pojasnila ki jih lahko vecina bralcev brez hujsih posledic izpustivseeno pa lahko pripomorejo k boljsem razumevanju snovi

Pri pripravi ucbenika je bil uporabljen R razlicice 322 Razlicico R-ja lahko pre-verite med drugim z izpisom spremenljivke Rversionstring

gt Rversionstring

[1] R version 322 (2015-08-14)

v

Kazalo

Predgovor i

Kazalo v

Slike viii

Tabele x

1 Uvod v R 111 Uvodni primer 112 Osnovne informacije 14

121 Osnovne racunske operacije 14122 Spremenljivke 15123 Uporaba funkcij in pomoci 16124 Paketki 18125 Drugi osnovni podatki 19

13 Podatkovne strukture 20131 Osnovni podatkovni tipi 20132 Vektor 22133 Nominalne in ordinalne spremenljivke 26134 Seznam 27135 Matrika 30136 Polje ndash Array 35137 Podatkovni okvir ndash Data frame 35138 Vaje 38

14 Funkcije in programiranje 38141 Nekaj koristnih funkcij 39142 Definiranje funkcij 43143 Programski tok 44144 Vaje 47

15 Delo z datotekami 47151 Tekstovne datoteke 48152 Shranjevanje in branje objektov 50153 Branje in pisanje datotek drugih programov 51

vi Kazalo

154 Vaje 5516 Risanje 56

161 Visokonivojske funkcije za risanje 56162 Nizkonivojske funkcije za risanje 58163 Shranjevanje slik 60164 Vaje 62

17 Priprava dokumentov z rezultati iz R-ja 6318 Resitve vaj 66

181 Podatkovne strukture 66182 Funkcije in programiranje 67183 Risanje 70

19 Viri za poglabljanje znanja 71191 Spletni viri 71192 Knjizni viri 73

110 Vprasanja za ponavljanje 75

2 Univariatna in bivariatna statistika 7721 Uporabljeni podatki 7722 Osnovne statistike 7823 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali za-

upanja 86231 Preverjanje domneve o srednji vrednosti in pripadajoci inter-

val zaupanja 88232 Preverjanje domneve o razliki med srednjima vrednostma na

odvisnih vzorcih in pripadajoci interval zaupanja 91233 Preverjanje domneve o razliki med srednjima vrednostma na

neodvisnih vzorcih in pripadajoci interval zaupanja 9524 Preverjanje domnev o delezih in pripadajoci intervali zaupanja 98

241 Preverjanje domneve o vrednosti deleza in pripadajoci intervalzaupanja 99

242 Preverjanje domnev o razliki med delezema na neodvisnihvzorcih in pripadajoci intervali zaupanja 101

25 Frekvencne in kontingencne tabele 103251 Frekvencne tabele 103252 Kontingencne tabele 105253 Povezanost spremenljivk 109

26 Korelacija 11227 Viri za poglabljanje znanja 11828 Vprasanja za ponavljanje 119

3 Analiza variance in linearna regresija 12131 Uporabljeni podatki 12132 Analiza variance (ANOVA) 122

321 Enofaktorska analiza variance za neodvisne vzorce 123

Kazalo vii

322 Vecfaktorska analiza variance za neodvisne vzorce 131323 Enofaktorska analiza variance za odvisne vzorce 138

33 Linearna regresija 141331 Dodatne spremenljivke 141332 Bivariatna regresija 143333 Nelinearna regresija 147334 Multipla regresija 150335 Vkljucevanje nominalnihordinalnih spremenljivk 155336 Interakcije med spremenljivkami 160337 Preverjanje predpostavk 163338 V razmislek 174339 Izracun rdquona rokerdquo 176

34 Viri za poglabljanje znanja 18335 Vprasanja za ponavljanje 184

4 Za konec 187

Literatura 191

viii

Slike

11 Strukturni stolpci in krog za spol 312 Strukturni stolpci za povezanost dveh nominalnih spremenljivk 413 Histograma za ekstravertiranost in emocionalno stabilnost 514 Razsevni grafikon za ekstravertiranost in emocionalno stabilnost 815 Dendrogram ndash Wardovo razvrscanje s kvadrirano evklidsko razdaljo

na podlagi spremenljivk emocionalne stabilnosti 1016 Graf povprecij po skupinah dobljenih z metodo voditeljev 1217 Resitev razvrscanja v prostoru glavnih komponent 1418 Stirje obrazi 1919 Strutkutna stolpca in krog na eni sliki 58110 Slika z veliko dodanimi elementi 60111 Resitev vaje 1 (Risanje) 70112 Resitev vaje 2 (Risanje) 72113 Resitev vaje 3 (Risanje) 73

21 Porazdelitev bruto place 8922 Porazdelitev zaupanja v Drzavni zbor in Evropski parlament 9223 Porazdelitev razlike med zaupanjem v Drzavni zbor in zaupanjem v

Evropski parlament 9324 Porazdelitev bruto place pri moskih in zenskah 9625 Razsevni grafikon ndash izobrazba in bruto placa 11326 Razsevni grafikoni med vsemi spremenljivkami ki merijo zaupanje v

institucije 115

31 Porazdelitve uporabljenih spremenljivk 12532 Porazdelitev bruto place po krajih bivanja 12733 Porazdelitve uporabljenih spremenljivk 13234 Porazdelitev bruto place po krajih bivanja in spolu 13435 Porazdelitve dodatnih spremenljivk 14336 Odnos med bruto placo in stevilom let solanja 14437 Porazdelitev rezidualov 14638 Diagnosticni grafikoni za linearno regresijo 14739 Exponentna zveza ndash transformacija 149310 Ocenjevanje nelinearne zveze 151

Slike ix

311 Odnos med bruto placo in tipicnim stevilom delovnih ur na teden 151312 Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk 154313 Porazdelitev rezidualov 155314 Diagnosticni grafikoni za linearno regresijo 156315 Diagnosticni grafikoni za linearno regresijo ndash model z interakcijo 164316 Histogram rezidualov 165317 Grafikon za ocenjevanje heteroskedasticnosti 165318 Grafikoni delnih ostankov 172319 Ceres grafikoni 173320 Diagnosticni grafikoni za linearno regresijo 175321 Odnos med izobrazbo in bruto placo po spolu 177

x

Tabele

11 Frekvencna tabela za spol 212 Hierarhicno razvrscanje - povprecja po skupinah 1113 Metoda voditeljev ndash povprecja po skupinah 1214 Primerjava koncnih razvrstitev po enotah 13

1

1 poglavje

Uvod v R

Prvo poglavje je namenjeno spoznavanju R-ja Zacne se z uvodnim primerom sta-tisticnih analiz nato pa se nadaljuje z razmeroma sistematicnim pregledom podro-cij ki so pomembna za uporabo tega programskega okolja Sistematicni pregledse zacne z osnovnimi informacijami kjer velja se posebej izpostaviti navodila zauporabo funkcij in pomoci ter paketkov Tem sledi pregled podatkovnih strukturtorej osnovnih nacinov na katere lahko v R-ju shranjujemo podatke in rezultate (injih nato nadalje obdelujemo) Nadaljuje se s pregledom nekaterih (s statisticnegavidika) najkoristnejsih funkcij za napredne uporabnike pa tudi pravila za pisanjenovih funkcij in napotki za programiranje Zelo pomembno podpoglavje je tudi pod-poglavje o delu z datotekami saj preko le teh rdquoberemordquo in shranjujemo podatke terpogosto tudi rezultate statisticnih obdelav R je znan tudi po zelo kvalitetnih grafihin prav risanje ter shranjevanje grafov in drugih slik je opisano v naslednjem podpo-glavju Vsebinsko se poglavje zakljuci s pregledom nacinov za pripravo dokumentovz rezultati analiz iz R-ja kjer se osredotocimo na izvoz tabel v dokumente kompa-tibilne z urejevalniki besedila Ker je to poglavje z vidika uporabe R-ja pravzapravnajzahtevnejse poglavje vsebuje tudi vrsto vaj z resitvami (po podpoglavjih) ki sopodane na koncu poglavja

11 Uvodni primer

Za predstavitev nacina analize z R-jem zacnimo z realnim primerom Primer pri-kazuje uporabo metod predstavljenih v tem ucbeniku poleg tega pa prikazuje tudiuporabo multivariatnih metod z R-jem

Podatki na katerih temelji primer so bili zbrani v okviru raziskave Kakovost mer-jenja egocentricnih socialnih omrezij (Ferligoj in drugi 2000) Podroben opis raz-iskave je na voljo na spletni strani Arhiva druzboslovnih podatkov (ADP) (httpwwwadpfdvuni-ljsiopisiegoomr00) s katere je (po predhodni registra-

2 11 Uvodni primer

ciji) mogoce tudi prenesti podatke Za ta primer sem prenesel podatke v SPSS-ovemformatu (obicajnem ne rdquoportablerdquo (prenosljivem) torej datoteka s koncnico rdquosavrdquo)saj ga R dobro bere Kot sicer natancneje obravnavamo v podpodpoglavju 153lahko R bere in zapisuje tudi podatke izv mnogih-o drugih formatov med kate-rimi posebej izpostavim Statin format (predvsem zaradi prirocnosti pri pisanju) Vpodpodpoglavju 153 so opisani tudi razlogi za uporabo SPSS-ovega formata v temucbeniku in napotki v primeru da bralec bere podatke iz kaksnega drugega formata

Pred zacetka dela v R-ju preberemo funkcije (prej pripravljene iz datoteke rdquoUcbenikR-funkcijeRrdquo) in podatke Ker zelimo analizo izvesti samo na posameznikih ki so biliosebno anketirani opravimo se izbor enot

gt nalozimo datoteko s posebej pripravljenimi funkcijami

gt source(UcbenikR-funkcijeR)

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign)

gt preberemo podatke

gt ego1lt-readspss(egoomr00_f2savtodataframe=TRUE

usevaluelabels = FALSEusemissings=TRUE)

gt izbor samo tistih ki so bili osebno anketirani

gt egolt-ego1[ego1$MODE==1]

gt kopiranje atributov (zaradi prejsne izbire enot)

gt for(i in names(ego1))attributes(ego[i])lt-attributes(ego1[i])

Naredimo se frekvencno tabelo (lepo izpisana z LATEX-om je v tabeli 11) in grafa(slika 11) Najprej frekvencno tabelo

gt ego$E_SPOLlt-makeFactorLabels(ego$E_SPOL)

gt table(ego$E_SPOL)

moski zenski

267 364

gt frekTab(ego$E_SPOLdec=1)

Frekvenca Kum frek Kumulativni

moski 267 267 423 423

zenski 364 631 577 1000

Tabela 11 Frekvencna tabela za spol

Frekvenca Kum frek Kumulativni moski 267 267 423 423zenski 364 631 577 1000

Sedaj pa narisimo se strukturna stolpca in krog

1 poglavje ndash Uvod v R 3

Slika 11 Strukturni stolpci in krog za spol

moški ženski

Strukturna stolpca

050

150

250

350

moški

ženski

Strukturni krog

gt par(mfrow=c(12)) dva grafa na eno stran

gt barplot(table(ego$E_SPOL)main=Strukturna stolpca)

gt pie(table(ego$E_SPOL)main=Strukturni krog)

gt par(mfrow=c(11))

Delamo lahko tudi dvodimenzionalne tabele in jih na enostaven nacin narisemo (slika12)

gt ego$IZOBlt-makeFactorLabels(ego$IZOB)

gt tbllt-table(spol=ego$E_SPOLizobrazba=ego$IZOB)

gt tbl

izobrazba

spol nedokoncana osnovna sola osnovna sola

moski 1 18

zenski 5 36

izobrazba

spol poklicna sola stiriletna srednja sola visja sola

moski 44 110 28

zenski 44 157 40

izobrazba

spol visoka sola magisterij doktorat

moski 55 3 8

zenski 75 5 2

gt plot(tbllas=1 main=)

4 11 Uvodni primer

Slika 12 Strukturni stolpci za povezanost dveh nominalnih spremenljivk

spol

izob

razb

a

moški ženskinedokončana osnovna šolaosnovna šola

poklicna šola

štiriletna srednja šola

višja šola

visoka šola

magisterijdoktorat

Sledi transformacija spremenljivk ndash rdquoobracanjerdquo lestvice in izracun Likertovih lestvicza ekstravertiranost in emocionalno stabilnost

gt seznam spremenljivk ki jim je treba obrniti lestvico

gt spremZaRekodlt-c(O4 O7 O9 O10 O11 O12

O13 O14 O15 O17 O18 O19 O20)

gt imena za nove spremenljivke

gt rekodiraneSpremlt-paste(spremZaRekodRsep=)

gt obracanje vrednosti

gt ego[rekodiraneSprem]lt- 6 - ego[spremZaRekod]

gt spremEkstlt-c(O1 O2 O5 O8 O9R O12R O14R

O15R O16 O18R)

gt spremEmoclt-c(O3 O4R O6 O7R O10R O11R

O13R O17R O19R O20R)

gt uvedemo novi spremenljivki

gt ego$ekst_sco lt- apply(ego[spremEkst]1sum)

gt ego$emoc_sco lt- apply(ego[spremEmoc]1sum)

1 poglavje ndash Uvod v R 5

Porazdelitev teh dveh spremenljivk je prikazana na sliki 13 Porazdelitev obehspremenljivk je priblizno normalna se pa nakazuje rahla asimetrija v levo

gt par(mfrow=c(12)) dva grafa na eno stran

gt hist(ego$ekst_sco xlab=ekstravertiranost main=

freq=FALSEylab=gostota)

gt dodamo normalno krivuljo

gt curve(dnorm(xmean=mean(ego$ekst_sconarm=TRUE)

sd=sd(ego$ekst_sconarm=TRUE))add=TRUExpd=NA)

gt raje z gostoto

gt hist(ego$emoc_sco xlab=emocionalna stabilnost main=

freq=FALSEylab=gostota)

gt dodamo normalno krivuljo

gt curve(dnorm(xmean=mean(ego$emoc_sconarm=TRUE)

sd=sd(ego$emoc_sconarm=TRUE))add=TRUExpd=NA)

gt xpd=NA uporabimo da se vidi tudi vrh krivulje

gt par(mfrow=c(11))

Slika 13 Histograma za ekstravertiranost in emocionalno stabilnost

ekstravertiranost

gost

ota

10 20 30 40 50

000

002

004

emocionalna stabilnost

gost

ota

10 20 30 40 50

000

001

002

003

004

Izracunajmo se opisne statistike po skupinah glede na spol

gt opisne statistike po skupinah

gt ekstravertiranost

gt by(ego$ekst_sco INDICES=ego$E_SPOL

6 11 Uvodni primer

FUN = function(x)c(povprecje=mean(xnarm=TRUE)

sd=sd(xnarm=TRUE)n=sum(isna(x))))

ego$E_SPOL moski

povprecje sd n

34159696 7711717 263000000

---------------------------------------------

ego$E_SPOL zenski

povprecje sd n

34659091 8031826 352000000

gt emocionalna stabilnost

gt by(ego$emoc_sco INDICES=ego$E_SPOL

FUN = function(x)c(povprecje=mean(xnarm=TRUE)

sd=sd(xnarm=TRUE)n=sum(isna(x))))

ego$E_SPOL moski

povprecje sd n

36306818 8223621 264000000

---------------------------------------------

ego$E_SPOL zenski

povprecje sd n

33986111 9184723 360000000

Pri ekstravertiranosti (prvi izpis) imajo zenske malce vecje povprecje vendar pa stasi povprecji precej podobni Pri emocionalni stabilnosti imajo moski vecje povprecjePri obeh spremenljivkah pa je variabilnost med zenskami vecja kot med moskimiV nadaljevanju za emocionalno stabilnost preverimo domnevo da sta aritmeticnisredini v obeh skupinah (pri obeh spolih) enaki

gt EMOCIONALNA STABILNOST

gt testiramo enakost varianc (vec razlicnih testov)

gt vartest(emoc_sco~E_SPOLdata=ego)

F test to compare two variances

data emoc_sco by E_SPOL

F = 080167 num df = 263 denom df = 359 p-value =

005669

alternative hypothesis true ratio of variances is not equal to 1

95 percent confidence interval

06411573 10063491

sample estimates

ratio of variances

0801667

gt ce zelimo klasicen t-test (predpostavka enakih varianc)

gt ttest(emoc_sco~E_SPOL data=egovarequal = TRUE)

1 poglavje ndash Uvod v R 7

Two Sample t-test

data emoc_sco by E_SPOL

t = 32579 df = 622 p-value = 0001184

alternative hypothesis true difference in means is not equal to 0

95 percent confidence interval

09218292 37195850

sample estimates

mean in group moski mean in group zenski

3630682 3398611

Ker je ena izmed predpostavk klasicnega t-testa tudi enakost varianc po skupinahsmo najprej preverili to domnevo Domneve pri 5-odstotnem tveganju ne moremozavrniti zato izvedemo klasicno razlicico t-testa Ta nam pove da lahko pri tveganjupriblizno 01 trdimo da so moski (v Ljubljani) bolj emocionalno stabilni kotzenske

Izracunajmo se korelacijo med ekstravertiranostjo in emocionalno stabilnostjo pre-verimo domnevo da je ta korelacija enaka 0 ter prikazimo odnos z njima na razsev-nem grafikonu Ta je prikazan na sliki 14 kjer smo z razlicnimi barvami in znakioznacili tudi spol

gt plot(jitter(emoc_sco)~jitter(ekst_sco)

pch=asnumeric(E_SPOL)col=asnumeric(E_SPOL)data=ego

ylab=emocionalna stabilnostxlab=ekstravertiranost)

gt jitter malce razprsi tocke da se ne prekrivajo

gt legend(x=30y=525xjust=05yjust=0legend=c(moski

zenski)pch=12col=12horiz = TRUEtitle=Spol

xpd=TRUE)

Izracunamo se korelacijo med novima spremenljivkama in preverimo domnevo daje korelacija enaka 0

gt Pearsonov koeficient korelacije

gt cor(ego[c(emoc_scoekst_sco)]method = pearson

use=pairwisecompleteobs)

emoc_sco ekst_sco

emoc_sco 10000000 02278617

ekst_sco 02278617 10000000

gt cortest(y=ego$emoc_scox=ego$ekst_sco)

Pearsons product-moment correlation

data ego$ekst_sco and ego$emoc_sco

t = 57703 df = 608 p-value = 1261e-08

8 11 Uvodni primer

Slika 14 Razsevni grafikon za ekstravertiranost in emocionalno stabilnost

10 20 30 40 50

1020

3040

50

ekstravertiranost

emoc

iona

lna

stab

ilnos

t

Spol

moški ženski

alternative hypothesis true correlation is not equal to 0

95 percent confidence interval

01512119 03017878

sample estimates

cor

02278617

gt pravzarav bi bil dovolj samo ta drugi ukaz

gt prednost prvega je da bi lahko izracunali tudi korelacijo

gt med vec spremenljivkami

Korelacija je sicer razmeroma sibka in pozitivna a mocno statisticno znacilna (p lt0001)2 V povprecju imajo osebe z visjo ekstravertiranostjo tudi visjo emocionalnostabilnost in obratno a ta povezanost je kot receno sibka

2 Tako nizka stopnja tveganja (rdquomocnardquo statisticna znacilnost) je predvsem posledica velikegavzorca

1 poglavje ndash Uvod v R 9

Nadaljujemo z multivariatno analizo ndash razvrscanjem v skupine Multivariatne ana-lize sicer v ucbeniku ne obravnavam3 V uvodni primer sem jo vkljucil da bi vsajnakazal da R omogoca se bistveno vec kot je predstavljeno v tem ucbeniku

Zaceli bomo z razvrscanje v skupine Najprej izlocimo enote z manjkajocimi vre-dnostmi nato izracunamo kvadrirano evklidsko razdaljo in jo uporabimo za hierar-hicno razvrscanje z Wardovo metodo Na podlagi dobljenega dendrograma na sliki15 ocenimo da v podatkih nastopata 2 skupini

gt Hierarhicno razvrscanje v skupine

gt odstranimo enote z manjkajocimi vrednostmi

gt emoclt-naomit(ego[spremEmoc])

gt standardiziramo podatke s funkcijo scale

gt Zemoclt-scale(emoc)

gt izracunamo evklidsko razdaljo na standardiziranih podatkih

gt dlt-dist(Zemoc)

gt za kvadrirano evklidsko razdaljo jo kvadriramo

gt d2lt-d^2

gt uporabimo Wardovo metodo

gt wardlt-hclust(d=d2method=wardD)

gt narisemo dendrogram

gt plot(ward)

gt abline(h=1500 col=red)

Ti dve skupini shranimo in na nestandardiziranih spremenljivkah izracunamo pov-precja po skupinah Povprecja so prikazana v tabeli 12

gt izberemo 2 skupini (in shranimo pripadnost)

gt wardCluK2lt-cutree(wardk=2)

gt stevilo enot po skupinah

gt table(wardCluK2)

wardCluK2

1 2

352 272

gt izracunamo povprecja po skupinah

gt aggregate(x=emoc by=list(wardCluK2) FUN=mean)

Group1 O3 O4R O6 O7R O10R

1 1 3022727 2428977 3892045 2650568 2448864

2 2 4000000 4485294 4621324 4139706 4117647

3 Obstaja veliko splosnih ucbenikov za multivariatno analizo (na primer Johnson in Wichern 2007Tabachnick in Fidell 2007 Jesenko in Jesenko 2007) uporaba multivariatne analize v R-ju pa jepredstavljena predvsem v Everitt (2005) Everitt in Hothorn (2011)

10 11 Uvodni primer

Slika 15 Dendrogram ndash Wardovo razvrscanje s kvadrirano evklidsko razdaljo napodlagi spremenljivk emocionalne stabilnosti

543

627

590

880

755

1010 43

279

810

15 754

905

892

999

13 842

454

480

476

909

706

746

776

793

894

579

854

491

559

984

533

716

525

977

536

481

873

441

783

884

1025

857

572

478

938

692

861

968

841

663

1012

927

900

790

722

687

531

563

805

777

903

895

542

682

761

887

464

492

465

988

530

571

958

562

736

983

473

631

726

752

908 2

615

956

1003

442

498

742

788 15 815

494

768

643

851

775

493

767

883 7

753

450

637

890

518

630

676

803

636

665

824

526

506

923

1027

639

975

845

1017 70

272

943

783

643

457

3 980

774

354

654

914 51

067

786

752

746

710 49

661

172

453

755

365

874

196

984

773

177

8 564

269

884

910

01 656

634

930

797

598

673

732

564

834

468

647

1002

1028

462

769

757

813

850

539

906

858

863

779

978

709

575

548

955

689

1013

1009 99

796

293

791

591

491

088

187

184

378

169

368

368

067

164

963

560

460

358

643

052

042

656

192

845

846

395

298

682

696

010

07 678 6

532

691

951

648

1032

727

902

932

581

852

904

699

965

874

998

982

684

972

650

891

948

552

594

1033 63

878

292

189

743

985

976

584

499

570

092

460

176

056

066

495

496

386

252

391

244

471

250

559

712 57

897

997

199

651

964

586

088

953

574

862

193

582

859

266

869

561

651

292

052

987

642

210

16 427

547

515

591

738

947

580

582

632

893

882

608

720

555

772

1030

557

654

740

538

655

925

870

934

607

808

756

1000 56

870

463

375

999

173

551

754

159

577

452

879

688

546

910

08 605

714

945

585

830

451

600

501

846 1

503

715

1019

589

879

1024

721

919

521

1022 71

193

698

550

487

557

076

642

174

479

169

450

280

189

845

276

469

097

098

042

558

778

579

573

396

160

281

451

196

610

04 475

747

435

822

449

474

990

792

438

701

644

869

551

820

878

703

718

868

810

939

457

943

460

576

544

812

508

827

610

669

967

922

1011 70

793

180

056

969

762

086

583

244

654

079

981

751

376

349

794

191

692

967

944

062

666

675

157

780

948

688

893

383

188

680

657

410

20 609

588

661

524

696

829

428 8

821 16

447

949

907

1018 67

064

666

073

094

447

772

870

577

194

653

471

759

383

562

981

687

2 390

1 461

848

997

489

982

595

975

087

791

194

210

21 472

993

479

653

973

786

819

856

839

1029 54

562

878

499

455

081

1 1110

2342

494

0 1770

886

645

943

362

564

168

866

745

386

444

396

446

661

473

751

691

767

471

351

483

378

948

771

950

099

268

591

883

882

310

06 509

484

651

495

981

606

675

499

483

749

420

624

802

583

662

686

987

456

596

436

762

773

840

855

565

848

913

926

976

558

853

950

471

710

681

780

490

739

455

989

461

584

725

522

612

448

507

1031

1026

770

1005 64

065

265

944

548

874

562

379

465

762

280

461

978

755

473

455

695

748

275

842

948

543

161

767

256

759

983

795

310

14

050

010

0015

0020

0025

00

Cluster Dendrogram

hclust ( wardD)d2

Hei

ght

O11R O13R O17R O19R O20R

1 2306818 3301136 2974432 3536932 2758523

2 3746324 3786765 4220588 4639706 4518382

Dobili smo eno skupino s srednjo in eno z visoko emocionalno stabilnostjo Posku-simo se ali lahko z metodo voditeljev dobimo boljsi rezultat Povprecja po skupinahna nestandardiziranih spremenljivkah so prikazana v tabeli 13 in na sliki 16

gt Razvrscanje v skupine z metodo voditeljev

gt kMeansR10lt-kmeans(Zemoc centers=2 itermax = 50 nstart = 10)

gt ponovimo kar 10-krat (da se izognemo lokalnim minimumom)

gt koncni voditelji na standardiziranih spremenljivkah

gt (te smo uporabili za razvrscanje)

gt kMeansR10$centers

O3 O4R O6 O7R O10R

1 02807587 05873913 02360699 05311423 06126683

1 poglavje ndash Uvod v R 11

Tabela 12 Hierarhicno razvrscanje - povprecja po skupinah

1 2O3 302 400

O4R 243 449O6 389 462

O7R 265 414O10R 245 412O11R 231 375O13R 330 379O17R 297 422O19R 354 464O20R 276 452

2 -03449321 -07216522 -02900287 -06525462 -07527067

O11R O13R O17R O19R O20R

1 03711498 02967399 05099416 04663205 05518454

2 -04559841 -03645662 -06264997 -05729081 -06779815

gt velikosti skupin

gt kMeansR10$size

[1] 344 280

gt vrednost Wardove kriterijske funkcije

gt kMeansR10$totwithinss

[1] 4585664

gt povprecja na nestandardiziranih spremenljivkah po skupinah

gt aggregate(x=emoc by=list(kMeansR10$cluster) FUN=mean)

Group1 O3 O4R O6 O7R O10R

1 1 3854651 4261628 4470930 4104651 4098837

2 2 2950000 2175000 3889286 2310714 2042857

O11R O13R O17R O19R O20R

1 3526163 3947674 4290698 4613372 4322674

2 2207143 2978571 2567857 3285714 2546429

gt graf

gt meanslt-aggregate(x=emocby=list(kMeansR10$cluster)FUN=mean)

gt matplot(t(means[-1])type=oxaxt=nylab=povprecje)

gt axis(side=1at=1dim(means[-1])[2]

labels=colnames(means)[-1]las=2)

Primerjajmo se obe razbitji (dobljeni z razlicnima metodama) Vrednost kriterijskefunkcije za razbitje izracunano z Wardovo metodo je 491353 za tisto z metodovoditeljev pa 458566 Razbitje dobljeno z metodo voditeljev je torej boljse Kako

12 11 Uvodni primer

Tabela 13 Metoda voditeljev ndash povprecja po skupinah

1 2O3 385 295

O4R 426 217O6 447 389

O7R 410 231O10R 410 204O11R 353 221O13R 395 298O17R 429 257O19R 461 329O20R 432 255

Slika 16 Graf povprecij po skupinah dobljenih z metodo voditeljev

1

1

1

1 1

1

1

1

1

1

20

25

30

35

40

45

povprečje

2

2

2

2

2

2

2

2

2

2

O3

O4R O6

O7R

O10R

O11R

O13R

O17R

O19R

O20R

se razporeditvi prekrivata je prikazano v tabeli 14 Prekrivanje je zelo veliko sajse razbitji pri vecini enot ujemata (ne ujemata se le pri manjsem stevilu enot)4

4 Vecina enot ki je v prvi skupini po Wardovi metodi je v drugi po metodi voditeljev medtemko je vecina tistih ki so z Wardovo metodo razporejene v drugo skupino z metodo voditeljev

1 poglavje ndash Uvod v R 13

gt Primerjava kriterijskih funkcij

gt wardKF(ZemocwardCluK2) Wardova metoda

[1] 4913525

gt kMeansR10$totwithinss metoda voditeljev

[1] 4585664

gt Primerjava koncnih razvrstitev po enotah

gt table(Wardova metoda=wardCluK2

Metoda voditeljev=kMeansR10$cluster)

Metoda voditeljev

Wardova metoda 1 2

1 85 267

2 259 13

Tabela 14 Primerjava koncnih razvrstitev po enotah

1 21 85 2672 259 13

Razbitje prikazano v prostoru prvih dveh glavnih komponent je prikazano na sliki17 Vidi se da prva glavna komponenta zelo dobro loci med skupinama dobljenimaz metodo voditeljev

gt metoda glavnih komponent

gt PClt-princomp(Zemoc)

gt plot(PC$scores[12]ylab=2 komponentaxlab=1 komponenta

pch=kMeansR10$clustercol=kMeansR10$cluster)

gt legend(x=mean(range(PC$scores[1])) y=max(PC$scores[2])+05

legend = c(1 skupina 2 skupina)

title=Metoda voditeljevxjust=05 yjust=0xpd=TRUE

pch=kMeansR10$clustercol=kMeansR10$clusterhoriz=TRUE)

S tem zakljucujemo uvodni primer V nadaljevanju sledi pregled osnovnih informacijo delu s programskim paketom R

razporejena v prvo skupino Pri teh enotah se razvrstitvi ujemata saj oznake skupin (prvadruga) pri razvrscanju v skupine niso pomembne

14 12 Osnovne informacije

Slika 17 Resitev razvrscanja v prostoru glavnih komponent

-2 0 2 4 6

-20

24

1 komponenta

2 k

ompo

nent

a

Metoda voditeljev

1 skupina 2 skupina

12 Osnovne informacije

121 Osnovne racunske operacije

Najprej spoznajmo osnovne racunske operacije V R-ju se zanje uporabljajo stan-dardni simboli Morda omenimo le da je ˆ(stresica) znak za potenco sqrt pafunkcija kvadratnega korena

gt 2+2

[1] 4

gt 6-2

[1] 4

gt 35

[1] 15

gt 25

[1] 04

gt 52 vrne ostanek pri deljenju

1 poglavje ndash Uvod v R 15

[1] 1

gt 5^2 potenca

[1] 25

gt sqrt(25) kvadratni koren preko funkcije

[1] 5

gt 25^(12) in drugace (bolj splosno)

[1] 5

gt zgoraj upostevamo da je koren le posebna razlicica

gt potence in sicer oblike 1(stopnja korena)

122 Spremenljivke

Vrednost shranimo tako da jo priredimo spremenljivki (objektu) Za prirejanje upo-rabimo znak rdquolt-rdquo(uporabljamo lahko tudi znak rdquo=rdquo a se njegova uporaba odsvetuje)Spremenljivkeobjekte nato uporabljamo namesto vrednosti ki so shranjene v njih

V imenih spremenljivk lahko nastopajo

bull crke (velike in male ndash velikost crk je pomembna)

bull stevilke

bull znak rdquo rdquo ndash do verzije 180 R-ja bil uporabljan kot znak za prirejanje na karje treba biti pozoren ce naletite na kaksno zelo staro kodo

bull znak rdquordquo ndash predvsem pri funkcijah ima znak rdquordquo v imenu funkcije tudi posebenpomen (uporablja se za prilagoditev funkcije za dolocen razred objekta) zatose uporaba rdquordquo v drugih primerih odsvetuje (ni pa prepovedana)

Ime spremenljivke se mora nujno zaceti s crko ali piko (rdquordquo) Spremenljivke ki sezacenjajo s piko (rdquordquo) so skrite se pravi da se ne izpisejo s funkcijo ls() (ta funkcijaizpise vse vidne objekte v okolju)

Primer uporabe spremenljivk

gt a lt- 5 priredimo vrednost spremenljivki

gt a izpisemo vrednost spremenljivke

[1] 5

gt a + 4

[1] 9

gt b lt- a2 nekaj izracunamo in rezultat priredimo

gt b

[1] 10

gt (c lt- a + b) Kaj se zgodi zaradi oklepajev

[1] 15

16 12 Osnovne informacije

Zaradi oklepajev se najprej izvede izraz znotraj oklepaja torej se rezultat sesteva-nja shrani v spremenljivko c Nato pa se se rdquopoklicerdquo oklepaj kar izpise vrednostspremenljivke c

123 Uporaba funkcij in pomoci

Funkcija ls je prva R-jeva funkcija ki smo jo spoznali Za pomoc o katerikoli R-jevifunkciji napisemo v R eno od spodnjih moznostiime_funkcije

help(ime_funkcije)

Za iskanje po pomoci lahko uporabitehelpsearch(iskalni pogoj)

iskalni pogoj

Dodatno pomoc pa najdete tudi v meniju Help

Za iskanje funkcije katere ime ustreza dolocenemu vzorcu pa uporabite funkcijoapropos

Vsaka spremenljivka je pravzaprav objekt (objekti so tudi funkcije) Objekte lahkobrisemo s funkcijo rm

Funkcijo klicemo tako da navedemo njeno ime in potem v oklepajih () njene ar-gumente locene z vejico Nujno moramo navesti vse argumente ki nimajo privzetevrednosti ostale pa le ce nam privzeta vrednost ne ustreza Tudi ce ne navedemonobenega argumenta moramo nujno navesti oklepaje () kamor v tem primeru nenapisemo nic Za primer glejte podpodpoglavje 135 (Matrika)

Pri navajanju argumentov imamo dve moznosti

bull Argumente navajamo v takem vrstnem redu kot so navedeni v funkciji Tanacin lahko uporabimo samo pri argumentih ki so na zacetku oziroma prikaterih smo navedli tudi vse argumente pred njimi

bull Argumente navajamo v poljubnem vrstnem redu skupaj z njihovimi imeni kotdvojice ime=vrednost

V vsakem primeru argumente locimo z vejicami Drugi nacin je dosti varnejsi Prvise ponavadi uporablja le za prvi argument ali pri zelo pogosto uporabljenih funkcijahceprav tudi takrat ni priporocljiv

gt ls() Klicemo funkcijo ls ne da bi navedli kak argument

[1] a b

[3] c colinEigen

1 poglavje ndash Uvod v R 17

[5] corTestDf d

[7] d2 ego

[9] ego1 emoc

[11] frekTab i

[13] insert kMeansR10

[15] makeFactorLabels means

[17] PC plotMeans

[19] printCorTestDf razsiriPodatke

[21] rekodiraneSprem spremEkst

[23] spremEmoc spremZaRekod

[25] ss ssAllVar

[27] tbl ward

[29] wardCluK2 wardKF

[31] Zemoc

gt Argumenti niso potrebni ker je pri vseh argumentih

gt privzeta vrednost ustrezna

gt Z njo izpisemo vse vidne objekte - med njimi je tudi a

gt

gt alt-1 kreiramo a

gt rm(a) izbrisemo a - argument funkcije je

gt Pozor argument funkcije je objekt (ne njegovo ime)

gt ls() a-ja ni vec med objekti

[1] b c

[3] colinEigen corTestDf

[5] d d2

[7] ego ego1

[9] emoc frekTab

[11] i insert

[13] kMeansR10 makeFactorLabels

[15] means PC

[17] plotMeans printCorTestDf

[19] razsiriPodatke rekodiraneSprem

[21] spremEkst spremEmoc

[23] spremZaRekod ss

[25] ssAllVar tbl

[27] ward wardCluK2

[29] wardKF Zemoc

gt ls pomoc za funkcijo ls

gt help(ls) enako

gt List Objects isce po pomoci

gt ls(allnames = TRUE) izpisemo vse objekte tudi skrite

[1] cairo Randomseed

[3] b c

18 12 Osnovne informacije

[5] colinEigen corTestDf

[7] d d2

[9] ego ego1

[11] emoc frekTab

[13] i insert

[15] kMeansR10 makeFactorLabels

[17] means PC

[19] plotMeans printCorTestDf

[21] razsiriPodatke rekodiraneSprem

[23] spremEkst spremEmoc

[25] spremZaRekod ss

[27] ssAllVar tbl

[29] ward wardCluK2

[31] wardKF Zemoc

gt torej tudi tiste ki se zacnejo s piko ()

gt

gt rm(list=ls()) izbrisemo vse vidne objekte

gt ta ukaz uporabljajte zelo pazljivo

gt

gt ustvarimo nekaj spremenljivk

gt alt-1blt-2aalt-3aaaabblt-4daalt-5

gt V R-ju lahko v eno vrstico napisemo tudi vec ukazov

gt ki jih locimo s podpicji

gt ponavadi to sicer ni priporocljivo

gt

gt ls(pattern = aa) vsi objekti ki imajo v imenu aa

[1] aa aaaabb daa

gt uporabimo lahko sicer tudi regularne izraze

gt za vec informacij vtipkajte regexp

124 Paketki

Vse funkcije (ki jih nismo napisali sami) in tudi veliko podatkov je v R-ju shra-njeno v paketkih Paketke nalozimo preko menija Packages|Load package alienostavneje s funkcijama library ali require Edina razlika med njima je v temda prva ob neuspehu (ce na primer paketek ni namescen oziroma instaliran) javinapako druga pa vrednost FALSE Da pa paketke lahko nalozimo morajo biti prejnamesceni

Na voljo je veliko paketkov 30 osnovnih paketkov je vkljucenih ze v osnovno distri-bucijo R-ja (in jih imate tako po namestitvi R-ja ze namescene) veliko vec (trenutno8551) pa jih je na voljo na CRAN-u (Comprehensive R Archive Network)

1 poglavje ndash Uvod v R 19

Slika 18 Stirje obrazi

1 2

3 4

Paketke najlazje namestimo neposredno iz CRAN-a in sicer preko menija Packa-ges|Install package(s) ali preko funkcije installpackages

gt installpackages(TeachingDemos)

package TeachingDemos successfully unpacked and MD5 sums checked

The downloaded binary packages are in

CUsersAlesAppDataLocalTempRtmpcFnMNjdownloaded_packages

gt namestimo paketek s CRAN-a

gt library(TeachingDemos) nalozimo paketek

gt funkcija faces ni na voljo ce prej ne nalozimo paketka

gt faces() uporabimo funkcijo iz paketka - narisemo 4 obraze

Rezultat funkcije je na sliki 18

125 Drugi osnovni podatki

Prostor kamor v R-ju pisemo ukaze se imenuje ukazna vrstica oziroma konzolaVanjo lahko ukaze tipkamo lepimo ali posljemo iz urejevalnika besedil (ce le-ta toomogoca)

Zelo prirocno je tudi pomikanje po ze uporabljenih ukazih (za ponavljanje ali manjsespremembe) s smernimi tipkami za gor uarr in dol darr Po posameznem ukazu pa sepremikamo s smernimi tipkami za levo larr in desno rarr

20 13 Podatkovne strukture

R zapremo preko menija File|Exit ali s funkcijama q oziroma quit (funkciji staidenticni) Ko ga ugasnemo nas R tudi vprasa (ce nismo tega rdquopovedalirdquo ze zargumenti prej omenjenih funkcij) ali zelimo shraniti delovno okolje (workspace) inzgodovino

Stanje delovnega okolja (workspace) lahko kadarkoli shranimo s funkcijo saveimageali preko menija File|Save Workspace zgodovino ukazov pa s savehistory ozi-roma preko menija File|Save History Vse datoteke se (ce ne izberemo drugace)shranijo v delovno mapo (working directory) Delovno mapo lahko spremenimopreko funkcije setwd ali preko menija File|Change dir Nacin spreminjanjamape preko menija lahko uporabimo tudi le za to da najdemo trenutno delovnomapo lahko pa to ugotovimo tudi s funkcijo getwd

Shranjeno okolje lahko potem nalozimo na vec nacinov Ce nismo spreminjali imen(privzeto ime je rdquoRDatardquo za delovno okolje in rdquoRHistoryrdquo za zgodovino) potemse oboje samodejno nalozi ce bodisi zazenemo R v isti mapi bodisi zazenemo R zdvoklikom na shranjeno okolje rdquoRDatardquo Delovno okolje lahko nalozimo tudi takoda datoteko rdquoprenesemordquo v R-jevo okno s pomocjo funkcije loadimage ali prekomenija File|Load Workspace Podobno velja tudi za zgodovino

Zgodovino lahko kadarkoli izpisemo tudi s funkcijo history

R kot decimalno locilo uporaba piko () na primer 12

zapisemo kot 05 Pri ukazih setega ne da spreminjati (kar je nujno za konsistentno delovanje kateregakoli program-skega jezika) pri izpisih pa to lahko nastavimo preko funkcije optios Ce zelimokot decimalno locilo nastaviti vejico () torej decimalno locilo ki ga uporabljamo vslovenscini uporabimo ukaz options(OutDec = )

V tem ucbeniku uporabljam kot decimalno locilo piko () kjub temu da se zavedamda je to v nasprotju s slovenskim pravopisom Razloga za to sta dva oba pa izhajataiz narave ucbenika torej ucenje R-ja Prvi je v tem da menim da bi uporaba enegadecimalnega locila (pike) pri ukazih in drugega (vejice) pri izpisih lahko zmedlabralca Drugi je v tem da zelim da lahko uporabniki z uporabo ukazov iz ucbenikadobijo enak izpis kot ga podajam v ucbeniku Zato raje (kjer ni potrebno) nespreminjam zacetnih nastavitev S pomocjo funkcije options je mogoce nastavljatitudi veliko drugih nastavitev na primer sirino izpisa (tekstovnega) nacin izpisastevil (stevilo decimalnih mest znanstven ali obicajen zapis ) Za pregled in opisnastavitev ki jih je mogoce spreminjati uporabite options

13 Podatkovne strukture

131 Osnovni podatkovni tipi

R pozna naslednje osnovne podatkovne tipe

1 poglavje ndash Uvod v R 21

logical logicni vektor ndash vrednosti TRUE in FALSE

integer cela stevila

numeric realna stevila ndash to je privzeta vrednost za vsa stevila v R-ju tudi cela naprimer 2

complex kompleksna stevila

character znaki (poljubno stevilo) ndash vedno jih moramo pisati v narekovajih saj sedrugace upostevajo kot imena spremenljivk ali drugih objektov (funkcij)

raw shranjuje surove bajte (ang byte) ndash tega ne rabite

Podatkovne tipe spreminjamo s funkcijami asnekaj kjer je rdquonekajrdquo ime tipa Sfunkcijo isnekaj preverimo ali je nek podatek tipa rdquonekajrdquo (torej nekega doloce-nega tipa) Kaksnega tipa je nek podatek (objekt) pa preverimo s funkcijo mode

Obstajajo pa se sledece posebne vrednosti

NA Not available ndash ni na voljo oziroma R-jeva koda za manjkajoco vrednost

NaN Not a Number ndash ni stevilo Relevantno samo pri stevilskih tipih uporablja sekadar rezultat nekega izracuna ni definiran na primer 00

NULL Absoluten nic v R-ju prazen element

Pri prvih dveh (NA NaN) je rezultat izracuna kjer nastopa katera od teh vrednostiprakticno vedno kar ta vrednost tretji pa ima podobno vlogo kot prazen element

gt 4 realno stevilo

[1] 4

gt isnumeric(4)

[1] TRUE

gt isinteger(4) ni celo stevilo

[1] FALSE

gt a lt- asinteger(4) smo naredili celo stevilo

gt isinteger(a)

[1] TRUE

gt alt-to je znakovna spremenljivka

gt alt-4 se vedno znakovna spremenljivka

gt a cetudi je znak stevilka - ne moremo racunati

[1] 4

gt asnumeric(a)+3 po spremembi lahko racunamo

[1] 7

gt 00

[1] NaN

gt 1 + NA

[1] NA

Pri realnih podatkih prav pridejo spodaj prikazane funkcije za zaokrozevanje

22 13 Podatkovne strukture

gt floor(26) navzdol

[1] 2

gt ceiling(21) navzgor

[1] 3

gt round(21) na najblizjo vrednost

[1] 2

gt round(26)

[1] 3

gt round(15) pozor - uporablja standard IEC 60559

[1] 2

gt vrednosti na meji (5 na koncu) se zaokrozujejo na najblizje

gt sodo stevilo

gt round(25)

[1] 2

gt round(pidigits=3) lahko nastavimo tudi stevilo decimalk

[1] 3142

132 Vektor

Vektor je najosnovnejsa podatkovna struktura Vsebuje lahko samo podatke enegatipa Ce zelimo ustvariti vektor iz podatkov razlicnih tipov jih R sam pretvori vtip ki je najsplosnejsi (ce ns primer zdruzujemo stevilke in znake v tip rdquocharacterrdquo)Vektor ustvarimo tako da zdruzimo (combine) vrednosti s pomocjo funkcije c

R (oziroma njegov predhodnik S) je vektorski jezik kar pomeni da se ce ne izberemole posameznega dela operacije izvajajo na vseh elementih vektorja

Opozorilo

R dovoli tudi mnozenje dveh vektorjev razlicnih dolzin V primeru da dolzinadaljsega ni mnogokratnik dolzine krajsega izpise opozorilo sicer pa le izracunarezultat

Elemente vektorja izbiramo tako da njihove indekse navedemo v oglatih oklepajih [

] (glejte primer spodaj) Izbrane dele lahko tudi spreminjamo Negativna vrednostv oglatih oklepajih pomeni da izberemo vse razen tistega kar sledi rdquo-rdquo

gt alt-c(467312) ustvarimo vektor

gt a izpisemo vektor

[1] 4 6 7 3 1 2

gt a + 3

[1] 7 9 10 6 4 5

1 poglavje ndash Uvod v R 23

gt vsem elementom vektorja a pristejemo 3 (a se seveda ne

gt spremeni)

gt

gt blt-c(123456)

gt a+b elementi se sestejejo

[1] 5 8 10 7 6 8

gt ab oziroma zmnozijo

[1] 4 12 21 12 5 12

gt blt- c(12)

gt a+b b se 3x ponovi da doseze dolzino a-ja

[1] 5 8 8 5 2 4

gt pri tem R ne izpise kakrsnegakoli opozorila

gt ab

[1] 4 12 7 6 1 4

gt length(a) izpisemo dolzino vektorja a

[1] 6

gt length(b)

[1] 2

gt length(ab) dolzina rezultata je enaka dolzini daljsega

[1] 6

gt blt-c(1234)

gt ab b se ponovi 15-krat Izpise se opozorilo

[1] 4 12 21 12 1 4

gt a[3] izberemo 3 element vektorja a (stetje se zacne z 1)

[1] 7

gt clt-c(36d) ce zdruzimo razlicne elemente

gt c dobimo najsplosnejsi tip (znakovni)

[1] 3 6 d

gt c[2]lt-bla bla spremenimo 2 element v vektorju b

gt c

[1] 3 bla bla d

gt c[-2] izpisemo vse elemente razen drugega

[1] 3 d

Vektorzaporedje celih stevil od a do b tvorimo tako da napisemo ab kjer a

in b zamenjamo z ustreznima steviloma oziroma kjer sta to dve spremenljivki zustreznima vrednostma To lahko s pridom uporabljamo tudi pri izbiranju delavektorja saj lahko izberemo tudi vec kot en element vektorja tako da kot indekspodamo vektor stevil

Namesto indeksov lahko uporabimo tudi enako (kot originalni) dolg logicni vektor(ta ima samo vrednosti TRUE in FALSE) Izbrani so elementi kjer je vrednost TRUE

24 13 Podatkovne strukture

gt 15 vektor od 1 do 5

[1] 1 2 3 4 5

gt alt- -1010 kreiramo vektor od -10 do 10 in ga shranimo v a

gt a izpisemo vektor

[1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3

[15] 4 5 6 7 8 9 10

gt a[510] izpisemo stevilke na mestih od 5 do 10 (vkljucno)

[1] -6 -5 -4 -3 -2 -1

gt a[510][13]

[1] -6 -5 -4

gt izmed stevilk na mestih od 5 do 10 izberemo prve 3

gt

gt agt0 dobimo logicni vektor ki ga lahko uporabimo za izbor

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

[10] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

[19] TRUE TRUE TRUE

gt a[agt0] izberemo samo pozitivna stevila

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

gt a[c(11121)] izberemo stevilke na mestih 1 11 in 21

[1] -10 0 10

gt a[-c(11121)]

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

gt izberemo vse razen tistih na mestih 1 11 in 21

gt a[-(15)] izberemo vse razen tistih na mestih od 1 do 5

[1] -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10

Opozorilo

Ce pri zadnjem izrazu spustimo oklepaj to ni veljavno ker imajo potem indeksivrednosti od minus1 do 5 kar pa ni dovoljeno Pri indeksih ne smemo mesatinegativnih in pozitivnih stevil

Splosnejsa zaporedja dobimo s funkcijo seq Pri pisanju zank je se posebej uporabnafunkcija seq_len ki ima samo en argument in sicer dolzino zaporedja Njenaprednost je v tem da ce je dolzina 0 dejansko ustvari vektor dolzine 0

gt seq(from=1 to = 11 by= 2)

[1] 1 3 5 7 9 11

gt seq(from=1 to = 12 by= 2)

[1] 1 3 5 7 9 11

gt enako ker pri koraku 2 stevilo 12 tako ali tako izpustimo

gt seq(from=10 to = 0 by= -1) v obratnem vrstnem redu

1 poglavje ndash Uvod v R 25

[1] 10 9 8 7 6 5 4 3 2 1 0

gt nlt-5

gt 1n

[1] 1 2 3 4 5

gt seq_len(n) enako kot zgoraj

[1] 1 2 3 4 5

gt nlt-0

gt 1n morda ne ravno tisto kar smo pricakovali

[1] 1 0

gt seq_len(n) vektor dolzine 0 - bistveno bolj varno pri zankah

integer(0)

gt seq(lengthout=n) enako kot prej

integer(0)

Elementom vektorja (in tudi drugih struktur ki jih bomo spoznali kasneje) lahkodamo tudi imena To lahko storimo ko jih ustvarimo ali kasneje s funkcijo namesS to funkcijo jih tudi priklicemo Imena lahko uporabimo namesto indeksov zadostopanje do posameznih elementov

gt alt-13 ustvarimo vektor brez imen (za elemente)

gt a elementi nimajo imen

[1] 1 2 3

gt names(a)lt-c(abc)

gt a cleni imajo sedaj imena ki se izpisejo nad njimi

a b c

1 2 3

gt a[b] izberemo 2 element - b

b

2

gt ce zelimo izbrati vec kot en element moramo uporabiti

gt vektor imen

gt a[c(ac)]

a c

1 3

gt names(a)lt-NULL imena izbrisemo

gt blt-c(1a=1b=23 element=3) imena podamo ob nastanku

gt ce imamo v imenih presledke ali ce se zacnejo s stevilko

gt jih moramo dati v narekovaje sicer ni nujno

gt b

1a b 3 element

1 2 3

gt names(b)[2]lt-bbb spremenimo ime 2 clena

gt b

26 13 Podatkovne strukture

1a bbb 3 element

1 2 3

133 Nominalne in ordinalne spremenljivke

Ceprav bi nominalne spremenljivke lahko predstavili z znakovno spremenljivko (cha-racter) je priporocljivo da za njih uporabljamo tip factor Tak pristop je varnejsi(definiramo lahko kategorije) in ucinkovitejsi Ustvarimo jih s funkcijo factor ozi-roma spremenimo iz znakovnih spremenljivk s funkcijo asfactor

Zelo pomembni argumenti funkcije factor so

levels Vrednosti ki jih spremenljivka lahko zavzame Vrednosti morajo torej bititake kot vrednosti originalne spremenljivke Ce je argument podan se vse vre-dnosti spremenljivke ki niso tu navedene izlocijo Ce je vrednost argumentaordered=TRUE argument poda tudi vrstni red vrednosti Privzeta vrednostso vse vrednosti spremenljivke v takem vrstnem redu kot se prvic pojavijo(kar je zelo pomembno za pravilno uporabo argumenta labels)

labels Imena za posamezne vrednosti Prvo ime je ime vrednosti ki je kot prvapodana v levels drugo ime za vrednost ki je podana kot druga v levels

Uporaba labels brez levels ni priporocljiva Ce pa ze uporabljamolabels brez levels se moramo zavedati kaksna je privzeta vrednost zalevels (glejte zgoraj)

ordered Ta pove ali naj bo faktor rdquourejenrdquo torej ordinalna spremenljivka

Opozorilo

Pravilen tip spremenljivke je pri R-ju zelo pomemben ker se uposteva tudi pristatisticnih modelih Pri linearni regresiji na primer R iz spremenljivke tipafactor (nominalne) samodejno tvori umetne spremenljivke

Nekaj primerov

gt factor(rep(13times=3))

[1] 1 2 3 1 2 3 1 2 3

Levels 1 2 3

gt nominalna spremenljivka z vrednostmi 1 2 in 3

gt factor(rep(13times=3)levels=13 labels=c(abc))

[1] a b c a b c a b c

Levels a b c

gt nominalna spremenljivka z vrednostmi a b in c

gt factor(rep(13times=3)levels=c(abc))

1 poglavje ndash Uvod v R 27

[1] ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt

Levels a b c

gt vse vrednosti so NA - ce je levels specificiran

gt se kot veljavne vrednosti v originalni spremenljivki

gt upostevajo samo vrednosti v levels

gt factor(rep(13times=3)labels=c(abc))

[1] a b c a b c a b c

Levels a b c

gt sicer kot prej z levels a bolj nevarno

gt npr ce bi bila prva vrednost 3 bi a predstavljal 3

gt factor(rep(13times=3)labels=c(abc)levels=c(312))

[1] b c a b c a b c a

Levels a b c

gt ker je podal levels v drugacnem vrstnem redu

gt sedaj a predstavlja 3

gt

gt factor(rep(13times=3)ordered=TRUE)

[1] 1 2 3 1 2 3 1 2 3

Levels 1 lt 2 lt 3

gt ordinalna spremenljivka

gt factor(rep(13times=3)ordered=TRUElevels=c(312))

[1] 1 2 3 1 2 3 1 2 3

Levels 3 lt 1 lt 2

gt drugacen vrstni red kategorij

gt factor(rep(13times=3)ordered=TRUElevels=c(312)

labels=c(cab))

[1] a b c a b c a b c

Levels c lt a lt b

gt drugacen vrstni red kategorij z imeni

gt imena smo nastavili tako da a predstavlja 1

gt f1lt-factor(rep(13times=3)levels=13labels=c(abc))

gt factor(f1ordered=TRUElevels=c(cab))

[1] a b c a b c a b c

Levels c lt a lt b

gt v 2 korakih a morda bolj razumljivo

134 Seznam

Seznam (ang oziroma v R-ju list) je posebna oblika vektorja kjer so elementilahko karkoli (katerikoli elementi se pravi posamezna stevila vektorji matrike po-datkovni okvirji seznami celo funkcije)

28 13 Podatkovne strukture

Ustvarimo jih s funkcijo list ali tako da s funkcijo c skupaj zlepimo sezname Doposameznih elementov dostopamo tako da njihove indekse ali imena navedemo meddvojne oglate oklepaje ndash [[]] Ce navedemo imena ali indekse v enojnih oglatihoklepajih [] potem je rezultat nov seznam z izbranimi elementi (tudi ce izberemosamo enega)

Ce imajo elementi imena lahko do njih dostopamo tudi tako da za imenom seznamanapisemo znak za dolar $ ki mu sledi ime elementa

Na seznamih sta zelo uporabni sestrski funkciji lapply in sapply Obe funkcijiposkusata neko funkcijo (ki jo podamo kot argument) uporabiti na vseh elementihseznama Razlika je v tem da poskusa sapply poenostaviti rezultat (v vektor alimatriko) lapply pa vedno vrne seznam

gt llt-list(a=c(upsabc)b=15c=list(aa=abb=57)d=list)

gt zdruzili smo razlicne elemente - zadnji je funkcija list

gt

gt l[[a]] izberemo 1 element - vektor

[1] ups abc

gt l[[1]] enako

[1] ups abc

gt l[a] naredimo seznam ki ima samo 1 element starega

$a

[1] ups abc

gt l[1] enako

$a

[1] ups abc

gt l[13] izberemo prve 3 elemente

$a

[1] ups abc

$b

[1] 1 2 3 4 5

$c

$c$aa

[1] a

$c$bb

[1] 5 6 7

gt l[[13]] ne deluje - oziroma ima drugacno funkcijo

gt

gt

gt l[[c]][[2]][1]

1 poglavje ndash Uvod v R 29

[1] 5

gt izbrali smo 3 element (c) osnovnega seznama

gt ki pa je tudi seznam

gt v tem seznamu smo izbrali 2 element ki je vektor

gt v vektorju smo izbrali 1 element (stevilko 5)

gt l[[3]][[2]][1] enako

[1] 5

gt l[[3]][[2]] izberemo 2 element v 3 elementu

[1] 5 6 7

gt l[[32]] tokrat deluje in je enako kot zgoraj

[1] 5 6 7

gt mocno odsvetujem

gt

gt l$a ce imamo imena lahko uporabimo tudi ta nacin

[1] ups abc

gt l$c$aa deluje tudi v vec stopnjah

[1] a

gt xlt-l$d(346) ce je element seznama funkcija jo

gt lahko tudi uporabimo

gt x

[[1]]

[1] 3

[[2]]

[1] 4

[[3]]

[1] 6

gt l da se spomnimo kaj je l

$a

[1] ups abc

$b

[1] 1 2 3 4 5

$c

$c$aa

[1] a

$c$bb

[1] 5 6 7

30 13 Podatkovne strukture

$d

function () Primitive(list)

gt lapply(lFUN=length) izracunamo dolzino vseh elementov

$a

[1] 2

$b

[1] 5

$c

[1] 2

$d

[1] 1

gt zdaj smo dobili seznam

gt

gt sapply(lFUN=length) sapply vrne vektor

a b c d

2 5 2 1

gt to je mogoce ker so bili vsi elementi posamezna stevila

gt paziti je treba da je funkcija taka da se jo da

gt uporabiti na vseh elementih

135 Matrika

Matrika je pravzaprav vektor (katerekoli oblike razen seznama) ki ima dve dimenziji(stolpce in vrstice) Do elementov dostopamo tako da v oglatih oklepajih navedemoindekse ali imena celic v obeh dimenzijah (locene z vejicami ndash [ab]) ki jih zelimoizbrati Ce zelimo v kateri dimenziji izbrati vse celice lahko indekseimena za todimenzijo izpustimo (vseeno moramo pisati vejico)

Ustvarimo jo s funkcijo matrix Spodaj je prikazan klic funkcije in v njem tudi vsiargumenti Vrednosti ki so tu pripisane argumentom so privzete vrednosti Vec opomenu argumentov lahko preberemo v pomocimatrix(data = NA nrow = 1 ncol = 1 byrow = FALSE dimnames = NULL)

Matriko lahko ustvarimo tudi tako da vektorje rdquozlepimordquoskupaj kot stolpce (funkcijacbind) ali vrstice (funkcija rbind)

gt matrix dostop do pomoci za razlago argumentov

gt Alt-matrix(data=124nrow=6) ustvarimo matriko s 6 vrsticami

gt in 4 stolpci -gt ker je 24

gt elementov v data

1 poglavje ndash Uvod v R 31

gt

gt A ustvarjena matrika

[1] [2] [3] [4]

[1] 1 7 13 19

[2] 2 8 14 20

[3] 3 9 15 21

[4] 4 10 16 22

[5] 5 11 17 23

[6] 6 12 18 24

gt A[32] izberemo 2 element v 3 vrstici

[1] 9

gt oziroma vse elemente ki so v 3 vrstici in 2 stolpcu

gt

gt A[3] izberemo 3 vrstico

[1] 3 9 15 21

gt A[2] izberemo 2 stolpec

[1] 7 8 9 10 11 12

gt A[13] izberemo prve 3 vrstice

[1] [2] [3] [4]

[1] 1 7 13 19

[2] 2 8 14 20

[3] 3 9 15 21

gt izberemo elemente ki so v 2 ali 3 vrstici in

gt v 1 ali 4 stolpcu

gt A[c(24)c(14)]

[1] [2]

[1] 2 20

[2] 4 22

gt alt-14

gt blt-25

gt Blt-cbind(ab) matrika z dvema stolpcema

gt B

a b

[1] 1 2

[2] 2 3

[3] 3 4

[4] 4 5

gt Clt-rbind(ab) matrika z dvema vrsticama

gt C

[1] [2] [3] [4]

a 1 2 3 4

b 2 3 4 5

32 13 Podatkovne strukture

R vsebuje tudi jezik za matricno racunanje Pri tem sta najpomembnejsa operatorza matricno mnozenje in funkcija solve ki omogoca izracun inverzne matrikeNekaj primerov

gt Alt-matrix(data=124nrow=6)

gt klasicno se operacije pri matriki izvajajo tako kot pri

gt vektorjih torej po elementih

gt A+2

[1] [2] [3] [4]

[1] 3 9 15 21

[2] 4 10 16 22

[3] 5 11 17 23

[4] 6 12 18 24

[5] 7 13 19 25

[6] 8 14 20 26

gt A2

[1] [2] [3] [4]

[1] 05 35 65 95

[2] 10 40 70 100

[3] 15 45 75 105

[4] 20 50 80 110

[5] 25 55 85 115

[6] 30 60 90 120

gt A2

[1] [2] [3] [4]

[1] 2 14 26 38

[2] 4 16 28 40

[3] 6 18 30 42

[4] 8 20 32 44

[5] 10 22 34 46

[6] 12 24 36 48

gt A+A

[1] [2] [3] [4]

[1] 2 14 26 38

[2] 4 16 28 40

[3] 6 18 30 42

[4] 8 20 32 44

[5] 10 22 34 46

[6] 12 24 36 48

gt AA tudi ce je operacija mnozenje

[1] [2] [3] [4]

[1] 1 49 169 361

[2] 4 64 196 400

1 poglavje ndash Uvod v R 33

[3] 9 81 225 441

[4] 16 100 256 484

[5] 25 121 289 529

[6] 36 144 324 576

gt to ni matricno mnozenje

gt

gt A(14)

[1] [2] [3] [4]

[1] 1 21 13 57

[2] 4 32 28 80

[3] 9 9 45 21

[4] 16 20 64 44

[5] 5 33 17 69

[6] 12 48 36 96

gt tako kot pri racunanju z vektorji se krajsi reciklira

gt torej se tolikokrat ponovi da doseze dolzino daljsega

gt

gt t(A) transponiramo matriko - zamenjamo vrstice in stolpce

[1] [2] [3] [4] [5] [6]

[1] 1 2 3 4 5 6

[2] 7 8 9 10 11 12

[3] 13 14 15 16 17 18

[4] 19 20 21 22 23 24

gt dim(A) ugotovimo dimenziji matrike

[1] 6 4

gt dim(t(A)) pri transponirani matriki sta ravno obrnjeni

[1] 4 6

gt A t(A) matricno mnozenje

[1] [2] [3] [4] [5] [6]

[1] 580 620 660 700 740 780

[2] 620 664 708 752 796 840

[3] 660 708 756 804 852 900

[4] 700 752 804 856 908 960

[5] 740 796 852 908 964 1020

[6] 780 840 900 960 1020 1080

gt A (14) matricno mnozenje z vektorjem

[1]

[1] 130

[2] 140

[3] 150

[4] 160

[5] 170

[6] 180

34 13 Podatkovne strukture

gt R samodejno poskrbi da je vektor ustrezen

gt (stolpicni ali vrsticni)

gt bolje je sicer ce za to poskrbimo sami

gt alt-matrix(14ncol=1) stolpicni vektor

gt A a

[1]

[1] 130

[2] 140

[3] 150

[4] 160

[5] 170

[6] 180

gt izracunamo lahko tudi inverz matrike

gt seveda samo kvadratne in take z nenicelno determinanto

gt AA lt- A t(A) naredimo kvadratno matriko

gt det(AA) izracunamo determinanto

[1] 5494284e-59

gt determinanta je prakticno nic zato te matrike ne moremo

gt uporabiti

gt

gt Blt-matrix(c(163737379)ncol=3)

gt naredimo kvadratno matriko katere determinanta ni 0

gt det(B) izracunamo determinanto

[1] -154

gt invBlt-solve(B) izracunamo inverz matrike B

gt shranili smo ga v invB

gt invB izpisemo

[1] [2] [3]

[1] 01428571 2727273e-01 -025974026

[2] 02142857 4205453e-18 -007142857

[3] -02142857 -9090909e-02 025324675

gt B invB dokaz da smo izracunali inverz

[1] [2] [3]

[1] 1000000e+00 8326673e-17 0

[2] -3053113e-16 1000000e+00 0

[3] -1387779e-16 1387779e-16 1

gt rezultat je enotska matrika

gt na diagonali so samo enice drugod povsod nicle

gt nekatere vrednosti niso 0 ampak skoraj 0 zaradi

gt nenatancnosti izracuna -gt nekaterih vrednosti v racunalniku

gt ne moremo predstaviti natancno

gt zapsmall(BinvB)

1 poglavje ndash Uvod v R 35

[1] [2] [3]

[1] 1 0 0

[2] 0 1 0

[3] 0 0 1

gt funkcija zapsmall vrednosti ki so skoraj 0 spremeni v 0

Podobno kot lahko na seznamih uporabljamo funkciji lapply in sapply lahko namatrikah uporabimo funkcijo apply Tej moramo poleg matrike in funkcije podatitudi dimenzijo (vrstice ali stolpce) na kateri zelimo funkcijo uporabiti

gt Alt-matrix(data=124nrow=6)

gt apply(X=AMARGIN=1FUN=sum) vsota po vrsticah

[1] 40 44 48 52 56 60

gt apply(X=AMARGIN=2FUN=sum) vsota po stolpcih

[1] 21 57 93 129

136 Polje ndash Array

Nadgradnja matrike je polje (ang array) Od matrike se razlikuje po tem daima poljubno stevilo dimenzij Za vec poglejte array Tudi na poljih je mogoceuporabiti funkcijo apply

137 Podatkovni okvir ndash Data frame

Podatkovni okvir je podatkovna struktura ki je obicajno najprimernejsa za shra-njevanje podatkovij Ima podobno vlogo in strukturo kot podatkovne datoteke priostalih statisticnih programih na primer SPSS-u V vrsticah so enote v stolpcih paspremenljivke oziroma rdquovektorjirdquo

Podatkovni okvirji imajo tako nekatere lastnosti matrik pa tudi nekatere lastnostiseznamov Po eni strani so podobni matrikam vendar pa lahko pri podatkovnihokvirjih stolpci hranijo razlicne tipe podatkov Se bolj so podobni seznamom sajpravzaprav so seznami kjer so vsi elementi vektorji enake dolzine Se pravi soseznami kjer je vsak element (v statisticnem smislu) neka spremenljivka

Tudi do elementov lahko dostopamo tako kot pri seznamih ali tako kot pri matrikah

Podatkovni okvir ustvarimo s funkcijo dataframe ali tako da vanj preoblikujemomatriko ali seznam (ki mora biti ustrezne oblike) s funkcijo asdataframe

gt ustvarimo nekaj vektorjev

gt generiramo vrednosti slucajno iz normalne porazdelitve

36 13 Podatkovne strukture

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt ustvarimo slucajen vektor z nestevilskimi elementi

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt izberemo vzorec s ponavljanjem velikosti 10

gt podatkilt-dataframe(x1x2x3)

gt podatki

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 c

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 10202235 a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt names(podatki) imena kot pri seznamu

[1] x1 x2 x3

gt dim(podatki) preverimo dimenzije kot pri matriki

[1] 10 3

gt colnames(podatki) preverimo imena stolpcev kot pri matriki

[1] x1 x2 x3

gt dimnames(podatki) kot pri matriki - imena stolpcev in vrstic

[[1]]

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

[[2]]

[1] x1 x2 x3

gt izbiramo stolpce

gt podatki[x1] kot pri matriki (stolpci so 2 dimenzija)

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt podatki$x1 kot pri seznamu

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt podatki[x1]

x1

1 1772191

2 1685902

3 1820382

4 1800462

1 poglavje ndash Uvod v R 37

5 1788490

6 1768851

7 1741618

8 1835689

9 1724907

10 1726332

gt kot pri seznamu - to je se vedno podatkovni okvir

gt

gt podatki[c(x1x3)]

x1 x3

1 1772191 c

2 1685902 c

3 1820382 b

4 1800462 b

5 1788490 b

6 1768851 a

7 1741618 b

8 1835689 c

9 1724907 c

10 1726332 a

gt kot pri seznamu - to je se vedno podatkovni okvir

gt podatki[[x1]] kot pri seznamu - to je zdaj vektor

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt vektor dobimo (eno samo spremenljivko ker smo uporabili

gt dvojne oglate oklepaje)

gt

gt vrstice

gt podatki[13] kot pri matriki (vrstice so 2 dimenzija)

x1 x2 x3

1 1772191 1169315 c

2 1685902 1009201 c

3 1820382 1206257 b

gt elemente

gt podatki[2x1] kot pri matriki

[1] 1685902

gt tako lahko tudi vec naenkrat

gt podatki[24c(x1x3)] kot pri matriki

x1 x3

2 1685902 c

3 1820382 b

4 1800462 b

gt podatki$x1[13] kot pri seznamu - samo v enem stolpcu naenkrat

38 14 Funkcije in programiranje

[1] 1772191 1685902 1820382

gt podatki[[x1]][13] enako na drug nacin

[1] 1772191 1685902 1820382

138 Vaje

Vaja 1

Recimo da imate sledece vrednosti 10 23 43 43 32 12

Izracunajte povprecje varianco in standardni odklon Za izracun vsote lahko upo-rabite funkcijo sum naprednejsih vgrajenih funkcij pa ne uporabljajte (za variancostandardni odklon )

Vaja 2

Recimo da imamo tri spremenljivke ndash y x1 in x2 ki imajo sledece vrednostiy 10 23 43 43 32 12x1 15 23 54 45 42 10x2 210 183 186 164 175 200

Recimo da je y odvisna spremenljivka ter da sta x1 in x2 neodvisni spremenljivkiS pomocjo matricnega racunanja izracunajte vrednosti regresijskih koeficientov na-povedanih vrednosti in vrednosti rezidualov Poskrbite da bodo vsi trije rezultativektorji (rezultat matricnega racunanja je matrika)

Vse tri rezultate shranite v seznam

Namig Matricna formula za izracun regresijskih koeficientov je

β = (XprimeX)minus1Xprimey

Matrika X mora biti sestavljena iz stolpca enic in po enega stolpca za vsako neod-visno spremenljivko Formula za izracun napovedi pa je

yprime = Xβ

14 Funkcije in programiranje

Zaporedje ukazov ki jih pogosto uporabljamo skupaj je smiselno zdruziti skupaj vfunkcijo To omogoca da jih zelo enostavno veckrat uporabimo na razlicnih podat-kih

1 poglavje ndash Uvod v R 39

141 Nekaj koristnih funkcij

Poleg statisticnih funkcij R vsebuje tudi veliko funkcij za manipulacijo s podatkiNavedimo le nekaj najpomembnejsih

sort Uredi enote (v stevilskem vektorju po velikosti)

order Vrne zaporedno stevilko vsake enote ce jih uredimo glede na dolocenvektor Zelo uporabno za rdquosortiranjerdquo podatkovnih okvirjev

naomit Iz podatkovnega okvirja izbrise vse enote (vrstice) kjer nastopajomanjkajoce vrednosti To nam omogoca da pri vseh spremenljivkah uposte-vajo iste enote

attributes Vrne lastnosti (ang rdquoattributesrdquo) nekega objekta

sample Vrne slucajen vzorec izbrane velikosti iz izbranega vektorja ali se-znama Privzeto je vzorcenje brez ponavljanja lahko pa tudi nastavimo vzor-cenje s ponavljanjem Ce zelimo lahko tudi nastavimo verjetnosti za posame-zne elemente

which Vrne indekse (zaporedne stevilke) pri katerih je vrednost izraza TRUE

(nek pogoj je izpolnjen)

Poleg funkcij so pomembni tudi operatorji ki so sicer tudi sami neke vrste funkcija

Operatorji primerjav == (je enako ndash dva enacaja) gt= lt= gt lt =(ni enako)

Operator negacije Uporablja se z logicnimi vrednostmi ndash TRUE spremeniv FALSE in obratno

in Operator vsebovanja Pove ali so elementi 1 vektorja vsebovani v 2elementu

gt x1 lt- podatki$x1

gt x1 prvotna razporeditev

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt sort(x1) vrednosti urejene po velikosti narascajoce

[1] 1685902 1724907 1726332 1741618 1768851 1772191

[7] 1788490 1800462 1820382 1835689

gt sort(x1 decreasing = TRUE) urejene po velikosti padajoce

[1] 1835689 1820382 1800462 1788490 1772191 1768851

[7] 1741618 1726332 1724907 1685902

gt order(x1) zaporedne st v takem vrstnem redu

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

gt da bi bile vrednosti urejene po velikosti

gt x1[order(x1)] enak rezultat kot sort(x1)

40 14 Funkcije in programiranje

[1] 1685902 1724907 1726332 1741618 1768851 1772191

[7] 1788490 1800462 1820382 1835689

gt podatki originalni vrstni red

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 c

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 10202235 a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt podatki[order(podatki$x3)]

x1 x2 x3

6 1768851 10202235 a

10 1726332 11636876 a

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

7 1741618 8816272 b

1 1772191 11693152 c

2 1685902 10092010 c

8 1835689 8434124 c

9 1724907 9802423 c

gt podatki urejeni po velikosti x3 (abc)

gt podatki[order(podatki$x3podatki$x1)]

x1 x2 x3

10 1726332 11636876 a

6 1768851 10202235 a

7 1741618 8816272 b

5 1788490 9900317 b

4 1800462 10295941 b

3 1820382 12062572 b

2 1685902 10092010 c

9 1724907 9802423 c

1 1772191 11693152 c

8 1835689 8434124 c

gt podatki urejeni najprej glede na x3

gt znotraj kategorij x3 pa glede na x1

gt

gt podatkiNAlt-podatki skopiramo podatke

1 poglavje ndash Uvod v R 41

gt dodajmo v podatke manjkajoce vrednosti NA

gt podatkiNA[3x1]lt-NA

gt podatkiNA[6x2]lt-NA

gt podatkiNA[2x3]lt-NA

gt podatkiNA[3x2]lt-NA

gt podatkiNA podatki z manjkajocimi vrednostmi

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 ltNAgt

3 NA NA b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 NA a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt podatkiNAomitlt-naomit(podatkiNA)

gt odstranimo podatke z manjkajocimi enotami

gt podatkiNAomit

x1 x2 x3

1 1772191 11693152 c

4 1800462 10295941 b

5 1788490 9900317 b

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt attributes(podatkiNAomit)$naaction

2 3 6

2 3 6

attr(class)

[1] omit

gt informacija o tem katere vrstice smo odstranili

gt

gt sample(x=1100size=5)

[1] 94 55 41 83 23

gt slucajni vzorec 5 enot iz vektorja 1100 brez ponavljanja

gt sample(x=15size=5) permutacija (ker porabimo vse enote)

[1] 4 3 1 5 2

gt abclt-c(abc)

gt sample(x=abcsize=10replace=TRUE) vzorec s ponavljanjem

[1] c b c b a a b a b c

42 14 Funkcije in programiranje

gt sample(x=abcsize=10replace=TRUE prob=c(060202))

[1] a a b c b a c a c c

gt vzorec s ponavljanjem - razlicne verjetnosti izbora

gt

gt abclt-c(abc)

gt rep(abctimes=3) vektor ponovimo 3-krat

[1] a b c a b c a b c

gt rep(abceach=3) vsak element ponovimo 3-krat

[1] a a a b b b c c c

gt rep(abceach=3times=2)

[1] a a a b b b c c c a a a b b

[15] b c c c

gt vsak element ponovimo 3-krat vektor 2-krat

gt

gt

gt xlt-sample(x=abcsize=10replace=TRUE prob=c(060202))

gt x

[1] b b c a a a c c a a

gt which(x==a) na katerih mestih so a-ji

[1] 4 5 6 9 10

gt x[which(x==a)]

[1] a a a a a

gt x in c(bc)

[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

[10] FALSE

gt (x==a) enako

[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

[10] FALSE

Poleg zgornjih je treba omeniti se funkcije za generiranje psevdoslucajnih stevil Rvsebuje mnogo funkcij za generiranje slucajnih vrednosti iz razlicnih porazdelitevNaj omenimo samo najpomembnejse

rnorm normalna porazdelitev

runif enakomerna porazdelitev

rbinom binomska porazdelitev

rbeta beta porazdelitev (zelo fleksibilna)

rexp eksponentna porazdelitev

rf F porazdelitev

rt t porazdelitev

r Se kar nekaj drugih porazdelitev Ime funkcije se vedno zacne z rdquorrdquo sledioznaka (ime ali okrajsava) za porazdelitev

1 poglavje ndash Uvod v R 43

Vse zgoraj navedene funkcije kot prvi argument sprejmejo n ki pove koliko stevilzelimo generirati Poleg tega kot dodatne argumente sprejmejo parametre porazde-litve Pozor Porazdelitvene funkcije so lahko definirane drugace kot ste navajeni

Vse zgoraj navedene funkcije imajo tudi rdquosestrerdquo ki se namesto z rdquorrdquo zacnejo z

d funkcija gostote

p (kumulativna) porazdelitvena funkcija

q kvantilna funkcija ndash vrne vrednost ki pripada dolocnem kvantilnem rangu

Pomembna je tudi funkcija setseed kjer lahko nastavimo seme (koristno ce bi sekdaj zeleli generirati enake vrednosti)

Spodaj je nekaj primerov za generiranje slucajnih stevil iz razlicnih porazdelitev

gt setseed(1)

gt rnorm(n=5)

[1] -06264538 01836433 -08356286 15952808 03295078

gt 5 slucajnih stevil iz standardizirane normalne porazdelitve

gt rnorm(n=5 mean=10sd=2) drugacno povprecje in sd

[1] 8359063 10974858 11476649 11151563 9389223

gt rexp(n=10rate=05) 10 stevil iz eksponentne porazdelitve

[1] 0294092 2781470 1524060 2475207 8847868 2109086

[7] 2070488 3752070 1309493 0673867

gt rbeta(n=5 shape1=1shape2=1)

[1] 02057601 02762891 01790537 02170672 04702804

gt kovanec vrzemo 100-krat

gt predvidevamo da je posten (prob=05)

gt kolikokrat pade cifra

gt poskus ponovimo 10-krat

gt rbinom(n=10 size=100 prob=05)

[1] 46 56 50 52 42 44 49 54 39 52

142 Definiranje funkcij

Funkcija je zaporedje ukazov ki se izvrsi na vhodnih parametrih (ce jih funkcijaima) Funkcija lahko kaj vrne ni pa nujno Osnovna sintaksa funkcije jeime_funkcije lt-function(argumenti)

izraz1izraz2izraz3return(nek_objekt)

44 14 Funkcije in programiranje

Izrazi so lahko katerikoli veljavni R izrazi Ukaz return ni nujen Ce ukaza return

ni funkcija vrne rezultat zadnjega izracuna Ce zelimo da funkcija ne vrne nicesar(ce jo uporabljamo zaradi rdquostranskih ucinkovrdquo kot je na primer risanje pisanje vdatoteko ) potem moramo eksplicitno napisati return(NULL) Funkcija se vednozakljuci pri ukazu return (ce ta obstaja) Karkoli za njim se ne izvede

Argumente navedemo tako da navedemo njihova imena Ce jim zelimo pripisati tudiprivzete vrednosti (le-te se uporabijo ce ob klicu ne navedemo drugih) navedemoargumente kot

ime1=privzeta_vrednost1 ime2=privzeta_vrednost2 itd

Poseben argument je tudi argument rdquordquo Ce vsebuje funkcija ta argument sprejmetudi katerikoli argument ki ni eksplicitno naveden v definiciji funkcije uporablja pase predvsem za posredovanje argumentov funkcijam znotraj funkcije

V funkciji seveda lahko uporabimo tudi druge funkcije in tudi funkcijo ki jo pisemoSlednje je lahko zelo mocno orodje a tudi zelo nevarno (nujna je uporaba pogojev)

gt funkcija ki izracuna ploscino kroga

gt plKrogalt-function(r)

Funkcija ima samo en argument in sicer polmer kroga

Zamiki niso potrebni je pa koda tako preglednejsa

pllt-pir^2 pi je vrednost konstante pi

return(pl) Ta vrstica pravzaprav ni nujna

saj funkcija tudi sicer vrne pl

ker je to rezultat zadnjega izracuna

je pa to dobra praksa

gt plKroga(10) poklicemo funkcijo

[1] 3141593

gt rezultat lahko tudi shranimo

gt plR10lt-plKroga(10)

gt plR10

[1] 3141593

143 Programski tok

Pri kateremkoli programu je zelo pomembno usmerjanje programskega toka

V ta namen so v R-ju na voljo sledeci ukazi

if Pogojni stavek Telo stavka se izvrsi ce je pogoj izpolnjen oziroma ce je vrednostpogoja TRUE Ukaz ima oblikoif(pogoj)izraz1 else izraz2

1 poglavje ndash Uvod v R 45

pogoj je nekaj kar ima kot rezultat TRUE ali FALSE Ce je vrednost pogojaTRUE se izvede izraz1 sicer pa izraz2 Pozor R smatra 0 kot FALSE vseostale stevilke pa kot TRUEelse del ni obvezen Ce ga ni se v primeru da je vrednost pogoja FALSE neizvede nic

while Pogojno ponavljanjezanka Telo stavka se ponavlja dokler je pogoj izpol-njen oziroma dokler je vrednost pogoja TRUE Ukaz ima oblikowhile(pogoj)izraz

repeat Neskoncno ponavljanje oziroma neskoncna zanka Telo stavka se ponovidokler znotraj ne naleti na ukaz break (glejte naprej) Ukaz ima oblikorepeatizraz

Opozorilo

Ukaz repeat je zelo nevaren Nujno moramo v izraz zapisati ukaz breaksicer dobimo neskoncno zanko (smrt vsakega programa)

for Ponavljanjezanka preko zaporedja Telo stavka se ponavlja tolikokrat dazanka rdquoobdelardquo vse elemente zaporedja Ukaz ima oblikofor(spremenljivka in zaporedje) izrazizraz se ponavlja dokler spremenljivka ne pride cez vse elemente zaporedjaZanka se torej ponovi tolikokrat kolikor je elementov zaporedjaspremenljivka ima v vsaki ponovitvi drugacno vrednost vrednost naslednjegaelementa iz zaporedjazaporedje je ponavadi nek vektor (lahko tudi seznam) zelo pogosto kar rezultatfunkcije seq oziroma izraza ab

break Prekinitev zanke Ukaz se uporablja le znotraj zank in sprozi takojsnjo pre-kinitev zanke

next Naslednji Ukaz se uporablja le znotraj zank in sprozi zacetek naslednje po-novitve (trenutna ponovitev se na mestu ukaza konca)

Uporaba ukazov break in next je smiselna le znotraj if stavka (ko se ukaza izvedetale pod dolocenim pogojem) saj zanka sicer nima smisla

gt xlt-1

gt if(x==1)print(ok)elseprint(ups)

[1] ok

gt pogoj je bil izpolnjen zato se izpise ok

gt

gt xlt-2

gt if(x==1)print(ok)elseprint(ups)

[1] ups

46 14 Funkcije in programiranje

gt pogoj ni bil izpolnjen zato se izpise ups

gt

gt for(i in 15)

print(i)

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt xlt-1

gt while(xlt=5)

print(x)

xlt-x+1

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt xlt-1

gt repeat

print(x)

xlt-x+1

if(xgt5) break

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt for(i in 15)

if(i2==0) next

print(i)

[1] 1

[1] 3

[1] 5

1 poglavje ndash Uvod v R 47

144 Vaje

Vaja 1

Za probleme iz vaj v prejsnjem podpoglavju (podpoglavje Podatkovne strukturepodpodpoglavje 138 na strani 38) napisite funkcije tako da jih bo moc uporabitina poljubnem stevilu enot Prikazite uporabo

Vaja 2

Z uporabo zank napisite funkcijo za izracun vsote vseh elementov vektorja

Vaja 3

Napisite funkcijo ki izracuna fakulteto poljubnega naravnega stevila Poskusitenapisati funkcijo z zankami in z uporabo rekurzivne funkcije (funkcije v funkciji)

Namig Fakulteto stevila izracunamo po naslednji funkciji

n = n middot (nminus 1) middot (nminus 2) middot middot middot 2 middot 1 =nprodk=1

k = n middot (nminus 1)

Pozor Fakulteta hitro postane zelo veliko stevilo zato funkcije preizkusajte namanjsih stevilih (recimo do 10)

Vaja 4

Napisite funkcijo za izracun mediane

Namig 1 Za ureditev enot po vrsti lahko uporabite funkcijo sort

Namig 2 Za ugotovitev ali je stevilo enot sodo ali liho pride prav operator kivam vrne ostanek pri deljenju

15 Delo z datotekami

Nekaj dela z datotekami (shranjevanje in nalaganje delovnega okolja in zgodovine)smo ze obdelali v podpodpoglavju 125 Tu pa si bomo pogledali predvsem funkcijeza branje in pisanje podatkov

48 15 Delo z datotekami

151 Tekstovne datoteke

Tekstovne datoteke so datoteke ki jih lahko beremo z urejevalniki besedila (naprimer TextPad Notepad Notepad++ ) in ne z urejevalniki dokumentov kotso Microsoft (Office) Word ali OpenOfficeorg Writer Ponavadi so podatki urejenitako da so v stolpcih spremenljivke v vrsticah pa enote Stolpci so loceni z nekimznakom ki je lahko tabulator (t) podpicje () vejica () presledek ( )

Za branje tekstovnih datotek se najpogosteje uporablja funkcija readtable innjene izpeljanke Izpeljanke so identicne originalni funkciji le da imajo drugacneprivzete vrednosti ki so primerne za branje dolocenih formatov tekstovnih dato-tek Predvsem se pogosto uporabljata funkciji (za ostale glejte pomoc za funkcijoreadtable)

readcsv2 Za branje datotek rdquocsvrdquo Na koncu imena je rdquo2rdquo ker je to verzija zadatoteke rdquocsvrdquo ki za locilo uporabljajo podpicje () vejico () pa za decimalnolocilo kot je standard pri nas Obstaja tudi verzija brez koncnice rdquo2rdquo kisledi ameriskemu standardu Take datoteke znajo brati in pisati programi zadelo s preglednicami na primer Excel Tak program je obicajno tudi privzetiprogram za odpiranje takih datotek

readdelim2 Za branje datotek ki so locene z tabulatorjem (t) Na koncu imenaje rdquo2rdquo ker je to verzija za datoteke ki za decimalno locilo uporabljajo vejico() kot je standard pri nas Obstaja tudi verzija brez rdquo2rdquo ki sledi ameri-skemu standardu Tudi take datoteke znajo brati in pisati programi za delo spreglednicami na primer Excel

Funkcija readtable in njene izvedenke kot glavni argument sprejmejo ime datoteke(s potjo ce je potrebno) vrnejo pa podatkovni okvir Imajo se vrsto argumentov skaterimi je mogoce dolocati kako se obravnavajo znakovne spremenljivke kodiranje

Sedaj bomo prebrali tekstovno datoteko rdquoizborESSn30txtrdquo Njenih prvih nekaj vr-stic je videti takole

spol izobrazba kraj placa

1 zenski 12 kmetija 170

2 moski 12 manjse mesto 140

3 moski 11 manjse mesto 130

4 zenski 14 predmestje 150

V 1 vrstici so imena spremenljivk v 1 stolpcu pa rdquoimenardquo vrstic Prva vrstica(imena spremenljivk) se zacne kar s prvo spremenljivko (in ne z imenom stolpca zaimena vrstic) kar funkcija readdelim (obe verziji saj se razlikujeta le v decimal-nem locilu) tudi pricakuje Stolpci so loceni s tabulatorjem ceprav to iz zgornjegazapisa ni vidno v boljsih urejevalnikih besedila pa je mogoce nastaviti da so vidni

1 poglavje ndash Uvod v R 49

Narekovaji okoli nenumericnih spremenljivk sicer niso nujni (kadar so vrednosti locenes tabulatorji) so pa priporocljivi

gt izborlt-readdelim(file=izborESSn30txt)

gt izbor[14] izpisemo samo zgornje vrstice

spol izobrazba kraj placa

1 zenski 12 kmetija 170

2 moski 12 manjse mesto 140

3 moski 11 manjse mesto 130

4 zenski 14 predmestje 150

gt sapply(izborclass) pogledamo tipe spremenljivk

spol izobrazba kraj placa

factor integer factor integer

Ko smo prebrali podatke smo izpisali tipe spremenljivk Nenumericne spremenljivkeso v R-ju postale spremenljivke tipa factor Ce tega ne zelimo ce zelimo daso tipa character lahko to spremenimo z argumentom stringsAsFactors ki ganastavimo na FALSE

Za pisanje tekstovnih datotek se najpogosteje uporablja funkcija writetable innjene izpeljanke (writecsv in writecsv2)

Podatki ki jih zelimo zapisati s funkcijo writetable morajo biti v obliki matrikeali podatkovnega okvirja

Za bolj splosno branje tekstovnih datotek (v obliki tabel) se uporablja funkcija scanza pisanje takih datotek pa funkcija cat Za vec informacij glejte njuno pomoc

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt in se eno nenumericno

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt izberemo vzorec s ponavljanjem velikosti 10

gt podatkilt-dataframe(x1x2x3)

gt writetable(x=podatki file=podatkitxt sep = t

dec = rownames = FALSE)

gt sep = t - locilo stolpcev je tabulator

gt dec = - decimalno locilo je vejica

gt rownames = FALSE - imena vrstic ne shranimo

gt tako datoteko lahko preberemo z readdelim2

50 15 Delo z datotekami

152 Shranjevanje in branje objektov

Za shranjevanje R-jevih objektov je najprimernejsa funkcija save Je zelo podobnafunkciji saveimage ki smo jo spoznali v podpodpoglavju 125 Razlika je le v temda funkcija save shrani le izbrane objekte saveimage pa vse objekte v delovnemokolju

Objekte ki jih shranimo s funkcijo save lahko preberemo s funkcijo load niso paprimerni za branje z drugimi programi ali z urejevalniki besedila Obicajno damodatotekam koncnico RData

gt save(podatki file=podatkiRdata)

gt rm(podatki)

gt ls() objekta podatki ni vec

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] l n plKroga

[19] plR10 podatkiNA podatkiNAomit

[22] x x1 x2

[25] x3

gt load(file=podatkiRdata)

gt podatki so spet na voljo

x1 x2 x3

1 1742265 9081960 b

2 1808787 10511680 a

3 1798966 8305955 c

4 1711787 12149536 b

5 1710475 12970600 b

6 1785521 9449168 a

7 1813797 8433798 a

8 1752136 10854579 b

9 1821678 9797418 b

10 1787867 13602427 a

Drug nacin ki pa ne deluje dobro pri cisto vseh objektih je uporaba funkcije dump zapisanje in source za branje Funkcija dump poskusa predstaviti objekt z besedilomin to besedilo zapisati v tekstovno datoteko Deluje vedno kadar je mogoce objektpredstaviti z besedilom Ta nacin je posebej primeren za shranjevanjenalaganjefunkcij funkcija source pa tudi za nalaganje kode ki smo jo na primer napisali vurejevalniku besedila Obicajno damo datotekam koncnico R

Funkcija dump je uporabna tudi ko zelimo videti predstavitev objekta z besedilom

1 poglavje ndash Uvod v R 51

gt kvadratlt-function(x)x^2

gt ls()

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] kvadrat l n

[19] plKroga plR10 podatki

[22] podatkiNA podatkiNAomit x

[25] x1 x2 x3

gt dump(list=c(podatkikvadrat) file=raznoR)

gt rm(list=c(podatkikvadrat))

gt ls() objektov podatki in kvadrat ni vec

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] l n plKroga

[19] plR10 podatkiNA podatkiNAomit

[22] x x1 x2

[25] x3

gt source(file=raznoR)

gt ls() pa sta nazaj

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] kvadrat l n

[19] plKroga plR10 podatki

[22] podatkiNA podatkiNAomit x

[25] x1 x2 x3

153 Branje in pisanje datotek drugih programov

R vsebuje tudi paketek ( foreign) ki omogoca branje in pisanje datotek drugih sta-tisticnih programov Tako med drugim bere podatke iz formata sledecih programov

bull SPSS

bull Stata

52 15 Delo z datotekami

bull SAS

bull Weka

bull Octave

bull Minitab

Zaradi razsirjenosti SPSS-a v druzboslovju v tem ucbeniku najveckrat uporabljamfunkcijo readspss ki omogoca branje SPSS-ovih datotek obstajajo pa tudi po-dobne funkcije za ostale popularne statisticne programe (glejte zgoraj)

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign)

gt preberemo podatke

gt egolt-readspss(egoomr00_f2savtodataframe=TRUE

usevaluelabels = FALSEusemissings=TRUE)

gt ego[1319] izpisemo prve tri enote in prvih 9 spremenljivk

EGOID Q1A Q2A Q3A Q4A DQ1A DQ2A DQ3A DQ4A

1 1001 5 NA 5 NA 4 NA 4 NA

2 1003 5 6 6 6 5 6 6 6

3 1004 6 3 5 5 6 NA 5 5

Najpomembnejsi argumenti funkcije readspss so

todataframe Ce ga nastavimo na TRUE bo rezultat funkcije podatkovni okvir(kar ponavadi zelimo) sicer pa seznam (privzeta vrednost)

usevaluelabels Ali naj R uposteva opise vrednosti (rdquovalue labelsrdquo) iz SPSS-ove datoteke Ce ga nastavimo na TRUE potem bodo vse spremenljivke kiimajo nastavljene opise vrednosti obravnavane kot faktorji torej kot nomi-nalne spremenljivke Ne glede na vrednost argumenta se opisi vrednosti shra-nijo v rdquoattributerdquo z imenom rdquovalue labelsrdquo Do njih lahko dostopamo prekoukaza attr(xvaluelabels) kjer je x spremenljivka (npr ego$E_SPOL)za katero zelimo prebrati opise Ce smo uporabili usevaluelabels=FALSEje za spremembo spremenljivke v faktor uporabna funkcija makeFactorLabels

iz datoteke rdquoUcbenikR-funkcijeRrdquo

maxvaluelabels Argument je uporaben le kadar je usevaluelabels=TRUEV tem primeru lahko tudi nastavimo koliko razlicnih vrednosti ima lahkospremenljivka (v podatkih) da se se uporabijo opisi ndash da se spremenljivkaobravnava kot nominalna spremenljivka

usemissings Ali naj se upostevajo kode za manjkajoce vrednosti Ce je TRUE sevse SPSS-ove rdquouporabniske manjkajoce vrednostirdquopretvorijo v NA OpozoriloTa pretvorba ne deluje vedno v redu zato je dosti varneje ce uporabniskemanjkajoce vrednosti pretvorimo v sistemske manjkajoce vrednost v SPSS-u

1 poglavje ndash Uvod v R 53

V tem ucbeniku beremo vse podatke iz SPSS-ovega formata Razlog za izbor tegaformata je predvsem v razsirjenosti uporabe tega formata in tudi samega programaSPSS na Fakulteti za druzbene vede Univerze v Ljubljani pa tudi v obstoju odpr-tokodnega programa PSPP (httpwwwgnuorgsoftwarepspp) ki omogocabranje in pisanje podatkov v tem formatu Seveda pa je moc podatke iz ADP pre-nesti tudi v drugih formatih in jih prebrati v R Vecina ukazov v primerih v temucbeniku bo delovala neodvisno od izvornega zapisa vendar pa mora uporabnik vtem primeru sam poskrbeti za dostop do dolgih imen spremenljivk ter imen vredno-sti spremenljivk Funkcija makeFactorLabels denimo ne bo vec delovala Vendarpa njena uporaba v nekaterih primerih niti ni potrebna na primer pri branju izStatinega (dta) formata

V nadaljevanju sledi se primer branja podatkov is Statinega formata (dta) Pre-brali bomo enake podatke kot so uporabljeni v uvodnem primeru oziroma zgornjemprimeru za branje s funkcijo readspss le da smo te podatke iz ADP-ja prenesliv Statinem formatu Tokrat bomo uporabili funkcijo readdta ki je za uporabose preprostejsa saj obicajno zelen rezultat dobimo ze s privzetimi vrednostmi ar-gumentov Tako izpostavimo le argument convertfactors ki nadzoruje ali najse stevilske spremenljivke z opisi vrednosti shranijo kot faktorji Privzeta vrednostTRUE kot faktorje shrani tiste spremenljivke ki imajo definirane opise za vse vre-dnosti Pri vrednost FALSE se nobena spremenljivka ne shrani kot faktor (kot prireadspss pri vrednosti usevaluelabes=FALSE) pri vrednosti NA pa se vse spre-menljivke ki imajo za vsaj kaksno vrednost definiran opis shranijo kot faktorji (kotpri readspss pri vrednosti usevaluelabes=TRUE) Funkcija readdta vrnepodatkovni okvir Dolga imena spremenljivk so shranjena v atributu varlabels

vrnjenega podatkovnega okvirja opisi vrednosti spremenljivk pa v atributu la-

beltable

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign) ni potrebno ker bi moral biti ze nalozen

gt preberemo podatke s privzetimi nastavitvami

gt ki so obicajno primerne

gt egoStatalt-readdta(egoomr00_f2dta)

gt egoStata[1319]

EGOID Q1A Q2A

1 1001 precej zadovoljen-a ltNAgt

2 1003 precej zadovoljen-a zelo zadovoljen-a

3 1004 zelo zadovoljen-a malo nezadovoljen-a

Q3A Q4A

1 precej zadovoljen-a ltNAgt

2 zelo zadovoljen-a zelo zadovoljen-a

3 precej zadovoljen-a precej zadovoljen-a

DQ1A DQ2A DQ3A

54 15 Delo z datotekami

1 malo zadovoljen-a ltNAgt malo zadovoljen-a

2 precej zadovoljen-a zelo zadovoljen-a zelo zadovoljen-a

3 zelo zadovoljen-a ltNAgt precej zadovoljen-a

DQ4A

1 ltNAgt

2 zelo zadovoljen-a

3 precej zadovoljen-a

gt izpisemo prve enote in prvih 9 spremenljivk

gt

gt preberemo ponovno - tokrat brez pretvorbe v faktorje

gt egoStata2lt-readdta(egoomr00_f2dta convertfactors=FALSE)

gt egoStata2[1319]

EGOID Q1A Q2A Q3A Q4A DQ1A DQ2A DQ3A DQ4A

1 1001 5 NA 5 NA 4 NA 4 NA

2 1003 5 6 6 6 5 6 6 6

3 1004 6 3 5 5 6 NA 5 5

gt zopet izpisemo prve tri enote in prvih 9 spremenljivk

gt

gt attributes(egoStata2)$varlabels[13]

[1] ID ega

[2] zadovoljstvo z materialno oporo-1merjenje

[3] zadovoljstvo z informacijsko oporo-1merjenje

gt attributes(egoStata2)$labeltable[13]

$Q1A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

$Q2A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

$Q3A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

1 poglavje ndash Uvod v R 55

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

Za pisanje datotek ki jih zelimo uvoziti v SPSS bi sicer glede na opis funkcije lahkouporabili funkcijo writeforeign z argumentom package = rsquoSPSSrsquo Ta funkcijagenerira dve tekstovni datoteki podatkovno in datoteko s sintakso Vendar paSPSS pri branju zal javi napako Tudi ce bi postopek deloval je lazje zapisatidatoteko v formatu programa Stata s funkcijo writedta saj lahko ta format uvozitudi SPSS

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt podatkilt-dataframe(x1x2x3)

gt library(foreign) ni potrebno ker bi moral biti ze nalozen

gt writedta(dataframe=podatki file=podatkidta)

154 Vaje

Vaja 1

Ustvarite podatkovno datoteko rdquocsvrdquo (recimo v Excel-u) V datoteko vpisite vsaj10 enot in vsaj 4 spremenljivke (vsaj eno numericno in eno nominalno opisno)Datoteko si oglejte tudi z urejevalnikom besedila Datoteko preberite z R-jem

Vaja 2

Poljubne podatke shranite v tekstovno datoteko in jo potem poglejte v urejevalnikubesedila in programu za delo s preglednicami Lahko izberete tudi podatke ki sodostopni v R-ju preko funkcije data (napisite data() za seznam podatkovij)

Vaja 3

Uvozite podatke iz poljubne SPSS-ove datoteke Poskrbite da boste dobili podat-kovni okvir in da bodo uporabniske manjkajoce vrednosti opredeljene kot manjka-joce

56 16 Risanje

Vaja 4

Podatke iz Vaje 2 (ali kaksne druge) izvozite tako da jih boste lahko odprli z SPSS-om Med podatki naj bo vsaj ena spremenljivka tipa factor Podatke odprite zSPSS-om So pri spremenljivki tipa factor (v R-ju) vidni opisi vrednosti v SPSS-u

16 Risanje

R ima zelo dobro podprto grafiko oziroma risanje grafov Za vpogled v to kaj vse jemogoce narisati z R-jem in tudi za ideje kako kaj narediti sta zelo koristni stranirdquoR Graphical Manualrdquo (httpbm2genesnigacjpRGM2 in rdquoR graph galleryrdquohttpaddictedtorfreefrgraphiques

161 Visokonivojske funkcije za risanje

Visokonivojske funkcije za risanje so tiste ki ustvarijo nov graf Kasneje bomospoznali tudi nizkonivojske ki le dodajo elemente na obstojeci graf Locnica medvisoko- in nizko-nivojskimi funkcijami sicer ni ostra saj se nekatere funkcije lahkouporabljajo v obeh vlogah

Osnovna funkcija za risanje v R-ju je plot Delovanje funkcije se razlikuje glede natip objekta ki ji ga posredujemo kot argument Funkcija namrec poskusa pripra-viti graf ki je primeren vhodnemu argumentu Tu ne bomo mogli pregledati vsehmoznosti zato navajam le nekaj primerov

gt uporabimo podatke iz izborESSn30txt

gt izborlt-readdelim(file=izborESSn30txt)

gt sapply(izborclass) ponovimo kaksne tipe podatkov imamo

spol izobrazba kraj placa

factor integer factor integer

gt plot(izbor$placa)

gt na y osi je placa na x pa indeksi (zaporedne stevilke enot)

gt plot(izbor$placatype=o)

gt plot(izbor$spol) strukturni stolpci ker je spol nominalka

gt plot(placa~spoldata=izbor) skatlasti grafikon (z zavihki)

gt plot(spol~placadata=izbor) porazdelitev po razredih

gt plot(kraj~spoldata=izbor)

gt plot(placa~izobrazbadata=izbor)

gt pod data navedemo podatkovni okvir kjer se nahajajo sprem

gt razsevni grafikon - odvisnost place od izobrazbe

gt plot(placa~izobrazbadata=izbor)

1 poglavje ndash Uvod v R 57

gt plot(izbor) razsevni grafikon za vsak par spremenljivk

gt lmFitlt-lm(placa~izobrazba data=izbor) linearna regresija

gt plot(lmFit)

gt plot(placa~izobrazbadata=izborpch=asnumeric(spol)

col=spol cex=2 main = Razsevni grafion

xlab=Izobrazba v letih ylab = Placa v 1000 sit)

Kot smo videli funkcija plot vedno skusa narisati nekaj primernega tudi takrat kosmo kot argument uporabili rezultat linearne regresije Ta funkcija in vecina funk-cij za risanje sprejme vec argumentov s katerimi lahko prilagajamo risanje (glejtepredvsem daljsi primer na strani 59) Nekaj najpogostejsih

type Tip grafikona Relevantno pri razsevnih grafikonih ndash tocke crta tocke pove-zane s crto

data Iz katerega podatkovnega okvirja (ali seznama) naj uporabi podatke Pred-vsem se uporablja kadar je osnovni argument formula

main Glavni naslov

xlab ylab Ime osi x in y

pch Simbol ki naj se uporablja za risanje tock Lahko ima samo eno vrednost alipa je vrednost vektor ki za vsako tocko poda simbol

col Barva (ponavadi tocke) Podobno kot zgoraj

cex Velikost tocke Podobno kot zgoraj

xlim ylim Meje risanja na osi x in y (se nismo uporabili bomo kasneje)

Obstaja se veliko dodatnih argumentov s katerimi je mogoce po zelji prilagoditiprikaz Za pregled teh argumentov si poglejte pomoc za funkciji plotdefault inpar

Predvsem argumente slednje je treba pogosto nastaviti s klicem funkcije par predklicem izbrane funkcije Tak zelo uporaben argument je na primer argument mfrowoziroma mfcol ki nam omogoca da na eno sliko narisemo vec grafov Primer je nasliki 19 (koda sledi v naslednjem primeru)

Vseeno pa privzeti graf ni vedno tisti ki ga zelimo Poglejmo si se dodatne funkcijeza risanje grafov

hist Histogram

barplot Stoplci Pozor Za klasicne strukturne stolpce mora biti argument tabela(le-to dobimo s funkcijo table)

pie Strukturni krog Enako kot zgoraj

boxplot Skatlasti grafikon (z zavihki)

curve Risanje krivulj

58 16 Risanje

Slika 19 Strutkutna stolpca in krog na eni sliki

moski zenski

05

1015 moski

zenski

gt curve(dnorm(x)xlim=c(-44))

gt standardna normalna porazdelitev

gt

gt hist(izbor$placa) histogram - frekvence

gt hist(izbor$placa freq=FALSE) frekvence - gostota

gt boxplot(izbor$placa) ena skupina

gt boxplot(placa~spol data=izbor) dve skupini

gt par(mfrow=c(21)) spodnja 2 grafa zelimo imeti na eni sliki

gt barplot(table(izbor$spol))

gt pie(table(izbor$spol))

gt par(mfrow=c(11)) povrnemo originalne nastavitve

162 Nizkonivojske funkcije za risanje

Nizkonivojske funkcije za risanje ne ustvarijo novega grafa ampak le dodajo elementena obstojeci graf Nekaj najpomembnejsih

points lines Dodata tocke crte ali tocke povezane s crto

text Doda tekst

mtext Doda tekst na obrobeosi

axis Doda osi

title Doda naslov

legend Doda legendo

1 poglavje ndash Uvod v R 59

expression Uporabljamo ga za vnasanje matematicnih formul ali simbolov na slike5

bquote Uporablja se za vnasanje matematicnih formul ki vkljucujejo izracunanekolicine na slike (podobno kot expression)

Posebej je treba razloziti uporabo expression Vcasih zelimo na sliki izpisati tudimatematicne formule ali znake Le-te lahko uporabimo takorekoc povsod kjer lahkopisemo besedilo (na primer naslovi legende oznake osi oznake na oseh ) V temprimeru namesto besedila dolocenemu argumentu (na primer main text labels kot vrednost podamo expression Slabost tega nacina pa je da ne omogocardquomesanjardquo izracunih kolicin (recimo izracunano vrednost R2 v naslednjem primeru)in matematicnih oznak Nacin pisanja za obe moznosti je opisan v pomoci podgeslom plotmath (za dostop do pomoci torej uporabimo plotmath) je pa precejpodoben LATEX-u Primer slike z veliko dodatnimi elementi je na sliki 110

gt lmFitlt-lm(placa~izobrazba data=izbor) linearna regresija

gt maroldlt-par(mar)

gt par(mar=c(5444)+01)

gt plot(placa~izobrazbadata=izborpch=asnumeric(spol)

col=spol cex=1 main = Razsevni grafikon

xlab=Izobrazba v letih ylab = Placa v 1000 sit)

gt abline(lmFit)

gt axis(side=4 at=(28)2100239641000

labels = (28)2100)

gt mtext(text=Placa v EUR side=4line=25)

gt par(mar=marold) graficne parametre nastavimo nazaj

gt na staro vrednost

gt legend(x=5 y = 400 legend = c(moski zenski)

title=Spolpch=12col=12 xjust=0 yjust=1)

gt text(x=5 y = 300 adj=0labels=

paste(R kvadrat =round(summary(lmFit)$rsquared3)))

gt text(x=5 y = 280 adj=0

labels=expression(paste(R^2 = 0536)))

gt text(x=5 y = 260 adj=0

labels=bquote(R^2 == (round(summary(lmFit)$rsquared3))))

Poleg tega je mogoce veliko visokonivojskih funkcij uporabljati tudi za dodajanje naobstojeci graf (na primer curve hist ) tako da jim dodamo argument add=TRUE

5 Glavni rezultat funkcije je sicer da ustvari R-jev izraz ki pa se ne izvede (oziroma evalviraizracuna)

60 16 Risanje

Slika 110 Slika z veliko dodanimi elementi

5 10 15 20

100

150

200

250

300

350

400

Razsevni grafikon

Izobrazba v letih

Pla

ča v

100

0 si

t

400

600

800

1000

1200

1400

1600

Pla

ča v

EU

R

Spol

moškiženski

R kvadrat = 0536

R2 = 0536

R2 = 0536

gt hist(izbor$placa freq=FALSE) frekvence - gostota

gt curve(dnorm(xmean=mean(izbor$placa) sd=sd(izbor$placa))

add=TRUE) vrisemo normalno krivuljo

163 Shranjevanje slik

Slike narisane z R-jem je zelo enostavno shraniti v vec formatih To je moznostoriti na vec nacinov

1 Preko menija ki se odpre s klikom desnega miskinega gumba kjerkoli na slikiPreko tega menija je mogoce

(a) Shraniti slike v datoteko formata Windows metafile (WMFEMF) aliPostScript (PSEPS)

1 poglavje ndash Uvod v R 61

(b) Kopirati sliko v odlozisce v obliki bitne slike (rdquobitmaprdquo) ali v formatuWindows metafile To lahko potem s rdquoprilepirdquo oziroma rdquopasterdquo prilepite vvecino programov (na primer Word )

2 Preko funkcije savePlot je mogoce shraniti sliko iz trenutno aktivnega grafic-nega okna v enem izmed naslednjih formatov Windows metafile PNG JPEGBMP (Windows bitmap format) TIFF PostScript in PDF Tudi s pomocjote funkcije je mogoce shraniti sliko v odlozisce

3 Tako da rdquorisemordquo neposredno v datoteko oziroma na rdquonapravordquo (device) kipredstavlja datoteko Postopek je sestavljen iz sledecih korakov

(a) Odpremo izbrano napravo Za seznam razlicnih naprav (tipov dato-tek) uporabite ukaz Devices Moznosti in argumenti ki so dovoljenipri klicu funkcij ki odpirajo naprave se razlikujejo glede na vrsto na-pravedatoteke

(b) Risemo na enak nacin kot ce bi risali v odprto okno

(c) Napravo zapremo s funkcijo devoff()

Ta (tretji) nacin omogoca najvecjo fleksibilnost pri dolocanju lastnosti koncneslike (na primer kvalitete pri slikah jpg)

Recimo da zelimo narisati porazdelitve vseh spremenljivk v podatkih izbor vsakona svoj graf Te grafe zelimo shraniti v datoteke tipa png To lahko naredimo sspodnjo kodo

gt plotnumericlt-hist

gt S tem nastavimo histogram za privzeti prikaz numericnih

gt spremenljivk Tako pocetje je NEVARNO ker spreminjamo

gt privzeto obanasanje funkcije plot

gt png(filename = Slikadpngwidth = 1200 height = 1200

res=200) namesto d se bo v ime datoteke zapisala

gt zaporedna stevilka slike

gt nekaj parametrov smo nastavili po svoje

gt for(i in names(izbor)) plot(izbor[[i]]main=ixlab=i)

gt devoff()

pdf

2

gt rm(plotnumeric) Odstranimo nevarno nastavitev

Pojasnila

bull V imenu slike smo uporabili rdquodrdquo To nam omogoca da naredimo vec slik neda bi za vsako posebej klicali funkcij png in devoff Png namrec omogocale eno sliko na datoteko

62 16 Risanje

bull Ker je png nevektorski format sirino in visino podamo v tockah (pikslih)Velikost slike dolocimo z argumentom res kjer dolocimo stevilo tock na incPri vektorskih formatih (na primer pdf) sirino in visino podamo v incih

bull Na zacetku smo uporabili ukaz plotnumericlt-hist S tem smo nastavilihistogram za privzeti prikaz numericnih spremenljivk Tako pocetje je NE-VARNO saj bi nam povzrocalo probleme pri risanju razsevnih grafikonovZato smo na koncu tudi uporabili rm(plotnumeric) Ker ta funkcija prej niobstajala smo s tem povrnili prejsnje stanje

Narisimo se isto v datoteko pdf Ker pdf podpira vec strani lahko vse 4 grafenarisemo v eno datoteko

gt plotnumericlt-hist

gt pdf(file = StiriSlikepdf width = 6 height = 6)

gt nekaj parametrov smo nastavili po svoje

gt for(i in names(izbor)) plot(izbor[[i]]main=ixlab=i)

gt devoff()

pdf

2

gt rm(plotnumeric)

Opomba Pri formatih pdf eps in ps lahko velikost rdquopapirjardquo dolocamo neodvisno odvelikosti slike z argumentom papersize Privzeta vrednost je sicer da je velikostpapirja enaka velikosti slike

164 Vaje

Vaja 1

Narisite histogram za poljubno spremenljivko Vrisite tudi normalno krivuljo Glavninaslov in imena osi nastavite rocno (ne uporabite privzetih) Stolpci naj bodo modrebarve

Namig Normalno krivuljo je veliko lazje vrisati ce pri histogramu risete gostoto inne frekvenc

Vaja 2

Na eno sliko narisite 4 histograme (v 2 vrstici s po 2 stolpcema) za poljubno spre-menljivko Na vsakem histogramu uporabite drugo stevilo razredov

1 poglavje ndash Uvod v R 63

Vaja 3

Narisite razsevni grafikon za poljubni dve intervalni spremenljivki Izberite vsaj enoizmed sledecih moznosti

bull Velikost tocke naj se razlikuje glede na vrednost neke tretje razmernostnespremenljivke

bull Oblika tocke naj se razlikuje glede na vrednost neke nominalne spremenljivke

17 Priprava dokumentov z rezultati iz R-ja

R podpira vec nacinov za pripravo dokumentov z rezultati analiz Najzmogljivejsitemeljijo na konceptu ponovljive znanosti (ang rdquoreproducible researchrdquo) Pri pri-pravi tega ucbenika je uporabljen sistem Sweave (Leisch 2002) (httpwwwstatuni-muenchende~leischSweave) ki je del osnovne R-jeve distribucije Sistemomogoca da v enem dokumentu zdruzimo tekst in R-jevo kodo ter rezultate iz R-ja(izpis tabele grafi ) Osnovni sistem je bil razvit za LATEX preko paketka R2HTML

pa omogoca tudi uporabo HTML-ja Zelo podoben sistem podpira tudi paketekknitr (httpyihuinameknitr) ki ima dodatno prednost da lahko za ure-janje besedila uporablja tudi druge sisteme (ne samo LATEX) na primer HTML inMarkdown Predvsem Markdown je zelo enostaven za uporabo omogoca pa tudiizdelavo koncnega dokumenta v razlicnih formatih (Word PDF ali HTML)

Sweave sistem je mogoce uporabiti tudi preko dokumentov formata rdquoOpen Do-cument Formatrdquo oziroma rdquoODFrdquo ki jih na primer uporabljata OpenOfficeorg inLibre Office To omogoca paketek odfWeave(httpcranr-projectorgwebpackagesodfWeaveindexhtml) Prednost tega je da ne zahteva znanja LATEX-aali HTML-ja

Za uporabnike Microsoft (Office) Worda pa sta najbolj zanimiva paketeka R2wd

in rtf Prednost prvega je da omogoca vstavljanje neposredno v odprt Wordovdokument drugega pa da ne potrebuje dodatnih programov (npr Worda) in nimaz njimi povezanih omejitev sej neposredno ustvari RTF (rich text format) dokumentTako je mogoce neposredno ustvariti porocilo ali pa vanj le izvoziti tabele ki jihpotem lahko zelo enostavno prenesemo v Word

Poglejmo najprej paketek R2wd ki deluje le v povezavi z 32-bitnim Wordom Vprimeru da je namen dodajati rezultate iz R-ja v Word in ne avtomatsko generi-ranje porocil je verjetno najuporabnejsa funkcija wdTable Najbolj problematicnopri izvozu rezultatov v Word je namrec dodajanje tabel saj je osnovni R-jev izpistekstovni kar v porocilih ni videti lepo Ravno funkcija wdTable pa omogoca vsta-vljanje lepo oblikovanih tabel v Word zal pa je precej pocasna Preden pa lahkokarkoli pisemo v dokument ga moramo najprej odpreti s funkcijo wdGet

64 17 Priprava dokumentov z rezultati iz R-ja

S spodnjo kodo bomo v Word nalepili tri tabele

gt library(R2wd)

gt wdGet() odpremo nov ali obstojeci (kot argument podamo ime

gt in po potrebi pot do njega) dokument

gt vmes moramo pocakati da se dokument odpre

gt najbolj varno je da prej nimamo odprtega nobenega dokumenta

gt

gt wdTable(izbor) izvozimo tabelo (podatke) v dokument

gt tabela se pojavi na mestu kjer je kazalnik (oz kurzor)

gt

gt wdTable(table(Kraj=izbor$krajSpol=izbor$spol))

gt kontingencna tabela

gt

gt regKoeflt-summary(lm(placa~izobrazba+spoldata=izbor))$coef

gt regKoeflt-format(asdataframe(regKoef)digits=c(4441)

scien=FALSE) da bo lepsi format

gt wdTable(format(regKoef))

gt izvozimo tabelo regresijskih koeficientov

gt

gt Xlt-matrix(115ncol=3)

gt wdTable(X)

gt tole bi javilo napako

gt tabela ali matrika mora imeti definirana imena stolpcev in

gt vrstic

gt colnames(X)lt-c(abc)

gt rownames(X)lt-15

gt wdTable(X)

gt R2wd-package

gt vec pomoci o paketku

Kot lahko vidite na podlagi pomoci za paketek (R2wd-package) paketek omo-goca generiranje celotnih Wordovih dokumentov av tem ucbeniku je predstavljenle najbolj problematicen del Za vstavljanje slik sicer lahko uporabimo funkcijo wd-

Plot lahko pa tudi sliko iz R-ja enostavno skopiramo v odlozisce ali shranimo vdatoteko (glejte podpodpoglavje 163) in od tam prilepimo v Word

Poglejmo sedaj se uporabo paketka rtf Tudi tu je najbolj kljucna funkcija za iz-voz tabel funkcija addTable predstavljena pa je se uporaba funkcij addHeader zaustvarjanje naslovov in addText za vstavljanje navadnega besedila Pred obliko-vanjem dokumenta ga moramo najprej ustvariti s funkcijo RTF (ki kot argumentsprejme ime datoteke) in na koncu zapreti s funkcijo done

1 poglavje ndash Uvod v R 65

gt library(rtf)

gt rtfDoclt-RTF(testrtf) kreiramo novo datoteko in shranimo

gt dobljeni objekt

gt

gt dodamo naslov in podnaslov

gt addHeader(rtfDoctitle=Testsubtitle=Osnovni podatki)

gt addTable(rtfDocizbor)

gt addText(rtfDocTole so osnovni podatkin) dodamo tekst

gt addHeader(rtfDoctitle=NULLsubtitle=Kontingencna tabela)

gt addTable(rtfDoctable(Kraj=izbor$krajSpol=izbor$spol))

gt kontingencna tabela

gt

gt

gt regKoeflt-summary(lm(placa~izobrazba+spoldata=izbor))$coef

gt regKoeflt-format(asdataframe(regKoef)digits=c(4441)

scien=FALSE) da bo lepsi format

gt addHeader(rtfDoctitle=NULLsubtitle=Regresijski koeficienti)

gt addTable(rtfDocformat(regKoef))

gt izvozimo tabelo regresijskih koeficientov

gt

gt

gt Xlt-matrix(115ncol=3)

gt addHeader(rtfDoctitle=NULL

subtitle=Matrika brez imen stolpcev in vrstic)

gt dodajo se privzeta imena stolpcev

gt addTable(rtfDocX)

gt addText(rtfDocDodana so bila privzeta imena stolpcevn)

gt dodamo tekst

gt

gt colnames(X)lt-c(abc)

gt rownames(X)lt-15

gt addHeader(rtfDoctitle=NULL

subtitle=Matrika z imeni stolpcev in vrstic)

gt addTable(rtfDocX rownames=TRUE)

gt ce zelimo izpisati imena vrstic

gt done(rtfDoc) zapremo datoteko

gt rtf-package

gt vec pomoci o paketku

66 18 Resitve vaj

18 Resitve vaj

181 Podatkovne strukture

Vaja 1

gt xlt-c(10 23 43 43 32 12)

gt povXlt-sum(x)length(x)

gt povX

[1] 2716667

gt varXlt-sum((x - povX)^2)length(x)

gt varX

[1] 1778056

gt sdXlt-varX^(12) ali sqrt(varX)

gt sdX

[1] 1333437

gt reslt-c(povprecje=povXvarianca=varXsd=sdX)

gt res

povprecje varianca sd

2716667 17780556 1333437

Vaja 2

gt ylt-c(10 23 43 43 32 12)

gt x1lt-c(15 23 54 45 42 10)

gt x2lt-c(210 183 186 164 175 200)

gt Xlt-cbind(1x1x2)

gt blt-asvector(solve(t(X) X) t(X) y)

gt b

[1] 52819111 6240474 -0243166

gt names(b)lt-colnames(X)

gt b

x1 x2

52819111 6240474 -0243166

gt yNap lt- asvector(X b)

gt e lt- y - yNap

gt cbind(y=ynapoved=yNaprezidual=e)

y napoved rezidual

[1] 10 1111496 -11149560

[2] 23 2267282 03271824

[3] 43 4128879 17112125

1 poglavje ndash Uvod v R 67

[4] 43 4102201 19779861

[5] 32 3647505 -44750455

[6] 12 1042638 15736205

gt reslt-list(b=b napovedi=yNap rezidual=e)

gt res

$b

x1 x2

52819111 6240474 -0243166

$napovedi

[1] 1111496 2267282 4128879 4102201 3647505 1042638

$rezidual

[1] -11149560 03271824 17112125 19779861 -44750455

[6] 15736205

182 Funkcije in programiranje

Vaja 1

Resitev Vaje 1 iz podpodpoglavja 138 (podpoglavje Podatkovne struk-ture) v obliki funkcije

gt definicija funkcije

gt opisStatlt-function(x)

povXlt-sum(x)length(x)

varXlt-sum((x - povX)^2)length(x)

sdXlt-varX^(12) ali sqrt(varX)

reslt-c(povprecje=povXvarianca=varXsd=sdX)

return(res)

gt xlt-c(10 23 43 43 32 12)

gt opisStat(x)

povprecje varianca sd

2716667 17780556 1333437

Resitev Vaje 2 iz podpodpoglavja 138 (podpoglavje Podatkovne struk-ture) v obliki funkcije

gt regresijalt-function(yX)

Xlt-cbind(1X)

68 18 Resitve vaj

blt-asvector(solve(t(X) X) t(X) y)

names(b)lt-colnames(X)

yNap lt- asvector(X b)

e lt- y - yNap

reslt-list(b=b napovedi=yNap rezidual=e)

return(res)

gt ylt-c(10 23 43 43 32 12)

gt x1lt-c(15 23 54 45 42 10)

gt x2lt-c(210 183 186 164 175 200)

gt Xlt-cbind(x1x2)

gt regresija(yX)

$b

x1 x2

52819111 6240474 -0243166

$napovedi

[1] 1111496 2267282 4128879 4102201 3647505 1042638

$rezidual

[1] -11149560 03271824 17112125 19779861 -44750455

[6] 15736205

Vaja 2

gt vsotalt-function(x)

vsotalt-0

for(i in x)

vsota lt- vsota + i

return(vsota)

gt xlt-c(10 23 43 43 32 12)

gt vsota(x)

[1] 163

gt sum(x) enak rezultat

[1] 163

Vaja 3

1 poglavje ndash Uvod v R 69

gt funkcija s for zanko

gt fakForlt-function(n)

reslt-1

for(i in seq_len(n))

reslt-resi

return(res)

gt funkcija z while zanko

gt fakWhilelt-function(n)

reslt-1

while(ngt1)

reslt-resn

nlt-n-1

return(res)

gt funkcija z rekurzivno funkcijo

gt fakReklt-function(n)

if(nlt=1)

return(1)

else

return(nfakRek(n-1))

gt vse funkcije dajo seveda enak rezultat

gt fakFor(10)

[1] 3628800

gt fakWhile(10)

[1] 3628800

gt fakRek(10)

[1] 3628800

gt factorial(10) tudi R-jeva vgrajena funkcija

[1] 3628800

Vaja 4

gt medlt-function(x)

xlt-sort(x)

nlt-length(x)

if(n 2 ==0)

70 18 Resitve vaj

Slika 111 Resitev vaje 1 (Risanje)

Lep histogram

Moja spremenljivka

Gos

tota

6 8 10 12 14

000

005

010

015

return((x[n2]+x[n2+1])2)

else

return(x[ceiling(n2)])

gt xlt-c(10 23 43 43 32 12)

gt med(x)

[1] 275

183 Risanje

Vaja 1

gt setseed(2010)

gt xlt-rnorm(100mean=10sd=2)

gt hist(xcol=lightbluemain=Lep histogram

xlab=Moja spremenljivkafreq=FALSEylab=Gostota)

gt curve(dnorm(xmean=10sd=2)add=TRUExpd=NA)

Rezultat je prikazan na sliki 111

1 poglavje ndash Uvod v R 71

Vaja 2

gt setseed(2010)

gt xlt-rnorm(1000mean=10sd=2)

gt par(mfrow=c(22))

gt hist(xmain=priblizno 5 razredovfreq=FALSE

ylab=Gostota br=5)

gt hist(xmain=priblizno 10 razredovfreq=FALSE

ylab=Gostotabr=10)

gt hist(xmain=priblizno 30 razredovfreq=FALSE

ylab=Gostotabr=30)

gt hist(xmain=priblizno 50 razredovfreq=FALSE

ylab=Gostotabr=50)

gt par(mfrow=c(11))

Rezultat je prikazan na sliki 112

Vaja 3

gt setseed(2010)

gt xlt- rnorm(100mean=0sd=2)

gt ylt- x^2 +rnorm(100sd=3)

gt zlt-abs(abs(yx)^(14)+rnorm(100sd=05))

gt klt-asnumeric(cut(x+rnorm(100sd=1)breaks=5))

gt plot(y~xpch=kcex=z)

Rezultat je prikazan na sliki 113

19 Viri za poglabljanje znanja

191 Spletni viri

R je odprtokodni program zato je veliko virov na voljo tudi na spletu Tukajnastevamo nekaj najpomembnejsih

R-project Glavna spletna stran za R ki vsebuje veliko uporabnih vsebin pred-vsem pa omogoca tudi prenos programskega paketa RURL httpwww

r-projectorg

R-project ndash rdquouradnirdquo prirocniki Uradni prirocniki za R - precej tehnicno inosnovno URL httpcranr-projectorgmanualshtml

72 19 Viri za poglabljanje znanja

Slika 112 Resitev vaje 2 (Risanje)

približno 5 razredov

x

Gostota

5 10 15

000

005

010

015

približno 10 razredov

x

Gostota

4 6 8 10 12 14 16000

005

010

015

približno 30 razredov

x

Gostota

4 6 8 10 12 14 16

000

005

010

015

020

približno 50 razredov

x

Gostota

4 6 8 10 12 14 16

000

005

010

015

020

R-project ndash ostali prirocniki Poleg uradnih prirocnikov je na voljo tudi mnogodrugih prirocnikov in podobnega gradiva ki so ga prispevali uporabniki R-jaURL httpcranr-projectorgother-docshtml

Rseek Spletni iskalnik po vsebinah povezanih z R-jem vkljucno s seznami zaelektronsko posto za pomoc uporabnikom URL httpwwwrseekorg

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

R Graph Gallery Galerija grafov narejenih z R-jem vkljucno z uporabljeno kodoURL httpaddictedtorfreefrgraphiques

1 poglavje ndash Uvod v R 73

Slika 113 Resitev vaje 3 (Risanje)

-4 -2 0 2 4

-50

510

1520

x

y

RStudio Integrirano razvojno okolje za R Zdruzuje urejevalnik besedila z oznace-vanjem in samodokoncanjem R-jeve kode konzolo pomoc okno za graficneprikaze in se veliko vec URL httprstudioorg

Spletna stran prof dr Andreja Blejca o R-ju Vsebuje veliko koristnih vse-bin povezanih z R-jem vkljucno s prirocnikom Introduction to R URL httpablejecnibsiR

192 Knjizni viri

Splosne knjige o R-ju

Knjige v tem poglavju so splosni prirocniki za programski paket R Pokrivajo vsaali vecino podpoglavij tega poglavja vecinoma pa tudi podrocja iz ostalih dvehpoglavjih

74 19 Viri za poglabljanje znanja

bull Zuur Alain F Elena N Ieno in Erik HWG Meesters 2009 A BeginnerrsquosGuide to R New York Springer6

Zelo nezahtevna samo osnove R-ja (skoraj) brez statistike

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer7

Se posebej primerna za tiste ki ze poznajo SPSS ali SAS

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC8

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer9

Knjige o programiranju

bull Matloff Norman 2011 The Art of R Programming A Tour of StatisticalSoftware Design San Francisco No Starch PressManj zahtevna

bull Venables William N in Brian D Ripley 2000 S programming New YorkSpringerBolj zahtevna

Knjige o risanju

Prakticno vse splosne knjige o R-ju vsebujejo tudi poglavje o risanju ki ponavadizadostuje za osnovne grafe Spodaj nasteti knjigi pa bolj poglobljeno predstavljatarazlicne sisteme za risanje v R-ju (prva) ali se posebej podrobno dolocen nacinrisanja (druga)

bull Murrell Paul 2011 R graphics Boca Raton CRC PressRazlicni sistemi za risanje

bull Wickham Hadley 2009 ggplot2 Elegant Graphics for Data Analysis Do-rdrecht New York Springer URL httppubliceblibcomEBLPublic

PublicViewdoptiID=51146810

Sistem za risanje ki temelji na Wilsonovi (2005) graficni slovnici

6 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani7 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani8 Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf9 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani10Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani

1 poglavje ndash Uvod v R 75

Priprava dokumentovporocil

bull Xie Yihui 2013 Dynamic report generation with r and knitr Boca RatonChapman amp Hall Crc

bull Gandrud Christopher 2013 Reproducible research with R and RStudio BocaRaton Chapman amp HallCRC

110 Vprasanja za ponavljanje

1 R je vektorski jezik Kaj to pomeni

2 Katera podatkovna struktura v R-ju je najprimernejsa za shranjevanje podat-kovij ndash podatkov o vec spremenljivkah na vec enotah

3 Kako v R-ju priklicemo pomoc za neko funkcijo in kako iscemo po pomoci

4 Kateri izmed sledecih znakov so dovoljeni v imenih objektov v R-ju |- +

5 Na kaksen nacin v R-ju predstavimo nominalne spremenljivke

6 Ali R omogoca matricno racunanje

7 Kako R razsirimo z dodatnimi funkcijami

8 Katere vrste zank poznamo v R-ju in v cem se razlikujejo

9 Ali lahko z R-jem beremo podatkovne datoteke iz ostalih popularnih statistic-nih paketov (SPSS Stata ) Ce da kateri paketek potrebujemo za to

10 Katere funkcije lahko uporabimo za branje in pisanje tekstovnih podatkovnihdatotek

11 Od cesa je odvisno kaksne vrste graf narise funkcija plot

12 Kaksna je razlika med visokonivojskimi in nizkonivojskimi funkcijami za risa-nje

13 Kaj pomeni notacija y x in zakaj se uporablja v funkcijah za risanje

14 Kaksen graf narise funkcija plot ce kot argument podamo nominalno spre-menljivko in kaksen ce kot argumenta podamo dve intervalni spremenljivki

15 Na kaksne nacine lahko shranjujemo slike

16 Kako za neko funkcijo poiscemo njene argumente

17 V katerih formatih (vrstah datotek) lahko izdelujemo porocila z R-jem

77

2 poglavje

Univariatna in bivariatna statistika

Drugo poglavje obravnava kar veliko univariatnih in bivariatnih statisticnih metodtako s podrocja osnovne opisne statistike kot tudi inferencne statistike Na zacetkupoglavja so najprej predstavljeni podatki ki jih uporabljamo v tem poglavju skupajz navodili za njihovo pridobitev iz Arhiva druzboslovnih podatkov in branje z R-jem Sledi predstavitev osnovnih opisnih statistik predvsem mer srednjih vrednostiin variabilnosti ter mer za obliko porazdelitve (asimetrija sploscenost) Od tu naprejucbenik obravnava tudi metode inferencne statistike najprej pri pregledu metod zapreverjanje domnev o srednjih vrednostih (o eni srednji vrednosti in o razliki medsrednjimi vrednostmi za neodvisne in odvisne vzorce) in racunanje ustreznih inter-valov zaupanja kjer poleg parametricnih metod obravnavamo tudi neparametricneTo je tudi skoraj edini del ucbenika kjer tudi teoreticno predstavimo obravnavanemetode Sledi preverjanje domnev o delezih ter racunanje ustreznih intervalov zau-panja Na koncu poglavja obravnavamo se metode za merjenje o povezanosti dvehspremenljivk glede na merske lestvice spremenljivk ter za preverjanje domnev o po-vezanosti

21 Uporabljeni podatki

Za prikaz predstavljenih metod bomo uporabili podatke iz Evropske druzboslovneraziskave (httpwwweuropeansocialsurveyorg) za Slovenijo za leto 2004Uporabljena datoteka je bila pridobljena iz Arhiva druzboslovnih podatkov (Tosin drugi 2004) Opis raziskave in povezave do datoteke so dostopni na tem spletnemnaslovu httpwwwadpfdvuni-ljsiopisisjm042

Iz Arhiva druzboslovnih podatkov sem prenesel podatke v SPSS-formatu (rdquosavrdquo)Najprej preberemo podatke iz SPSS-ove datoteke ter uvozimo funkcije iz datotekerdquoUcbenikR-funkcijeRrdquo

78 22 Osnovne statistike

gt nalozimo podatke

gt library(foreign)

gt datalt-readspss(file=sjm042_f1sav

todataframe = TRUE usevaluelabels = TRUE

maxvaluelabels=5 usemissings=TRUE)

gt nalozimo tudi dodatne funkcije

gt source(UcbenikR-funkcijeR)

Nato preverimo stevilo enot in spremenljivk ter katere spremenljivke so v podatkih zuporabo funkcije names Dolga imena spremenljivk iz SPSS-a (labels) so shranjenav atributu variablelabels

gt dim(data) stevilo enot in spremenljivk

gt names(data)

gt attributes(data)$variablelabels

Zaradi dolzine izpisa ga tu ne navajamo

22 Osnovne statistike

R ze v osnovni razlicici (brez dodatnih paketkov) vsebuje funkcije za prakticno vseosnovne statistike Navedimo nekaj najosnovnejsih

mean aritmeticna sredina

median mediana

sd in var standardni odklon in varianca (vzorcna ndash (n - 1) v imenovalcu)

min in max minimum in maksimum

range razpon (vrne minimum in maksimum kot vektor)

quantile kvantili

Vse zgoraj nastete funkcije kot argument sprejmejo vektor (spremenljivko) V pri-vzeti obliki ne dovoljujejo manjkajocih vrednosti (NA) saj v tem primeru tudi vrnejoNA Vendar pa je mogoce nastaviti da manjkajoce vrednosti ignorirajo s parametromnarm=TRUE

Recimo da nas se posebej zanima spremenljivka G91 ndash Bruto placa Tako bomo nanjej izracunali osnovne statistike

gt G91 - bruto placa

gt izracunajmo osnovne statistike zanjo

gt sum(isna(data$G91))

2 poglavje ndash Univariatna in bivariatna statistika 79

[1] 325

gt prestejemo stevilo enot z veljavnimi vrednostmi pri G91

gt imamo jih samo 325

gt

gt hist(data$G91)narisemo histogram

gt pri vseh sledecih funkcijah dodamo argument narm=TRUE

gt brez njega bi zaradi manjkajocih vrednosti dobili

gt rezultat NA

gt range(data$G91 narm=TRUE) preverimo razpon

[1] 53 760

gt mean(data$G91 narm=TRUE) aritmeticna sredina

[1] 2257108

gt sd(data$G91 narm=TRUE) standardni odklon

[1] 120953

gt median(data$G91 narm=TRUE) mediana

[1] 200

gt quantile(data$G91 probs=c(02505075) narm=TRUE)

25 50 75

140 200 280

gt izracunamo kvartile

Zelo koristna je tudi funkcija summary ki izracuna povzetek ki je primeren gledena tip objektaspremenljivke Funkcija se lahko uporabi na razlicnih podatkovnihstrukturah (tudi na primer na celotnem podatkovnem okvirju)

Funkcija summary sicer naredi kar dober povzetek vendar pa pri stevilskih spre-menljivkah pogresam vsaj izracun standardnega odklona Lahko bi sicer naredilisvojo funkcijo lahko pa uporabimo funkcijo describe iz paketka psych ki polegtega izracuna tudi mere asimetrije in sploscenosti Tudi funkcijo describe lahkouporabimo le na eni spremenljivki ali na celotnem podatkovnem okvirju Je pa tafunkcija primerna le za intervalne in razmernostne spremenljivke Izracun naredisicer tudi za ostale a ni smiseln in zato jih v rezultatih oznaci z rdquordquo

V paketku psych najdemo tudi funkciji za koeficient asimetrije skew in splosce-nosti kurtosi in se veliko drugih uporabnih funkcij (ki se uporabljajo predvsem vpsihologiji in druzboslovju)

Poglejmo torej najprej uporabo summary na eni sami spremenljivki

gt povzetek za stevilsko spremenljivko

gt summary(data$G91)

Min 1st Qu Median Mean 3rd Qu Max NAs

530 1400 2000 2257 2800 7600 1117

gt in se za nominalno - spol

gt summary(data$O1F2)

80 22 Osnovne statistike

moski zenski NAs

648 762 32

gt summary uposteva tip podatka

gt

gt uporabili bomo tudi spremenljivko F6

gt ki jo moramo prej spremeniti nazaj v faktor

gt data$F6lt-makeFactorLabels(data$F6)

gt summary(data$F6)

nedokoncana OS dokoncana OS

69 368

2-3 letna poklicna gimnazija

347 434

2-letna visja visoka sola ali fakulteta

72 138

magisterij doktorat NAs

11 3

Funkcijo summary lahko uporabimo tudi na vec spremenljivkah ali celo na celotnempodatkovju (podatkovnem okvirju) a jo bomo tu zaradi varcevanja s prostoromuporabili le na nekaj izbranih spremenljivkah

gt izbraneSpremlt-c(O1F3O1F2F5F6F7G91G92)

gt izbor shranimo ker ga bomo uporabljal veckrat

gt da se lazje spomnimo kaj merijo

gt attributes(data)$variablelabels[izbraneSprem]

O1F3

leto rojstva

O1F2

spol

F5

Kje zivite

F6

izobrazba

F7

leta solanja

G91

Koliksna je obicajno vasa bruto placa

G92

Koliksna je obicajno vasa neto placa

gt summary(data[izbraneSprem])

O1F3 O1F2 F5

Min 1909 moski 648 veliko mesto132

1st Qu1944 zenski762 predmestje 204

2 poglavje ndash Univariatna in bivariatna statistika 81

Median 1960 NAs 32 manjse mesto326

Mean 1959 vas 626

3rd Qu1975 kmetija 148

Max 1989 NAs 6

NAs 16

F6 F7

gimnazija 434 Min 100

dokoncana OS 368 1st Qu 800

2-3 letna poklicna 347 Median 1100

visoka sola ali fakulteta138 Mean 1127

2-letna visja 72 3rd Qu1300

(Other) 80 Max 2300

NAs 3 NAs 11

G91 G92

Min 530 Min 70

1st Qu1400 1st Qu 725

Median 2000 Median 1200

Mean 2257 Mean 1248

3rd Qu2800 3rd Qu1700

Max 7600 Max 6000

NAs 1117 NAs 1046

Je s temi podatki kaj narobe

Minimum za spremenljivko G92 je rdquo7rdquo To mora biti napaka saj nihce ne moreimeti bruto place samo 7000 sit Verjetno gre za napako pri vnosu rdquo7rdquo je pogo-sta koda za manjkajoco vrednost pri tej spremenljivki pa bi se morala uporabljatikoda rdquo7777777rdquo Preglejmo ali je takih vrednosti vec Recimo tako da izpisemofrekvencno tabelo za to spremenljivko Nato popravimo podatke tako da vrednostiki niso mogoce (se posebej ce predvidevamo da gre za kode manjkajocih vrednosti)spremenimo v NA Nato ponovno izpisemo povzetek in se prepricamo da je sedajvse v redu

gt table(data$G92)

7 8 40 60 70 71 73 75 78 80 82 85 86 87 88

76 13 1 4 4 1 1 5 2 8 2 8 1 1 1

89 90 92 95 100 104 105 107 108 110 112 114 115 117 120

1 11 1 5 19 1 2 1 1 10 1 1 4 2 19

122 125 130 132 135 137 138 140 145 150 153 154 155 160 165

2 3 13 1 1 1 1 12 1 26 1 1 1 12 2

170 180 185 186 190 191 200 205 210 215 220 230 232 240 250

13 8 2 1 4 1 19 1 5 2 6 6 1 2 11

260 270 280 300 320 336 360 370 380 400 480 600

2 6 2 10 1 1 1 1 1 2 1 1

82 22 Osnovne statistike

gt data$G92[data$G92 in c(78)]lt-NA

gt vrednosti 7 in 8 spremenimo v NA

gt summary(data$G92)

Min 1st Qu Median Mean 3rd Qu Max NAs

400 1045 1500 1589 2000 6000 1135

Opozorilo

Kot kaze zgornji primer moramo vedno pred analizo opraviti osnovni pregledpodatkov da ugotovimo ali so v njih prisotne kaksne napake

Za racunanje opisnih statistik za stevilske spremenljivke pa je kot receno bolj pri-merna funkcija describe iz paketka psych Uporabimo se to

gt ce paketek psych ni namescen ga je treba namestiti z

gt installpackages(psych)

gt library(psych)

gt describe(data$G91)

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

range skew kurtosis se

1 707 146 252 671

gt lahko jo izracunamo tudi za vse podatke a tu jo zaradi

gt varcevanja s prostorom le za nekaj izbranih spremenljivk

gt describe(data[izbraneSprem])

vars n mean sd median trimmed mad min

O1F3 1 1426 195864 1896 1960 195917 2372 1909

O1F2 2 1410 154 050 2 155 000 1

F5 3 1436 332 112 4 339 148 1

F6 4 1439 337 134 3 326 148 1

F7 5 1431 1127 341 11 1120 297 1

G91 6 325 22571 12095 200 20885 10378 53

G92 7 307 15893 7413 150 14975 7413 40

max range skew kurtosis se

O1F3 1989 80 -020 -097 050

O1F2 2 1 -016 -198 001

F5 5 4 -060 -048 003

F6 7 6 046 -030 004

F7 23 22 013 026 009

G91 760 707 146 252 671

G92 600 560 165 481 423

gt skew(data$G91)

[1] 1455042

2 poglavje ndash Univariatna in bivariatna statistika 83

gt kurtosi(data$G91)

[1] 2516902

Spremenljivka rdquoBruto placardquo (G91) ima aritmeticno sredino 226 tisoc sit (enote so1000 sit) standardni odklon pa 121 tisoc sit Njena porazdelitev je precej asimetricnav desno in konicasta kar je pri porazdelitvi place sicer pricakovano

Funkciji summary in describe smo ze lahko neposredno uporabili na vec spremen-ljivkah naenkrat Pri funkcijah ki se uporabljajo na vektorjih pa upostevamo dalahko neko funkcijo uporabimo tudi na vec spremenljivkah s pomocjo funkcij applylapply in sapply

gt naredimo nov izbor s samo vsaj intervalnimi spremenljivkami

gt torej s samo intervalnimi in razmernostnimi spremenljivkami

gt izbraneIntSpremlt-c(O1F3F7G91G92)

gt izracunajmo aritmeticno sredino

gt apply(data[izbraneIntSprem]2mean narm=TRUE)

O1F3 F7 G91 G92

195863534 1126625 22571077 15893485

gt sapply(data[izbraneIntSprem]mean narm=TRUE) enako

O1F3 F7 G91 G92

195863534 1126625 22571077 15893485

gt lapply(data[izbraneIntSprem]mean narm=TRUE) drugacen izpis

$O1F3

[1] 1958635

$F7

[1] 1126625

$G91

[1] 2257108

$G92

[1] 1589349

gt standardni odklon

gt sapply(data[izbraneIntSprem]sd narm=TRUE)

O1F3 F7 G91 G92

18961464 3412601 120952965 74128283

gt razpon - funkcija lahko vrne tudi vec vrednosti

gt sapply(data[izbraneIntSprem]range narm=TRUE)

O1F3 F7 G91 G92

[1] 1909 1 53 40

[2] 1989 23 760 600

84 22 Osnovne statistike

gt za vecjo prilagodljivost lahko napisemo svojo funkcijo

gt mojPovzeteklt-function(x)c(

arit sredina = mean(xnarm=TRUE)

std odklon = sd(xnarm=TRUE)

st veljavnih vrednosti = sum(isna(x)))

gt sapply(data[izbraneIntSprem]mojPovzetek)

O1F3 F7 G91

arit sredina 195863534 11266247 2257108

std odklon 1896146 3412601 1209530

st veljavnih vrednosti 142600000 1431000000 3250000

G92

arit sredina 15893485

std odklon 7412828

st veljavnih vrednosti 30700000

Ce zelimo statistike izracunati po skupinah dolocenih z neko drugo spremenljivkoso koristne splosne funkcije kot je denimo aggregate ki omogocajo uporabo funkcijna skupinah Natancna uporaba je razvidna iz primera (in pomoci) Funkcija kotenega od argumentov sprejme funkcijo ki jo uporabi na vsaki skupini

V paketku psych pa obstaja tudi funkcija describeBy ki to omogoca neposredno

gt data$O1F2lt-factor(data$O1F2) odstranimo prazne kategorije

gt glede na eno spremenljivko

gt aggregate(x=data[c(G91G92)] by = list(data$O1F2)

FUN=mean narm=TRUE) rezultat je ena stevilka

Group1 G91 G92

1 moski 2375896 1689868

2 zenski 2099103 1472517

gt aggregate(x=data[c(G91G92)] by = list(data$O1F2)

FUN=mojPovzetek) vec stevilk

Group1 G91arit sredina G91std odklon

1 moski 2375896 1263618

2 zenski 2099103 1127086

G91st veljavnih vrednosti G92arit sredina

1 1730000 16898675

2 1450000 14725170

G92std odklon G92st veljavnih vrednosti

1 8153142 15100000

2 6430224 14700000

gt funkcija aggregate dela le na R 211 in novejsih

gt na starejsih verzijah R-ja javi napako

gt

2 poglavje ndash Univariatna in bivariatna statistika 85

gt glede na dve spremenljivki

gt aggregate(x=data[c(G91G92)]

by = list(data$O1F2 data$F5)

FUN=mean narm=TRUE) rezultat je ena stevilka

Group1 Group2 G91 G92

1 moski veliko mesto 2520000 1887059

2 zenski veliko mesto 2523333 1830000

3 moski predmestje 2311250 1593810

4 zenski predmestje 2092381 1472000

5 moski manjse mesto 2886923 1894186

6 zenski manjse mesto 2101143 1612353

7 moski vas 2270870 1574615

8 zenski vas 2028060 1335000

9 moski kmetija 1888889 1460556

10 zenski kmetija 1880000 1042857

gt aggregate(x=data[c(G91G92)]

by = list(data$O1F2 data$F5)

FUN=mojPovzetek) vec stevilk

Group1 Group2 G91arit sredina G91std odklon

1 moski veliko mesto 25200000 12794650

2 zenski veliko mesto 25233333 14355172

3 moski predmestje 23112500 9543917

4 zenski predmestje 20923810 9989640

5 moski manjse mesto 28869231 14734656

6 zenski manjse mesto 21011429 9263679

7 moski vas 22708696 12535992

8 zenski vas 20280597 12044064

9 moski kmetija 18888889 9864713

10 zenski kmetija 18800000 9854441

G91st veljavnih vrednosti G92arit sredina

1 1400000 18870588

2 1500000 18300000

3 2400000 15938095

4 2100000 14720000

5 3900000 18941860

6 3500000 16123529

7 6900000 15746154

8 6700000 13350000

9 2700000 14605556

10 700000 10428571

G92std odklon G92st veljavnih vrednosti

1 8084148 1700000

2 8344260 1900000

86 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

3 5339052 2100000

4 5679202 2500000

5 7964362 4300000

6 6177675 3400000

7 9427670 5200000

8 5901313 6200000

9 6550929 1800000

10 3413070 700000

Za funkcijo describeBy je koda spodaj izpis pa je zaradi varcevanja s prostoromizpuscen (seveda lahko kodo preizkusite sami)

gt z describeBy

gt glede na eno spremenljivko

gt describeBy(x=data[c(G91G92)]

group = data$O1F2)

gt glede na dve spremenljivki

gt describeBy(x=data[c(G91G92)]

group = list(data$O1F2 data$F5))

23 Preverjanje domnev o srednjih vrednostih in

pripadajoci intervali zaupanja

V tem podpodpoglavju so obravnavane le metode za preverjanje domnev o srednjivrednosti in o razliki dveh srednjih vrednosti (na odvisnih in neodvisnih vzorcih)Metode za preverjanje domnev o vec srednjih vrednostih so obravnavane v podpo-glavju 32 (Analiza variance (ANOVA)) Poleg tega bomo pri parametricnih pristopih(t-testih) omenili tudi pripadajoci interval zaupanja

Poleg parametricnega tukaj obravnavamo tudi neparametricni pristop Nekaj besedo razliki med obema

parametricni testi So rdquomocnejsirdquo11 a imajo obicajno strozje predpostavke

neparametricni testi Imajo manj predpostavk a so rdquosibkejsirdquo Ce predpo-stavke parametricnih testov (priblizno) drzijo izberemo parametricne testesicer neparametricne (ce njihove predpostavke drzijo)

Neparametricne teste pogosteje uporabljamo na manjsih vzorcih saj ima tam krsenjepredpostavk parametricnih testov hujse posledice

11Mocnejsi test je tisti ki pri izbrani stopnji tveganja zazna (statisticno znacilne) razlike pri manjsirazliki med vzorcno statistiko in vrednostjo iz nicelne domneve

2 poglavje ndash Univariatna in bivariatna statistika 87

Opozorilo

Neparametricni testi niso samo rdquorobustnejsa verzijardquo parametricnih ampak pre-verjajo drugacne domneve Za primere za katere tu ne podamo testa aliintervala zaupanja je ponavadi priporocljivo uporabiti metode ponovnega vzor-cenja

V ta namen so uporabne predvsem sledece funkcije

ttest Za vse vrste t-testov

vartest Test enakosti varianc Za preverjanje predpostavk t-testa

flignertest Se en test enakosti varianc Manj obcutljiv na odstopanje odnormalnosti Za preverjanje predpostavk t-testa

leveneTest Se en test enakosti varianc iz paketka car Tudi ta je manj ob-cutljiv na odstopanje od normalnosti Z argumentom center=mean (kar niprivzeta moznost) je to test ki ga uporablja SPSS Za preverjanje predpo-stavk t-testa

wilcoxtest Wilcoxonovi testi za en ali dva vzorca Test za dva neodvisnavzorca je znan tudi kot Mann-Whitneyjev test ali Wilcoxon-Mann-Whitneyjevtest

binomtest Uporaben za izvedbo testa predznaka (ang sign test) ki se upo-rablja kot test mediane

Preverjanje domnev uporabimo ce imamo oblikovano nicelno domnevo ki jo zelimo(obicajno) zavrniti Postopek temelji na tem da preverimo kako verjetno bi biloda bi na vzorcu dane velikosti dobili tako rdquoekstremnordquo vrednost testne statistike kotsmo jo dobili na nasem vzorcu

Intervale zaupanja podamo kadar zelimo podati oceno nekega parametra Ker ocenoracunamo na podlagi vzorca tockovna ocena (skoraj) zagotovo ni pravilna Takozelimo izracunati nek interval za katerega lahko z danim tveganjem (gotovostjo)trdimo da vsebuje populacijski parameter Ce se na primer vzorcne ocene g pa-rametra γ porazdeljujejo normalno s standardnim odklonom SE(g) potem lahkointerval zaupanja pri tveganju α izracunamo kot

P (g minus zα2SE(g) le γ ge g + zα2SE(g)) = 1minus α

Bolj splosno (tudi ce se vzorcne ocene ne porazdeljujejo normalno) vedno velja

P (Fminus1(p = α2 g ) le γ ge Fminus1(p = 1minus α2 g )) = 1minus α

Fminus1 je kvantilna funkcija za porazdelitev vzorcnih ocen g oziroma inverzna funkcijaporazdelitveni funkciji F Tu velja omeniti da R vsebuje kvantilne funkcija zavecino v statistiki uporabljenih porazdelitev Naj omenim samo najpomembnejse

qnorm Normalna porazdelitev

88 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

qt t porazdelitev

qf F porazdelitev

qbinom Binomska porazdelitev

qchisq χ2 porazdelitev

qunif Enakomerna porazdelitev

qexp Eksponentna porazdelitev

q Se kar nekaj drugih porazdelitev Ime funkcije se vedno zacne s rdquoqrdquosledi oznaka (ime ali okrajsava) za porazdelitev

Izracun intervala zaupanja bomo podrobneje prikazali samo za aritmeticno sredinoceprav bi lahko na zelo podoben nacin izracunali tudi intervala za razliko dveh arit-meticnih sredin na neodvisnih in odvisnih vzorcih (razlika je predvsem pri izracunustandardne napake vzorcne ocene

231 Preverjanje domneve o srednji vrednosti in pripada-joci interval zaupanja

Kaj je to srednja vrednost je odvisno od testa Pri parametricnih testih je to pravi-loma aritmeticna sredina drugje pa ni nujno To velja tudi pri problemih in testihki jih obravnavamo v sledecih podpodpoglavjih

T-test za en vzorec verjetno ze dobro poznate tako si poglejmo malce podrobnejele neparametricna testa za preverjanje domneve o srednji vrednosti

Wilcoxonov test oziroma Wilcoxonov test oznacenih rangov

bull Predpostavlja vsaj intervalno mersko lestvico

bull Naceloma predpostavlja simetricno porazdelitev rArr potem se lahko upo-rablja kot test mediane

bull V splosnem to torej ni test mediane in vsekakor ne rdquorobustenrdquotest o vrednosti aritmeticne sredine

bull Pogosto navajajo tudi da testira ali je porazdelitev simetricna glede natestno vrednost

bull Tehnicno gledano preverja ali je vsota rangov negativnih odklonov vecjaod pozitivnih

bull Uporablja se predvsem na majhnih vzorcih ko je porazdelitev simetricnaa ne normalna

Test predznaka Pogosto se uporablja tudi ime test mediane

bull Predpostavlja vsaj ordinalno mersko lestvico Zanima nas samopredznak odklona od testne vrednosti torej katera vrednost je vecja

2 poglavje ndash Univariatna in bivariatna statistika 89

Slika 21 Porazdelitev bruto place

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

020

4060

80

bull Testira domnevo o vrednosti mediane oziroma natancneje domnevoda je stevilo pozitivnih in negativnih odklonov enako

Najprej preverimo domnevo o srednji vrednosti V splosnem naj bo domneva H0Srednja vrednost bruto place je enaka 220 tisoc sit

Poleg tega izracunajmo tudi 90- interval zaupanja za povprecno placo

Porazdelitev bruto place je prikazana na sliki 21

gt najprej si oglejmo porazdelitev

gt hlt-hist(data$G91br=(016)50xlab=Bruto placa v 1000 sit

main=ylab=Frekvenca)

gt curve(dnorm(xmean=mean(data$G91narm=TRUE)

sd=sd(data$G91narm=TRUE))diff(h$breaks)[1]

sum(isna(data$G91)) add=TRUE)

gt describe(data$G91)

90 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

range skew kurtosis se

1 707 146 252 671

Iz slike 21 in opisnih statistik je razvidno da porazdelitev ni niti priblizno nor-malna Sedaj preverimo ali lahko zavrnemo domnevo da je povprecna placa enaka220000 sit prav tako pa izracunajmo tudi 90- interval zaupanja za povprecnobruto placo

gt ttest(data$G91mu=220conflevel = 090)

One Sample t-test

data data$G91

t = 085118 df = 324 p-value = 03953

alternative hypothesis true mean is not equal to 220

90 percent confidence interval

2146434 2367782

sample estimates

mean of x

2257108

Niti pri 10- tveganju ne moremo trditi da je povprecna bruto placa razlicna od220 tisoc sit Z 10- tveganjem lahko trdimo da je povprecna bruto placa med21464 in 23678 tisoc sit

gt interval zaupanja bi lahko izracunali tudi takole

gt nlt- sum(isna(data$G91)) stevilo veljavnih vrednosti

gt alfa lt- 01

gt mean(data$G91narm=TRUE) +

qt(c(alfa21-alfa2)df=n-1)sd(data$G91narm=TRUE)sqrt(n)

[1] 2146434 2367782

Wilcoxonov test se lahko uporablja za preverjanje domneve ali je porazdelitev brutoplace simetricna okoli 220000 sit Vendar pa ta domneva nima ravno smisla saj smovideli da je porazdelitev izrazito nesimetricna Tehnicno gledano preverja domnevoda je vsota rangov negativnih odklonov enaka vsoti rangov pozitivnih odklonov (priracunanju rangov se predznak ne uposteva)

gt wilcoxtest(data$G91mu=220)

Wilcoxon signed rank test with continuity correction

data data$G91

2 poglavje ndash Univariatna in bivariatna statistika 91

V = 21965 p-value = 01245

alternative hypothesis true location is not equal to 220

Tudi z Wilcoxonovim testom nicelne domneve pri 10- tveganju ne moremo za-vrniti Opravimo sedaj se test predznaka oziroma test medianePreverimo torejali je negativnih odklonov vec kot pozitivnih (pri tem odklonov z vrednostjo 0 neupostevamo)

gt nPozlt-sum(data$G91gt220 narm = TRUE)

gt manjkajoce vrednosti ignoriramo

gt nNeglt-sum(data$G91lt220 narm = TRUE)

gt binomtest(x=nPozn=nPoz+nNegp=05)

Exact binomial test

data nPoz and nPoz + nNeg

number of successes = 124 number of trials = 312

p-value = 00003462

alternative hypothesis true probability of success is not equal

to 05

95 percent confidence interval

03427360 04541027

sample estimates

probability of success

03974359

gt median(data$G92narm=TRUE)

[1] 150

Nicelno domnevo da je mediana place enaka 220 lahko zavrnemo pri 003- tve-ganju kar niti ni presenetljivo saj je vrednost mediane 200 binomtest lahkoklicemo tudi takole

gt binomtest(x=c(nPoznNeg)p=05)

232 Preverjanje domneve o razliki med srednjima vrednostmana odvisnih vzorcih in pripadajoci interval zaupanja

Vsi obravnavani testi za odvisne vzorce so enakovredni testom za en vzorec (o vre-dnosti srednje vrednosti) ki se izvedejo na razliki dveh spremenljivk To velja upo-stevati tudi pri interpretaciji rezultatov Pri t-testu to sicer ni problematicno sajvelja da je aritmeticna sredina razlike enaka razliki aritmeticnih sredin Enako pane velja za mediano ndash mediana razlike ni enaka razliki median

92 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

Slika 22 Porazdelitev zaupanja v Drzavni zbor in Evropski parlament

Zaupanje v Državni zbor

Fre

kven

ca

0 2 4 6 8 10

050

150

250

Zaupanje v Evropski parlament

Fre

kven

ca0 2 4 6 8 10

050

150

250

Opozorilo

Test predznaka torej preverja domnevo o vrednosti mediane razlike inne o vrednosti razlike median

Primer domneve je lahko H0 Zaupanje v drzavni zbor je v rdquopovprecjurdquo enakozaupanju v evropski parlament

Poleg tega izracunajmo tudi 90- interval zaupanja za razliko v zaupanju v obaparlamenta

Poglejmo si najprej porazdelitve obeh spremenljivk (slika 22) Kot vemo je kljucnaporazdelitev razlike obeh spremenljivk12 (slika 23) saj so testi za odvisne vzorceenakovredni testom za en vzorec na razliki spremenljivk

gt Pregledamo porazdelitve in opisne statistike

gt originalnih spremenljivk

gt par(mfrow=c(12))

gt hist(data$B4xlab=Zaupanje v Drzavni zbormain=

ylab=Frekvenca)

gt hist(data$B9xlab=Zaupanje v Evropski parlamentmain=

ylab=Frekvenca)

gt par(mfrow=c(11))

gt describe(data[c(B4B9)])

12Razliko izracunamo kot prva spremenljivka ndash druga spremenljivka

2 poglavje ndash Univariatna in bivariatna statistika 93

Slika 23 Porazdelitev razlike med zaupanjem v Drzavni zbor in zaupanjem v Evrop-ski parlament

Razlika v zaupanju (Državni zbor ndash Evropski parlament)

Fre

kven

ca

-10 -5 0 5

010

020

030

040

0

vars n mean sd median trimmed mad min max range

B4 1 1387 413 238 4 410 148 0 10 10

B9 2 1247 453 241 5 457 297 0 10 10

skew kurtosis se

B4 011 -054 006

B9 -009 -070 007

gt razlike

gt hlt-hist(data$B4-data$B9main=ylab=Frekvencabr=-107

xlab=Razlika v zaupanju (Drzavni zbor - Evropski parlament))

gt curve(dnorm(xmean=mean(data$B4-data$B9narm=TRUE)

sd=sd(data$B4-data$B9narm=TRUE))diff(h$breaks)[1]

sum(isna(data$B4-data$B9)) add=TRUE)

gt describe(data$B4-data$B9)

vars n mean sd median trimmed mad min max range

1 1 1231 -041 21 0 -037 148 -10 7 17

94 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

skew kurtosis se

1 -031 182 006

Na slikah 22 in 23 ter zgornjem izpisu vidimo da je porazdelitev obeh spremenljivkpodobna porazdelitev razlike pa sicer priblizno normalna z rahlo asimetrijo v levoin znatno konicavostjo

Sedaj preverimo se (nicelno) domnevo da je povprecno zaupanje v oba parlamentaenako ter izracunajmo 90- interval zaupanja

gt ttest(x=data$B4y=data$B9 paired=TRUE conflevel = 090)

Paired t-test

data data$B4 and data$B9

t = -6883 df = 1230 p-value = 9317e-12

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

-05093517 -03127442

sample estimates

mean of the differences

-04110479

Ugotovimo lahko da je razlika med obema povprecjema statisticno znacilna prizanemarljivem tveganju Z 10- tveganjem lahko trdimo da smo Slovenci leta 2004v povprecju med minus051 in minus031 tocke bolj zaupali Evropskemu parlamentu kotdrzavnemu zboru

Sedaj opravimo se neparametricne teste Pri Wilcoxonovem testu je formalna do-mneva da je vsota rangov negativnih vrednosti enaka vsoti rangov pozitivnih vre-dnosti (pri racunanju rangov se predznak ne uposteva) Pri testu predznakamedianepreverimo ali je negativnih odklonov vec kot pozitivnih (odklonov z vrednostjo 0ne upostevamo)

gt wilcoxtest(x=data$B4y=data$B9 paired=TRUE)

Wilcoxon signed rank test with continuity correction

data data$B4 and data$B9

V = 112990 p-value = 9524e-12

alternative hypothesis true location shift is not equal to 0

gt nPozlt-sum((data$B4-data$B9)gt0 narm = TRUE)

gt manjkajoce vrednosti ignoriramo

gt nNeglt-sum((data$B4-data$B9)lt0 narm = TRUE)

gt binomtest(x=nPozn=nPoz+nNegp=05)

2 poglavje ndash Univariatna in bivariatna statistika 95

Exact binomial test

data nPoz and nPoz + nNeg

number of successes = 308 number of trials = 790

p-value = 6433e-10

alternative hypothesis true probability of success is not equal

to 05

95 percent confidence interval

03556961 04248759

sample estimates

probability of success

03898734

Na podlagi obeh testov lahko ugotovimo da je razlika med povprecjema statisticnoznacilno razlicna od 0 pri zanemarljivem tveganju oziroma da srednji vrednosti nistaenaki

233 Preverjanje domneve o razliki med srednjima vrednostmana neodvisnih vzorcih in pripadajoci interval zaupanja

Edini neparametricni test ki ga bomo obravnavali tu je Mann-Whitneyjev test(oziroma Wilcoxonov test za neodvisna vzorca ali Wilcoxon-Mann-Whitneyjev test)

bull Predpostavlja vsaj ordinalno mersko lestvico

bull Testira ali sta povprecna ranga enaka oziroma ali je verjetnost da imaenota iz 1 skupine vecjo vrednost kot enota iz 2 skupine enaka 05

bull Ce sta obliki porazdelitev v obeh skupinah podobni se lahko uporablja za testenakosti srednjih vrednosti

Primer domneve je lahko H0 rdquoSrednja vrednostrdquo za bruto placo je enaka pri moskihin zenskah

Poleg tega izracunajmo tudi 90- interval zaupanja za razliko v bruto placi moskihin zensk

Poglejmo si najprej opisne statistike in porazdelitvi spremenljivke na obeh vzorcih(slika 24)

gt opisne statistike

gt describeBy(x=data$G91group=data$O1F2mat=TRUE)

item group1 vars n mean sd median trimmed

11 1 moski 1 173 2375896 1263618 200 2184460

12 2 zenski 1 145 2099103 1127086 184 1951026

mad min max range skew kurtosis se

96 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

Slika 24 Porazdelitev bruto place pri moskih in zenskah

Moški

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

010

2030

40

Ženske

Bruto plača v 1000 sit

Fre

kven

ca0 200 400 600 800

010

2030

40

11 889560 61 760 699 1573864 2777364 9607112

12 978516 53 700 647 1263913 1745150 9359942

gt poglejmo porazdelitev

gt par(mfrow=c(12))

gt hist(data$G91[data$O1F2==moski]br=(016)50

xlab=Bruto placa v 1000 sitmain=Moskiylab=Frekvenca)

gt hist(data$G91[data$O1F2==zenski]br=(016)50

xlab=Bruto placa v 1000 sitmain=Zenskeylab=Frekvenca)

gt par(mfrow=c(11))

Predpostavka klasicne razlicice t-testa za neodvisne vzorce je tudi enakost variancZato izvedemo tudi test enakosti varianc a se nanj ni dobro prevec opirati Privelikih vzorcih je namrec precej obcutljiv in zazna razlike v variancah veliko prejkot le-te zacnejo vplivati na veljavnost klasicnega t-testa

gt vartest(G91~O1F2data=data)

F test to compare two variances

data G91 by O1F2

F = 12569 num df = 172 denom df = 144 p-value =

01561

alternative hypothesis true ratio of variances is not equal to 1

95 percent confidence interval

09159805 17172157

sample estimates

2 poglavje ndash Univariatna in bivariatna statistika 97

ratio of variances

1256949

gt flignertest(G91~O1F2data=data)

Fligner-Killeen test of homogeneity of variances

data G91 by O1F2

Fligner-Killeenmed chi-squared = 013014 df = 1

p-value = 07183

gt neobcutljiv na odstopanja od normalnosti

gt library(car)

gt leveneTest(G91~O1F2data=data)

Levenes Test for Homogeneity of Variance (center = median)

Df F value Pr(gtF)

group 1 00538 08167

316

gt neobcutljiv na odstopanja od normalnosti

gt leveneTest(G91~O1F2data=data center=mean)

Levenes Test for Homogeneity of Variance (center = mean)

Df F value Pr(gtF)

group 1 0369 0544

316

gt razlicica kot jo uporablja SPSS

gt malce manj robustna

Glede na to da so vsi testi enakosti varianc pokazali da domneve o enakih variancahne moremo zavrniti lahko (brez zadrzkov kar se tice enakosti varianc) izvedemo t-test s predpostavko enakih varianc Poleg tega bomo izracunali tudi 90- intervalzaupanja za razliko aritmeticnih sredin

gt ttest(G91~O1F2data=datavarequal=TRUE conflevel = 090)

Two Sample t-test

data G91 by O1F2

t = 2043 df = 316 p-value = 004188

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

5328537 50029964

sample estimates

mean in group moski mean in group zenski

2375896 2099103

Pri 5- tveganju so razlike statisticno znacilne torej lahko s takim tveganje trdimoda imajo moski v povprecju visjo placo tudi na populaciji Z 10- tveganjem lahkotrdimo da imajo moski v povprecju od 533 do 5003 tisoc sit visjo placo kot zenske

98 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

Ce ne bi zeleli predpostaviti enakih varianc bi bila koda kot sledi Testa ne bomoopravili ker v tem primeru ni potrebe

gt ttest(G91~O1F2data=datavarequal=FALSE conflevel = 090)

gt ali

gt ttest(G91~O1F2data=data conflevel = 090)

gt argumenta varequal=FALSE ni treba navajati

gt ker je to privzeta vrednost

Sedaj pa opravimo se ustrezen neparametricen test torej Mann-Whitneyjev test

gt wilcoxtest(G91~O1F2data=data)

Wilcoxon rank sum test with continuity correction

data G91 by O1F2

W = 14496 p-value = 00167

alternative hypothesis true location shift is not equal to 0

Tudi tu ugotovimo da so razlike med srednjimi vrednostmi statisticno znacilne pri5- tveganju oz natancneje v tem primeru pri 17- tveganju

24 Preverjanje domnev o delezih in pripadajoci

intervali zaupanja

Domneve o delezih lahko preverjamo na vec nacinov V primeru velikih vzorcevobicajno predpostavljamo da se delezi ali razlike med delezi porazdeljujejo pribli-zno normalno Alternativni nacin za preverjanje domnev o delezih je s pomocjokontingencnih tabel in χ2 porazdelitve vendar je tudi ta le priblizen Za posamezneprobleme bomo obravnavali tudi natancne teste ki pa se od problema do problemarazlikujejo

V praksi se pogosto uporablja tudi pristop pri katerem se deleze obravnava kotpovprecja spremenljivk ki imajo vrednosti 0 in 1 V primeru dovolj velikih vzorcevin neekstremnih delezev (ki niso blizu 0 ali 1) je ta pristop primeren

2 poglavje ndash Univariatna in bivariatna statistika 99

241 Preverjanje domneve o vrednosti deleza in pripadajociinterval zaupanja

Nekih volitev se jih je udelezilo 687 anketirancev Preverili bomo domnevo dase je volitev udelezilo 70 volilnih upravicencev Ker je vzorec velik in delez niekstremen uporaba priblizkov ni problematicna

gt pogledamo frekvencno tabelo odgovorov (vec o tem kasneje)

gt tbllt-table(data$B11)

gt tbl

da ne

940 432

gt izracunamo deleze

gt proptable(tbl)

da ne

06851312 03148688

gt stevilo tistih ki so odgovorili z da ali ne

gt nlt-sum(tbl)

gt n

[1] 1372

gt delez tistih ki so glasovali

gt plt-tbl[1]n

gt p

da

06851312

gt preverjanje domneve s pomocjo klasicnega z-testa

gt H0 pi=piH=070

gt piHlt-070

gt izracun standardne napake

gt sePlt-sqrt(p(1-p)n)

gt izracun z statistike

gt zlt-(p-piH)seP

gt izracunamo p-vrednost (dvostranska)

gt 2pnorm(-abs(z))

da

02357121

Domnevo bi lahko zavrnili sele pri 236- tveganju in je zato ne zavrnemo Torej nemoremo trditi da se volitev ni udelezilo 70 volilnih upravicencev (ampak vec alimanj)

Namesto normalne bi bilo sicer bolje uporabiti t-porazdelitev (ker smo standardnonapako ocenili na vzorcu) a pri tako velikih vzorcih v obeh primerih dobimo enakrezultat

100 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

gt 2pt(-abs(z)df=n-1)

da

02359176

Izracunajmo sedaj se klasicna intervala zaupanja (z uporabo normalne in t poraz-delitve)

gt alfa lt- 01

gt (intZlt-p + qnorm(c(alfa21-alfa2))seP)

[1] 06645058 07057566

gt (intTlt-p + qt(c(alfa21-alfa2)df=n-1)seP)

[1] 06644919 07057705

S 10- tveganjem torej lahko trdimo da se je volitev udelezilo med 066 (066 pri t-porazdelitvi) in 071 volilnih upravicencev

Sedaj bomo preverili domnevo se s χ2-testom in natancnim testom (preko binomskeporazdelitve) Test preko binomske porazdelitve je pravzaprav najnatancnejsi Obefunkciji zraven izracunata tudi interval zaupanja

gt preko hi-kvadrat testa

gt proptest(x=tbl[1]n=np=piH conflevel=1-alfa)

1-sample proportions test with continuity correction

data tbl[1] out of n null probability piH

X-squared = 13745 df = 1 p-value = 0241

alternative hypothesis true p is not equal to 07

90 percent confidence interval

06637884 07057324

sample estimates

p

06851312

gt dobimo tudi interval zaupanja

gt

gt se natancen test

gt binomtest(x=tbl[1]n=np=piH conflevel=1-alfa)

Exact binomial test

data tbl[1] and n

number of successes = 940 number of trials = 1372

p-value = 02273

alternative hypothesis true probability of success is not equal

to 07

2 poglavje ndash Univariatna in bivariatna statistika 101

90 percent confidence interval

06638601 07058132

sample estimates

probability of success

06851312

Rezultatov zaradi podobnosti s prejsnjimi ne bom interpretiral

Za konec naredimo se test preko povprecij torej t-test Tu upostevamo da je pov-precje spremenljivke ki ima vrednosti le 0 in 1 pravzaprav delez enic Ta test jezaradi popolne krsitve predpostavke o normalnosti manj primeren ceprav priblizekpri velikih vzorcih ni slab

gt xlt-data$B11

gt xlt-(x==da)1

gt ttest(xmu=piH conflevel=1-alfa)

One Sample t-test

data x

t = -11853 df = 1371 p-value = 02361

alternative hypothesis true mean is not equal to 07

90 percent confidence interval

06644843 07057780

sample estimates

mean of x

06851312

Kot vidimo so rezultati v tem primeru (zaradi velikega vzorca) res skoraj identicni

242 Preverjanje domnev o razliki med delezema na neod-visnih vzorcih in pripadajoci intervali zaupanja

Tudi tu lahko uporabimo podobne pristope kot pri prejsnjem primeru Preverimodomnevo da je delez volivcev enak pri zenskah in moskih Najprej izracunamokontingencno tabelo (vec o tem v podpodpoglavju 252)

gt izracunamo kontingencno tabelo

gt tbllt-table(data$O1F2data$B11)

gt tbl

da ne

moski 427 188

zenski 492 235

102 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

gt izracunamo deleze

gt proptable(tblmargin=1)

da ne

moski 06943089 03056911

zenski 06767538 03232462

gt stevilo enot

gt nlt-apply(tbl1sum)

gt n

moski zenski

615 727

gt delez tistih ki so glasovali

gt plt-tbl[1]n

gt p

moski zenski

06943089 06767538

Najprej zopet s pomocjo klasicnega z-testa preverimo domnevo

gt H0 piM=piZ

gt izracun standardne napake

gt pSkuplt-sum(tbl[1])sum(n)

gt sePlt-sqrt(sum(pSkup(1-pSkup)n))

gt izracun z statistike

gt zlt-(p[1]-p[2])seP

gt izracunamo p-vrednost (dvostranska)

gt 2pnorm(-abs(z))

moski

04903852

Domnevo o enakosti delezev bi lahko zavrnili sele pri 49- tveganju in je zato nezavrnemo Tako ne moremo trditi da se delez volivcev na populaciji med spolomarazlikuje Sledijo se ostali testi torej χ2-test in test preko povprecij Pri obehdobimo tudi interval zaupanja za razliko delezev

gt preko hi-kvadrat testa

gt proptest(x=tbl conflevel=1-alfa)

2-sample test for equality of proportions with

continuity correction

data tbl

X-squared = 039783 df = 1 p-value = 05282

alternative hypothesis twosided

90 percent confidence interval

2 poglavje ndash Univariatna in bivariatna statistika 103

-002575264 006086296

sample estimates

prop 1 prop 2

06943089 06767538

gt dobimo tudi interval zaupanja

gt

gt preko povprecij

gt xlt-data$B11

gt xlt-(x==da)1

gt spollt-data$O1F2

gt ttest(x~spol varequal=TRUE conflevel=1-alfa)

Two Sample t-test

data x by spol

t = 06893 df = 1340 p-value = 04908

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

-002436485 005947517

sample estimates

mean in group moski mean in group zenski

06943089 06767538

Tu ugotovimo da ne moremo trditi da se delez volivcev na populaciji med spolomarazlikuje Kot receno dobimo tudi intervala zaupanja Ce upostevamo prvega kije zanesljivejsi lahko pri 10- tveganju trdimo da je razlika v delezu volivcev medmoskimi in zenskami med minus002575 in 006086

25 Frekvencne in kontingencne tabele

251 Frekvencne tabele

Frekvencne in kontingencne tabele v R-ju dobimo z ukazom table ki izracunasamo frekvence Za dodajanje vsote (rdquoSkupajrdquo) lahko potem uporabimo funkcijoaddmargins za izracun odstotkov pa proptable

Funkcija table s privzetimi vrednostmi ne uposteva manjkajocih vrednosti Cezelimo imeti v tabeli tudi manjkajoce vrednosti (NA) moramo pri klicu funkcijetable nastaviti exclude=NULL

Malce bogatejso frekvencno tabelo je moc dobiti tudi s funkcijo frekTab ki senahaja v datoteki rdquoUcbenikR-funkcijeRrdquo

Za risanje frekvencnih tabel sta primerni predvsem funkciji barplot in pie

104 25 Frekvencne in kontingencne tabele

Zacnimo s frekvencno tabelo

gt tbllt-table(data$F5)

gt tbl

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija

148

gt addmargins(tbl) a skupaj

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija Sum

148 1436

gt addmargins(proptable(tbl)) + skupaj

veliko mesto predmestje manjse mesto vas

009192201 014206128 022701950 043593315

kmetija Sum

010306407 100000000

gt barplot(tbl)

gt pie(tbl)

Z argumentom exclude=NULL zahtevamo naj se izpisejo tudi manjkajoce vrednosti(oz natancneje naj se iz tabele nicesar ne izpusti)

gt z NA

gt table(data$F5exclude=NULL)

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija ltNAgt

148 6

Se primer malce bogatejse frekvencne tabele s funkcijo frekTab (iz datoteke rdquoUcbenikR-funkcijeRrdquo)

gt s funkcijo frekTab

gt frekTab(data$F5)

Frekvenca Kum frek Kumulativni

veliko mesto 132 132 9192201 9192201

predmestje 204 336 14206128 23398329

manjse mesto 326 662 22701950 46100279

vas 626 1288 43593315 89693593

kmetija 148 1436 10306407 100000000

2 poglavje ndash Univariatna in bivariatna statistika 105

252 Kontingencne tabele

Za kontingecne tabele lahko uporabimo iste funkcije kot za frekvencne tabele Ce ze-limo na primer na podlagi dveh spremenljivk oblikovati osnovno kontingencno tabelouporabimo funkcijo table in ji kot argumente podamo spremenljivke na podlagikaterih zelimo oblikovati tabelo (najprej spremenljivka v vrsticah nato v stolpcih)Ce pri podajanju spremenljivk (argumentov) podamo tudi imena argumentov (nprKraj=data$F5 spodaj) postanejo imena argumentov imena posameznih dimenzijtabele

Najprej izracunajmo kontingencno tabelo za kraj bivanja in spol skupaj z vsotamiVrednosti v tabeli tudi pretvorimo v deleze in zopet dodamo vsote

gt tbl2Dlt-table(Kraj=data$F5Spol=data$O1F2)

gt tbl2D

Spol

Kraj moski zenski

veliko mesto 56 72

predmestje 94 110

manjse mesto 151 160

vas 264 351

kmetija 78 69

gt skupaj z vsotami

gt addmargins(tbl2D)

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

Sum 643 762 1405

gt preracun v skupne deleze

gt proptable(tbl2D)

Spol

Kraj moski zenski

veliko mesto 003985765 005124555

predmestje 006690391 007829181

manjse mesto 010747331 011387900

vas 018790036 024982206

kmetija 005551601 004911032

gt ptbllt-proptable(tbl2D)

gt addmargins(tbl2D)

106 25 Frekvencne in kontingencne tabele

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

Sum 643 762 1405

gt preracun v deleze po stolpcih

gt proptable(tbl2Dmargin=2)

Spol

Kraj moski zenski

veliko mesto 008709176 009448819

predmestje 014618974 014435696

manjse mesto 023483670 020997375

vas 041057543 046062992

kmetija 012130638 009055118

gt addmargins(tbl2Dmargin=2)

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

gt ptbllt-addmargins(proptable(addmargins(tbl2Dmargin=2)

margin=2)margin=1)

gt ptbl

Spol

Kraj moski zenski Sum

veliko mesto 008709176 009448819 009110320

predmestje 014618974 014435696 014519573

manjse mesto 023483670 020997375 022135231

vas 041057543 046062992 043772242

kmetija 012130638 009055118 010462633

Sum 100000000 100000000 100000000

gt v na 2 decimalki

gt round(ptbl1002)

Spol

Kraj moski zenski Sum

veliko mesto 871 945 911

predmestje 1462 1444 1452

manjse mesto 2348 2100 2214

2 poglavje ndash Univariatna in bivariatna statistika 107

vas 4106 4606 4377

kmetija 1213 906 1046

Sum 10000 10000 10000

Za dvodimenzionalne tabele pa lahko za bogatejsi izpis (tipa SPSS) uporabimo tudifunkcijo CrossTable iz paketka gmodels

gt enostavneje s paketkom gmodels

gt installpackages(gmodels)

gt library(gmodels)

gt CrossTable(data$F5data$O1F2)

Cell Contents

|-------------------------|

| N |

| Chi-square contribution |

| N Row Total |

| N Col Total |

| N Table Total |

|-------------------------|

Total Observations in Table 1405

| data$O1F2

data$F5 | moski | zenski | Row Total |

-------------|-----------|-----------|-----------|

veliko mesto | 56 | 72 | 128 |

| 0114 | 0096 | |

| 0438 | 0562 | 0091 |

| 0087 | 0094 | |

| 0040 | 0051 | |

-------------|-----------|-----------|-----------|

predmestje | 94 | 110 | 204 |

| 0004 | 0004 | |

| 0461 | 0539 | 0145 |

| 0146 | 0144 | |

| 0067 | 0078 | |

-------------|-----------|-----------|-----------|

manjse mesto | 151 | 160 | 311 |

| 0528 | 0446 | |

| 0486 | 0514 | 0221 |

| 0235 | 0210 | |

108 25 Frekvencne in kontingencne tabele

| 0107 | 0114 | |

-------------|-----------|-----------|-----------|

vas | 264 | 351 | 615 |

| 1083 | 0914 | |

| 0429 | 0571 | 0438 |

| 0411 | 0461 | |

| 0188 | 0250 | |

-------------|-----------|-----------|-----------|

kmetija | 78 | 69 | 147 |

| 1710 | 1443 | |

| 0531 | 0469 | 0105 |

| 0121 | 0091 | |

| 0056 | 0049 | |

-------------|-----------|-----------|-----------|

Column Total | 643 | 762 | 1405 |

| 0458 | 0542 | |

-------------|-----------|-----------|-----------|

gt zelimo samo po stolpcih + hi-kvadrat test - SPSS format

gt CrossTable(data$F5data$O1F2 propr=FALSE propc=TRUE

propt=FALSE propchisq=FALSE chisq = TRUE format=c(SPSS))

Cell Contents

|-------------------------|

| Count |

| Column Percent |

|-------------------------|

Total Observations in Table 1405

| data$O1F2

data$F5 | moski | zenski | Row Total |

-------------|-----------|-----------|-----------|

veliko mesto | 56 | 72 | 128 |

| 8709 | 9449 | |

-------------|-----------|-----------|-----------|

predmestje | 94 | 110 | 204 |

| 14619 | 14436 | |

-------------|-----------|-----------|-----------|

manjse mesto | 151 | 160 | 311 |

| 23484 | 20997 | |

-------------|-----------|-----------|-----------|

vas | 264 | 351 | 615 |

| 41058 | 46063 | |

-------------|-----------|-----------|-----------|

2 poglavje ndash Univariatna in bivariatna statistika 109

kmetija | 78 | 69 | 147 |

| 12131 | 9055 | |

-------------|-----------|-----------|-----------|

Column Total | 643 | 762 | 1405 |

| 45765 | 54235 | |

-------------|-----------|-----------|-----------|

Statistics for All Table Factors

Pearsons Chi-squared test

------------------------------------------------------------

Chi^2 = 6340168 df = 4 p = 01751438

Minimum expected frequency 5857936

Frekvencne tabele z vec kot dvema dimenzijama lahko ustvarimo na enak nacin kotdvodimenzionalne tabele s funkcijo table a je izpis pogosto zelo nepregleden Zapreglednejsi izpis lahko uporabimo funkcijo ftable ali tabelo pred izpisom pretvo-rimo v podatkovni okvir z asdataframe Kljub temu je izpis zelo dolg in ga zatoizpuscam

gt 3 in vec dimenzionalne tabele

gt tbl3Dlt-table(data$O1F2data$F5data$F6)

gt tbl3D

gt izpis postane zelo nepregleden

gt

gt ftable(tbl3D)

gt asdataframe(tbl3D)

253 Povezanost spremenljivk

S pomocjo kontingencnih tabel in na njih osnovanih mer lahko merimo in preverjamopovezanost med nominalnimi spremenljivkami

Za preverjanje domneve o neodvisnosti med dvema spremenljivkama lahko upora-bimo χ2-test Na voljo je v funkciji chisqtest ki kot argument sprejme vektormatriko ali dvodimenzionalno kontingencno tabelo Kot smo ze videli pa χ2-testvrne (ce tako izberemo) tudi funkcija CrossTable iz paketka gmodels

110 25 Frekvencne in kontingencne tabele

Funkcija chisqtest s privzetimi vrednostmi argumentov pri 2x2 tabelah uporabitudi Yatesov popravek omogoca pa tudi izracun (bolj) natancnih p vrednosti spomocjo simulacij (preko permutacijskega testa)

Statistiki si glede uporabe Yatesovega popravka niso enotni χ2-test ni natancen testampak le priblizek Uporaba Yatesovega popravka lahko v nekaterih primerih tapriblizek izboljsa lahko pa naredi χ2-test tudi prevec konzervativen

Za 2x2 tabele je na voljo tudi Fisherjev natancni test preko funkcije fishertest

Naredimo najprej obicajni χ2-test za povezanost tipa kraja bivanja in spola Prica-kujemo da nicelne domneve ne bomo mogli zavrniti

gt tblF5O1F2lt-table(data$F5data$O1F2)

gt tblF5O1F2

moski zenski

veliko mesto 56 72

predmestje 94 110

manjse mesto 151 160

vas 264 351

kmetija 78 69

gt chisqtest(tblF5O1F2)

Pearsons Chi-squared test

data tblF5O1F2

X-squared = 63402 df = 4 p-value = 01751

Domnevo bi lahko zavrnili sele pri 1751- tveganju in je zato ne zavrnemo

Poglejmo se primer tabele 2x2 kjer bomo preverjali domnevo o povezanosti (nicelnadomneva seveda predpostavlja neodvisnost) spremenljivk spol in rdquoclanstvo v politicnistrankirdquo Ker gre za tabelo 2x2 lahko uporabimo Yatesov popravek Izracunali bomoobe moznosti (s popravkom in brez njega)

gt attributes(data)$variablelabels[B21]

B21

Ali ste clan kaksne politicne stranke

gt data$B21lt-factor(data$B21)

gt (tblGndrBlt-table(data$B21data$O1F2)) 2x2 tabela

moski zenski

da 29 21

ne 618 738

2 poglavje ndash Univariatna in bivariatna statistika 111

gt hi-kvadrat test z Yatesovim popravkom (privzeta moznost)

gt chisqtest(tblGndrB)

Pearsons Chi-squared test with Yates continuity

correction

data tblGndrB

X-squared = 25174 df = 1 p-value = 01126

gt hi-kvadrat test brez Yatesovega popravka

gt chisqtest(tblGndrBcorrect = FALSE)

Pearsons Chi-squared test

data tblGndrB

X-squared = 29967 df = 1 p-value = 008343

Ce uporabimo privzeto moznost ce torej uporabimo Yatesov popravek lahko tuditu ugotovimo da niti pri 10- tveganju ne moremo trditi da sta spremenljivki spolin rdquoclanstvo v politicni strankirdquo povezani

Ce pa tega popravka ne bi uporabili bi pri 10- tveganju ze lahko trdili da staspremenljivki povezani

Ker je χ2-test pravzaprav le priblizek tukaj pa imamo celo dve razlicici pravilnostizracuna preverimo preko simulacij in Fisherjevega natancnega testa

gt chisqtest(tblGndrBsim=TRUE) p-vrednost preko simulacij

Pearsons Chi-squared test with simulated p-value

(based on 2000 replicates)

data tblGndrB

X-squared = 29967 df = NA p-value = 01134

gt fishertest(tblGndrB)

Fishers Exact Test for Count Data

data tblGndrB

p-value = 01112

alternative hypothesis true odds ratio is not equal to 1

95 percent confidence interval

08979363 30744330

sample estimates

odds ratio

1648488

Oba izracuna potrdita pravilnost izracuna χ2 z Yatesovim popravkom V primeruda bi izbrali χ2-test brez Yatesovega popravka bi dobili precej manjso stopnjo tve-ganja (priblizno 8-) ki pa bi bila glede na rezultate simulacij in Fisherjevega

112 26 Korelacija

natancnega testa napacna Uporaba popravka je torej v tem primeru primerna nipa vedno tako saj lahko popravek naredi test prevec konzervativen

Povezanost spremenljivk merimo s kontingencnimi koeficienti Ti so med drugim navoljo v funkciji assocstats v paketku vcd Razlaga vrnjenih koeficientov (glede naFerligoj 1994 166)

Phi-Coefficien Koren Pearsonovega koeficienta ndash pravzaprav gre v primeru binar-nih spremenljivk za Pearsonov korelacijski koeficient in ima tudi enako inter-pretacijo

Contingency Coeff Kontingencni koeficient (brez popravka)

Cramerrsquos V Kramerjev koeficient

gt installpackages(vcd)

gt library(vcd)

gt tblF5O1F2lt-table(data$F5data$O1F2)

gt assocstats(tblF5O1F2)

X^2 df P(gt X^2)

Likelihood Ratio 63309 4 017576

Pearson 63402 4 017514

Phi-Coefficient NA

Contingency Coeff 0067

Cramers V 0067

Vsi koeficienti imajo vrednost 0067 kar kaze da spremenljivki pravzaprav nistapovezani (oz sta zelo zelo sibko povezani)

26 Korelacija

Povezanost med ordinalnimi spremenljivkami in intervalnimi ali ordinalnimi spre-menljivkami merimo s pomocjo korelacijskih koeficientov

V R-ju lahko korelacijsko matriko izracunamo s pomocjo funkcije cor domneve okorelaciji pa lahko preverjamo s funkcijo cortest Prva (cor) izracuna korelacijomed vsemi spremenljivkami v podatkovnem okvirju ali matriki druga (cortest)izracuna in testira le eno korelacijo naenkrat Obe funkciji poznata naslednje kore-lacijske koeficiente

pearson Pearsonov koeficient (linearne) korelacije (privzeta moznost)

spearman Spearmanov koeficient korelacije

kendall Kendallov (τ) koeficient korelacijekonkordance

2 poglavje ndash Univariatna in bivariatna statistika 113

Slika 25 Razsevni grafikon ndash izobrazba in bruto placa

5 10 15 20

100

200

300

400

500

600

700

Izobrazba

Bru

to p

lača

Od teh treh je morda le Kendallov manj znan Tako kot Spearmanov koeficient ko-relacije je tudi Kendallov uporaben na ordinalnih spremenljivkah njegova vrednostpa se izracuna kot

(stevilo parov ki se ujemajo) ndash (stevilo parov ki se ne ujemajo)

stevilo vseh moznih parov

Pari ki se ujemajo so pari kjer je vrstni red enot (v paru) glede na obe spremenljivkienak tisti ki se ne ujemajo pa tisti kjer imata enoti drugacen vrstni red prispremenljivkah Stevilo vseh parov je n(nminus1)

2

Za primer vzemimo korelacijo med stevilom let solanja (F7) in bruto placo (G91)Odnos je prikazan tudi na sliki 25 Ocitno je zveza med spremenljivkama pozitivnaa nelinearna Izracunajmo in testirajmo vse tri koeficiente

gt narisemo razsevni grafikon

gt plot(G91~F7data=dataxlab=Izobrazbaylab=Bruto placa)

114 26 Korelacija

gt izracunamo Pearsonov koeficient korelacije

gt cor(x=data$F7y=data$G91use=completeobsmethod=pearson)

[1] 0550864

gt in preverimo domnevo (ki tudi izracuna korelacijo)

gt cortest(x=data$F7y=data$G91 method=pearson)

Pearsons product-moment correlation

data data$F7 and data$G91

t = 11862 df = 323 p-value lt 22e-16

alternative hypothesis true correlation is not equal to 0

95 percent confidence interval

04702540 06223585

sample estimates

cor

0550864

gt Spearmanov

gt cortest(x=data$F7y=data$G91 method=spearman)

Spearmans rank correlation rho

data data$F7 and data$G91

S = 2392800 p-value lt 22e-16

alternative hypothesis true rho is not equal to 0

sample estimates

rho

05817806

gt Kendallov

gt cortest(x=data$F7y=data$G91 method=kendall)

Kendalls rank correlation tau

data data$F7 and data$G91

z = 11146 p-value lt 22e-16

alternative hypothesis true tau is not equal to 0

sample estimates

tau

04474194

Vsi trije koeficienti kazejo na srednje mocno povezanost a vseeno je vrednost Ken-dallovega koeficienta bistveno nizja vrednost Spearmanovega pa najvisja

Kot smo ze omenili funkcija cor izracuna korelacijo med vsemi spremenljivkamiv podatkovnem okvirju funkcija cortest pa izracuna in testira le eno korelacijonaenkrat V ta namen je v datoteki rdquoUcbenikR-funkcijeRrdquo funkcija corTestDf kiomogoca da funkcijo cortest uporabimo na vec spremenljivkah Lepsi izpis sedobi z uporabo funkcije printCorTestDf

2 poglavje ndash Univariatna in bivariatna statistika 115

Slika 26 Razsevni grafikoni med vsemi spremenljivkami ki merijo zaupanje v in-stitucije

B4

0 4 8 0 4 8 0 4 8

04

8

04

8

B5

B6

04

8

04

8

B7

B8

04

8

04

8

B9

0 4 8 0 4 8 0 4 8 0 4 8

04

8

B10

Poglejmo si torej korelacije in statisticne znacilnosti na primeru sklopa spremenljivkB4-B10 (zaupanje v institucije) Izracunali bomo Pearsonove in Kendallove koefi-ciente Hiter pregled povezanosti med njimi je na sliki 26 (tocke so zaradi boljsepreglednosti rdquozatresenerdquo)

gt izbor shranimo

gt izborlt-c(B4 B5 B6 B7 B8 B9 B10)

gt izpisemo imena

gt attributes(data)$variablelabels[izbor]

B4 B5

drzavnemu zboru pravnemu sistemu

116 26 Korelacija

B6 B7

policiji politikom

B8 B9

politicnim strankam Evropskemu parlamentu

B10

Zdruzenim narodom

gt narisemo grafe

gt pairs(apply(data[izbor]2jitter)cex=03)

gt izracunamo Pearsonove korelacije

gt cor(data[izbor]use=pairwisecompleteobsmethod=pearson)

B4 B5 B6 B7 B8

B4 10000000 05946718 04616891 06415600 06311402

B5 05946718 10000000 05633582 05902897 05644650

B6 04616891 05633582 10000000 04800425 04414586

B7 06415600 05902897 04800425 10000000 08322464

B8 06311402 05644650 04414586 08322464 10000000

B9 06179115 05648233 04733737 05792044 05935754

B10 05188249 04824849 04596825 04667185 04893612

B9 B10

B4 06179115 05188249

B5 05648233 04824849

B6 04733737 04596825

B7 05792044 04667185

B8 05935754 04893612

B9 10000000 07889287

B10 07889287 10000000

gt tmplt-corTestDf(data[izbor]method=pearson)

gt printCorTestDf(tmp)

B4 B5 B6 B7 B8 B9 B10

B4 cor 0595 0462 0642 0631 0618 0519

p 0000 0000 0000 0000 0000 0000

n 1387 1358 1368 1374 1373 1231 1276

B5 cor 0595 0563 0590 0564 0565 0482

p 0000 0000 0000 0000 0000 0000

n 1358 1376 1365 1365 1364 1228 1274

B6 cor 0462 0563 0480 0441 0473 0460

p 0000 0000 0000 0000 0000 0000

n 1368 1365 1401 1380 1372 1238 1287

B7 cor 0642 0590 0480 0832 0579 0467

p 0000 0000 0000 0000 0000 0000

n 1374 1365 1380 1398 1380 1236 1283

B8 cor 0631 0564 0441 0832 0594 0489

2 poglavje ndash Univariatna in bivariatna statistika 117

p 0000 0000 0000 0000 0000 0000

n 1373 1364 1372 1380 1392 1236 1285

B9 cor 0618 0565 0473 0579 0594 0789

p 0000 0000 0000 0000 0000 0000

n 1231 1228 1238 1236 1236 1247 1227

B10 cor 0519 0482 0460 0467 0489 0789

p 0000 0000 0000 0000 0000 0000

n 1276 1274 1287 1283 1285 1227 1295

gt se Kendallove

gt cor(data[izbor]use=pairwisecompleteobsmethod=kendall)

B4 B5 B6 B7 B8

B4 10000000 04909485 03667314 05291117 05160148

B5 04909485 10000000 04606602 04794322 04546308

B6 03667314 04606602 10000000 03844481 03523638

B7 05291117 04794322 03844481 10000000 07607492

B8 05160148 04546308 03523638 07607492 10000000

B9 05049790 04485398 03736321 04639373 04807420

B10 04279313 03891029 03600516 03761712 03943594

B9 B10

B4 05049790 04279313

B5 04485398 03891029

B6 03736321 03600516

B7 04639373 03761712

B8 04807420 03943594

B9 10000000 06927734

B10 06927734 10000000

gt tmplt-corTestDf(data[izbor]method=kendall)

gt printCorTestDf(tmp)

B4 B5 B6 B7 B8 B9 B10

B4 cor 0491 0367 0529 0516 0505 0428

p 0000 0000 0000 0000 0000 0000

n 1387 1358 1368 1374 1373 1231 1276

B5 cor 0491 0461 0479 0455 0449 0389

p 0000 0000 0000 0000 0000 0000

n 1358 1376 1365 1365 1364 1228 1274

B6 cor 0367 0461 0384 0352 0374 0360

p 0000 0000 0000 0000 0000 0000

n 1368 1365 1401 1380 1372 1238 1287

B7 cor 0529 0479 0384 0761 0464 0376

p 0000 0000 0000 0000 0000 0000

n 1374 1365 1380 1398 1380 1236 1283

B8 cor 0516 0455 0352 0761 0481 0394

118 27 Viri za poglabljanje znanja

p 0000 0000 0000 0000 0000 0000

n 1373 1364 1372 1380 1392 1236 1285

B9 cor 0505 0449 0374 0464 0481 0693

p 0000 0000 0000 0000 0000 0000

n 1231 1228 1238 1236 1236 1247 1227

B10 cor 0428 0389 0360 0376 0394 0693

p 0000 0000 0000 0000 0000 0000

n 1276 1274 1287 1283 1285 1227 1295

Pri zanemarljivi stopnji tveganja lahko pri obeh koeficientih ugotovimo da so vsespremenljivke na populaciji povezane kar bi glede na to da merijo sorodne stvari inglede na velikost vzorca tudi pricakovali Tudi tu se pokaze da je linearna poveza-nost izmerjena s Pearsonovim koeficientom vecja od tiste izmerjene s Kendallovim

27 Viri za poglabljanje znanja

Za poglabljanje snovi iz tega poglavja so uporabni tudi spletni viri navedeni vpodpodpoglavju 191 (Spletni viri) a jih ju tu ponovno ne navajam Izpostavljamsamo enega s pomocjo katerega je mogoce zelo enostavno in hitro najti ustrezneukaze za izvedbo zelenih analiz

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

Za poglabljanje znanja iz statistike so primerni prakticno vsi splosni statisticni uc-beniki na primer

bull Minium Edward W Robert C Clarke in Theodore Coladarci 1999 Elementsof statistical reasoning New York Wiley

bull Levin Jack James Alan Fox in David R Forde 2013 Elementary Statisticsin Social Research (12th Edition) Pearson

bull Wonnacott Thomas H in Ronald J Wonnacott 1990 Introductory statisticsNew York Wiley

bull Kosmelj Blazenka in Joze Rovan 2007 Statisticno sklepanje Ljubljana Eko-nomska fakultetaSlovenski ucbenik ki ga uporabljajo na Ekonomski fakulteti Univerze v Lju-bljani

Osnovne statisticne analize v R-ju pa pokrivajo sledeci ucbeniki ki so bili sicervecinoma navedeni tudi pri virih v prvem poglavju

2 poglavje ndash Univariatna in bivariatna statistika 119

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer13

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer14

Se posebej primeren za tiste ki ze poznajo SPSS ali SAS sicer pa zelo zgoscenaobravnava

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC15

28 Vprasanja za ponavljanje

1 Kaj moramo narediti da nam funkcije kot so na primer mean in min vrnejoveljavno vrednost tudi ce imamo v podatkih manjkajoce vrednosti (NA) Ena-kovredno vprasanje je kaj moramo storiti da izracunajo statistiko samo napodlagi veljavnih (nemanjkajocih) vrednosti

2 Kateri paketek vsebuje veliko funkcij ki so zelo uporabne v druzboslovju in seposebej v psihologiji

3 S katerim argumentov vecini statisticnih funkcij povemo iz katerega podat-kovja (oziroma podatkovnega okvirja) naj crpa podatke (isce spremenljivke)

4 Kaksna je razlika med parametricnimi in neparametricnimi testi

5 Katero funkcijo ali funkcije moramo izbrati ce zelimo izvesti t-test za en vzo-rec za dva odvisna vzorca in za dva neodvisna vzorca Na podlagi cesa seodlocimo katerega izmed teh testov je treba izvesti

6 Kateri test za preverjanje domneve o srednji vrednosti ne zahteva vsaj inter-valne merske lestvice

7 Ali funkcija ttest s privzetimi argumenti pri izvedbi t-testa za neodvisnavzorca predpostavlja enako ali razlicno velike variance po skupinah

8 Kako funkcija table s privzetimi vrednostmi argumentov v kontingencnihtabelah izpisuje manjkajoce vrednosti (NA)

9 Kdaj lahko uporabimo Fisherjev natancni test za preverjanje domneve o po-vezanosti dveh nominalnih spremenljivk

10 Katere korelacijske koeficiente lahko izracuna funkcija cor

13Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani14Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani15Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf

120 28 Vprasanja za ponavljanje

11 Kako funkcija cor s privzetimi argumenti obravnava manjkajoce vrednosti ceracunamo korelacijsko matriko med vec spremenljivkami Kaksne so ostalemoznosti

12 Ali lahko na podlagi izpisa funkcije cor povemo ali lahko nicelno domnevo onepovezanosti dveh spremenljivk zavrnemo

121

3 poglavje

Analiza variance in linearna regre-sija

V zadnjem poglavju sta predstavljeni analiza variance in linearna regresija Pri obehzacnemo z najenostavnejsim (bivariatnim) primerom nato pa dodajamo dodatne ele-mente Poglavje kot obicajno zacnemo s predstavitvijo podatkov Sledi podpoglavjeo analizi variance kjer zacnemo z enofaktorsko analizo variance ki jo potem nad-gradimo v vecfaktorsko analizo variance kjer so mozne tudi interakcije med ucinkineodvisnih spremenljivk Prav tako obravnavamo tudi enofaktorsko analizo varianceza odvisne vzorce in Kruskal-Wallisov test vsote rangov neparametricno razlicicoklasicne enofaktorske analize variance za neodvisne vzorce

Analizi variance sledi podpoglavje o linearni regresiji kjer ponovno zacnemo z eno-stavno bivariatno linearno regresijo V nadaljevanju linearno regresijo najprej nad-gradimo z nelinearno regresijo vecina poglavja pa je namenjena multipli linearniregresiji torej linearni regresiji z vec neodvisnimi spremenljivkami Pri tem prika-zemo tudi kako lahko kot neodvisne spremenljivke vkljucimo nominalne in ordinalnespremenljivke ter kako v model vkljucimo interakcije med vplivi neodvisnih spremen-ljivk Proti koncu poglavja posebno pozornost namenimo preverjanju predpostavkZa bolj zagnane studente pa sta dodana podpodpoglavje o moznosti nadgrajevanjaoziroma izpopolnjevanja predstavljenega empiricnega primera (338) in podpodpo-glavje s prikazom izracuna ocen parametrov linearne regresije brez uporabe vgrajenihfunkcij za linearno regresijo (339) predvsem z uporabo linearne algebre (matric-nega racunanja)

31 Uporabljeni podatki

Za prikaz predstavljenih metod bomo tudi tu uporabili podatke iz Evropske druz-boslovne raziskave (httpwwweuropeansocialsurveyorg) za Slovenijo za leto

122 32 Analiza variance (ANOVA)

2004 Uporabljena datoteka je bila pridobljena iz Arhiva druzboslovnih podatkov(Tos in drugi 2004) Opis raziskave in povezave do datoteke so dostopne na tem sple-tnem naslovu httpwwwadpfdvuni-ljsiopisisjm042 Iz Arhiva druz-boslovnih podatkov sem prenesel podatke v SPSS-ovem formatu (rdquosavrdquo)

Uporabili bomo predvsem sledece spremenljivke

G91 bruto placa v 1000 sit

F5 kraj bivanja (5 kategorij)

O1F2 spol

Preberemo podatke iz SPSS-ove datotke

gt nalozimo podatke

gt library(foreign)

gt datalt-readspss(file=sjm042_f1sav

todataframe = TRUE usevaluelabels = TRUE

maxvaluelabels=5 usemissings=TRUE)

gt nalozimo tudi dodatne funkcije

gt source(UcbenikR-funkcijeR)

32 Analiza variance (ANOVA)

Analiza variance (ANOVA) je splosno ime za metode ki primerjajo pojasnjeno va-riabilnost (obicajno merjeno z vsoto kvadratov odklonov) z nepojasnjeno Ce jepojasnjena variabilnost dovolj velika v primerjavi z nepojasnjeno potem lahko za-kljucimo da ima tisto kar jo pojasnjuje nek vpliv na obravnavano odvisno spre-menljivko16

Omejili se bomo na probleme pri katerih preverjamo ali se aritmeticne sredinerazlikujejo med vzorci oziroma skupinami Pri takih primerih je pojasnjena varia-bilnost variabilnost med aritmeticnimi sredinami teh vzorcevskupin (variabilnostmed vzorci) nepojasnjena pa variabilnost znotraj vzorcev (variabilnost posameznihvrednosti okoli aritmeticnih sredin posameznih vzorcevskupin) Pojasnjena varia-bilnost je obicajno pojasnjena z eno ali vec nominalnimi17 spremenljivkami

16V splosnem je sicer odvisnih spremenljivk lahko tudi vec a tega ne bomo obravnavali17Oziroma spremenljivkami ki jih obravnavamo kot nominalne

3 poglavje ndash Analiza variance in linearna regresija 123

321 Enofaktorska analiza variance za neodvisne vzorce

Ta verzija analize variance je najbolj znana in najpogosteje uporabljena tako davecina ljudi ob izrazu rdquoanaliza variancerdquo pomisli ravno nanjo

Klasicna enofaktorska analiza variance za neodvisne vzorce ima sledece predpo-stavke

Normalnost (angl normality) Odvisna spremenljivka se znotraj vsake popula-cije porazdeljuje normalno

Enakost varianc (angl homogeneity of variance) Variabilnost je enaka v vseh(pod)populacijah (skupinah)

Ce je zadosceno tema dvema predpostavkama lahko uporabimo F-test (analizo va-riance) za testiranje domnev o razliki aritmeticnih sredin

Ce imamo velik vzorec (na primer kot 30 enot v vsakem vzorcu) lahko uporabimoF-test tudi ce predpostavki o normalnosti ni popolnoma zadosceno Pomembno jeda je porazdelitev v vseh populacijah priblizno enaka (na primer povsod podobnoasimetricna v desno) Pri majhnih vzorcih pa v primeru razlicnih varianc ne moremouporabiti obicajnega F-testa

V primeru da je krsena predpostavka o enakosti varianc pa lahko uporabimo Wel-chevo analizo variance (Welch 1951)

Predpostavko o normalnosti obicajno preverjamo graficno (histogram po skupinah)predpostavko o enakosti varianc pa preko opisnih statistik in formalnih testov Nekajmoznih testov

bartletttest Primeren ce je predpostavka o normalnosti izpolnjena

flignertest Neobcutljiv na odstopanja od normalnosti Temelji na rangih

leveneTest Tudi ta je neobcutljiv na odstopanja od normalnosti Z argumentomcenter=mean (kar ni privzeta moznost) je to test ki ga uporablja SPSS Navoljo je v paketku car

Enofaktorsko analizo variance in njeno neparametricno razlicico lahko izvedemo ssledecimi funkcijami

onewaytest Izvede klasicno in Welchevo enofaktorsko analizo variance

aov Bolj splosna funkcija za analizo variance (tudi vecfaktorsko) ki pa ne omogocamoznosti za razlicne variance (vsaj ne na enostaven nacin)

kruskaltest Kruskal-Wallisov test vsote rangov ndash neparametricna razlicica ana-lize variance oziroma razlicica Mann-Whitneyjevega testa za vec kot 2 vzorca

124 32 Analiza variance (ANOVA)

Opozorilo

Funkcija aov tako kot veliko drugih statisticnih funkcij kot glavni argumentsprejme formulo ki pove vpliv katerih neodvisnih spremenljivk na katero odvi-sno spremenljivko preucujemo Ce zelimo da se neodvisne spremenljivke obrav-navajo kot nominalne spremenljivke (in ne kot intervalne) morajo biti obveznotipa faktor (ali kvecjemu character ki ga funkcija samodejno spremeni vfaktor) Sicer je tisto kar dobimo bolj podobno linearni regresiji

Za primerjave katera povprecja se statisticno znacilno razlikujejo izvedemo takoimenovane rdquopost hocrdquo teste Za ta namen lahko v splosnem uporabimo funkcijopairwisettest Parne primerjave namrec niso nic drugega kot t-testi kjer do-bljene p-vrednosti popravimo tako da je skupno tveganje enako izbrani stopnji αPri funkciji pairwisettest lahko izberemo tudi metodo popravka p-vrednostiPriporocena je Holmova metoda (Holm 1979) ki je tudi splosno veljavna18 in jeboljsa kot Bofferonijeva

Ko je izpolnjena predpostavka o enakih variancah in smo za analizo variance upora-bili funkcijo aov lahko za te primerjave uporabimo tudi Tukeyjev test preko funkcijeTukeyHSD

Najprej preglejmo podatke ki jih bomo uporabljali v nadaljevanju (ne le v tempodpodpoglavju)

gt popravimo faktorje

gt table(data$O1F2)

moski zenski

648 762

gt table(data$F5)

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija

148

Spodaj je nekaj osnovnih izracunov Porazdelitve osnovnih spremenljivk so prika-zane na sliki 31

gt library(psych)

gt describe(data$G91)

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

18Tudi ce na primer ne moremo predpostavljati neodvisnosti med testi

3 poglavje ndash Analiza variance in linearna regresija 125

Slika 31 Porazdelitve uporabljenih spremenljivk

moski zenski

Spol

010

020

030

040

050

060

070

0

veliko mesto

predmestje

manjse mesto

vas

kmetija

Kraj bivanja

0 100 200 300 400 500 600

Bruto plača

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

050

100

150

range skew kurtosis se

1 707 146 252 671

gt frekTab(data$F5dec=2)[c(13)]

Frekvenca

veliko mesto 132 919

predmestje 204 1421

manjse mesto 326 2270

vas 626 4359

kmetija 148 1031

gt frekTab(data$O1F2dec=2)[c(13)]

Frekvenca

moski 648 4596

zenski 762 5404

gt if(exists(mardef)) mardeflt-par(mar)

gt par(mfrow=c(13))

gt plot(data$O1F2 main=Spol)

gt par(mar=c(3731))

gt plot(data$F5horiz=TRUElas=1main=Kraj bivanja)

gt par(mar=mardef)

gt hlt-hist(data$G91main=Bruto placa

xlab=Bruto placa v 1000 sit ylab=Frekvenca)

gt curve(dnorm(xmean=mean(data$G91narm=TRUE)

sd=sd(data$G91narm=TRUE))diff(h$breaks)[1]

sum(isna(data$G91)) add=TRUE)

gt par(mfrow=c(11))

Sedaj izracunajmo se opisne statistike za bruto placo po posameznih tipih krajevbivanja in narisemo ustrezne grafikone

126 32 Analiza variance (ANOVA)

gt describeBy(data$G91group=data$F5mat=TRUE)

item group1 vars n mean sd median

11 1 veliko mesto 1 30 2561000 13322715 225

12 2 predmestje 1 45 2209111 9705313 200

13 3 manjse mesto 1 77 2544675 12983812 220

14 4 vas 1 139 2138273 12217005 188

15 5 kmetija 1 34 1887059 9712271 170

trimmed mad min max range skew kurtosis

11 2532500 1690164 75 450 375 02320304 -156727318

12 2118919 1008168 95 490 395 08192702 -003695316

13 2374286 1037820 100 750 650 13747886 180644481

14 1961593 919212 53 760 707 17963112 418899970

15 1728929 593040 80 528 448 17785525 318494875

se

11 2432384

12 1446783

13 1479643

14 1036233

15 1665641

gt par(mfrow=c(23))

gt for(i in levels(data$F5))

hist(data$G91[data$F5==i] xlab=Bruto placa main=i

ylab=Frekvenca)

gt par(mfrow=c(11))

Namesto histograma pa lahko s spodnjo kodo zelo enostavno narisemo tudi skatlastegrafikone po skupinah

gt plot(G91~F5data=data)

V posameznih kategorijah imamo razmeroma malo enot vendar pa se vedno v vsakinad 30 Morda bi bilo smiselno narediti manj kategorij a glede na opisne statistikese kaksno zelo smiselno rekodiranje ravno ne ponuja19

Iz opisnih statistik vidimo da so standardni odkloni (koreni varianc) po skupinahrazmeroma podobni Tako lahko tudi brez testa sklepamo da s predpostavko oenakosti varianc ne bi prevec zgresili Bolj pa je problematicno ker sta asimetrija in(se bolj) konicavost bistveno visji v zadnjih dveh kategorijah (vas in kmetija) To jerazvidno tudi iz slike 32 Kljub temu bomo za demonstracijo izvedli tudi vse teste

19Ce bi kategorije zdruzevali na podlagi opisnih statistik (predvsem aritmeticnih sredin) bi bilo tonarobe Test ki bi ga naredili na podlagi tako zdruzenih kategorij ne bi bil veljaven

3 poglavje ndash Analiza variance in linearna regresija 127

Slika 32 Porazdelitev bruto place po krajih bivanja

veliko mesto

Bruto plača

Fre

kven

ca

100 200 300 400

01

23

45

6

predmestje

Bruto plača

Fre

kven

ca

100 200 300 400 500

02

46

810

12

manjse mesto

Bruto plača

Fre

kven

ca

100 200 300 400 500 600 700 800

05

1015

2025

3035

vas

Bruto plača

Fre

kven

ca

0 200 400 600 800

010

2030

4050

6070

kmetija

Bruto plača

Fre

kven

ca

100 200 300 400 500

02

46

810

12

gt bartletttest(G91~F5data=data)

Bartlett test of homogeneity of variances

data G91 by F5

Bartletts K-squared = 77277 df = 4 p-value =

01021

gt flignertest(G91~F5data=data)

Fligner-Killeen test of homogeneity of variances

data G91 by F5

Fligner-Killeenmed chi-squared = 11456 df = 4

p-value = 002189

gt neobcutljiv na odstopanja od normalnosti

gt library(car)

gt leveneTest(G91~F5data=data)

Levenes Test for Homogeneity of Variance (center = median)

Df F value Pr(gtF)

group 4 1789 01307

320

128 32 Analiza variance (ANOVA)

gt neobcutljiv na odstopanja od normalnosti

gt leveneTest(G91~F5data=data center=mean)

Levenes Test for Homogeneity of Variance (center = mean)

Df F value Pr(gtF)

group 4 22227 006639

320

---

Signif codes

0 0001 001 005 01 1

gt razlicica kot jo uporablja SPSS

gt malce manj robustna

Barlettov in Levenov test pokazeta da bi lahko domnevo o enakosti varianc zavrnilisele pri vec kot 10- tveganju Nasprotno pa Fligner-Killeenjev test domnevo zavrneze pri 22- tveganju Glede na to da same razlike med standardnimi odkloni nisotako velike lahko predpostavko o enakosti varianc obdrzimo Kljub temu pa bomo(za demonstracijo) izvedli obe razlicici analize variance (klasicno in Welchevo) Polegtega bomo izvedli tudi neparametricni Kruskal-Wallisov test

gt predpostavljamo enake variance

gt onewaytest(G91~F5data=datavarequal=TRUE)

One-way analysis of means

data G91 and F5

F = 27695 num df = 4 denom df = 320 p-value =

002742

gt predpostavljamo razlicne variance

gt varequal=FALSE bi lahko tudi izpustili ker je to

gt privzeta moznost

gt onewaytest(G91~F5data=datavarequal=FALSE)

One-way analysis of means (not assuming equal

variances)

data G91 and F5

F = 27964 num df = 400 denom df = 10316 p-value

= 002988

gt se preko funkcije aov

gt fitlt-aov(G91~F5data=data)

gt summary(fit)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 158604 39651 277 00274

Residuals 320 4581392 14317

---

3 poglavje ndash Analiza variance in linearna regresija 129

Signif codes

0 0001 001 005 01 1

1117 observations deleted due to missingness

gt rezultat je identicen kot pri prejsnji funkciji

gt ko smo predpostavljali enake variance

gt

gt kruskaltest(G91~F5data=data)

Kruskal-Wallis rank sum test

data G91 by F5

Kruskal-Wallis chi-squared = 12557 df = 4 p-value

= 001365

Obe razlicici ANOVE nam vrneta zelo podoben rezultat Glede na oba lahko stveganjem manjsim kot 3 trdimo da se povprecna bruto placa razlikuje gledena kraj bivanja Glede na Kruskal-Wallisov test pa lahko predpostavko o enakostisrednjih vrednosti zavrnemo ze pri 14- tveganju

Opozorilo

Domneva ki jo preverjamo s Kurskal-Walisovim testom ni vec enakaa

a Kruskal-Wallisov test preverja podobno domnevo kot Mann-Whitneyjev test ki je podrob-neje razlozen v podpodpoglavju 233

Poglejmo se katera povprecja so razlicna V primeru enakih varianc je za ta namennajprimernejsa funkcija TukeyHSD (ki jo uporabimo na rezultatu funkcije aov) re-zultat katere lahko tudi lepo narisemo V primeru neenakih varianc pa uporabimofunkcijo pairwisettest

gt TukeyHSD(fit) fit mora biti rezultat funkcije aov

Tukey multiple comparisons of means

95 family-wise confidence level

Fit aov(formula = G91 ~ F5 data = data)

$F5

diff lwr upr

predmestje-veliko mesto -35188889 -11255949 42181712

manjse mesto-veliko mesto -1632468 -7228018 69015248

vas-veliko mesto -42272662 -10835533 23810003

kmetija-veliko mesto -67394118 -14961878 14830549

manjse mesto-predmestje 33556421 -2803788 95150721

vas-predmestje -7083773 -6338365 49216108

130 32 Analiza variance (ANOVA)

kmetija-predmestje -32205229 -10679513 42384676

vas-manjse mesto -40640194 -8727244 5992052

kmetija-manjse mesto -65761650 -13335265 1829353

kmetija-vas -25121456 -8792562 37682705

p adj

predmestje-veliko mesto 07232946

manjse mesto-veliko mesto 09999963

vas-veliko mesto 04019543

kmetija-veliko mesto 01647508

manjse mesto-predmestje 05667485

vas-predmestje 09969399

kmetija-predmestje 07603006

vas-manjse mesto 01204253

kmetija-manjse mesto 00608866

kmetija-vas 08078518

gt par(mar=mardef+c(0800))

gt plot(TukeyHSD(fit)las=1) se graficna predstavitev rezultatov

gt par(mar=mardef)

gt TukeyHSD je primeren le ob predpostavki enakih varianc

gt

gt pairwisettest(x=data$G91g=data$F5padjustmethod= holm

poolsd=TRUE)

Pairwise comparisons using t tests with pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 100 - - -

manjse mesto 100 082 - -

vas 056 100 016 -

kmetija 020 100 008 100

P value adjustment method holm

gt pairwisettest(x=data$G91g=data$F5padjustmethod= bonf

poolsd=TRUE)

Pairwise comparisons using t tests with pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 100 - - -

manjse mesto 100 100 - -

vas 080 100 017 -

3 poglavje ndash Analiza variance in linearna regresija 131

kmetija 025 100 008 100

P value adjustment method bonferroni

gt ce ne zelimo uporabiti predpostavke o enakosti varianc

gt nastavimo poolsd=FALSE

gt

gt pairwisettest(x=data$G91g=data$F5padjustmethod= holm

poolsd=FALSE)

Pairwise comparisons using t tests with non-pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 0821 - - -

manjse mesto 1000 0754 - -

vas 0754 1000 0233 -

kmetija 0233 0754 0041 0821

P value adjustment method holm

Ce predpostavljamo enake variance lahko najdemo statisticno znacilne razlike selepri 10- tveganju (oziroma 6ndash8-) in se to le med manjsim mestom in kmetijoPodobno je tudi ce privzamemo da so variance razlicne le da lahko v tem primeruto trditev postavimo ze pri 41 tveganju

Za konec povprecja se graficno predstavimo na sliki 33

gt library(gplots)

gt plotmeans(G91~F5data=data)

322 Vecfaktorska analiza variance za neodvisne vzorce

Vecfaktorska analiza variance je analiza variance kjer so skupine dolocene z vec kotenim faktorjem Z njo torej preverjamo domnevo o vplivu dveh ali vec nominalnih(oziroma vsaj tako jih obravnavamo) neodvisnih spremenljivk na odvisno spremen-ljivko

Predpostavke vecfaktorske analize variance so podobne predpostavkam enofaktor-ske ndash porazdelitev v vseh skupinahcelicah (dolocenih s kombinacijo vseh faktorjevoziroma neodvisnih spremenljivk) je normalna z enako varianco

Analiza je bistveno enostavnejsa ce so neodvisne spremenljivke med seboj neodvi-snenepovezane kar pa se v druzboslovju (oziroma kjerkoli kjer podatke dobimo z

132 32 Analiza variance (ANOVA)

Slika 33 Porazdelitve uporabljenih spremenljivk

150

200

250

300

F5

G91

veliko mesto manjse mesto vas kmetija

n=30 n=45 n=77 n=139 n=34

opazovanjeanketiranjem in ne eksperimentom) redko zgodi V primeru da neod-visne spremenljivke med seboj niso neodvisne je pomemben vrstni red faktorjevModel namrec najprej poskusa pojasniti cim vec variabilnosti odvisne spremenljivkes 1 faktorjem nato z 2 3

Rezultati se torej spremenijo ce zamenjamo vrstni red faktorjev Od vrstnega redaje tudi odvisno kaj nek test sploh preverja Pri prvem faktorju test preverja ali le-ta pojasni vsaj nekaj variabilnosti odvisne spremenljivke (oziroma ali vpliva nanjo)Pri vseh ostalih pa preverja ali faktor pojasni kak del variabilnosti odvisne spre-menljivke ki se ni pojasnjen s faktorji ki so v modelu pred obravnavanim faktorjemVse to velja ce uporabimo rdquoklasicnordquo vsoto kvadratov oziroma vsoto kvadratov tipaI Obstajajo tudi druge vrste vsote kvadratov (tip II III IV za vec glejte Fox (2008159) Muenchen (2011 633ndash635) in IBM (2011)) vendar jih tu ne bomo obravnavaliVsote kvadratov tipa II in III lahko izracunate s pomocjo funkcije Anova iz paketkacar Pri tipu III vrstni red faktorjev ni pomemben

Preverjamo lahko tudi ali obstaja interakcija med vplivi posameznih faktorjev In-terakcija med vplivi faktorjev pomeni da se vpliv nekega faktorja razlikuje glede navrednosti nekega drugega faktorja

Na nasem primeru bomo preverjali ali lahko trdimo da kraj bivanja in spol vplivatana bruto placo Poleg tega bomo preverili tudi ali lahko trdimo da spol vpliva nabruto placo ce predhodno izlocimo vpliv kraja bivanja

3 poglavje ndash Analiza variance in linearna regresija 133

Pred izracunom bomo pripravili podatke in sicer tako da bomo v nov podatkovniokvir shranili samo za to analizo potrebne spremenljivke Tu bomo potem odstra-nili vse enote ki imajo manjkajoco vrednost pri katerikoli spremenljivki To bomonaredili tako da bomo v nadaljevanju pri vseh analizah upostevali iste enote (karnam bo omogocalo da bomo modele primerjali med seboj)

nnajprej torej pripravimo nov podatkovni okvir in odstranimo enote z manjkajocimivrednostmi Nato podobno kot pri enofaktorski ANOVI preverimo predpostavke(izracunamo opisne statistike po skupinah)

gt dataAovlt-data[c(G91O1F2F5)]

gt dataAovlt-naomit(dataAov)

gt odstranili smo enote z manjkajocimi vrednostmi

gt

gt describeBy(dataAov$G91group=dataAov[c(O1F2F5)]

mat=TRUE)

item group1 group2 vars n mean sd

11 1 moski veliko mesto 1 14 2520000 12794650

12 2 zenski veliko mesto 1 15 2523333 14355172

13 3 moski predmestje 1 24 2311250 9543917

14 4 zenski predmestje 1 21 2092381 9989640

15 5 moski manjse mesto 1 39 2886923 14734656

16 6 zenski manjse mesto 1 35 2101143 9263679

17 7 moski vas 1 69 2270870 12535992

18 8 zenski vas 1 67 2028060 12044064

19 9 moski kmetija 1 27 1888889 9864713

110 10 zenski kmetija 1 7 1880000 9854441

median trimmed mad min max range skew

11 226 2502500 1423296 75 450 375 03270494

12 200 2503846 1482600 80 450 370 02540330

13 200 2233500 1074885 120 490 370 07883115

14 184 1970000 948864 95 450 355 08518656

15 250 2741212 889560 110 750 640 11844391

16 170 1992759 770952 100 500 400 11385801

17 200 2089825 741300 61 760 699 19229792

18 180 1859091 1037820 53 700 647 15723492

19 170 1723913 593040 80 528 448 19727940

110 132 1880000 429954 103 350 247 06346745

kurtosis se

11 -142834380 3419514

12 -178216305 3706489

13 -002979449 1948144

14 -023542599 2179918

134 32 Analiza variance (ANOVA)

Slika 34 Porazdelitev bruto place po krajih bivanja in spolu

moski veliko mesto

Bruto plača

Fre

quen

cy

0 100 200 300 400 500

01

23

45

moski predmestje

Bruto plača

Fre

quen

cy

100 200 300 400 500

01

23

45

67

moski manjse mesto

Bruto plača

Fre

quen

cy

100 300 500 7000

510

15

moski vas

Bruto plača

Fre

quen

cy

0 200 400 600 800

05

1015

2025

3035

moski kmetija

Bruto plača

Fre

quen

cy

0 100 300 500

05

1015

zenski veliko mesto

Bruto plača

Fre

quen

cy

0 100 200 300 400 500

01

23

45

6

zenski predmestje

Bruto plača

Fre

quen

cy

100 200 300 400

01

23

45

6

zenski manjse mesto

Bruto plača

Fre

quen

cy

100 200 300 400 500

02

46

810

12

zenski vas

Bruto plača

Fre

quen

cy

0 200 400 600

05

1015

2025

30

zenski kmetija

Bruto plača

Fre

quen

cy

100 150 200 250 300 350

01

23

4

15 078377390 2359433

16 089652400 1565848

17 453230346 1509156

18 314171911 1471417

19 393661300 1898465

110 -156138214 3724628

gt par(mfrow=c(25))

gt for(iGndr in levels(dataAov$O1F2))

for(iF5 in levels(dataAov$F5))

hist(dataAov$G91[(dataAov$F5==iF5)ampdataAov$O1F2==iGndr]

xlab=Bruto placa main=paste(iGndriF5sep= ))

gt par(mfrow=c(11))

Sedaj je v nekaterih skupinah ze zelo malo enot Standardni odkloni med skupinaminiso pretirano razlicni se pa precej razlikujejo koeficienti asimetrije in sploscenostiVsekakor rezultati kazejo na to da porazdelitev v vseh skupinah ni (niti pribli-zno) normalna in tudi ne podobna med skupinami Predpostavke metode torej nisoizpolnjene zato moramo rezultate metode jemati z veliko rezervo

3 poglavje ndash Analiza variance in linearna regresija 135

Sedaj najprej ponovimo enofaktorsko ANOVO s funkcijo aov za vsak faktor po-sebej Poleg tega preverimo tudi ali sta neodvisni spremenljivki med seboj pove-zani

gt fitG91_F5lt-aov(G91~F5data=dataAov)

gt summary(fitG91_F5)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2298 00589

Residuals 313 4503794 14389

---

Signif codes

0 0001 001 005 01 1

gt fitG91_O1F2lt-aov(G91~O1F2data=dataAov)

gt summary(fitG91_O1F2)

Df Sum Sq Mean Sq F value Pr(gtF)

O1F2 1 60436 60436 4174 00419

Residuals 316 4575644 14480

---

Signif codes

0 0001 001 005 01 1

V primeru da bi bile predpostavke klasicne analize variance (normalnost enakevariance) izpolnjene (prej smo ugotovili da so krsene) bi lahko pri 59- tveganjutrdili da kraj bivanja vpliva na bruto placo in pri 42- tveganju da spol vplivana bruto placo

Kot smo omenili je pri vecfaktorski analizi variance pomembno ali sta neodvisnispremenljivki povezani Preverimo torej to predpostavko in izracunajmo moc pove-zanosti

gt tbllt-table(dataAov$O1F2dataAov$F5)

gt proptable(tblmargin=2)

veliko mesto predmestje manjse mesto vas

moski 04827586 05333333 05270270 05073529

zenski 05172414 04666667 04729730 04926471

kmetija

moski 07941176

zenski 02058824

gt lazje opazimo ali sta spremenljivki povazani

gt chisqtest(tbl)

Pearsons Chi-squared test

136 32 Analiza variance (ANOVA)

data tbl

X-squared = 98558 df = 4 p-value = 004293

gt installpackages(vcd)

gt library(vcd)

gt assocstats(tbl)

X^2 df P(gt X^2)

Likelihood Ratio 105712 4 0031830

Pearson 98558 4 0042928

Phi-Coefficient NA

Contingency Coeff 0173

Cramers V 0176

gt (pricakovana) zanimivost - na vseh podatkih povezanosti ni

gt chisqtest(table(data$O1F2data$F5))

Pearsons Chi-squared test

data table(data$O1F2 data$F5)

X-squared = 63402 df = 4 p-value = 01751

V nasih podatkih (tistih ki jih bomo uporabili pri analizi variance20) sta spremen-ljivki kraj bivanja in spol sibko povezani To je posledica tega da upostevamo samoenote z veljavnimi vrednostmi za bruto placo Na vseh enotah namrec povezanostini oziroma povezanost ni statisticno znacilna

Rekli smo da bomo preverjali ali lahko trdimo da kraj bivanja in spol vplivata nabruto placo Test celotnega modela je malce zahtevnejsi Standardne funkcije ga neizvedejo Lahko pa ga izvedemo zelo enostavno tako da model primerjamo z nicelnimmodelom Nicelni model je model kjer nimamo pojasnjevalnih spremenljivk V temmodelu so napovedi enake povprecju

Poleg tega bomo preverili tudi ali lahko trdimo da spol vpliva na bruto placo cepredhodno kontroliramo za vpliv kraja bivanja Tako bomo v model kot 1 spre-menljivko dali kraj bivanja kot 2 pa spol

gt izvedemo dvofaktorsko ANOVO

gt fitG91_F5O1F2lt-aov(G91~F5+O1F2data=dataAov)

gt summary(fitG91_F5O1F2)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2334 00556

O1F2 1 83242 83242 5875 00159

Residuals 312 4420552 14168

20Izlocili smo tiste enote ki vsaj pri eni spremenljivki niso imele veljavne vrednosti v veliki vecinipri bruto placi

3 poglavje ndash Analiza variance in linearna regresija 137

---

Signif codes

0 0001 001 005 01 1

gt rezultat pri spolu nam pove koliko ta model pojasni

gt vec kot model s samo krajem bivanja

gt anova(fitG91_F5fitG91_F5O1F2)

Analysis of Variance Table

Model 1 G91 ~ F5

Model 2 G91 ~ F5 + O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 313 4503794

2 312 4420552 1 83242 58752 001592

---

Signif codes

0 0001 001 005 01 1

gt ocenimo nicelni model

gt fitG91_1lt-update(fitG91_F5O1F2~1)

gt funkcija update popravi model glede na argumente

gt ali

gt fitG91_1lt-aov(G91~1data=dataAov)

gt

gt primerjamo model z nicelnim

gt da ocenimo statisticno znacilnost celotnega modela

gt anova(fitG91_1fitG91_F5O1F2)

Analysis of Variance Table

Model 1 G91 ~ 1

Model 2 G91 ~ F5 + O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 317 4636080

2 312 4420552 5 215527 30424 001069

---

Signif codes

0 0001 001 005 01 1

Iz rezultatov lahko razberemo

bull Pri 56- tveganju lahko trdimo da kraj bivanja vpliva na bruto placo Sto-pnja tveganja je manjsa kot pri enofaktorski ANOVI (kjer je bila 59-) kerje manjsa nepojasnjena varianca (del variance je sedaj pojasnjen s spolom)

bull Pri 16- tveganju lahko trdimo da spol vpliva na bruto placo ce izlocimovpliv kraja bivanja Ta stopnja tveganja je bistveno manjsa kot prej Pravza-prav je tudi pojasnjena vsota kvadratov (pri spolu) tu vecja To pomeni da

138 32 Analiza variance (ANOVA)

so razlike v bruto placi med spoloma vecje ce jih gledamo loceno po krajihbivanja kot ce jih gledamo skupaj

bull S priblizno 1- tveganjem lahko trdimo da spol ali kraj bivanja (vsaj enaizmed teh dveh spremenljivk) vplivata na bruto placo

Preverimo se ali obstaja tudi interakcija med vplivom spola in kraja bivanja Tardquoucinekrdquo moramo v model vedno vkljuciti oziroma navesti na koncu

gt izvedemo dvofaktorsko ANOVO

gt fitG91_F5O1F2Ilt-aov(G91~F5O1F2data=dataAov)

gt summary(fitG91_F5O1F2I)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2334 00557

O1F2 1 83242 83242 5874 00159

F5O1F2 4 56064 14016 0989 04136

Residuals 308 4364488 14170

---

Signif codes

0 0001 001 005 01 1

gt primerjamo model z nicelnim

gt da ocenimo statisticno znacilnost celotnega modela

gt anova(fitG91_1fitG91_F5O1F2I)

Analysis of Variance Table

Model 1 G91 ~ 1

Model 2 G91 ~ F5 O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 317 4636080

2 308 4364488 9 271591 21296 002692

---

Signif codes

0 0001 001 005 01 1

Interakcija med ucinkoma ni statisticno znacilna Ne moremo torej trditi da spoldrugace vpliva na bruto placo v razlicnih krajih bivanja Posledicno se tudi skupnaznacilnost modela zaradi vkljucitve interakcije zniza

323 Enofaktorska analiza variance za odvisne vzorce

Pogledali si bomo le najenostavnejsi primer analize variance za odvisne vzorce Ana-liza variance za odvisne vzorce je sorodna t-testu za odvisne vzorce le da je vzor-cevspremenljivk katerih povprecje preverjamo vec

3 poglavje ndash Analiza variance in linearna regresija 139

Analizo variance za odvisne vzorce lahko prav tako kot prejsnje tipe naredimopreko funkcije aov z ustreznimi argumenti vendar pa moramo pred uporabo po-datke prilagoditi Podatke je treba preurediti v podobno obliko kot jo imamo prineodvisnih vzorcih Potrebujemo torej eno odvisno spremenljivko in spremenljivkoki rdquodolocardquovzorce (oziroma originalne spremenljivke) Poleg tega pa moramo za vsakpodatek tudi vedeti kateri enoti pripada Za vsako enoto moramo imeti podatke zavse vzorcespremenljivke

Za to je uporabna tale funkcija21

gt razsiriPodatkelt-function(Xid=rownames(X)

varNames=colnames(X))

funkcija za pretvorbo podatkov v obliko

kot jo razumeta funkciji aov ali lm

n12lt-dim(X)

nlt-n12[1]

mlt-n12[2]

if(isnull(varNames)) varNameslt-1m

if(isnull(id)) idlt-1n

reslt-NULL

for(i in 1m)

reslt-rbind(resdataframe(id=idx=X[i]

var=varNames[i]))

return(res)

Funkcijo aov sicer uporabimo kot obicajno le da navedemo katera spremenljivkanam rdquodolocardquo enote oziroma natancneje povemo napake katerih rdquozapisovrdquo so kore-lirane Pozor Klic funkcije je casovno zahteven

Preverjali bomo domnevo ali Slovenci enako zaupamo Drzavnemu zboru (spremen-ljivka B4) Evropskemu parlamentu (B9) in Zdruzenim narodom (B10) Preglejmonajprej opisne statistike in pripravimo podatke

gt dataB4910lt-naomit(data[c(B4B9B10)])

gt za uporabo funkcije razsiriPodatke pripravimo

gt nov podatkovni okvir ki vsebuje le uporabljene

gt spremenljivke

gt describe(dataB4910)

21Funkcija se nahaja tudi v datoteki rdquoUcbenikR-funkcijeRrdquo

140 32 Analiza variance (ANOVA)

vars n mean sd median trimmed mad min max range

B4 1 1213 413 238 4 410 297 0 10 10

B9 2 1213 453 241 5 456 297 0 10 10

B10 3 1213 457 267 5 460 297 0 10 10

skew kurtosis se

B4 010 -057 007

B9 -008 -070 007

B10 -004 -082 008

gt dataB4910razlt-razsiriPodatke(dataB4910)

gt dataB4910raz[110] novi podatki izgledajo takole

id x var

1 1 2 B4

2 2 8 B4

3 4 4 B4

4 5 8 B4

5 6 3 B4

6 7 3 B4

7 8 7 B4

8 9 3 B4

9 11 2 B4

10 14 5 B4

Zaupanje v Evropski parlament in Zdruzene narode je bistveno visje kot v Drzavnizbor Preverimo ali je razlika statisticno znacilna

gt aovReplt-aov(x~var+Error(id)data=dataB4910raz)

gt summary(aovRep)

Error id

Df Sum Sq Mean Sq F value Pr(gtF)

Residuals 1212 17257 1424

Error Within

Df Sum Sq Mean Sq F value Pr(gtF)

var 2 148 7410 3404 264e-15

Residuals 2424 5277 218

---

Signif codes

0 0001 001 005 01 1

gt modeltables(aovReptype=means)

Tables of means

Grand mean

4409453

3 poglavje ndash Analiza variance in linearna regresija 141

var

var

B4 B9 B10

4125 4528 4575

Pri zanemarljivi stopnji tveganja lahko trdimo da Slovenci ne zaupamo vsem treminstitucijam enako

33 Linearna regresija

Z linearno regresijo ugotavljamo ce in ce kako ena ali vec neodvisnih spremenljivkvpliva(jo) na odvisno spremenljivko To vkljucuje tudi ugotavljanje moci vplivaocenjevanje prileganja modela oziroma pojasnjevalne moci modela preverjane pred-postavk in se kaj

Kot ze samo ime pove se omejimo na linearne vplive spremenljivk kar ce malcepoenostavimo pomeni da se vpliv posamezne spremenljivke ne spreminja v odvi-snosti od vrednosti odvisne spremenljivke Obstaja sicer tudi nelinearna regresija kijo lahko izvedemo na vec nacinov Pogosto tudi preko ustrezne transformacije spre-menljivk nelinearno regresijo prevedemo v linearno regresijo Na kratko se te temedotaknemo v podpodpoglavju 333 sicer pa tema ze presega obseg tega ucbenika

V ucbeniku tudi ne obravnavamo naprednejsih tem kot so na primer posploseni line-arni modeli in hierarhicni vecnivojski ali mesani modeli (glej Faraway 2006 Gelmanin Hill 2006 Snijders in Bosker 2012) Prav tako obravnavamo samo podatke zbranev eni casovni tocki ne pa na primer panelnih podatkov (glejte na primer Wooldridge2002)

Se vedno pa v tem podpoglavju obravnavamo precej siroko podrocje zato se tu sebolj kot v ostalih delih ucbenika omejimo na izvedbo analize (linearne regresije)v R-ju same teorije pa ne obravnavamo Za pridobitev znanja s tega podrocjapriporocam uporabo virov ki so navedeni v podpodpoglavju 34 se posebej Fox(2008)

331 Dodatne spremenljivke

Poleg spremenljivk ki smo jih ze uporabili pri analizi variance (glejte podpoglavje32) bomo od tu naprej uporabljali se spremenljivki F7 rdquoStevilo let solanjardquo in F21rdquoTipicno stevilo delovnih ur (vkljucno z nadurami) na tedenrdquo Graficni prikaz njunihporazdelitev je na sliki 35

Pri tem so upostevane samo enote ki imajo veljavne vrednosti pri vseh spremenljiv-kah ki jih bomo uporabili v regresiji (v kateremkoli modelu) ndash to so G91 O1F2 F5

142 33 Linearna regresija

F7 in F21 Na teh podatkih bomo opravili tudi vse linearne regresije Ta pristop smoizbrali zato da lahko rezultate razlicnih analiz med seboj primerjamo Funkcija lm 22

namrec izvede analizo na enotah ki imajo pri uporabljenih spremenljivkah veljavnevrednosti Posledica tega je da ce izvajamo vec razlicnih analiz z razlicnimi neod-visnimi spremenljivkami na originalnih podatkih niso v vseh analizah uporabljeneiste enote in zato rezultati niso primerljivi23

V praksi je v fazi izbire modela tak pristop (ce problem manjkajocih podatkov niprevelik) priporocljiv ko pa izberemo koncni model (predvsem dokoncno dolocimoneodvisne spremenljivke) pa je bolje ce upostevamo vse razpolozljive podatke (torejvse enote ki imajo veljavne vrednosti na spremenljivkah ki jih uporabimo v nekemmodelu)

V primeru manjkajocih vrednosti (torej takorekoc vedno) je najbolje da upostevamovse veljavne vrednosti (torej tudi veljavne vrednosti pri enotah ki imajo sicer tudikaksno manjkajoco vrednost) Izmed dobrih pristopov se najpogosteje uporabljajoveckratne imputacije oz multiple imputacije (Rubin 1987 1996) ki so tudi zelodobro podprte v paketku mice (Buuren in Groothuis-Oudshoorn 2011 Buuren 2012)Vendar pa to ze presega obseg tega ucbenika

Pripravimo torej najprej podatke ter preglejmo opisne statistike in porazdelitvi zadodatni spremenljivki

gt dataLRlt-naomit(data[c(G91O1F2F5F7F21)])

gt describe(dataLR[c(F7F21)])

vars n mean sd median trimmed mad min max range

F7 1 312 1236 308 12 1232 148 1 23 22

F21 2 312 4249 1240 42 4353 445 0 80 80

skew kurtosis se

F7 005 115 017

F21 -133 400 070

gt par(mfrow=c(12)mar=mardef)

gt hlt-hist(dataLR$F7main=Stevilo let solanja

xlab=Stevilo let solanja ylab=Frekvenca)

gt curve(dnorm(xmean=mean(dataLR$F7narm=TRUE)

sd=sd(dataLR$F7narm=TRUE))diff(h$breaks)[1]

sum(isna(dataLR$F7)) add=TRUE)

gt hlt-hist(dataLR$F21main=Tipicno stevilo delovnih ur na teden

xlab=Tipicno stevilo delovnih ur na teden ylab=Frekvenca)

22Enako velja za ostale R-jeve funkcije za regresijske metode (kar vkljucuje tudi analizo variance)23Se posebej je to problem ce zelimo modele formalno primerjati na primer s funkcijo anova ndash

glejte podpodpoglavje 335

3 poglavje ndash Analiza variance in linearna regresija 143

Slika 35 Porazdelitve dodatnih spremenljivk

Število let šolanja

Število let šolanja

Fre

kven

ca

0 5 10 15 20

050

100

150

Tipično število delovnih ur na teden

Tipično število delovnih ur na teden

Fre

kven

ca0 20 40 60 80

020

6010

0

gt curve(dnorm(xmean=mean(dataLR$F21narm=TRUE)

sd=sd(dataLR$F21narm=TRUE))diff(h$breaks)[1]

sum(isna(dataLR$F21)) add=TRUE)

gt par(mfrow=c(11))

Opazimo lahko da porazdelitev obeh spremenljivk ni normalna se posebej pa odnormalnosti odstopa porazdelitev spremenljivke rdquoTipicno stevilo delovnih ur na te-denrdquo ki je zelo konicasta in asimetricna v levo

332 Bivariatna regresija

Zacnimo z najenostavnejsim primerom bivariatne linearne regresije Preverimo kakostevilo let solanja vpliva na bruto placo

Odnos med spremenljivkama je graficno predstavljen na sliki 36 Za zdaj odmislimopolno crtopremico na tej sliki Rdeca crtkana crta pa prikazuje glajena povprecjaodvisne spremenljivke glede na vrednosti neodvisne

gt par(mar=mardef+c(00-30))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt lines(with(data=dataLRlowess(G91~F7))lwd=2lty=2col=red)

gt par(mar=mardef)

Iz slike lahko razberemo naslednje stvari

144 33 Linearna regresija

Slika 36 Odnos med bruto placo in stevilom let solanja

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

bull Ce stevilo let solanja narasca v povprecju narasca tudi bruto placa

bull Variabilnost bruto place narasca s stevilom let solanja kar je krsitev ene izmedpredpostavk linearne regresije

bull Videti je da s stevilom let solanja bruto placa najprej narasca pocasi (alisploh ne) kasneje pa narasca vse hitreje Torej je mogoce da linearna zvezani primerna

bull Videti je da zacne izobrazba vplivati na placo sele ko stevilo let solanja preseze12 let

Kljub pomislekom nadaljujmo najprej z enostavno linearno regresijo Za ocenjeva-nje linearne regresije uporabimo funkcijo lm za preverjanje domnev o koeficientih incelotnega modela za izracun determinacijskega ter nekaterih drugih statistih funk-cijo summary za izracun intervalov zaupanja pa funkcijo confint iz paketka carNarisemo tudi sliko ki prikazuje odvisnost bruto place od stevila let solanja

gt (fitG91_F7lt-lm(G91~F7data=dataLR))

Call

lm(formula = G91 ~ F7 data = dataLR)

Coefficients

(Intercept) F7

-3841 2139

3 poglavje ndash Analiza variance in linearna regresija 145

gt summary(fitG91_F7) za bolj bogat izpis

Call

lm(formula = G91 ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26809 -6502 -1833 4786 45609

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -3841 2407 -1596 0112

F7 2139 189 11320 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1025 on 310 degrees of freedom

Multiple R-squared 02925 Adjusted R-squared 02902

F-statistic 1281 on 1 and 310 DF p-value lt 22e-16

gt library(car)

gt confint(fitG91_F7level=09) 90 intervala zaupanja

5 95

(Intercept) -7812024 1296065

F7 1827676 24512959

gt par(mar=mardef+c(00-30))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt lines(with(data=dataLRlowess(G91~F7))lwd=2lty=2col=red)

gt abline(fitG91_F7lwd=2)

gt par(mar=mardef)

Z variabilnostjo v stevilu let solanja lahko pojasnimo 292 variabilnosti v brutoplaci Ce se stevilo let solanja poveca za eno leto se bo bruto placa v povprecjupovecala za 214 tisoc sit Vpliv stevila let solanja na bruto placo je staticno znacilenpri zanemarljivi stopnji tveganja

S pomocjo funkcije confint iz paketka car smo izracunali tudi 90- intervalazaupanja za regresijski koeficient in konstanto

Na podlagi rezultata smo na sliko 36 vrisali premico ki prikazuje ocenjeni odnosmed spremenljivkama Ocitno je da se premica pri velikih in majhnih vrednostihspremenljivke rdquoStevilo let solanjardquo ne prilega

To je morda se bolj ocitno ce si pogledamo graf kjer na y os nanasamo rezidualena x os pa vrednosti neodvisne spremenljivke (1 graf na sliki 37) Histogram na

146 33 Linearna regresija

Slika 37 Porazdelitev rezidualov

5 10 15 20

-200

020

040

0

Razsevni grafikon rezidualov gledena vrednosti neodvisne spremenljivke

Število let šolanja

Rez

idua

li

Histogram rezidualovz vrisano normalno krivuljo

Reziduali

Gos

tota

-200 0 200 4000

000

000

20

004

sliki 37 pa kaze da je krsena tudi predpostavka o normalni porazdelitvi rezidua-lovnapak Koda za sliko sledi

gt par(mfrow=c(12)xpd=NA)

gt plot(fitG91_F7$residuals~dataLR$F7

ylab=Reziduali xlab=Stevilo let solanja

main=Razsevni grafikon rezidualov glede

na vrednosti neodvisne spremenljivke)

gt hist(fitG91_F7$residuals freq=FALSE br=15

xlab=Reziduali ylab=Gostota

main=Histogram rezidualovnz vrisano normalno krivuljo)

gt curve(dnorm(xmean=0sd=sd(fitG91_F7$residuals))add=TRUE)

gt par(mfrow=c(11)xpd=FALSE)

Podobne zakljucke lahko izpeljemo tudi na podlagi grafikonov na sliki 38 ki so (vR-ju) standardni diagnosticni prikazi za linearno regresijo (tudi multiplo) zato jihdobimo zelo enostavno

gt par(mfrow=c(22)) zahtevamo 4 grafe na eno sliko

gt plot(fitG91_F7)

gt par(mfrow=c(11))

Graf levo zgoraj je podoben razsevnemu grafikonu na sliki 37 le da so na y osinapovedane vrednosti in ne neodvisna spremenljivka Pri bivariatni regresiji grepravzaprav le za linearno transformacijo skale (mnozenje in sestevanje) pri multipli

3 poglavje ndash Analiza variance in linearna regresija 147

Slika 38 Diagnosticni grafikoni za linearno regresijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641784 525

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641

784525

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641

784 525

000 001 002 003 004

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05

Residuals vs Leverage

199

784641

pa sluzijo napovedane vrednosti kot nek nadomestek za vse neodvisne spremenljivke(saj so napovedane vrednosti linearne kombinacije neodvisnih spremenljivk)

Graf desno zgoraj pa podaja podobno informacijo kot histogram Imenuje se Q-Qplot (Q je okrajsava za quantile) Ce so reziduali normalno porazdeljeni lezijo vsetocke na crtkani premici

333 Nelinearna regresija

Ugotovili smo da linearna zveza med spremenljivkama na danih podatkih morda ninajbolj optimalna Odnos je videti dosti bolj linearen ce bruto placo logaritmiramo

148 33 Linearna regresija

Na takih podatkih lahko ocenimo tudi linearno regresijo in sicer tako da znotrajformule bruto placo logaritmiramo Sicer se koda skorajda ne spremeni Rezultatlahko potem narisemo tudi na originalni lestvici Oboje je prikazano na sliki 39)

gt fitLnG91_F7lt-lm(log(G91)~F7data=dataLR)

gt summary(fitLnG91_F7) za bolj bogat izpis

Call

lm(formula = log(G91) ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-126487 -029420 002024 027755 145055

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 4224075 0098354 4295 lt2e-16

F7 0086630 0007723 1122 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 04189 on 310 degrees of freedom

Multiple R-squared 02887 Adjusted R-squared 02864

F-statistic 1258 on 1 and 310 DF p-value lt 22e-16

gt par(mfrow=c(12))

gt plot(log(G91)~F7data=dataLRxlab=Stevilo let solanja

ylab=Logaritem bruto place v 1000 sit

main=Pollogaritemski grafikon)

gt abline(fitLnG91_F7)

gt text(x=25y=65

labels=bquote(italic(G91)minute==

(round(coef(fitLnG91_F7)[1]3))

+(round(coef(fitLnG91_F7)[2]3))italic(F7)))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja

main=Originalna skala)

gt curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]x)

add=TRUE)

gt text(x=25y=700

labels=bquote(italic(G91)minute==

italic(e)^((round(coef(fitLnG91_F7)[1]3))

+(round(coef(fitLnG91_F7)[2]3))italic(F7))))

gt par(mfrow=c(11))

3 poglavje ndash Analiza variance in linearna regresija 149

Slika 39 Exponentna zveza ndash transformacija

5 10 15 20

40

50

60

Pollogaritemski grafikon

Število let šolanja

Loga

ritem

bru

to p

lače

v 1

000

sit

4224 + 0087F7

5 10 15 2010

030

050

070

0

Originalna skala

Število let šolanja

Bru

to p

lača

v 1

000

sit = e(4224+0087F7)

Ob tem pa se je treba zavedati da kadarkoli transformiramo odvisno spremenljivkoizracuni niso vec pravilni oziroma optimalni V tem primeru namrec ne minimizi-ramo vec vsote kvadratov odklonov originalne ampak transformirane spremenljivke(linearna regresija za ocenjevanje uporablja metodo najmanjsih kvadratov) Zaradiistega razloga tudi statistike R2 in podobne niso pravilne Pravilen izracun za R2 bibil

gt resLoglt-dataLR$G91- exp(fitLnG91_F7$fitted)

gt odkloniPovlt-dataLR$G91- mean(dataLR$G91)

gt R2loglt-1-sum(resLog^2)sum(odkloniPov^2)

gt R2log

[1] 02825734

Dejanski R2 je torej se nizji Sedaj smo sicer pravilno izracunali R2 a se vedno jeocenjevanje parametrov neoptimalno Parametre bi namrec morali ocenjevati takoda bi minimizirali vsoto kvadratov odklonov originalne spremenljivke

To lahko naredimo takole

gt expZvezalt-function(byX)

Xlt-asmatrix(X)

sslt-sum((y - exp(cbind(1X)b))^2)

return(ss)

gt optExplt-optim(par=coef(fitLnG91_F7)

fn=expZvezay=dataLR$G91X=dataLR[c(F7)])

150 33 Linearna regresija

gt resOptimlt-dataLR$G91 -

exp(optExp$par[1] + optExp$par[2]dataLR$F7)

gt odkloniPovlt-dataLR$G91-mean(dataLR$G91)

gt R2optimlt-1-sum(resOptim^2)sum(odkloniPov^2)

gt R2optim

[1] 0316329

gt R2log

[1] 02825734

gt summary(fitG91_F7)$rsq

[1] 02924672

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt curve(exp(optExp$par[1]+optExp$par[2]x)add=TRUEcol=blue)

gt curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]x)

add=TRUEcol=red)

gt abline(fitG91_F7col=green3)

gt text(x=19y=650

labels=bquote(italic(G91)minute==

italic(e)^((round(optExp$par[1]3)) +

(round(optExp$par[2]3))italic(F7)))col=blue)

gt legend(x=12y=790legend=c(linearna zveza

eksponentna zveza preko transformacije

eksponentna zveza preko optimizacije)

col=c(green3redblue)lty=1xjust=05yjust=0

xpd=TRUE)

Rezultat ocenjevanja je prikazan na sliki 310 R2 je sedaj znatno vecji kot prikateremkoli prejsnjem pristopu in znasa 0316

334 Multipla regresija

Sedaj razsirimo nas model tako da vkljucimo se eno intervalno neodvisno spremen-ljivko in sicer F21 rdquoTipicno stevilo delovnih ur (vkljucno z nadurami) na tedenrdquo

Tudi za to spremenljivko je pred vkljucitvijo dobro preveriti obliko njene povezanostiz odvisno spremenljivko Ustrezni prikaz je na sliki 311

gt par(mar=mardef+c(00-30))

gt plot(G91~F21data=dataLRylab=Bruto placa v 1000 sitxlab=

Tipicno stevilo delovnih ur (vkljucno z nadurami) na teden)

gt lines(with(data=dataLRlowess(G91~F21))lwd=2lty=2col=red)

gt par(mar=mardef)

3 poglavje ndash Analiza variance in linearna regresija 151

Slika 310 Ocenjevanje nelinearne zveze

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

G91 prime = e(4224+0093F7)

linearna zvezaeksponentna zveza preko transformacijeeksponentna zveza preko optimizacije

Slika 311 Odnos med bruto placo in tipicnim stevilom delovnih ur na teden

0 20 40 60 80

100

200

300

400

500

600

700

Tipično število delovnih ur (vključno z nadurami) na teden

Bru

to p

lača

v 1

000

sit

152 33 Linearna regresija

Kaksne posebne povezanosti med spremenljivkama ne vidimo Ker pa zelimo to tudiformalno preveriti bomo spremenljivko o stevilu delovnih ur vseeno vkljucili v line-arno regresijo Preverili bomo torej ali spremenljivka rdquoTipicno stevilo delovnih ur(vkljucno z nadurami) na tedenrdquo vpliva na bruto placo ce izlocimo vpliv izobrazbe(spremenljivka rdquoStevilo let solanjardquo) Zanima nas torej ali se bruto placa v pov-precju kaj spremeni ce se stevilo delovnih ur na teden poveca izobrazba pa ostanenespremenjena

Pri linearni regresiji vrstni red vkljucitve ni pomemben

Kljub temu da bi bila glede na nase podatke primernejsa nelinearna regresija bomo(iz pedagoskih razlogov) nadaljevali z linearno Enostaven popravek bi bil ce bisamo zamenjali G91 (bruto placo) z logaritmom te spremenljivke kar sicer (kot smovideli) ni optimalno

gt fitG91_F7F21lt-update(fitG91_F7~+F21)

gt prejsnjemu modelu dodamo dodatno neodvisno spremenljivko

gt ali daljse

gt fitG91_F7F21lt-lm(G91~F7+F21data=dataLR)

gt summary(fitG91_F7F21)

Call

lm(formula = G91 ~ F7 + F21 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26576 -6489 -1866 4783 45844

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -327354 311367 -1051 0294

F7 214004 18929 11306 lt2e-16

F21 -01352 04695 -0288 0774

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1027 on 309 degrees of freedom

Multiple R-squared 02927 Adjusted R-squared 02881

F-statistic 6392 on 2 and 309 DF p-value lt 22e-16

gt confint(fitG91_F7F21level=09)

5 95

(Intercept) -841046492 186338373

3 poglavje ndash Analiza variance in linearna regresija 153

F7 182775218 245233578

F21 -09098706 06394045

gt summary(fitG91_F7)

Call

lm(formula = G91 ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26809 -6502 -1833 4786 45609

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -3841 2407 -1596 0112

F7 2139 189 11320 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1025 on 310 degrees of freedom

Multiple R-squared 02925 Adjusted R-squared 02902

F-statistic 1281 on 1 and 310 DF p-value lt 22e-16

Za primerjavo smo izpisali se rezultat modela brez spremenljivke F21 Vpliv spre-menljivke F21 (kot smo pricakovali glede na sliko 311) ni statisticno znacilen Po-sledicno tudi njena vkljucitev ne vpliva bistveno na rezultate (R2 se je sicer malcepovecal popravljeni R2 pa malce zmanjsal vpliv spremenljivke F7 na G91 pa jeostal skoraj nespremenjen) Vseeno pa je interpretacija regresijskih koeficientov primultipli regresiji malce drugacna kot pri bivariatni regresiji Regresijski koeficientza stevilo let solanja 214 na primer pomeni da se bruto placa poveca za 214 tisocsit ce se stevilo let solanja poveca za eno leto in ostane tipicno stevilo delovnihur na teden nespremenjeno oziroma ce ostanejo vrednosti vseh ostalih neodvisnihspremenljivk (tu imamo pac samo eno) nespremenjene

Pri multipli regresiji je pomemben rezultat tudi F statistika in pripadajoci F -testTa nam v nasem primeru pove da lahko pri zanemarljivi stopnji tveganja trdimoda vsaj ena izmed neodvisnih spremenljivk vpliva na odvisno spremenljivko

Tudi tu bi bilo dobro preveriti porazdelitev rezidualov To storimo podobno kotpri bivariatni regresiji Ker pa imamo sedaj dve neodvisni spremenljivki bi moralinarisati dva razsevna grafikona (vsakega za svojo neodvisno spremenljivko na x osi)Taka grafa sta prikazana na sliki 312 Tako kot pri bivariatni regresiji se na prvemgrafu vidi heteroskedasticnost (variabilnost napak ni povsod enaka) na drugem pabi tezko z gotovostjo prepoznali nek vzorec (na sredini osi je x sicer variabilnostvideti najvecja a je tam tudi najvec vrednosti)

154 33 Linearna regresija

Slika 312 Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk

5 10 15 20

-200

020

040

0

Število let šolanja

Rez

idua

li

0 20 40 60 80-2

000

200

400

Število tipičnih delovnih ur

Rez

idua

li

gt par(mfrow=c(12)mar=mardef-c(0030))

gt plot(fitG91_F7F21$residuals~dataLR$F7

ylab=Reziduali xlab=Stevilo let solanja

main=)

gt plot(fitG91_F7F21$residuals~dataLR$F21

ylab=Reziduali xlab=Stevilo tipicnih delovnih ur

main=)

gt par(mfrow=c(11)mar=mardef)

Ker pa je takih grafov pri multipli regresiji lahko veliko je bolj prakticno da nari-semo samo en graf kjer na y os nanasamo napovedane vrednosti in ne neodvisnihspremenljivk Kot smo ze omenili tako napovedane vrednosti sluzijo kot nadomestekza vse neodvisne spremenljivke (saj so napovedane vrednosti linearne kombinacijeneodvisnih spremenljivk) Tak graf je skupaj s histogramom rezidualov prikazan nasliki 313

gt par(mfrow=c(12))

gt plot(fitG91_F7F21$residuals~fitG91_F7F21$fitted

ylab=Reziduali xlab=Napovedane vrednosti

main=Razsevni grafikon rezidualov glede

na napovedane vrednosti)

gt hist(fitG91_F7F21$residuals freq=FALSE br=15

xlab=Reziduali ylab=Gostota

main=Histogram rezidualovnz vrisano normalno krivuljo)

3 poglavje ndash Analiza variance in linearna regresija 155

Slika 313 Porazdelitev rezidualov

0 100 200 300 400

-200

020

040

0

Razsevni grafikon rezidualov gledena napovedane vrednosti

Napovedane vrednosti

Rez

idua

li

Histogram rezidualovz vrisano normalno krivuljo

Reziduali

Gos

tota

-200 0 200 4000

000

000

20

004

gt curve(dnorm(xmean=0sd=sd(fitG91_F7F21$residuals))add=TRUE)

gt par(mfrow=c(11))

R-jevi standardni diagnosticni prikazi za linearno regresijo so prikazani na sliki 314

gt par(mfrow=c(22))

gt plot(fitG91_F7)

gt par(mfrow=c(11))

335 Vkljucevanje nominalnihordinalnih spremenljivk

V linearno regresijo lahko kot neodvisne spremenljivke vkljucimo tudi nominalnespremenljivke in sicer preko umetnih spremenljivk Umetnih spremenljivk nam nitreba ustvariti saj jih samodejno ustvari funkcija lm Kot referencno kategorijoizbere tisto ki je pri faktorju navedena kot prva v levels

Funkcija lm kot nominalne spremenljivke obravnava le spremenljivke tipa factor incharacter ki pa jih pred uporabo spremeni v tip factor

156 33 Linearna regresija

Slika 314 Diagnosticni grafikoni za linearno regresijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641784 525

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641

784525

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641

784 525

000 001 002 003 004

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05

Residuals vs Leverage

199

784641

Opozorilo

Funkcija lm obravnava spremenljivke tipa ordered oziroma urejen factor takoda za njih na poseben nacin izracuna ndash rdquokontrasterdquo Tega nacina ne bomo obrav-navali saj je razmeroma zahteven za interpretacijo in razumevanje zato je pri-porocljivo da tudi za ordinalne spremenljivke uporabljate neurejen factor

Poglejmo najprej najenostavnejsi primer ko ima nominalna spremenljivka samo 2vrednosti V nas model torej vkljucimo se spol

3 poglavje ndash Analiza variance in linearna regresija 157

gt fitG91_F7F21O1F2lt-lm(G91~F7+F21+O1F2data=dataLR)

gt summary(fitG91_F7F21O1F2)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24770 -6939 -1786 5278 44416

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -170737 312701 -0546 058546

F7 216213 18731 11543 lt 2e-16

F21 -02170 04651 -0467 064108

O1F2zenski -330047 115776 -2851 000466

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1015 on 308 degrees of freedom

Multiple R-squared 03108 Adjusted R-squared 03041

F-statistic 4631 on 3 and 308 DF p-value lt 22e-16

Med rezultati je dodaten regresijski koeficient rdquoO1F2Zenskirdquo Iz njega vidimo daje bila kot referencna kategorija vzeta kategorija rdquoMoskirdquo saj te ni med koeficientiVrednost tega koeficienta (minus330) nam pove da imajo zenske v povprecju pri enakihvrednostih ostalih spremenljivk (izobrazba stevilo delovnih ur na teden) za 33 tisocsit nizjo placo kot moski Pri takem kodiranju je vrednost regresijskega koeficientavedno primerjava izbrane kategorije z referencno Vpliv spola je statisticno znacilenpri tveganju 047

Opozorilo

Klasicna interpretacija da se odvisna spremenljivka spremeni za bx ce se xpoveca za eno enoto in ostale spremenljivke ostanejo nespremenjene tu ni pri-merna ker se spol pri neki osebi naceloma ne spreminja

Dodajmo kot spremenljivko se kraj bivanja

gt fitG91_F7F21O1F2F5lt-lm(G91~F7+F21+O1F2+F5data=dataLR)

gt summary(fitG91_F7F21O1F2F5)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 data = dataLR)

158 33 Linearna regresija

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -105263 375909 -0280 077965

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5predmestje -158647 246244 -0644 051989

F5manjse mesto 114633 225129 0509 061099

F5vas -62163 212181 -0293 076974

F5kmetija -32327 268104 -0121 090411

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

Ker je bilo rdquoVeliko mestordquo izbrano kot referencna kategorija imamo v izpisu regre-sijske koeficiente za vse ostale kategorije Vsak izmed teh regresijskih koeficientovnam poda primerjavo med kategorijo in velikim mestom Tako nam vrednost koefi-cienta rdquoF5Vasrdquominus62 pove da imajo osebe ki zivijo na vasi v povprecju pri enakihvrednostih ostalih spremenljivk (izobrazba stevilo delovnih ur na teden spol) za 62tisoc sit nizjo bruto placo kot tisti ki zivijo v velikih mestih

Ce zelimo nastaviti kot referencno kaksno drugo kategorijo to najlazje storimo takoda zamenjamo vrstni red levels pri faktorju pred klicem funkcije lm Ce bi ze-leli da je na primer referencna kategorija rdquomanjse mestordquo lahko to dosezemo ta-kole

gt dataLR$F5alt-factor(dataLR$F5

levels=levels(dataLR$F5)[c(31245)])

gt lm(G91~F7+F21+O1F2+F5adata=dataLR)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5a data = dataLR)

Coefficients

(Intercept) F7 F21

09370 214129 -02492

3 poglavje ndash Analiza variance in linearna regresija 159

O1F2zenski F5aveliko mesto F5apredmestje

-331629 -114633 -273280

F5avas F5akmetija

-176796 -146960

gt sedaj je referencna kategorija manjse mesto

gt summary(lm(G91~F7+F21+O1F2+F5adata=dataLR))

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5a data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 09370 349314 0027 097862

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5aveliko mesto -114633 225129 -0509 061099

F5apredmestje -273280 199023 -1373 017073

F5avas -176796 149753 -1181 023869

F5akmetija -146960 220729 -0666 050605

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

Pri enakih vrednostih ostalih neodvisnih spremenljivk bi v vseh drugih krajih bivanjav povprecju pricakovali nizjo bruto placo kot v velikem mestu vendar pa ni nobedenod regresijskih koeficientov statisticno znacilen (niti pri 10- tveganju)

Vendar na podlagi tega izpisa ne sklepati o domnevi da kraj bivanja ne vpliva nabruto placo (oziroma ne moremo ugotoviti da tega ne moremo trditi na primer pri10- tveganju) Za preverjanje te domneve bi morali s pomocjo F -testa ta modelprimerjati z modelom brez kraja bivanja (torej s prejsnjim modelom) Medtem koizbor referencne kategorije vpliva na posamezne regresijske koeficiente in posledicnotudi na teste znacilnosti le-ta ne vpliva na rezultate F -testa kjer preverjamo vplivrdquocelotnerdquo nominalne spremenljivke (ali katerekoli druge posamezne spremenljivke alikombinacije vec spremenljivk)

160 33 Linearna regresija

gt anova(fitG91_F7F21O1F2fitG91_F7F21O1F2F5)

Analysis of Variance Table

Model 1 G91 ~ F7 + F21 + O1F2

Model 2 G91 ~ F7 + F21 + O1F2 + F5

ResDf RSS Df Sum of Sq F Pr(gtF)

1 308 3173025

2 304 3149602 4 23423 05652 06881

Sele ta primerjava nam pove da bi morali tvegati vec kot 70 ce bi zeleli trditida kraj bivanja vpliva na bruto placo ce izlocimo vplive stopnje izobrazbe steviladelovnih ur in spola

336 Interakcije med spremenljivkami

Interakcije med (ucinki) spremenljivk vkljucimo v model tako da kot dodatno ne-odvisno spremenljivko v model vkljucimo zmnozek spremenljivk V primeru nomi-nalnih spremenljivk morajo biti te ustrezno kodirane (na primer kot umetne spre-menljivke)

Opozorilo

Ko navajamo v R-ju rdquoformulordquo(npr y ~ x1 + x2) znak rdquordquopomeni da zelimov model vkljuciti izbrane spremenljivke in vse mozne interakcije med njimi in nedejanskega mnozenja (upostevajo se na primer tudi tipi spremenljivk) Ce zelimovkljuciti samo interakcijo potem damo med spremenljivki(ke) znak rdquordquo Takoje na primer y ~ x1x2x3 enako kot y ~ x1 + x2 + x3 + x1x2 + x1x3

+ x2x3 Ce zelimo da se nek operator (na primer ) interpretira dobesednodamo izraz kot argument funkciji I (na primer I(x1x2))

Ce torej zelimo vkljuciti interakcijo med spolom in izobrazbo (edini spremenljivki kista imeli statisticno znacilen vpliv) lahko to naredimo tako kot prikazuje naslednjiizpis

gt fitG91_F7F21O1F2F5int lt- lm(G91 ~ F7O1F2 + F21 + F5

data=dataLR)

gt ali takole

gt fitG91_F7F21O1F2F5int lt- lm(G91 ~ F7 + F21 + O1F2 + F5

gt + F7O1F2 data=dataLR)

gt summary(fitG91_F7F21O1F2F5int)

Call

lm(formula = G91 ~ F7 O1F2 + F21 + F5 data = dataLR)

3 poglavje ndash Analiza variance in linearna regresija 161

Residuals

Min 1Q Median 3Q Max

-23387 -6501 -2010 5017 43674

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -5052516 4638880 -1089 0277

F7 2455524 289956 8469 109e-15

O1F2zenski 3700699 4928161 0751 0453

F21 -020133 047672 -0422 0673

F5predmestje -1607825 2457842 -0654 0514

F5manjse mesto 829630 2257400 0368 0713

F5vas -701999 2118518 -0331 0741

F5kmetija -002075 2684935 -0001 0999

F7O1F2zenski -563564 384354 -1466 0144

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1016 on 303 degrees of freedom

Multiple R-squared 03207 Adjusted R-squared 03028

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

Vpliv interakcije ni statisticno znacilen Prav tako pa ni vec statisticno znacilenvpliv spola To je posledica multikolinearnosti ki jo bomo omenili v naslednjempodpodpoglavju Problem lahko zmanjsamo ce intervalne spremenljivke pred ra-cunanjem interakcije centriramo (od vsake vrednosti odstejemo povprecje) Zaradilepsega izpisa je bolje da to naredimo pred klicem funkcije lm

gt dataLR$F7centGndrZenskilt- (dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

gt fitG91_F7F21O1F2F5int2lt-lm(G91~F7+F21+O1F2+F5 +

F7centGndrZenskidata=dataLR)

gt summary(fitG91_F7F21O1F2F5int2)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 + F7centGndrZenski

data = dataLR)

Residuals

Min 1Q Median 3Q Max

-23387 -6501 -2010 5017 43674

162 33 Linearna regresija

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -5052516 4638880 -1089 02769

F7 2455524 289956 8469 109e-15

F21 -020133 047672 -0422 06731

O1F2zenski -3264380 1177205 -2773 00059

F5predmestje -1607825 2457842 -0654 05135

F5manjse mesto 829630 2257400 0368 07135

F5vas -701999 2118518 -0331 07406

F5kmetija -002075 2684935 -0001 09994

F7centGndrZenski -563564 384354 -1466 01436

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1016 on 303 degrees of freedom

Multiple R-squared 03207 Adjusted R-squared 03028

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

Spremenil se je le koeficient za spol vsi ostali rezultati (vkljucno z R2 in F -statistiko)pa so ostali nespremenjeni Pravzaprav se je spremenilo samo rdquokodiranje spremen-ljivkrdquo Ce vpliv spremenljivk vkljucenih v interakcije preverjamo na pravilen nacintorej tako da preverjamo vpliv celotne spremenljivke se pravi rdquoglavnirdquo ucinek in vseinterakcije v katerih nastopa preko F -testa potem kodiranje ni pomembno Pravilnobi ucinek spola torej preverjali tako kot sledi v nadaljevanju kjer nacin kodiranja narezultat testa ne vpliva

gt ocenimo model brez spola

gt fitG91_F7F21F5int lt- lm(G91 ~ F7 + F21 + F5 data=dataLR)

gt preverimo skupni vpliv spola tako da primerjamo

gt model brez spola z modelom s spolom

gt anova(fitG91_F7F21F5int fitG91_F7F21O1F2F5int)

Analysis of Variance Table

Model 1 G91 ~ F7 + F21 + F5

Model 2 G91 ~ F7 O1F2 + F21 + F5

ResDf RSS Df Sum of Sq F Pr(gtF)

1 305 3231587

2 303 3127412 2 104176 50465 0006983

---

Signif codes

0 0001 001 005 01 1

3 poglavje ndash Analiza variance in linearna regresija 163

Ugotovimo lahko da je vpliv spola (kjer upostevamo tudi njegov vpliv preko inte-rakcije z izobrazbo) statisticno znacilen pri stopnji tveganja 07

337 Preverjanje predpostavk

Analiza rezidualov

Deloma smo preverjanje predpostavk ze obdelali ko smo si ogledali diagnosticnegrafikone za porazdelitev rezidualov Veliko predpostavk je namrec vezanih na po-razdelitev rezidualov Se na zadnjem modelu (z interakcijo 2) poglejmo standardnegrafikone za diagnostiko Grafi so prikazani na sliki 315

gt par(mfrow=c(22))

gt plot(fitG91_F7F21O1F2F5int2)

gt par(mfrow=c(11))

Iz grafov na sliki 315 lahko razberemo

bull Ze na 1 grafu (levo zgoraj) se vidi da je variabilnost rezidualov vecja privecjih placah kot pri manjsih To je se bolj razvidno iz 3 grafa (levo spodaj)Graf je podoben zgornjemu (1) le da sedaj namesto rdquosurovihrdquo rezidualovna y os nanasamo korenjene absolutne standardizirane reziduale Pri temje bistveno predvsem to da nanasamo absolutne vrednosti Rdeca crta kiprikazuje glajena povprecja bi morala biti v primeru homoskedasticnosti (ko jeta predpostavka izpolnjena) ravna pri nas pa je ocitno da od takrat ko imamoneko vecje stevilo enot vseskozi narasca Torej je prisotna heteroskedasticnost

bull Na 2 grafu (desno zgoraj) vse tocke ne lezijo na premici kar pomeni dase reziduali ne porazdeljujejo normalno Predvsem imamo prevec zelo velikihvrednosti Enako lahko razberemo tudi iz histograma rezidualov z vrisanonormalno krivuljo na sliki 316

gt par(mar=mardef-c(0030))

gt hist(fitG91_F7F21O1F2F5int2$resfreq=FALSExlab=Reziduali

ylab=Gostotamain=br=15)

gt curve(dnorm(xsd=sd(fitG91_F7F21O1F2F5int2$res))add=TRUE)

gt par(mar=mardef)

Za preverjanje heteroskedasticnosti obstaja v paketku car tudi formalni test (funk-cija ncvTest) Prav tako ta paketek ponuja se dodatni grafikon ki narise logaritmi-rane absolutne vrednosti studentiziranih rezidualov v odvisnosti od logaritmiranihnapovedanih vrednosti (funkcija spreadLevelPlot) Zaradi uporabe logaritmovizpusti vse negativne napovedane vrednosti (in v tem primeru izpise opozorilo)

164 33 Linearna regresija

Slika 315 Diagnosticni grafikoni za linearno regresijo ndash model z interakcijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641525784

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641525784

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641525784

000 002 004 006 008 010 012

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

Residuals vs Leverage

784

199

525

Funkcija predlaga tudi transformacijo odvisne spremenljivke za odpravljanje pro-blema heteroskedasticnosti Graf je prikazan na sliki 317

gt ncvTest(fitG91_F7F21O1F2F5int2)

Non-constant Variance Score Test

Variance formula ~ fittedvalues

Chisquare = 1484605 Df = 1 p = 00001166521

gt spreadLevelPlot(fitG91_F7F21O1F2F5int2)

Suggested power transformation 05373901

3 poglavje ndash Analiza variance in linearna regresija 165

Slika 316 Histogram rezidualov

Reziduali

Gostota

-200 -100 0 100 200 300 400

0000

0001

0002

0003

0004

0005

Slika 317 Grafikon za ocenjevanje heteroskedasticnosti

50 100 200 500

000

50

020

010

00

500

200

0

Spread-Level Plot for fitG91_F7F21O1F2F5int2

Fitted Values

Abs

olut

e S

tude

ntiz

ed R

esid

uals

166 33 Linearna regresija

Na podlagi testa lahko domnevo o homoskedasticnosti zavrnemo pri zanemarljivistopnji tveganja Iz grafa na sliki 317 pa zopet vidimo da variabilnost rezidualovz visanjem napovedanih vrednosti narasca Na podlagi regresijskega koeficientapremice na tem grafu funkcija predlaga tudi potenco na katero naj bi potenciraliodvisno spremenljivko za odpravo problema heteroskedasticnosti

Multikolinearnost

Multikolinearnost lahko ocenjujemo z vec statistikami Poglejmo si najprej izracunfaktorja povecanja variance (variance inflation factor ndash vif) in toleranc Vif lahko iz-racunamo s funkcijo vif iz paketka car tolerance pa so kar 1vif Ti dve statistikista priporocljivi ker sta razumljivi in pokazeta pri katerih spremenljivkah se pro-blem pojavlja Mere bomo izracunali za oba modela z interakcijo (ki se razlikujetav parametrizacji interakcije)

Opomnik Drugo parametrizacijo smo izbrali ravno zato ker zmanjsuje multikoline-arnost

gt prvi model

gt vif(fitG91_F7F21O1F2F5int) variance inflation factor

GVIF Df GVIF^(1(2Df))

F7 2396263 1 1547987

O1F2 18183935 1 4264263

F21 1052758 1 1026040

F5 1216437 4 1024793

F7O1F2 19529971 1 4419273

gt 1vif(fitG91_F7F21O1F2F5int)[1] tolerance

F7 O1F2 F21 F5 F7O1F2

041731645 005499360 094988557 082207330 005120335

gt drugi model

gt vif(fitG91_F7F21O1F2F5int2) variance inflation factor

GVIF Df GVIF^(1(2Df))

F7 2396263 1 1547987

F21 1052758 1 1026040

O1F2 1037582 1 1018618

F5 1216437 4 1024793

F7centGndrZenski 2259556 1 1503182

gt 1vif(fitG91_F7F21O1F2F5int2)[1] tolerance

F7 F21 O1F2

04173164 09498856 09637791

F5 F7centGndrZenski

08220733 04425648

3 poglavje ndash Analiza variance in linearna regresija 167

Tolerance so pri spolu in pri interakciji med spolom in izobrazbo veliko visje pridrugem modelu faktorji povecanja variance pa nizji

Dober pokazatelj multikolinearnosti je tudi korelacijska matrika med ocenami re-gresijskih koeficientov Ta kaze na problem ce so korelacije po absolutni vrednostiblizu 1 S funkcijo vcov dobimo variancnokovariancno matriko ki pa jo lahko sfunkcijo cov2cor pretvorimo v korelacijsko

gt prvi model

gt vcov(fitG91_F7F21O1F2F5int) kovariancna matrika

gt cov2cor(vcov(fitG91_F7F21O1F2F5int)) korelacijska matrika

(Intercept) F7 O1F2zenski

(Intercept) 10000000 -080916407 -060845623

F7 -08091641 100000000 071746753

O1F2zenski -06084562 071746753 100000000

F21 -04241575 002872814 008249693

F5predmestje -03471743 003199666 000178113

F5manjse mesto -02765647 -003856876 -008880756

F5vas -03666217 006890147 -002361653

F5kmetija -04616874 022093944 011067464

F7O1F2zenski 05880620 -073911673 -097107735

F21 F5predmestje F5manjse mesto

(Intercept) -0424157534 -0347174290 -027656470

F7 0028728137 0031996658 -003856876

O1F2zenski 0082496930 0001781130 -008880756

F21 1000000000 0008758751 -009876780

F5predmestje 0008758751 1000000000 064435236

F5manjse mesto -0098767796 0644352359 100000000

F5vas -0142169932 0689732959 076571906

F5kmetija -0057753038 0555335692 059905425

F7O1F2zenski -0068533086 0005924216 009568067

F5vas F5kmetija F7O1F2zenski

(Intercept) -036662171 -046168741 0588061950

F7 006890147 022093944 -0739116728

O1F2zenski -002361653 011067464 -0971077352

F21 -014216993 -005775304 -0068533086

F5predmestje 068973296 055533569 0005924216

F5manjse mesto 076571906 059905425 0095680667

F5vas 100000000 066452253 0025873515

F5kmetija 066452253 100000000 -0081587125

F7O1F2zenski 002587352 -008158713 1000000000

168 33 Linearna regresija

gt drugi model

gt vcov(fitG91_F7F21O1F2F5int2) kovariancna matrika

gt cov2cor(vcov(fitG91_F7F21O1F2F5int2)) korelacijska matrika

(Intercept) F7 F21

(Intercept) 10000000 -080916407 -0424157534

F7 -08091641 100000000 0028728137

F21 -04241575 002872814 1000000000

O1F2zenski -01742628 002108728 0068815958

F5predmestje -03471743 003199666 0008758751

F5manjse mesto -02765647 -003856876 -0098767796

F5vas -03666217 006890147 -0142169932

F5kmetija -04616874 022093944 -0057753038

F7centGndrZenski 05880620 -073911673 -0068533086

O1F2zenski F5predmestje F5manjse mesto

(Intercept) -0174262837 -0347174290 -027656470

F7 0021087276 0031996658 -003856876

F21 0068815958 0008758751 -009876780

O1F2zenski 1000000000 0031361616 001431086

F5predmestje 0031361616 1000000000 064435236

F5manjse mesto 0014310857 0644352359 100000000

F5vas 0005537691 0689732959 076571906

F5kmetija 0134101643 0555335692 059905425

F7centGndrZenski -0030070878 0005924216 009568067

F5vas F5kmetija F7centGndrZenski

(Intercept) -0366621708 -046168741 0588061950

F7 0068901467 022093944 -0739116728

F21 -0142169932 -005775304 -0068533086

O1F2zenski 0005537691 013410164 -0030070878

F5predmestje 0689732959 055533569 0005924216

F5manjse mesto 0765719055 059905425 0095680667

F5vas 1000000000 066452253 0025873515

F5kmetija 0664522533 100000000 -0081587125

F7centGndrZenski 0025873515 -008158713 1000000000

Ponovno je glavna razlika med obema modeloma povezana s spolom in interakcijomed spolom in izobrazbo Tokrat je dejanska razlika prav v korelaciji med ocenamateh dveh koeficientov Medtem ko je ta korelacija pri prvem modelu po absolutnivrednosti zelo blizu 1 (minus097) je ta korelacija pri drugem modelu skoraj 0 (minus003)Razmeroma visoka (minus075) je tudi korelacija med ocenama koeficientov za izobrazboin interakcijo med spolom in izobrazbo ki je minus075 Preostale razmeroma visokekorelacije so le se med sklopom spremenljivk ki merijo kraj bivanja (ker merijo istospremenljivko je to pricakovano) in med nekaterimi spremenljivkami in konstanto(kar pa ni tako pomembno)

3 poglavje ndash Analiza variance in linearna regresija 169

Multikolinearnost lahko ocenimo tudi s pomocjo indeksov pogojnosti in lastnih vre-dnosti matrike neodvisnih spremenljivk (v katero so namesto nominalnih spremen-ljivk vkljucene umetne spremenljivke) Obstaja vec nacinov kako izracunati indeksepogojnosti V nadaljevanju sta predstavljena dva Pri tem bomo uporabili funkcijocolinEigen ki je definirana spodaj sicer pa se nahaja tudi v datoteki rdquoUcbenikR-funkcijeRrdquo Funkcija temelji na izracunu lastnih vrednosti matrike kriznih produktovneodvisnih spremenljivk

gt colinEigenlt-function(fitSPSS=TRUE)

funkcija za racunanje lastnih vrednosti in indeksov

pogojnosti

Xlt-fit[x]

if(isnull(X))

stop(Fit must include x See lm for detailsn)

else

Xlt-fit$x

tXXlt-t(X)X

if(SPSS)

tXXlt-cov2cor(tXX)

e lt- eigen(tXX)

return(list(eigen=e$values

condIndex=sqrt(e$val[1]e$val)))

Izracunajmo torej indekse pogojnosti na oba nacina za oba modela

gt fitG91_F7F21O1F2F5int2lt-lm(G91~F7+F21+O1F2+F5 +

F7centGndrZenskidata=dataLRx=TRUE)

gt ponovno smo ocenili model s parametrom x=TRUE

gt da dobimo kot rezultat tudi matriko neodvisnih spremenljivk

gt fitG91_F7F21O1F2F5intlt-lm(G91~F7O1F2+F21+F5data=dataLR

x=TRUE)

gt prvi model

gt 1 nacin

gt colinEigen(fitG91_F7F21O1F2F5intSPSS=FALSE)

$eigen

[1] 6652435e+05 1558161e+04 4912678e+03 9900302e+01

[5] 5302790e+01 3528826e+01 1873120e+01 5532393e+00

[9] 2662550e+00

170 33 Linearna regresija

$condIndex

[1] 1000000 6534074 11636735 81972106 112005173

[6] 137301463 188454950 346763845 499851942

gt oziroma taki kot jih vrne SPSS

gt colinEigen(fitG91_F7F21O1F2F5intSPSS=TRUE)

$eigen

[1] 4943854688 1088057228 1002859625 1000235359

[5] 0766591055 0092809934 0066547583 0031866833

[9] 0007177695

$condIndex

[1] 1000000 2131606 2220306 2223216 2539516

[6] 7298534 8619195 12455564 26244625

gt drugi model

gt 1 nacin

gt colinEigen(fitG91_F7F21O1F2F5int2SPSS=FALSE)

$eigen

[1] 6558974e+05 6585408e+03 1173476e+03 1011405e+02

[5] 7781142e+01 5243155e+01 3498490e+01 9599113e+00

[9] 3705997e+00

$condIndex

[1] 1000000 9979909 23641818 80529554 91811327

[6] 111846291 136923385 261398078 420693096

gt oziroma taki kot jih vrne SPSS

gt colinEigen(fitG91_F7F21O1F2F5int2SPSS=TRUE)

$eigen

[1] 4340401831 1109346570 1012708187 1000586611

[5] 0923653402 0473392997 0076159218 0053759618

[9] 0009991567

$condIndex

[1] 1000000 1978023 2070250 2082752 2167756

[6] 3027987 7549249 8985389 20842421

Ne glede na izracun so indeksi pogojnosti pri prvem modelu bistveno vecji karnakazuje da je tam multikolinearnost vecji problem Kljub vsemu pa tudi tu indekspogojnosti na nacin kot ga izracuna SPSS ne preseze meje 30 kar bi bil jasen signalza multikolinearnost

Ocena oblike zveze

Povedali smo ze da je za vsako neodvisno spremenljivko vkljuceno v model dobropogledati razsevni grafikon z odvisno spremenljivko Vendar pa ta grafikon vca-

3 poglavje ndash Analiza variance in linearna regresija 171

sih ne razkrije prave zveze ker je prava zveza rdquozakritardquo z vplivi ostalih neodvisnihspremenljivk V tem primeru pride prav rdquocomponent + residual plotrdquo (oziroma grafdelnih ostankov) kjer na y os nanasamo vrednosti odvisne spremenljivke od katereprej odstejemo vplive ostalih spremenljivk Take grafe lahko narisemo s pomocjofunkcije crPlots iz paketka car Pogoj za uporabo funkcije je da v modelu ni in-terakcij zato jih bomo uporabili na zadnjem modelu kjer se nismo imeli interakcijeRezultat je prikazan na sliki 318

gt component + residual plot

gt crPlots(fitG91_F7F21O1F2F5)

Nadgradnja teh grafikonov so CERES grafi ki so na voljo v funkciji ceresPlots vistem paketku Za razliko od prejsnje le-ta ne narise grafov za nominalne spremen-ljivke Rezultat je na sliki 319

gt Ceres graf - naprednejsa verzija zgornjega

gt ceresPlots(fitG91_F7F21O1F2F5)

Najzanimivejsi zakljucek ki je bil opazen ze na navadnih razsevnih grafikonih jeda izobrazba vpliva na placo sele ko stevilo let solanja preseze 12 leta Kot resitevtega problema lahko v model vkljucimo se eno spremenljivko in sicer rdquostevilo letsolanja nad 12 letrdquo ki bo imela vrednost 0 za vse ki imajo 12 let solanja ali manj

gt dataLR$F7nad12 lt- dataLR$F7 - 12

gt dataLR$F7nad12[dataLR$F7nad12lt0]lt-0

gt fitG91_F7F21O1F2F5F7nad12lt-lm(G91~F7 +O1F2+F7nad12+F21+F5

data=dataLR)

gt summary(fitG91_F7F21O1F2F5F7nad12)

Call

lm(formula = G91 ~ F7 + O1F2 + F7nad12 + F21 + F5 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-28067 -5650 -1733 4223 42537

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 1307917 480829 2720 00069

F7 73834 36457 2025 00437

O1F2zenski -424936 116175 -3658 00003

F7nad12 240146 53287 4507 942e-06

F21 -02669 04621 -0578 05640

172 33 Linearna regresija

Slika 318 Grafikoni delnih ostankov

5 10 15 20

-200

010

020

030

040

050

0

F7

Com

pone

nt+

Res

idua

l(G91

)

0 20 40 60 80-2

000

100

200

300

400

F21

Com

pone

nt+

Res

idua

l(G91

)

moski zenski

-200

020

040

0

O1F2

Com

pone

nt+

Res

idua

l(G91

)

veliko mesto manjse mesto kmetija

-200

010

020

030

040

0

F5

Com

pone

nt+

Res

idua

l(G91

)

Component + Residual Plots

F5predmestje -94125 239206 -0393 06942

F5manjse mesto 193332 219000 0883 03780

F5vas 56539 207426 0273 07854

F5kmetija -105924 260487 -0407 06846

---

Signif codes

0 0001 001 005 01 1

Residual standard error 987 on 303 degrees of freedom

Multiple R-squared 03589 Adjusted R-squared 0342

F-statistic 212 on 8 and 303 DF p-value lt 22e-16

3 poglavje ndash Analiza variance in linearna regresija 173

Slika 319 Ceres grafikoni

5 10 15 20

-600

-400

-200

0

F7

CE

RE

S R

esid

ual(G

91)

0 20 40 60 80-3

00-1

0010

030

0F21

CE

RE

S R

esid

ual(G

91)

CERES Plots

gt summary(fitG91_F7F21O1F2F5) za primerjavo

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -105263 375909 -0280 077965

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5predmestje -158647 246244 -0644 051989

F5manjse mesto 114633 225129 0509 061099

F5vas -62163 212181 -0293 076974

F5kmetija -32327 268104 -0121 090411

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

174 33 Linearna regresija

gt par(mfrow=c(22))

gt plot(fitG91_F7F21O1F2F5F7nad12)

gt par(mfrow=c(11))

Vpliv spremenljivke F7 je bistveno manjsi in sedaj komaj statisticno znacilen pri 5-tveganju kar nam pove da izobrazba do 12 let ne vpliva mocno na bruto placo Kerpa je koeficient spremenljivke F7nad12 bistveno vecji in mocno statisticno znacilenvidimo da zacne izobrazba mocneje vplivati na bruto placo sele ko stevilo let solanjapreseze 12 let oziroma po srednji soli O tem da je model sedaj bistveno boljsi pricatudi znatno vecji R2

Diagnosticni grafikoni so prikazani na sliki 320 Rezultati so sicer malce boljsi aproblem heteroskedasticnosti ostaja

338 V razmislek

Model bi se dalo se nadgrajevati Ze samo vpliv izobrazbe na placo za razlicneskupine je zelo kompleksna stvar Kaj se zgodi ce v novi model dodamo interakcijo

gt dataLR$F7centGndrZenskilt- (dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

gt dataLR$F7nad12centGndrZenski lt- (dataLR$F7nad12-

mean(dataLR$F7nad12))(dataLR$O1F2==zenski)

gt fitG91_F7F21O1F2F5F7nad12intlt-lm(G91~F7+F7nad12+O1F2+F21+F5+

F7centGndrZenski + F7nad12centGndrZenski data=dataLR)

gt summary(fitG91_F7F21O1F2F5F7nad12int)

Call

lm(formula = G91 ~ F7 + F7nad12 + O1F2 + F21 + F5 +

F7centGndrZenski + F7nad12centGndrZenski data = dataLR)

Residuals

Min 1Q Median 3Q Max

-25391 -5885 -1694 4557 42166

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 1701907 632377 2691 0007516

F7 28595 52133 0549 0583754

F7nad12 358691 73064 4909 15e-06

O1F2zenski -415327 115258 -3603 0000367

F21 -01829 04595 -0398 0690894

F5predmestje -86485 237140 -0365 0715590

3 poglavje ndash Analiza variance in linearna regresija 175

Slika 320 Diagnosticni grafikoni za linearno regresijo

100 200 300 400 500

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641525

1368

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641525

1368

100 200 300 400 500

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641525

1368

000 002 004 006 008 010 012

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05Residuals vs Leverage

784

362

525

F5manjse mesto 173586 218196 0796 0426918

F5vas 59867 205770 0291 0771297

F5kmetija -91023 259186 -0351 0725693

F7centGndrZenski 100282 70140 1430 0153828

F7nad12centGndrZenski -251789 103129 -2441 0015203

(Intercept)

F7

F7nad12

O1F2zenski

F21

176 33 Linearna regresija

F5predmestje

F5manjse mesto

F5vas

F5kmetija

F7centGndrZenski

F7nad12centGndrZenski

---

Signif codes

0 0001 001 005 01 1

Residual standard error 9783 on 301 degrees of freedom

Multiple R-squared 03744 Adjusted R-squared 03536

F-statistic 1801 on 10 and 301 DF p-value lt 22e-16

Vidimo da se odstotek pojasnjene variance se malce poveca To nam pravzapravnakazuje da bi morda morali ze na zacetku gledati graf na sliki 321

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanjapch=asnumeric(O1F2)

col=ifelse(O1F2==moskibluered))

gt dataLRzenlt-dataLR[dataLR$O1F2==zenski]

gt lines(with(data=dataLRzenlowess(G91~F7))lwd=2lty=2col=red)

gt dataLRmoslt-dataLR[dataLR$O1F2==moski]

gt lines(with(data=dataLRmoslowess(G91~F7))lwd=2lty=2

col=blue)

gt legend(x=1y=750legend=c(MoskiZenske)lty=2

col=c(bluered)pch=12yjust=1xjust=0

merge=FALSElwd=2)

339 Izracun rdquona rokerdquo

Za boljse razumevanje je koristno da naredimo izracune brez vgrajenih funkcij (ozi-roma s cim bolj enostavnimi) Ocenimo drugi model z interakcijo iz podpodpoglavja336 (ki smo ga shranili v objekt fitG91_F7F21O1F2F5int2) se na tak nacin

Najprej pripravimo podatke Pri tem je pomembno predvsem da naredimo umetnespremenljivke za nominalne spremenljivke

gt ylt-dataLR$G91 odvisna spremenljivka

gt Xlt-cbind(konstanta=1dataLR[c(F7F21)]

konstanta in intervalni neodvisni spremenljivki

O1F2Zenski=asnumeric(dataLR$O1F2==zenski)

3 poglavje ndash Analiza variance in linearna regresija 177

Slika 321 Odnos med izobrazbo in bruto placo po spolu

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

MoškiŽenske

F5Predmestje=asnumeric(dataLR$F5==predmestje)

F5Manjse mesto=asnumeric(dataLR$F5==manjse mesto)

F5Vas=asnumeric(dataLR$F5==vas)

F5Kmetija=asnumeric(dataLR$F5==kmetija)

F7centGndrZenski=(dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

)

gt Xlt-asmatrix(X)

gt preverimo rezultat

gt X[110]

konstanta F7 F21 O1F2Zenski F5Predmestje F5Manjse mesto

1 1 6 42 0 0 0

4 1 12 50 1 0 0

6 1 12 40 1 0 0

16 1 11 62 0 0 0

22 1 14 48 0 0 1

23 1 12 0 0 0 1

26 1 16 45 1 0 0

35 1 12 40 1 0 0

41 1 18 46 0 0 1

49 1 11 40 1 0 1

F5Vas F5Kmetija F7centGndrZenski

1 0 1 00000000

178 33 Linearna regresija

4 1 0 -03589744

6 1 0 -03589744

16 1 0 00000000

22 0 0 00000000

23 0 0 00000000

26 0 1 36410256

35 0 0 -03589744

41 0 0 00000000

49 0 0 -13589744

gt to je enako kot

gt fitG91_F7F21O1F2F5int2$x[110]

(Intercept) F7 F21 O1F2zenski F5predmestje

1 1 6 42 0 0

4 1 12 50 1 0

6 1 12 40 1 0

16 1 11 62 0 0

22 1 14 48 0 0

23 1 12 0 0 0

26 1 16 45 1 0

35 1 12 40 1 0

41 1 18 46 0 0

49 1 11 40 1 0

F5manjse mesto F5vas F5kmetija F7centGndrZenski

1 0 0 1 00000000

4 0 1 0 -03589744

6 0 1 0 -03589744

16 0 1 0 00000000

22 1 0 0 00000000

23 1 0 0 00000000

26 0 0 1 36410256

35 0 0 0 -03589744

41 1 0 0 00000000

49 1 0 0 -13589744

Spomnimo se da je matricna formula za izracun regresijskih koeficientov

b = (XprimeX)minus1Xprimey

Formuli za izracun napovedi in rezidualov pa

yprime = Xb

e = y minus yprime

3 poglavje ndash Analiza variance in linearna regresija 179

Na podlagi tega lahko izracunamo s[e] R2 popravljen R2pop in F -statistiko

se =

nsumi=1

e2

nminus k

R2 =var(yprime)

var(y)

R2pop = 1minus s2e

var(y)= 1minus (1minusR2)

nminus 1

nminus k

F =

nsumi=1

yprimei minus y

k minus 1nsumi=1

yi minus yprimei

nminus k

=

R2

k minus 11minusR2

nminus k

Izracunajmo

gt blt-solve(t(X) X) t(X) y

gt b

[1]

konstanta -5052516310

F7 2455524459

F21 -020132728

O1F2Zenski -3264379964

F5Predmestje -1607824506

F5Manjse mesto 829629531

F5Vas -701999244

F5Kmetija -002074509

F7centGndrZenski -563564466

gt kar je enako kot (do natancnosti racunalnika)

gt coef(fitG91_F7F21O1F2F5int2)

(Intercept) F7 F21

-5052516310 2455524459 -020132728

O1F2zenski F5predmestje F5manjse mesto

-3264379964 -1607824506 829629531

F5vas F5kmetija F7centGndrZenski

-701999244 -002074509 -563564466

gt yNap lt- X b

gt e lt- y - yNap

gt nlt-dim(X)[1]

gt klt-length(b)

180 33 Linearna regresija

gt sErrlt-sqrt(sum(e^2)(n-k))

gt sErr

[1] 1015947

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$sigma

[1] 1015947

gt R2=var(yNap)var(y)

gt R2

[1]

[1] 03207477

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$rsquared

[1] 03207477

gt R2poplt-1-sErr^2var(y)

gt R2pop

[1] 03028137

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$adjrsquared

[1] 03028137

gt F=(R2(k-1))((1-R2)(n-k))

gt F

[1]

[1] 1788484

gt (df1lt-k-1)

[1] 8

gt (df2lt-n-k)

[1] 303

gt pf(q=Fdf1=df1df2=df2lowertail =FALSE)

[1]

[1] 7405752e-22

gt cat(captureoutput(summary(fitG91_F7F21O1F2F5int2))[27]n)

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

gt p-vrednosti se malce razlikujeta a sta obe prakticno 0

gt verjetno gre za vprasanje racunske natancnosti

Izracunajmo se variancno-kovariancno matriko za ocene regresijskih koeficientov iniz nje se standardne napake za ocene regresijskih koeficientov Na podlagi variancno-kovariancne matrike lahko izracunamo se korelacijsko matriko ocen regresijskih ko-eficientov (za ocenjevanje multikolinearnosti)

Sb = s2e middot XprimeXminus1

se(bi) =radicSb[i i]

w = diag

(1radic

diag(Sb)

)

3 poglavje ndash Analiza variance in linearna regresija 181

Cb = w middot Sb middot w

Na podlagi ocen standardnih napak pa lahko izracunamo t-statistike kot t = bise(bi))

gt Sblt-sErr^2solve(t(X) X)

gt Sb

konstanta F7 F21

konstanta 2151921149 -10883837598 -938010552

F7 -108838376 840745537 003971066

F21 -9380106 003971066 022726613

O1F2Zenski -95163435 071978854 038619681

F5Predmestje -395835418 228029391 010262743

F5Manjse mesto -289613230 -252450622 -106289703

F5Vas -360299394 423246067 -143584413

F5Kmetija -575035961 1720043074 -073922389

F7centGndrZenski 104849908 -823715261 -012557392

O1F2Zenski F5Predmestje F5Manjse mesto

konstanta -951634352 -3958354175 -289613230

F7 07197885 22802939 -2524506

F21 03861968 01026274 -1062897

O1F2Zenski 1385811962 90741196 3802999

F5Predmestje 90741196 6040986074 357508039

F5Manjse mesto 38029995 3575080389 509585361

F5Vas 13810615 3591427268 366193057

F5Kmetija 423857670 3664741109 363085097

F7centGndrZenski -13605987 05596501 8301651

F5Vas F5Kmetija F7centGndrZenski

konstanta -360299394 -5750359613 1048499077

F7 4232461 172004307 -82371526

F21 -1435844 -07392239 -01255739

O1F2Zenski 1381062 423857670 -13605987

F5Predmestje 359142727 3664741109 05596501

F5Manjse mesto 366193057 3630850975 83016508

F5Vas 448811895 3779859757 21067811

F5Kmetija 377985976 7208876587 -84195178

F7centGndrZenski 2106781 -84195178 147728263

gt kar je enako kot

gt vcov(fitG91_F7F21O1F2F5int2)

gt max(abs(Sb-vcov(fitG91_F7F21O1F2F5int2)))

[1] 1364242e-12

gt seblt-sqrt(diag(Sb))

gt seb

182 33 Linearna regresija

konstanta F7 F21

463888041 28995612 04767244

O1F2Zenski F5Predmestje F5Manjse mesto

117720515 245784175 225739974

F5Vas F5Kmetija F7centGndrZenski

211851810 268493512 38435435

gt enakost z izracunom s funkcijo lm bomo preverili kasneje

gt

gt wlt-diag(1seb)

gt Cblt-w Sb w

gt kar je enako kot

gt cov2cor(vcov(fitG91_F7F21O1F2F5int2))

gt max(abs(Cb-cov2cor(vcov(fitG91_F7F21O1F2F5int2))))

[1] 144329e-15

gt t-statistika

gt tblt-bseb

gt pblt-2pt(-abs(tb)df=n-k)

gt tabela

gt cbind(b=asvector(b)Std napaka=asvector(seb)

t=asvector(tb)p-vrednost=asvector(pb))

b Std napaka t p-vrednost

[1] -5052516310 463888041 -10891671826 2769457e-01

[2] 2455524459 28995612 84686070004 1087724e-15

[3] -020132728 04767244 -04223137835 6730955e-01

[4] -3264379964 117720515 -27729915791 5898550e-03

[5] -1607824506 245784175 -06541611171 5135042e-01

[6] 829629531 225739974 03675155600 7134911e-01

[7] -701999244 211851810 -03313633444 7405991e-01

[8] -002074509 268493512 -00007726479 9993840e-01

[9] -563564466 38435435 -14662627672 1436137e-01

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$coef

Estimate Std Error t value

(Intercept) -5052516310 463888041 -10891671826

F7 2455524459 28995612 84686070004

F21 -020132728 04767244 -04223137835

O1F2zenski -3264379964 117720515 -27729915791

F5predmestje -1607824506 245784175 -06541611171

F5manjse mesto 829629531 225739974 03675155600

F5vas -701999244 211851810 -03313633444

F5kmetija -002074509 268493512 -00007726479

F7centGndrZenski -563564466 38435435 -14662627672

Pr(gt|t|)

3 poglavje ndash Analiza variance in linearna regresija 183

(Intercept) 2769457e-01

F7 1087724e-15

F21 6730955e-01

O1F2zenski 5898550e-03

F5predmestje 5135042e-01

F5manjse mesto 7134911e-01

F5vas 7405991e-01

F5kmetija 9993840e-01

F7centGndrZenski 1436137e-01

Seveda bi se na tak nacin dalo izracunati se marsikaj a bomo tu zakljucili

34 Viri za poglabljanje znanja

Za poglabljanje snovi iz tega poglavja so uporabni tudi spletni viri navedeni vpodpodpoglavju 191 (Spletni viri) a jih tu posebej ne navajam Tu izpostavljamsamo enega s pomocjo katerega je mogoce zelo enostavno in hitro najti ustrezneukaze za izvedbo zelenih analiz

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

Za poglabljanje znanja iz analize variance in linearne regresije je primerna vecinaucbenikov s teh podrocij na primer

bull Fox John 2008 Applied regression analysis and generalized linear modelsLos Angeles Sage

bull Kosmelj Blazenka 2005 Analiza odvisnosti za vzorcne podatke LjubljanaEkonomska fakultetaSlovenski ucbenik ki ga uporabljajo na Ekonomski fakulteti Univerze v Lju-bljani

bull Iversen Gudmund R in Helmut Norpoth 2002 Analysis of variance NewburyPark London New Delhi Sage

Vsebina tega poglavja je tudi vsaj deloma pokrita v nekaterih ucbenikih omenjenihv prejsnjem poglavju

Izvedbo analize variance in linearne regresije v R-ju pa pokrivajo sledeci ucbeniki

184 35 Vprasanja za ponavljanje

bull Faraway Julian James 2005 Linear models with R Boca Raton Chapmanamp HallCRC24

Najbolj priporocam prav ta vir

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer25

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer26

Se posebej primerna za tiste ki ze poznajo SPSS ali SAS sicer pa zelo zgoscenaobravnava

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC27

V bolj omejenem obsegu

35 Vprasanja za ponavljanje

1 Katere so predpostavke klasicne enofaktorske analize variance in kako jih pre-verjamo

2 Analizo variance lahko izvedemo z vec funkcijami Katerimi Kaksne so razlikemed njimi oziroma katere so prednosti in slabosti posameznih funkcij

3 Ali je vrstni red faktorjev pri vecfaktorski analizi variance pomemben Poja-snite

4 V kaksni obliki morajo biti podatki ce zelimo (s funkcijo aov) izvesti enofak-torsko analizo variance za odvisne vzorce

5 Ali lahko ce na nekem podatkovju z manjkajocimi podatki veckrat zazenemolinearno regresijo z razlicnimi neodvisnimi spremenljivkami pricakujemo daso vse analize izvedene na istih enotah

6 Kako v linearno regresijo s funkcijo lm vkljucimo nominalne spremenljivkeAli jih moramo predhodno kaj transformirati Na kaj moramo biti pri vklju-cevanju pozorni

7 Kako lahko s funkcijami za linearno regresijo vsaj priblizno ocenimo tudi ne-linearne zveze Kaksne so pomanjkljivosti tega pristopa

8 Kako (s katero funkcijo in kaj uporabimo kot argument) narisemo standardnegrafe za diagnostiko oziroma preverjanje predpostavk linearne regresije

24Starejsa in manj obsezna razlicica knjige je prostodostopna tudi na httpcranr-project

orgdoccontribFaraway-PRApdf25Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani26Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani27Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf

3 poglavje ndash Analiza variance in linearna regresija 185

9 Kako preverimo ali neka nominalna spremenljivka z vec kot dvema razlic-nima vrednostma vpliva na odvisno spremenljivko ce izlocimo vplive ostalihneodvisnih spremenljivk

10 Ali lahko na podlagi standardnega izpisa ene analize ugotavljamo ali so pov-precne vrednosti katerihkoli dveh kategorij nominalne spremenljivke statisticnoznacilno razlicne (pri izbrani stopnji tveganja) ob enakih vrednostih ostalih ne-odvisnih spremenljivk

11 Kako v formuli (argumentu funkcije lm) oznacimo da zelimo vkljuciti inte-rakcijo

12 Navedite vsaj en nacin ocenjevanja multikolinearnosti ki pove tudi pri katerihspremenljivkah se multikolinearnost pojavlja

13 Kaj nam povedo grafikoni delnih ostankov (oziroma component + residualplot) oziroma za kaksen namen jih uporabljamo

187

4 poglavje

Za konec

V tem ucbeniku je precej natancno predstavljena uporaba R-ja tako za opravljanjesplosnih opravil ki se uporabljajo pri vecini analiz (priprava podatkov risanje gra-fov) kot tudi za izvedbo univariatnih in bivariatnih statisticnih analiz ter multipleregresije Sama statisticna teorija je obravnavana le toliko kolikor se mi je zdelonujno potrebno

Ucbenik je sicer prvenstveno namenjen tistim ki ze poznajo osnove statistike radipa bi se naucili le-to izvajati s pomocjo R-ja Poleg tega pa je namenjen tudi vsemki bi radi le spoznali osnovno delovanje R-ja ne glede na to na katerem podrocjuga nameravajo uporabljati Za te je predvsem koristno prvo najsplosnejse in tudinajobseznejse poglavje Naj ucbenik zakljucim s pregledom nekaterih podrocij kjerse R lahko uporablja ter navedbo nekaterih virov za uporabo R-ja na teh podrocjih

Multivariatna analiza je obicajno naslednja stopnja pri ucenju statistike ki sledispoznavanju multiple regresije 28 Kot ze samo ime pove gre pri multivaria-tni analizi predvsem za socasno obravnavo vec spremenljivk Najbolj znanemetode multivariatne analize so razvrscanje v skupine metoda glavnih kom-ponent in faktorska analiza Nekatere metode multivariatne analize so pred-stavljene tudi v Uvodnem primeru Tukaj navajam par relevantnih ucbenikov

bull Everitt Brian 2005 An R and S-PLUS companion to multivariate ana-lysis London Springer

bull Everitt Brian in Torsten Hothorn 2011 An introduction to applied mul-tivariate analysis with R New York Springer

Podatkovno rudarjenje je ime za metode katerih glavni cilj je odkrivanje upo-rabnega veljavnega nepricakovanega in razumljivega znanja iz podatkov Po-gosto se uporablja na ogromnih podatkih pogosto ne-strukturiranih in prido-bljenih iz razlicnih virov Kljub navidezno velikim razlikam se v veliki meri

28Multipla regresija pravzaprav ze sodi v podrocje Multivariatne analize

188

prekriva s statistiko se bolj pa s podrocjem strojnega ucenja (nekateri sma-trajo celo da sta to le dve razlicni imeni za isto podrocje) zato ti podrocjiomenjam skupaj Nekaj ucbenikov ki obravnavajo podatkovno rudarjenje alistrojno ucenje v R-ju

bull Williams Graham J 2011 Data mining with Rattle and R the art ofexcavating data for knowledge discovery New York SpringerTo se posebej priporocam za zacetnike

bull Zhao Yanchang in Yonghua Cen 2013 Data Mining Applications withR 1 izdaja Amsterdam Boston Academic Press

bull Zhao Yanchang 2012 R and Data Mining Examples and Case Studies1 izdaja Amsterdam Academic Press

bull Lantz Brett 2013 Machine Learning with R Packt Publishing

Metode ponovnega vzorcenja so metode ki na podlagi ponovnega vzorcenjaomogocajo preverjanje domnev ali izracun intervalov v primerih ko se spre-menljivke ne porazdeljujejo (niti priblizno) normalno kar obicajno predvide-vajo klasicne metode Spodaj navajam tri ucbenike Phillipa Gooda ki po-krivajo uporabo metod ponovnega vzorcenja se posebej v R-ju na razlicnihnivojih

bull Good Phillip I 2011 Practitioners Guide to Resampling for Data Ana-lysis Data Mining and Modeling Zany BooksZraven je koda tako za R kot za Stato

bull mdashmdashmdash 2012 Introduction to Statistics Through Resampling Methods andR 2 izdaja WileySe posebej primeren za zacetnike in zelo vezan na R

bull mdashmdashmdash 2013 Resampling Methods 3 izdaja BirkhauserR je le eden od obravnavanih programskih jezikovpaketov

Statisticna analiza financnih podatkov je tudi podrocje kjer se pogosto upo-rablja R Kot samo ime pove gre za uporabo statistike in financne matema-tike za analizo financnih podatkov za (med drugim) upravljanje s tveganjinapovedovanje vrednosti financnih kazalnikov upravljanje portfelja Nekajucbenikov ki obravnavajo uporabo R-ja na tem podrocju

bull Carmona Rene 2013 Statistical Analysis of Financial Data in R 2izdaja Springer New York

bull Daroczi Gergely Edina Berlinger Peter Csoka Daniel Havran MartonMichaletzky Zsolt Tulassay Kata Varadi in Agnes Vidovics-Dancs 2013Introduction to R for Quantitative Finance Packt Publishing

bull Arratia Argimiro 2014 Computational Finance An Introductory Coursewith R Atlantis Press

4 poglavje ndash Za konec 189

Biostatistika se ukvarja s statisticno analizo na podrocju biologije medicine in so-rodnih ved Ukvarja se na primer z ugotavljanjem vplivov razlicnih dejavnikovna rast in razvoj rastlin in zivali ter na njihove lastnosti vplivom zdravil innacinov zdravljenja na potek bolezni in se bi lahko nastevali Na tem podrocjusta R njemu soroden S-PLUS med najpogosteje uporabljenimi programskimipaketi Nekaj knjig ki obravnavajo metode s tega podrocja v R-ju

bull Brostrom Goran 2012 Event History Analysis with R Boca RatonCRC Press

bull MacFarland Thomas W 2013 Introduction to Data Analysis and Graphi-cal Presentation in Biostatistics with R 1 izdaja Springer InternationalPublishing

bull Shahbaba Babak 2011 Biostatistics with R 1 izdaja New York Sprin-ger

Analiza ogromnih podatkov in spleta postaja vse bolj pomembno podrocje rdquoBigdatardquo (oz ogromni podatki) je tako imenovani rdquobuzzwordrdquo ki pridobiva na po-menu Gre za analizo podatkov ki jih ne moremo shraniti v delovni spominracunalnika zato so za analizo potrebni posebni pristopi Pogosto se podatkipridobijo neposredno na svetovnem spletu Tudi sicer narasca zanimanje zaanalizo podatkov ki so dostopni na spletu se posebej na socialnih omrez-jih Tudi za ta namen se lahko uporabi R Po eno delo z vsakega podrocja vpovezavi z R-jem navajam spodaj

bull Danneman Nathan in Richard Heimann 2014 Social Media Mining withR Packt Publishing

bull Prajapati Vignesh 2013 Big Data Analytics with R and Hadoop PacktPublishing

To seveda niso vsa podrocja kjer se Ruporablja vendar pa se iz navedenega vidi daje R res uporaben na zelo razlicnih podrocjih lahko bi rekli da je uporaben povsodkjer se uporablja analiza podatkov Ucenje R-ja je torej koristno za vsakega ki senamerava resno ukvarjati z analizo podatkov ne glede na sicersnje podrocje delaUpam da bo pricujoc ucbenik v pomoc vsaj pri zacetnem spoznavanju tega resrdquomocnegardquo programskega okolja

191

Literatura

Arratia Argimiro 2014 Computational Finance An Introductory Course with RAtlantis Press

Brostrom Goran 2012 Event History Analysis with R Boca Raton CRC Press

Buuren Stef in Karin Groothuis-Oudshoorn 2011 MICE Multivariate imputationby chained equations in R Journal of Statistical Software 45 (3) URL http

docutwentenl78938

Buuren Stef van 2012 Flexible imputation of missing data Boca Raton FL CRCPress

Carmona Rene 2013 Statistical Analysis of Financial Data in R 2 izdaja SpringerNew York

Dalgaard Peter 2002 Introductory statistics with R New York Springer

Danneman Nathan in Richard Heimann 2014 Social Media Mining with R PacktPublishing

Daroczi Gergely Edina Berlinger Peter Csoka Daniel Havran Marton MichaletzkyZsolt Tulassay Kata Varadi in Agnes Vidovics-Dancs 2013 Introduction to Rfor Quantitative Finance Packt Publishing

Everitt Brian 2005 An R and S-PLUS companion to multivariate analysis LondonSpringer

Everitt Brian in Torsten Hothorn 2011 An introduction to applied multivariateanalysis with R New York Springer

Faraway Julian James 2005 Linear models with R Boca Raton Chapman ampHallCRC

mdashmdashmdash 2006 Extending the linear model with R generalized linear mixed effectsand nonparametric regression models Boca Raton Chapman amp HallCRC

Ferligoj Anuska 1994 Osnove statistike na prosojnicah Ljubljana samozalozbaZenel Batagelj

192 Literatura

Ferligoj Anuska Tina Kogovsek Willem E Saris Germa Coenders in ValentinaHlebec 2000 Kakovost merjenja egocentricnih socialnih omrezij [datoteka po-datkov] Ljubljana Univerza v Ljubljani Fakulteta za druzbene vede Centerza metodologijo in informatiko [izdelava] 2000 Slovenija Ljubljana Univerza vLjubljani Arhiv druzboslovnih podatkov [distribucija] 2012

Fox John 2008 Applied regression analysis and generalized linear models LosAngeles Sage

Gandrud Christopher 2013 Reproducible research with R and RStudio BocaRaton Chapman amp HallCRC

Gelman Andrew in Jennifer Hill 2006 Data Analysis Using Regression and Multi-levelHierarchical Models Cambridge New York Cambridge University Press

Good Phillip I 2011 Practitioners Guide to Resampling for Data Analysis DataMining and Modeling Zany Books

mdashmdashmdash 2012 Introduction to Statistics Through Resampling Methods and R 2izdaja Wiley

mdashmdashmdash 2013 Resampling Methods 3 izdaja Birkhauser

Holm Sture 1979 A Simple Sequentially Rejective Multiple Test Procedure Scandi-navian Journal of Statistics 6 (2) 65ndash70 URL httpwwwjstororgstable

4615733

IBM 2011 Sum of Squares (IBM SPSS help) URL httppicdheibmcom

infocenterspssstatv20r0m0topiccomibmibmcomdocbannerhtm

Iversen Gudmund R in Helmut Norpoth 2002 Analysis of variance NewburyPark London New Delhi Sage

Jesenko Joze in Manca Jesenko 2007 Multivariatne statisticne metode KranjModerna organizacija

Johnson Richard A in Dean W Wichern 2007 Applied multivariate statisticalanalysis Upper Saddle River Pearson Prentice Hall Pearson Education Interna-tional

Kastelec Damijana in Katarina Kosmelj 2009 Statisticna analiza po-datkov s programoma Excel 2003 in R Ljubljana Biotehniska fa-kulteta URL httpwwwbfuni-ljsifileadmingroups2763C5

A1tudijsko_gradivoSAP_2003pdf

Kosmelj Blazenka 2005 Analiza odvisnosti za vzorcne podatke Ljubljana Eko-nomska fakulteta

Kosmelj Blazenka in Joze Rovan 2007 Statisticno sklepanje Ljubljana Ekonomskafakulteta

Literatura 193

Lantz Brett 2013 Machine Learning with R Packt Publishing

Leisch Friedrich 2002 Sweave Dynamic Generation of Statistical Reports UsingLiterate Data Analysis V Compstat ur Professor Dr Wolfgang Hardle in Profes-sor Dr Bernd Ronz 575ndash580 Physica-Verlag HD URL httplinkspringer

comchapter101007978-3-642-57489-4_89 DOI 101007978-3-642-57489-4 89

Levin Jack James Alan Fox in David R Forde 2013 Elementary Statistics inSocial Research (12th Edition) Pearson

MacFarland Thomas W 2013 Introduction to Data Analysis and Graphical Pre-sentation in Biostatistics with R 1 izdaja Springer International Publishing

Matloff Norman 2011 The Art of R Programming A Tour of Statistical SoftwareDesign San Francisco No Starch Press

Minium Edward W Robert C Clarke in Theodore Coladarci 1999 Elements ofstatistical reasoning New York Wiley

Muenchen Robert A 2011 R for SAS and SPSS users New York Springer

Murrell Paul 2011 R graphics Boca Raton CRC Press

Prajapati Vignesh 2013 Big Data Analytics with R and Hadoop Packt Publishing

Rubin Donald B 1987 Multiple imputation for nonresponse in surveys New YorkWiley

mdashmdashmdash 1996 Multiple Imputation After 18+ Years Journal of the AmericanStatistical Association 91 (434) 473ndash489 doi 1023072291635 URL http

wwwjstororgstable2291635

Shahbaba Babak 2011 Biostatistics with R 1 izdaja New York Springer

Snijders Tom A B in Roel J Bosker 2012 Multilevel analysis an introduction tobasic and advanced multilevel modeling Los Angeles Sage

Tabachnick Barbara G in Linda S Fidell 2007 Using multivariate statisticsBoston PearsonAllyn amp Bacon

Tos Niko Brina Malnar in skupina 2004 Slovensko javno mnenje 20042 Evropskadruzboslovna raziskava [datoteka podatkov] Slovenija Ljubljana Fakulteta zadruzbene vede Center za raziskovanje javnega mnenja in mnozicnih komunikacij[izdelava] 2004 Slovenija Ljubljana Univerza v Ljubljani Arhiv druzboslovnihpodatkov [distribucija] 2009

Venables William N in Brian D Ripley 2000 S programming New York Springer

Verzani John 2005 Using R for introductory statistics Boca Raton Chapman ampHallCRC

194 Literatura

Welch B L 1951 On the Comparison of Several Mean Values An AlternativeApproach Biometrika 38 (34) 330ndash336 doi 1023072332579 URL http

wwwjstororgstable2332579

Wickham Hadley 2009 ggplot2 Elegant Graphics for Data Analysis DordrechtNew York Springer URL httppubliceblibcomEBLPublicPublicView

doptiID=511468

Wilkinson Leland in Graham Wills 2005 The grammar of graphics New YorkSpringer

Williams Graham J 2011 Data mining with Rattle and R the art of excavatingdata for knowledge discovery New York Springer

Wonnacott Thomas H in Ronald J Wonnacott 1990 Introductory statistics NewYork Wiley

Wooldridge Jeffrey M 2002 Econometric analysis of cross section and panel dataCambridge Massachusetts MIT Press

Xie Yihui 2013 Dynamic report generation with r and knitr Boca Raton Cha-pman amp Hall Crc

Zhao Yanchang 2012 R and Data Mining Examples and Case Studies 1 izdajaAmsterdam Academic Press

Zhao Yanchang in Yonghua Cen 2013 Data Mining Applications with R 1 izdajaAmsterdam Boston Academic Press

Zuur Alain F Elena N Ieno in Erik HWG Meesters 2009 A Beginnerrsquos Guideto R New York Springer

  • Predgovor
  • Kazalo
  • Slike
  • Tabele
  • Uvod v R
    • Uvodni primer
    • Osnovne informacije
      • Osnovne racunske operacije
      • Spremenljivke
      • Uporaba funkcij in pomoci
      • Paketki
      • Drugi osnovni podatki
        • Podatkovne strukture
          • Osnovni podatkovni tipi
          • Vektor
          • Nominalne in ordinalne spremenljivke
          • Seznam
          • Matrika
          • Polje ndash Array
          • Podatkovni okvir ndash Data frame
          • Vaje
            • Funkcije in programiranje
              • Nekaj koristnih funkcij
              • Definiranje funkcij
              • Programski tok
              • Vaje
                • Delo z datotekami
                  • Tekstovne datoteke
                  • Shranjevanje in branje objektov
                  • Branje in pisanje datotek drugih programov
                  • Vaje
                    • Risanje
                      • Visokonivojske funkcije za risanje
                      • Nizkonivojske funkcije za risanje
                      • Shranjevanje slik
                      • Vaje
                        • Priprava dokumentov z rezultati iz R-ja
                        • Rešitve vaj
                          • Podatkovne strukture
                          • Funkcije in programiranje
                          • Risanje
                            • Viri za poglabljanje znanja
                              • Spletni viri
                              • Knjižni viri
                                • Vprašanja za ponavljanje
                                  • Univariatna in bivariatna statistika
                                    • Uporabljeni podatki
                                    • Osnovne statistike
                                    • Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja
                                      • Preverjanje domneve o srednji vrednosti in pripadajoci interval zaupanja
                                      • Preverjanje domneve o razliki med srednjima vrednostma na odvisnih vzorcih in pripadajoci interval zaupanja
                                      • Preverjanje domneve o razliki med srednjima vrednostma na neodvisnih vzorcih in pripadajoci interval zaupanja
                                        • Preverjanje domnev o deležih in pripadajoci intervali zaupanja
                                          • Preverjanje domneve o vrednosti deleža in pripadajoci interval zaupanja
                                          • Preverjanje domnev o razliki med deležema na neodvisnih vzorcih in pripadajoci intervali zaupanja
                                            • Frekvencne in kontingencne tabele
                                              • Frekvencne tabele
                                              • Kontingencne tabele
                                              • Povezanost spremenljivk
                                                • Korelacija
                                                • Viri za poglabljanje znanja
                                                • Vprašanja za ponavljanje
                                                  • Analiza variance in linearna regresija
                                                    • Uporabljeni podatki
                                                    • Analiza variance (ANOVA)
                                                      • Enofaktorska analiza variance za neodvisne vzorce
                                                      • Vecfaktorska analiza variance za neodvisne vzorce
                                                      • Enofaktorska analiza variance za odvisne vzorce
                                                        • Linearna regresija
                                                          • Dodatne spremenljivke
                                                          • Bivariatna regresija
                                                          • Nelinearna regresija
                                                          • Multipla regresija
                                                          • Vkljucevanje nominalnihordinalnih spremenljivk
                                                          • Interakcije med spremenljivkami
                                                          • Preverjanje predpostavk
                                                          • V razmislek
                                                          • Izracun na roke
                                                            • Viri za poglabljanje znanja
                                                            • Vprašanja za ponavljanje
                                                              • Za konec
                                                              • Literatura
Page 4: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji

Moji druzini

Zeni Tamari za ljubezen in podporo

Hcerkam Hani Zivi in Zoji ker so svojo otrosko igrivostjo

moji soncki

i

Predgovor

Pricujoci ucbenik je namenjen studentom ki ze poznajo osnove univariatne in bi-variatne statistike ter multiple regresije in se zelijo nauciti omenjene metode upo-rabljati v programskem paketu R ali pa zelijo predvsem spoznati osnove uporabestatisticnega programskega paketa R V ucbeniku je torej precej natancno pred-stavljena uporaba R-ja tako za opravljanje splosnih opravil ki se uporabljajo privecini analiz (priprava podatkov risanje grafov) kot tudi za izvedbo univariatnihin bivariatnih statisticnih analiz ter multiple regresije sama statisticna teorija pa jeobravnavana le toliko kolikor se mi je zdelo glede na predznanje studentov (vec otem v naslednjem odstavku) nujno potrebno

V prvi vrsti je ucbenik namenjen studentom predmetov Statistika in analiza podat-kov na magistrskem programu Druzboslovna informatika na Fakulteti za druzbenevede (v nadaljevanju FDV) Univerze v Ljubljani (v nadaljevanju UL) Tehnicni ininformacijski sistemi na dodiplomskem programu Druzboslovna informatika na FDVUL in Multivariatna analiza na magistrskem programu Uporabna statistika na UL(medfakultetni program) njegova uporaba pa se nacrtuje tudi pri predmetu Osnovestatisticne obdelave s pomocjo informacijske tehnologije na Fakulteti za socialnodelo UL Tako ucbenik predvideva znanje opisne statistike in statisticnega sklepanjas podrocij univariatne in bivariatne statistike ter multivariatne regresije v obsegukot se obravnava pri predmetih Statistika in Statistika II z racunalnisko analizo po-datkov na FDV UL Obravnavane metode zato niso sirse predstavljene razen namestih kjer potrebno predznanje presega tisto kara so studenti obravnavali pri prejomenjenih predmetih (predvsem pri neparametricnih testih)

Ucbenik predvsem njegovo prvo najobseznejse poglavje je namenjen tudi vsem kibi radi spoznali R ne glede na to na katerem podrocju ga bodo kasneje uporabljaliR se namrec lahko uporablja na mnogo podrocjhi od ze omenjene osnovne stati-sticne analize do multivariatne analize biostatistike statisticne analize financnihpodatkov podatkovnega rudarjenja strojnega ucenja racunalniske analize besedilavtomatskega zajema podatkov s spleta

R (httpwwwr-projectorg) je odprtokodno programsko okolje za statisticneanalize R ima kar nekaj lastnosti ki ga naredijo zelo privlacnega

bull je brezplacen

ii Predgovor

bull podpira vecino statisticnih metod (preko paketkov)

bull se veliko uporablja v raziskovanju (instituti univerze )

bull deluje na vecini operacijskih sistemov (Windows Mac OSOS X Linux )

bull omogoca programiranje

bull je zelo primeren za simulacije in generiranje slucajnih spremenljivk

Medtem ko vecina studentov ceni predvsem prvo izmed nastetih lastnosti (brezplac-nost) pa je njegov razcvet v veliki meri povezan s preostalimi

Predvsem za zacetnike pa ima R tudi nekaj slabosti Glavna slabost je da v osnovnirazlicici nima graficnega vmesnika (vsaj ne v klasicnem smislu kjer bi preko meni-jev in oken zahtevali izvedbo analiz) zato vsaj na zacetku ucenje poteka pocasnejekot pri programih z graficnim vmesnikom (na primer SPSS PSPP Stata ) Tuje sicer treba omeniti da obstaja tudi nekaj graficnih vmesnikov za R med ka-terimi bi izpostavil predvsem Rcommander (httpwwwrcommandercom) sajje najobseznejsi in omogoca izvajanje najvecjega nabora analiz se posebej s po-mocjo velikega stevila paketkov ki razsirjajo njegovo funkcionalnost Tega vme-snika kot receno v tem ucbeniku ne obravnavam je pa vsaj za osnovno stati-sticno analizo ta opisan v ucbeniku Kastelec Damijana in Katarina Kosmelj 2009Statisticna analiza podatkov s programoma Excel 2003 in R Ljubljana Bioteh-niska fakulteta URL httpwwwbfuni-ljsifileadmingroups2763C5

A1tudijsko_gradivoSAP_2003pdf

V ucbeniku se omejim na uporabo preko ukazne vrstice Glavni razlog za to je dalahko le s tako uporabo izkoristimo vse prednosti R-ja taka uporaba pa je tudi nujnamed drugim za analize meri simulacije avtomatsko izdelavo porocil ter mnogo dru-gih opravil

Ucbenik je razdeljen na tri osnovna poglavja Prvo je Uvod v R in je namenjenospoznavanju R-ja Zacne se z uvodnim primerom statisticnih analiz nadaljuje pase z razmeroma sistematicnim pregledom podrocij ki so pomembna za uporabotega programskega okolja Podrocja vsebujejo tako osnovne podatkovne strukturein osnove programiranja kot tudi delo z datotekami risanje in pripravo porocil napodlagi opravljenih analiz Pravzaprav to poglavje vsebuje tiste rdquonestatisticnerdquo vse-bine ki so potrebne za osnovno uporabo R-ja Poznavanje vecine izmed teh vsebin(z izjemo programiranja v R-ju ndash podpodpoglavji 142 in 143) je kljucno za ucin-kovito izvajanje in porocanje o takorekoc vseh statisticnih analizah in torej tudi zarazumevanje preostalih dveh poglavij Pri tem se prvo poglavje v veliki meri lahkobere rdquopo potrebirdquo se pravi kot prirocnik kjer se prebere doloceno poglavje ko sepokaze potreba po posameznih znanjih Z vidika uporabe R-ja je to pravzapravnajzahtevnejse poglavje zato vsebuje tudi vrsto vaj z resitvami (resitve so na koncupoglavja)

Predgovor iii

Drugo poglavje je vsebinsko najsirse saj v njem obravnavamo kar veliko tako univari-atnih kot bivariatnih metod Pod bivariatne metode sicer spadata tudi enofaktorskaanaliza variance in bivariatna regresija vendar pa ju skupaj z njunima multivari-atnima razlicicama obravnavamo loceno v naslednjem poglavju V tem poglavjuobravnavamo tako osnovne opisne statistike kot tudi inferencno statistiko Znotrajinferencne statistike obravnavamo pri srednjih vrednostih tako izracune intervalovzaupanja kot preverjanje domnev pri bivariatni povezanosti pa le preverjanje do-mnev Pri vecini metod in statistik predstavljena le uporaba v R-ju in podaniprimeri izjema so neparametricni testi kjer so obravnavane metode tudi teoreticnopredstavljene

V tretjem poglavju sta predstavljeni analiza variance in linearna regresija Pri obehzacnemo z najenostavnejsim (bivariatnim) primerom nato pa dodajamo dodatneelemente (vec neodvisnih spremenljivk interakcije med ucinki ) Pri analizi variancpredstavimo tudi njeno neparametericno razlicico Pri obeh metodah je posebnapozornost namenjena tudi preverjanju predpostavk obeh metod

Vsako od treh glavnih poglavji se zakljuci z viri za poglabljanje in vprasanji zaponavljanje Na koncu ucbenika sledi se sklepno poglavje v katerem povzamemokaj vse je bilo v ucbeniku obdelano Nekaj podpoglavij vsebuje tudi zahtevnejsosnov ki za enostavno uporabo ni potrebna Naslovi takih podpoglavij so oznaceniz zvezdico ()

Velik del ucbenika predstavlja tudi prikaz dela v R-ju s pomocjo izpisov iz rdquokonzolerdquooziroma ukazne vrstice Izpisi iz ukazne vrstice so vizualno loceni z zaobljenimiokvirji s sivim ozadjem in z uporabo drugacne pisave in sicer posevne pisave

s fiksno sirino crk (Curier)1 za ukaze in obicajne pisave s fiksno sirino

crk za izpise Vsaka vrstica kjer nastopa ukaz se zacne z znakom gt Ukaz se lahkonadaljuje cez vec vrstic V tem primeru se naslednja vrstica zacne z dvema presled-koma Vrstice ki se ne zacnejo z znakom gt in niso nadaljevanje ukaza iz prejsnjevrstice vsebujejo izpise R-jevih funkcij V R-ju je komentar vse kar sledi znaku pojavlja pa se lahko na zacetku vrstice ali kasneje Vsa R-jeva koda uporabljena vtem ucbeniku je na voljo na spletnem naslovu www2arnessi~aziber4R

Primer izpisa iz R-ja s komentarjem je videti takole

gt 2 + 1 tole je ukaz za sestevanje dveh stevil

[1] 3

V ucbeniku uporabljam se dve posebni graficni obliki Prva je opozorilo

1 Enaka pisava se sicer uporablja tudi znotraj besedila za R-jevo kodo

iv Predgovor

Opozorilo

V opozorilih opozarjam na se posebej pomembne stvari katerih neupostevanjelahko vodi do resnih in pogosto nepricakovanih posledic

Druga oblika so dodatna pojasnila

Dodatna pojasnila so pojasnila ki jih lahko vecina bralcev brez hujsih posledic izpustivseeno pa lahko pripomorejo k boljsem razumevanju snovi

Pri pripravi ucbenika je bil uporabljen R razlicice 322 Razlicico R-ja lahko pre-verite med drugim z izpisom spremenljivke Rversionstring

gt Rversionstring

[1] R version 322 (2015-08-14)

v

Kazalo

Predgovor i

Kazalo v

Slike viii

Tabele x

1 Uvod v R 111 Uvodni primer 112 Osnovne informacije 14

121 Osnovne racunske operacije 14122 Spremenljivke 15123 Uporaba funkcij in pomoci 16124 Paketki 18125 Drugi osnovni podatki 19

13 Podatkovne strukture 20131 Osnovni podatkovni tipi 20132 Vektor 22133 Nominalne in ordinalne spremenljivke 26134 Seznam 27135 Matrika 30136 Polje ndash Array 35137 Podatkovni okvir ndash Data frame 35138 Vaje 38

14 Funkcije in programiranje 38141 Nekaj koristnih funkcij 39142 Definiranje funkcij 43143 Programski tok 44144 Vaje 47

15 Delo z datotekami 47151 Tekstovne datoteke 48152 Shranjevanje in branje objektov 50153 Branje in pisanje datotek drugih programov 51

vi Kazalo

154 Vaje 5516 Risanje 56

161 Visokonivojske funkcije za risanje 56162 Nizkonivojske funkcije za risanje 58163 Shranjevanje slik 60164 Vaje 62

17 Priprava dokumentov z rezultati iz R-ja 6318 Resitve vaj 66

181 Podatkovne strukture 66182 Funkcije in programiranje 67183 Risanje 70

19 Viri za poglabljanje znanja 71191 Spletni viri 71192 Knjizni viri 73

110 Vprasanja za ponavljanje 75

2 Univariatna in bivariatna statistika 7721 Uporabljeni podatki 7722 Osnovne statistike 7823 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali za-

upanja 86231 Preverjanje domneve o srednji vrednosti in pripadajoci inter-

val zaupanja 88232 Preverjanje domneve o razliki med srednjima vrednostma na

odvisnih vzorcih in pripadajoci interval zaupanja 91233 Preverjanje domneve o razliki med srednjima vrednostma na

neodvisnih vzorcih in pripadajoci interval zaupanja 9524 Preverjanje domnev o delezih in pripadajoci intervali zaupanja 98

241 Preverjanje domneve o vrednosti deleza in pripadajoci intervalzaupanja 99

242 Preverjanje domnev o razliki med delezema na neodvisnihvzorcih in pripadajoci intervali zaupanja 101

25 Frekvencne in kontingencne tabele 103251 Frekvencne tabele 103252 Kontingencne tabele 105253 Povezanost spremenljivk 109

26 Korelacija 11227 Viri za poglabljanje znanja 11828 Vprasanja za ponavljanje 119

3 Analiza variance in linearna regresija 12131 Uporabljeni podatki 12132 Analiza variance (ANOVA) 122

321 Enofaktorska analiza variance za neodvisne vzorce 123

Kazalo vii

322 Vecfaktorska analiza variance za neodvisne vzorce 131323 Enofaktorska analiza variance za odvisne vzorce 138

33 Linearna regresija 141331 Dodatne spremenljivke 141332 Bivariatna regresija 143333 Nelinearna regresija 147334 Multipla regresija 150335 Vkljucevanje nominalnihordinalnih spremenljivk 155336 Interakcije med spremenljivkami 160337 Preverjanje predpostavk 163338 V razmislek 174339 Izracun rdquona rokerdquo 176

34 Viri za poglabljanje znanja 18335 Vprasanja za ponavljanje 184

4 Za konec 187

Literatura 191

viii

Slike

11 Strukturni stolpci in krog za spol 312 Strukturni stolpci za povezanost dveh nominalnih spremenljivk 413 Histograma za ekstravertiranost in emocionalno stabilnost 514 Razsevni grafikon za ekstravertiranost in emocionalno stabilnost 815 Dendrogram ndash Wardovo razvrscanje s kvadrirano evklidsko razdaljo

na podlagi spremenljivk emocionalne stabilnosti 1016 Graf povprecij po skupinah dobljenih z metodo voditeljev 1217 Resitev razvrscanja v prostoru glavnih komponent 1418 Stirje obrazi 1919 Strutkutna stolpca in krog na eni sliki 58110 Slika z veliko dodanimi elementi 60111 Resitev vaje 1 (Risanje) 70112 Resitev vaje 2 (Risanje) 72113 Resitev vaje 3 (Risanje) 73

21 Porazdelitev bruto place 8922 Porazdelitev zaupanja v Drzavni zbor in Evropski parlament 9223 Porazdelitev razlike med zaupanjem v Drzavni zbor in zaupanjem v

Evropski parlament 9324 Porazdelitev bruto place pri moskih in zenskah 9625 Razsevni grafikon ndash izobrazba in bruto placa 11326 Razsevni grafikoni med vsemi spremenljivkami ki merijo zaupanje v

institucije 115

31 Porazdelitve uporabljenih spremenljivk 12532 Porazdelitev bruto place po krajih bivanja 12733 Porazdelitve uporabljenih spremenljivk 13234 Porazdelitev bruto place po krajih bivanja in spolu 13435 Porazdelitve dodatnih spremenljivk 14336 Odnos med bruto placo in stevilom let solanja 14437 Porazdelitev rezidualov 14638 Diagnosticni grafikoni za linearno regresijo 14739 Exponentna zveza ndash transformacija 149310 Ocenjevanje nelinearne zveze 151

Slike ix

311 Odnos med bruto placo in tipicnim stevilom delovnih ur na teden 151312 Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk 154313 Porazdelitev rezidualov 155314 Diagnosticni grafikoni za linearno regresijo 156315 Diagnosticni grafikoni za linearno regresijo ndash model z interakcijo 164316 Histogram rezidualov 165317 Grafikon za ocenjevanje heteroskedasticnosti 165318 Grafikoni delnih ostankov 172319 Ceres grafikoni 173320 Diagnosticni grafikoni za linearno regresijo 175321 Odnos med izobrazbo in bruto placo po spolu 177

x

Tabele

11 Frekvencna tabela za spol 212 Hierarhicno razvrscanje - povprecja po skupinah 1113 Metoda voditeljev ndash povprecja po skupinah 1214 Primerjava koncnih razvrstitev po enotah 13

1

1 poglavje

Uvod v R

Prvo poglavje je namenjeno spoznavanju R-ja Zacne se z uvodnim primerom sta-tisticnih analiz nato pa se nadaljuje z razmeroma sistematicnim pregledom podro-cij ki so pomembna za uporabo tega programskega okolja Sistematicni pregledse zacne z osnovnimi informacijami kjer velja se posebej izpostaviti navodila zauporabo funkcij in pomoci ter paketkov Tem sledi pregled podatkovnih strukturtorej osnovnih nacinov na katere lahko v R-ju shranjujemo podatke in rezultate (injih nato nadalje obdelujemo) Nadaljuje se s pregledom nekaterih (s statisticnegavidika) najkoristnejsih funkcij za napredne uporabnike pa tudi pravila za pisanjenovih funkcij in napotki za programiranje Zelo pomembno podpoglavje je tudi pod-poglavje o delu z datotekami saj preko le teh rdquoberemordquo in shranjujemo podatke terpogosto tudi rezultate statisticnih obdelav R je znan tudi po zelo kvalitetnih grafihin prav risanje ter shranjevanje grafov in drugih slik je opisano v naslednjem podpo-glavju Vsebinsko se poglavje zakljuci s pregledom nacinov za pripravo dokumentovz rezultati analiz iz R-ja kjer se osredotocimo na izvoz tabel v dokumente kompa-tibilne z urejevalniki besedila Ker je to poglavje z vidika uporabe R-ja pravzapravnajzahtevnejse poglavje vsebuje tudi vrsto vaj z resitvami (po podpoglavjih) ki sopodane na koncu poglavja

11 Uvodni primer

Za predstavitev nacina analize z R-jem zacnimo z realnim primerom Primer pri-kazuje uporabo metod predstavljenih v tem ucbeniku poleg tega pa prikazuje tudiuporabo multivariatnih metod z R-jem

Podatki na katerih temelji primer so bili zbrani v okviru raziskave Kakovost mer-jenja egocentricnih socialnih omrezij (Ferligoj in drugi 2000) Podroben opis raz-iskave je na voljo na spletni strani Arhiva druzboslovnih podatkov (ADP) (httpwwwadpfdvuni-ljsiopisiegoomr00) s katere je (po predhodni registra-

2 11 Uvodni primer

ciji) mogoce tudi prenesti podatke Za ta primer sem prenesel podatke v SPSS-ovemformatu (obicajnem ne rdquoportablerdquo (prenosljivem) torej datoteka s koncnico rdquosavrdquo)saj ga R dobro bere Kot sicer natancneje obravnavamo v podpodpoglavju 153lahko R bere in zapisuje tudi podatke izv mnogih-o drugih formatov med kate-rimi posebej izpostavim Statin format (predvsem zaradi prirocnosti pri pisanju) Vpodpodpoglavju 153 so opisani tudi razlogi za uporabo SPSS-ovega formata v temucbeniku in napotki v primeru da bralec bere podatke iz kaksnega drugega formata

Pred zacetka dela v R-ju preberemo funkcije (prej pripravljene iz datoteke rdquoUcbenikR-funkcijeRrdquo) in podatke Ker zelimo analizo izvesti samo na posameznikih ki so biliosebno anketirani opravimo se izbor enot

gt nalozimo datoteko s posebej pripravljenimi funkcijami

gt source(UcbenikR-funkcijeR)

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign)

gt preberemo podatke

gt ego1lt-readspss(egoomr00_f2savtodataframe=TRUE

usevaluelabels = FALSEusemissings=TRUE)

gt izbor samo tistih ki so bili osebno anketirani

gt egolt-ego1[ego1$MODE==1]

gt kopiranje atributov (zaradi prejsne izbire enot)

gt for(i in names(ego1))attributes(ego[i])lt-attributes(ego1[i])

Naredimo se frekvencno tabelo (lepo izpisana z LATEX-om je v tabeli 11) in grafa(slika 11) Najprej frekvencno tabelo

gt ego$E_SPOLlt-makeFactorLabels(ego$E_SPOL)

gt table(ego$E_SPOL)

moski zenski

267 364

gt frekTab(ego$E_SPOLdec=1)

Frekvenca Kum frek Kumulativni

moski 267 267 423 423

zenski 364 631 577 1000

Tabela 11 Frekvencna tabela za spol

Frekvenca Kum frek Kumulativni moski 267 267 423 423zenski 364 631 577 1000

Sedaj pa narisimo se strukturna stolpca in krog

1 poglavje ndash Uvod v R 3

Slika 11 Strukturni stolpci in krog za spol

moški ženski

Strukturna stolpca

050

150

250

350

moški

ženski

Strukturni krog

gt par(mfrow=c(12)) dva grafa na eno stran

gt barplot(table(ego$E_SPOL)main=Strukturna stolpca)

gt pie(table(ego$E_SPOL)main=Strukturni krog)

gt par(mfrow=c(11))

Delamo lahko tudi dvodimenzionalne tabele in jih na enostaven nacin narisemo (slika12)

gt ego$IZOBlt-makeFactorLabels(ego$IZOB)

gt tbllt-table(spol=ego$E_SPOLizobrazba=ego$IZOB)

gt tbl

izobrazba

spol nedokoncana osnovna sola osnovna sola

moski 1 18

zenski 5 36

izobrazba

spol poklicna sola stiriletna srednja sola visja sola

moski 44 110 28

zenski 44 157 40

izobrazba

spol visoka sola magisterij doktorat

moski 55 3 8

zenski 75 5 2

gt plot(tbllas=1 main=)

4 11 Uvodni primer

Slika 12 Strukturni stolpci za povezanost dveh nominalnih spremenljivk

spol

izob

razb

a

moški ženskinedokončana osnovna šolaosnovna šola

poklicna šola

štiriletna srednja šola

višja šola

visoka šola

magisterijdoktorat

Sledi transformacija spremenljivk ndash rdquoobracanjerdquo lestvice in izracun Likertovih lestvicza ekstravertiranost in emocionalno stabilnost

gt seznam spremenljivk ki jim je treba obrniti lestvico

gt spremZaRekodlt-c(O4 O7 O9 O10 O11 O12

O13 O14 O15 O17 O18 O19 O20)

gt imena za nove spremenljivke

gt rekodiraneSpremlt-paste(spremZaRekodRsep=)

gt obracanje vrednosti

gt ego[rekodiraneSprem]lt- 6 - ego[spremZaRekod]

gt spremEkstlt-c(O1 O2 O5 O8 O9R O12R O14R

O15R O16 O18R)

gt spremEmoclt-c(O3 O4R O6 O7R O10R O11R

O13R O17R O19R O20R)

gt uvedemo novi spremenljivki

gt ego$ekst_sco lt- apply(ego[spremEkst]1sum)

gt ego$emoc_sco lt- apply(ego[spremEmoc]1sum)

1 poglavje ndash Uvod v R 5

Porazdelitev teh dveh spremenljivk je prikazana na sliki 13 Porazdelitev obehspremenljivk je priblizno normalna se pa nakazuje rahla asimetrija v levo

gt par(mfrow=c(12)) dva grafa na eno stran

gt hist(ego$ekst_sco xlab=ekstravertiranost main=

freq=FALSEylab=gostota)

gt dodamo normalno krivuljo

gt curve(dnorm(xmean=mean(ego$ekst_sconarm=TRUE)

sd=sd(ego$ekst_sconarm=TRUE))add=TRUExpd=NA)

gt raje z gostoto

gt hist(ego$emoc_sco xlab=emocionalna stabilnost main=

freq=FALSEylab=gostota)

gt dodamo normalno krivuljo

gt curve(dnorm(xmean=mean(ego$emoc_sconarm=TRUE)

sd=sd(ego$emoc_sconarm=TRUE))add=TRUExpd=NA)

gt xpd=NA uporabimo da se vidi tudi vrh krivulje

gt par(mfrow=c(11))

Slika 13 Histograma za ekstravertiranost in emocionalno stabilnost

ekstravertiranost

gost

ota

10 20 30 40 50

000

002

004

emocionalna stabilnost

gost

ota

10 20 30 40 50

000

001

002

003

004

Izracunajmo se opisne statistike po skupinah glede na spol

gt opisne statistike po skupinah

gt ekstravertiranost

gt by(ego$ekst_sco INDICES=ego$E_SPOL

6 11 Uvodni primer

FUN = function(x)c(povprecje=mean(xnarm=TRUE)

sd=sd(xnarm=TRUE)n=sum(isna(x))))

ego$E_SPOL moski

povprecje sd n

34159696 7711717 263000000

---------------------------------------------

ego$E_SPOL zenski

povprecje sd n

34659091 8031826 352000000

gt emocionalna stabilnost

gt by(ego$emoc_sco INDICES=ego$E_SPOL

FUN = function(x)c(povprecje=mean(xnarm=TRUE)

sd=sd(xnarm=TRUE)n=sum(isna(x))))

ego$E_SPOL moski

povprecje sd n

36306818 8223621 264000000

---------------------------------------------

ego$E_SPOL zenski

povprecje sd n

33986111 9184723 360000000

Pri ekstravertiranosti (prvi izpis) imajo zenske malce vecje povprecje vendar pa stasi povprecji precej podobni Pri emocionalni stabilnosti imajo moski vecje povprecjePri obeh spremenljivkah pa je variabilnost med zenskami vecja kot med moskimiV nadaljevanju za emocionalno stabilnost preverimo domnevo da sta aritmeticnisredini v obeh skupinah (pri obeh spolih) enaki

gt EMOCIONALNA STABILNOST

gt testiramo enakost varianc (vec razlicnih testov)

gt vartest(emoc_sco~E_SPOLdata=ego)

F test to compare two variances

data emoc_sco by E_SPOL

F = 080167 num df = 263 denom df = 359 p-value =

005669

alternative hypothesis true ratio of variances is not equal to 1

95 percent confidence interval

06411573 10063491

sample estimates

ratio of variances

0801667

gt ce zelimo klasicen t-test (predpostavka enakih varianc)

gt ttest(emoc_sco~E_SPOL data=egovarequal = TRUE)

1 poglavje ndash Uvod v R 7

Two Sample t-test

data emoc_sco by E_SPOL

t = 32579 df = 622 p-value = 0001184

alternative hypothesis true difference in means is not equal to 0

95 percent confidence interval

09218292 37195850

sample estimates

mean in group moski mean in group zenski

3630682 3398611

Ker je ena izmed predpostavk klasicnega t-testa tudi enakost varianc po skupinahsmo najprej preverili to domnevo Domneve pri 5-odstotnem tveganju ne moremozavrniti zato izvedemo klasicno razlicico t-testa Ta nam pove da lahko pri tveganjupriblizno 01 trdimo da so moski (v Ljubljani) bolj emocionalno stabilni kotzenske

Izracunajmo se korelacijo med ekstravertiranostjo in emocionalno stabilnostjo pre-verimo domnevo da je ta korelacija enaka 0 ter prikazimo odnos z njima na razsev-nem grafikonu Ta je prikazan na sliki 14 kjer smo z razlicnimi barvami in znakioznacili tudi spol

gt plot(jitter(emoc_sco)~jitter(ekst_sco)

pch=asnumeric(E_SPOL)col=asnumeric(E_SPOL)data=ego

ylab=emocionalna stabilnostxlab=ekstravertiranost)

gt jitter malce razprsi tocke da se ne prekrivajo

gt legend(x=30y=525xjust=05yjust=0legend=c(moski

zenski)pch=12col=12horiz = TRUEtitle=Spol

xpd=TRUE)

Izracunamo se korelacijo med novima spremenljivkama in preverimo domnevo daje korelacija enaka 0

gt Pearsonov koeficient korelacije

gt cor(ego[c(emoc_scoekst_sco)]method = pearson

use=pairwisecompleteobs)

emoc_sco ekst_sco

emoc_sco 10000000 02278617

ekst_sco 02278617 10000000

gt cortest(y=ego$emoc_scox=ego$ekst_sco)

Pearsons product-moment correlation

data ego$ekst_sco and ego$emoc_sco

t = 57703 df = 608 p-value = 1261e-08

8 11 Uvodni primer

Slika 14 Razsevni grafikon za ekstravertiranost in emocionalno stabilnost

10 20 30 40 50

1020

3040

50

ekstravertiranost

emoc

iona

lna

stab

ilnos

t

Spol

moški ženski

alternative hypothesis true correlation is not equal to 0

95 percent confidence interval

01512119 03017878

sample estimates

cor

02278617

gt pravzarav bi bil dovolj samo ta drugi ukaz

gt prednost prvega je da bi lahko izracunali tudi korelacijo

gt med vec spremenljivkami

Korelacija je sicer razmeroma sibka in pozitivna a mocno statisticno znacilna (p lt0001)2 V povprecju imajo osebe z visjo ekstravertiranostjo tudi visjo emocionalnostabilnost in obratno a ta povezanost je kot receno sibka

2 Tako nizka stopnja tveganja (rdquomocnardquo statisticna znacilnost) je predvsem posledica velikegavzorca

1 poglavje ndash Uvod v R 9

Nadaljujemo z multivariatno analizo ndash razvrscanjem v skupine Multivariatne ana-lize sicer v ucbeniku ne obravnavam3 V uvodni primer sem jo vkljucil da bi vsajnakazal da R omogoca se bistveno vec kot je predstavljeno v tem ucbeniku

Zaceli bomo z razvrscanje v skupine Najprej izlocimo enote z manjkajocimi vre-dnostmi nato izracunamo kvadrirano evklidsko razdaljo in jo uporabimo za hierar-hicno razvrscanje z Wardovo metodo Na podlagi dobljenega dendrograma na sliki15 ocenimo da v podatkih nastopata 2 skupini

gt Hierarhicno razvrscanje v skupine

gt odstranimo enote z manjkajocimi vrednostmi

gt emoclt-naomit(ego[spremEmoc])

gt standardiziramo podatke s funkcijo scale

gt Zemoclt-scale(emoc)

gt izracunamo evklidsko razdaljo na standardiziranih podatkih

gt dlt-dist(Zemoc)

gt za kvadrirano evklidsko razdaljo jo kvadriramo

gt d2lt-d^2

gt uporabimo Wardovo metodo

gt wardlt-hclust(d=d2method=wardD)

gt narisemo dendrogram

gt plot(ward)

gt abline(h=1500 col=red)

Ti dve skupini shranimo in na nestandardiziranih spremenljivkah izracunamo pov-precja po skupinah Povprecja so prikazana v tabeli 12

gt izberemo 2 skupini (in shranimo pripadnost)

gt wardCluK2lt-cutree(wardk=2)

gt stevilo enot po skupinah

gt table(wardCluK2)

wardCluK2

1 2

352 272

gt izracunamo povprecja po skupinah

gt aggregate(x=emoc by=list(wardCluK2) FUN=mean)

Group1 O3 O4R O6 O7R O10R

1 1 3022727 2428977 3892045 2650568 2448864

2 2 4000000 4485294 4621324 4139706 4117647

3 Obstaja veliko splosnih ucbenikov za multivariatno analizo (na primer Johnson in Wichern 2007Tabachnick in Fidell 2007 Jesenko in Jesenko 2007) uporaba multivariatne analize v R-ju pa jepredstavljena predvsem v Everitt (2005) Everitt in Hothorn (2011)

10 11 Uvodni primer

Slika 15 Dendrogram ndash Wardovo razvrscanje s kvadrirano evklidsko razdaljo napodlagi spremenljivk emocionalne stabilnosti

543

627

590

880

755

1010 43

279

810

15 754

905

892

999

13 842

454

480

476

909

706

746

776

793

894

579

854

491

559

984

533

716

525

977

536

481

873

441

783

884

1025

857

572

478

938

692

861

968

841

663

1012

927

900

790

722

687

531

563

805

777

903

895

542

682

761

887

464

492

465

988

530

571

958

562

736

983

473

631

726

752

908 2

615

956

1003

442

498

742

788 15 815

494

768

643

851

775

493

767

883 7

753

450

637

890

518

630

676

803

636

665

824

526

506

923

1027

639

975

845

1017 70

272

943

783

643

457

3 980

774

354

654

914 51

067

786

752

746

710 49

661

172

453

755

365

874

196

984

773

177

8 564

269

884

910

01 656

634

930

797

598

673

732

564

834

468

647

1002

1028

462

769

757

813

850

539

906

858

863

779

978

709

575

548

955

689

1013

1009 99

796

293

791

591

491

088

187

184

378

169

368

368

067

164

963

560

460

358

643

052

042

656

192

845

846

395

298

682

696

010

07 678 6

532

691

951

648

1032

727

902

932

581

852

904

699

965

874

998

982

684

972

650

891

948

552

594

1033 63

878

292

189

743

985

976

584

499

570

092

460

176

056

066

495

496

386

252

391

244

471

250

559

712 57

897

997

199

651

964

586

088

953

574

862

193

582

859

266

869

561

651

292

052

987

642

210

16 427

547

515

591

738

947

580

582

632

893

882

608

720

555

772

1030

557

654

740

538

655

925

870

934

607

808

756

1000 56

870

463

375

999

173

551

754

159

577

452

879

688

546

910

08 605

714

945

585

830

451

600

501

846 1

503

715

1019

589

879

1024

721

919

521

1022 71

193

698

550

487

557

076

642

174

479

169

450

280

189

845

276

469

097

098

042

558

778

579

573

396

160

281

451

196

610

04 475

747

435

822

449

474

990

792

438

701

644

869

551

820

878

703

718

868

810

939

457

943

460

576

544

812

508

827

610

669

967

922

1011 70

793

180

056

969

762

086

583

244

654

079

981

751

376

349

794

191

692

967

944

062

666

675

157

780

948

688

893

383

188

680

657

410

20 609

588

661

524

696

829

428 8

821 16

447

949

907

1018 67

064

666

073

094

447

772

870

577

194

653

471

759

383

562

981

687

2 390

1 461

848

997

489

982

595

975

087

791

194

210

21 472

993

479

653

973

786

819

856

839

1029 54

562

878

499

455

081

1 1110

2342

494

0 1770

886

645

943

362

564

168

866

745

386

444

396

446

661

473

751

691

767

471

351

483

378

948

771

950

099

268

591

883

882

310

06 509

484

651

495

981

606

675

499

483

749

420

624

802

583

662

686

987

456

596

436

762

773

840

855

565

848

913

926

976

558

853

950

471

710

681

780

490

739

455

989

461

584

725

522

612

448

507

1031

1026

770

1005 64

065

265

944

548

874

562

379

465

762

280

461

978

755

473

455

695

748

275

842

948

543

161

767

256

759

983

795

310

14

050

010

0015

0020

0025

00

Cluster Dendrogram

hclust ( wardD)d2

Hei

ght

O11R O13R O17R O19R O20R

1 2306818 3301136 2974432 3536932 2758523

2 3746324 3786765 4220588 4639706 4518382

Dobili smo eno skupino s srednjo in eno z visoko emocionalno stabilnostjo Posku-simo se ali lahko z metodo voditeljev dobimo boljsi rezultat Povprecja po skupinahna nestandardiziranih spremenljivkah so prikazana v tabeli 13 in na sliki 16

gt Razvrscanje v skupine z metodo voditeljev

gt kMeansR10lt-kmeans(Zemoc centers=2 itermax = 50 nstart = 10)

gt ponovimo kar 10-krat (da se izognemo lokalnim minimumom)

gt koncni voditelji na standardiziranih spremenljivkah

gt (te smo uporabili za razvrscanje)

gt kMeansR10$centers

O3 O4R O6 O7R O10R

1 02807587 05873913 02360699 05311423 06126683

1 poglavje ndash Uvod v R 11

Tabela 12 Hierarhicno razvrscanje - povprecja po skupinah

1 2O3 302 400

O4R 243 449O6 389 462

O7R 265 414O10R 245 412O11R 231 375O13R 330 379O17R 297 422O19R 354 464O20R 276 452

2 -03449321 -07216522 -02900287 -06525462 -07527067

O11R O13R O17R O19R O20R

1 03711498 02967399 05099416 04663205 05518454

2 -04559841 -03645662 -06264997 -05729081 -06779815

gt velikosti skupin

gt kMeansR10$size

[1] 344 280

gt vrednost Wardove kriterijske funkcije

gt kMeansR10$totwithinss

[1] 4585664

gt povprecja na nestandardiziranih spremenljivkah po skupinah

gt aggregate(x=emoc by=list(kMeansR10$cluster) FUN=mean)

Group1 O3 O4R O6 O7R O10R

1 1 3854651 4261628 4470930 4104651 4098837

2 2 2950000 2175000 3889286 2310714 2042857

O11R O13R O17R O19R O20R

1 3526163 3947674 4290698 4613372 4322674

2 2207143 2978571 2567857 3285714 2546429

gt graf

gt meanslt-aggregate(x=emocby=list(kMeansR10$cluster)FUN=mean)

gt matplot(t(means[-1])type=oxaxt=nylab=povprecje)

gt axis(side=1at=1dim(means[-1])[2]

labels=colnames(means)[-1]las=2)

Primerjajmo se obe razbitji (dobljeni z razlicnima metodama) Vrednost kriterijskefunkcije za razbitje izracunano z Wardovo metodo je 491353 za tisto z metodovoditeljev pa 458566 Razbitje dobljeno z metodo voditeljev je torej boljse Kako

12 11 Uvodni primer

Tabela 13 Metoda voditeljev ndash povprecja po skupinah

1 2O3 385 295

O4R 426 217O6 447 389

O7R 410 231O10R 410 204O11R 353 221O13R 395 298O17R 429 257O19R 461 329O20R 432 255

Slika 16 Graf povprecij po skupinah dobljenih z metodo voditeljev

1

1

1

1 1

1

1

1

1

1

20

25

30

35

40

45

povprečje

2

2

2

2

2

2

2

2

2

2

O3

O4R O6

O7R

O10R

O11R

O13R

O17R

O19R

O20R

se razporeditvi prekrivata je prikazano v tabeli 14 Prekrivanje je zelo veliko sajse razbitji pri vecini enot ujemata (ne ujemata se le pri manjsem stevilu enot)4

4 Vecina enot ki je v prvi skupini po Wardovi metodi je v drugi po metodi voditeljev medtemko je vecina tistih ki so z Wardovo metodo razporejene v drugo skupino z metodo voditeljev

1 poglavje ndash Uvod v R 13

gt Primerjava kriterijskih funkcij

gt wardKF(ZemocwardCluK2) Wardova metoda

[1] 4913525

gt kMeansR10$totwithinss metoda voditeljev

[1] 4585664

gt Primerjava koncnih razvrstitev po enotah

gt table(Wardova metoda=wardCluK2

Metoda voditeljev=kMeansR10$cluster)

Metoda voditeljev

Wardova metoda 1 2

1 85 267

2 259 13

Tabela 14 Primerjava koncnih razvrstitev po enotah

1 21 85 2672 259 13

Razbitje prikazano v prostoru prvih dveh glavnih komponent je prikazano na sliki17 Vidi se da prva glavna komponenta zelo dobro loci med skupinama dobljenimaz metodo voditeljev

gt metoda glavnih komponent

gt PClt-princomp(Zemoc)

gt plot(PC$scores[12]ylab=2 komponentaxlab=1 komponenta

pch=kMeansR10$clustercol=kMeansR10$cluster)

gt legend(x=mean(range(PC$scores[1])) y=max(PC$scores[2])+05

legend = c(1 skupina 2 skupina)

title=Metoda voditeljevxjust=05 yjust=0xpd=TRUE

pch=kMeansR10$clustercol=kMeansR10$clusterhoriz=TRUE)

S tem zakljucujemo uvodni primer V nadaljevanju sledi pregled osnovnih informacijo delu s programskim paketom R

razporejena v prvo skupino Pri teh enotah se razvrstitvi ujemata saj oznake skupin (prvadruga) pri razvrscanju v skupine niso pomembne

14 12 Osnovne informacije

Slika 17 Resitev razvrscanja v prostoru glavnih komponent

-2 0 2 4 6

-20

24

1 komponenta

2 k

ompo

nent

a

Metoda voditeljev

1 skupina 2 skupina

12 Osnovne informacije

121 Osnovne racunske operacije

Najprej spoznajmo osnovne racunske operacije V R-ju se zanje uporabljajo stan-dardni simboli Morda omenimo le da je ˆ(stresica) znak za potenco sqrt pafunkcija kvadratnega korena

gt 2+2

[1] 4

gt 6-2

[1] 4

gt 35

[1] 15

gt 25

[1] 04

gt 52 vrne ostanek pri deljenju

1 poglavje ndash Uvod v R 15

[1] 1

gt 5^2 potenca

[1] 25

gt sqrt(25) kvadratni koren preko funkcije

[1] 5

gt 25^(12) in drugace (bolj splosno)

[1] 5

gt zgoraj upostevamo da je koren le posebna razlicica

gt potence in sicer oblike 1(stopnja korena)

122 Spremenljivke

Vrednost shranimo tako da jo priredimo spremenljivki (objektu) Za prirejanje upo-rabimo znak rdquolt-rdquo(uporabljamo lahko tudi znak rdquo=rdquo a se njegova uporaba odsvetuje)Spremenljivkeobjekte nato uporabljamo namesto vrednosti ki so shranjene v njih

V imenih spremenljivk lahko nastopajo

bull crke (velike in male ndash velikost crk je pomembna)

bull stevilke

bull znak rdquo rdquo ndash do verzije 180 R-ja bil uporabljan kot znak za prirejanje na karje treba biti pozoren ce naletite na kaksno zelo staro kodo

bull znak rdquordquo ndash predvsem pri funkcijah ima znak rdquordquo v imenu funkcije tudi posebenpomen (uporablja se za prilagoditev funkcije za dolocen razred objekta) zatose uporaba rdquordquo v drugih primerih odsvetuje (ni pa prepovedana)

Ime spremenljivke se mora nujno zaceti s crko ali piko (rdquordquo) Spremenljivke ki sezacenjajo s piko (rdquordquo) so skrite se pravi da se ne izpisejo s funkcijo ls() (ta funkcijaizpise vse vidne objekte v okolju)

Primer uporabe spremenljivk

gt a lt- 5 priredimo vrednost spremenljivki

gt a izpisemo vrednost spremenljivke

[1] 5

gt a + 4

[1] 9

gt b lt- a2 nekaj izracunamo in rezultat priredimo

gt b

[1] 10

gt (c lt- a + b) Kaj se zgodi zaradi oklepajev

[1] 15

16 12 Osnovne informacije

Zaradi oklepajev se najprej izvede izraz znotraj oklepaja torej se rezultat sesteva-nja shrani v spremenljivko c Nato pa se se rdquopoklicerdquo oklepaj kar izpise vrednostspremenljivke c

123 Uporaba funkcij in pomoci

Funkcija ls je prva R-jeva funkcija ki smo jo spoznali Za pomoc o katerikoli R-jevifunkciji napisemo v R eno od spodnjih moznostiime_funkcije

help(ime_funkcije)

Za iskanje po pomoci lahko uporabitehelpsearch(iskalni pogoj)

iskalni pogoj

Dodatno pomoc pa najdete tudi v meniju Help

Za iskanje funkcije katere ime ustreza dolocenemu vzorcu pa uporabite funkcijoapropos

Vsaka spremenljivka je pravzaprav objekt (objekti so tudi funkcije) Objekte lahkobrisemo s funkcijo rm

Funkcijo klicemo tako da navedemo njeno ime in potem v oklepajih () njene ar-gumente locene z vejico Nujno moramo navesti vse argumente ki nimajo privzetevrednosti ostale pa le ce nam privzeta vrednost ne ustreza Tudi ce ne navedemonobenega argumenta moramo nujno navesti oklepaje () kamor v tem primeru nenapisemo nic Za primer glejte podpodpoglavje 135 (Matrika)

Pri navajanju argumentov imamo dve moznosti

bull Argumente navajamo v takem vrstnem redu kot so navedeni v funkciji Tanacin lahko uporabimo samo pri argumentih ki so na zacetku oziroma prikaterih smo navedli tudi vse argumente pred njimi

bull Argumente navajamo v poljubnem vrstnem redu skupaj z njihovimi imeni kotdvojice ime=vrednost

V vsakem primeru argumente locimo z vejicami Drugi nacin je dosti varnejsi Prvise ponavadi uporablja le za prvi argument ali pri zelo pogosto uporabljenih funkcijahceprav tudi takrat ni priporocljiv

gt ls() Klicemo funkcijo ls ne da bi navedli kak argument

[1] a b

[3] c colinEigen

1 poglavje ndash Uvod v R 17

[5] corTestDf d

[7] d2 ego

[9] ego1 emoc

[11] frekTab i

[13] insert kMeansR10

[15] makeFactorLabels means

[17] PC plotMeans

[19] printCorTestDf razsiriPodatke

[21] rekodiraneSprem spremEkst

[23] spremEmoc spremZaRekod

[25] ss ssAllVar

[27] tbl ward

[29] wardCluK2 wardKF

[31] Zemoc

gt Argumenti niso potrebni ker je pri vseh argumentih

gt privzeta vrednost ustrezna

gt Z njo izpisemo vse vidne objekte - med njimi je tudi a

gt

gt alt-1 kreiramo a

gt rm(a) izbrisemo a - argument funkcije je

gt Pozor argument funkcije je objekt (ne njegovo ime)

gt ls() a-ja ni vec med objekti

[1] b c

[3] colinEigen corTestDf

[5] d d2

[7] ego ego1

[9] emoc frekTab

[11] i insert

[13] kMeansR10 makeFactorLabels

[15] means PC

[17] plotMeans printCorTestDf

[19] razsiriPodatke rekodiraneSprem

[21] spremEkst spremEmoc

[23] spremZaRekod ss

[25] ssAllVar tbl

[27] ward wardCluK2

[29] wardKF Zemoc

gt ls pomoc za funkcijo ls

gt help(ls) enako

gt List Objects isce po pomoci

gt ls(allnames = TRUE) izpisemo vse objekte tudi skrite

[1] cairo Randomseed

[3] b c

18 12 Osnovne informacije

[5] colinEigen corTestDf

[7] d d2

[9] ego ego1

[11] emoc frekTab

[13] i insert

[15] kMeansR10 makeFactorLabels

[17] means PC

[19] plotMeans printCorTestDf

[21] razsiriPodatke rekodiraneSprem

[23] spremEkst spremEmoc

[25] spremZaRekod ss

[27] ssAllVar tbl

[29] ward wardCluK2

[31] wardKF Zemoc

gt torej tudi tiste ki se zacnejo s piko ()

gt

gt rm(list=ls()) izbrisemo vse vidne objekte

gt ta ukaz uporabljajte zelo pazljivo

gt

gt ustvarimo nekaj spremenljivk

gt alt-1blt-2aalt-3aaaabblt-4daalt-5

gt V R-ju lahko v eno vrstico napisemo tudi vec ukazov

gt ki jih locimo s podpicji

gt ponavadi to sicer ni priporocljivo

gt

gt ls(pattern = aa) vsi objekti ki imajo v imenu aa

[1] aa aaaabb daa

gt uporabimo lahko sicer tudi regularne izraze

gt za vec informacij vtipkajte regexp

124 Paketki

Vse funkcije (ki jih nismo napisali sami) in tudi veliko podatkov je v R-ju shra-njeno v paketkih Paketke nalozimo preko menija Packages|Load package alienostavneje s funkcijama library ali require Edina razlika med njima je v temda prva ob neuspehu (ce na primer paketek ni namescen oziroma instaliran) javinapako druga pa vrednost FALSE Da pa paketke lahko nalozimo morajo biti prejnamesceni

Na voljo je veliko paketkov 30 osnovnih paketkov je vkljucenih ze v osnovno distri-bucijo R-ja (in jih imate tako po namestitvi R-ja ze namescene) veliko vec (trenutno8551) pa jih je na voljo na CRAN-u (Comprehensive R Archive Network)

1 poglavje ndash Uvod v R 19

Slika 18 Stirje obrazi

1 2

3 4

Paketke najlazje namestimo neposredno iz CRAN-a in sicer preko menija Packa-ges|Install package(s) ali preko funkcije installpackages

gt installpackages(TeachingDemos)

package TeachingDemos successfully unpacked and MD5 sums checked

The downloaded binary packages are in

CUsersAlesAppDataLocalTempRtmpcFnMNjdownloaded_packages

gt namestimo paketek s CRAN-a

gt library(TeachingDemos) nalozimo paketek

gt funkcija faces ni na voljo ce prej ne nalozimo paketka

gt faces() uporabimo funkcijo iz paketka - narisemo 4 obraze

Rezultat funkcije je na sliki 18

125 Drugi osnovni podatki

Prostor kamor v R-ju pisemo ukaze se imenuje ukazna vrstica oziroma konzolaVanjo lahko ukaze tipkamo lepimo ali posljemo iz urejevalnika besedil (ce le-ta toomogoca)

Zelo prirocno je tudi pomikanje po ze uporabljenih ukazih (za ponavljanje ali manjsespremembe) s smernimi tipkami za gor uarr in dol darr Po posameznem ukazu pa sepremikamo s smernimi tipkami za levo larr in desno rarr

20 13 Podatkovne strukture

R zapremo preko menija File|Exit ali s funkcijama q oziroma quit (funkciji staidenticni) Ko ga ugasnemo nas R tudi vprasa (ce nismo tega rdquopovedalirdquo ze zargumenti prej omenjenih funkcij) ali zelimo shraniti delovno okolje (workspace) inzgodovino

Stanje delovnega okolja (workspace) lahko kadarkoli shranimo s funkcijo saveimageali preko menija File|Save Workspace zgodovino ukazov pa s savehistory ozi-roma preko menija File|Save History Vse datoteke se (ce ne izberemo drugace)shranijo v delovno mapo (working directory) Delovno mapo lahko spremenimopreko funkcije setwd ali preko menija File|Change dir Nacin spreminjanjamape preko menija lahko uporabimo tudi le za to da najdemo trenutno delovnomapo lahko pa to ugotovimo tudi s funkcijo getwd

Shranjeno okolje lahko potem nalozimo na vec nacinov Ce nismo spreminjali imen(privzeto ime je rdquoRDatardquo za delovno okolje in rdquoRHistoryrdquo za zgodovino) potemse oboje samodejno nalozi ce bodisi zazenemo R v isti mapi bodisi zazenemo R zdvoklikom na shranjeno okolje rdquoRDatardquo Delovno okolje lahko nalozimo tudi takoda datoteko rdquoprenesemordquo v R-jevo okno s pomocjo funkcije loadimage ali prekomenija File|Load Workspace Podobno velja tudi za zgodovino

Zgodovino lahko kadarkoli izpisemo tudi s funkcijo history

R kot decimalno locilo uporaba piko () na primer 12

zapisemo kot 05 Pri ukazih setega ne da spreminjati (kar je nujno za konsistentno delovanje kateregakoli program-skega jezika) pri izpisih pa to lahko nastavimo preko funkcije optios Ce zelimokot decimalno locilo nastaviti vejico () torej decimalno locilo ki ga uporabljamo vslovenscini uporabimo ukaz options(OutDec = )

V tem ucbeniku uporabljam kot decimalno locilo piko () kjub temu da se zavedamda je to v nasprotju s slovenskim pravopisom Razloga za to sta dva oba pa izhajataiz narave ucbenika torej ucenje R-ja Prvi je v tem da menim da bi uporaba enegadecimalnega locila (pike) pri ukazih in drugega (vejice) pri izpisih lahko zmedlabralca Drugi je v tem da zelim da lahko uporabniki z uporabo ukazov iz ucbenikadobijo enak izpis kot ga podajam v ucbeniku Zato raje (kjer ni potrebno) nespreminjam zacetnih nastavitev S pomocjo funkcije options je mogoce nastavljatitudi veliko drugih nastavitev na primer sirino izpisa (tekstovnega) nacin izpisastevil (stevilo decimalnih mest znanstven ali obicajen zapis ) Za pregled in opisnastavitev ki jih je mogoce spreminjati uporabite options

13 Podatkovne strukture

131 Osnovni podatkovni tipi

R pozna naslednje osnovne podatkovne tipe

1 poglavje ndash Uvod v R 21

logical logicni vektor ndash vrednosti TRUE in FALSE

integer cela stevila

numeric realna stevila ndash to je privzeta vrednost za vsa stevila v R-ju tudi cela naprimer 2

complex kompleksna stevila

character znaki (poljubno stevilo) ndash vedno jih moramo pisati v narekovajih saj sedrugace upostevajo kot imena spremenljivk ali drugih objektov (funkcij)

raw shranjuje surove bajte (ang byte) ndash tega ne rabite

Podatkovne tipe spreminjamo s funkcijami asnekaj kjer je rdquonekajrdquo ime tipa Sfunkcijo isnekaj preverimo ali je nek podatek tipa rdquonekajrdquo (torej nekega doloce-nega tipa) Kaksnega tipa je nek podatek (objekt) pa preverimo s funkcijo mode

Obstajajo pa se sledece posebne vrednosti

NA Not available ndash ni na voljo oziroma R-jeva koda za manjkajoco vrednost

NaN Not a Number ndash ni stevilo Relevantno samo pri stevilskih tipih uporablja sekadar rezultat nekega izracuna ni definiran na primer 00

NULL Absoluten nic v R-ju prazen element

Pri prvih dveh (NA NaN) je rezultat izracuna kjer nastopa katera od teh vrednostiprakticno vedno kar ta vrednost tretji pa ima podobno vlogo kot prazen element

gt 4 realno stevilo

[1] 4

gt isnumeric(4)

[1] TRUE

gt isinteger(4) ni celo stevilo

[1] FALSE

gt a lt- asinteger(4) smo naredili celo stevilo

gt isinteger(a)

[1] TRUE

gt alt-to je znakovna spremenljivka

gt alt-4 se vedno znakovna spremenljivka

gt a cetudi je znak stevilka - ne moremo racunati

[1] 4

gt asnumeric(a)+3 po spremembi lahko racunamo

[1] 7

gt 00

[1] NaN

gt 1 + NA

[1] NA

Pri realnih podatkih prav pridejo spodaj prikazane funkcije za zaokrozevanje

22 13 Podatkovne strukture

gt floor(26) navzdol

[1] 2

gt ceiling(21) navzgor

[1] 3

gt round(21) na najblizjo vrednost

[1] 2

gt round(26)

[1] 3

gt round(15) pozor - uporablja standard IEC 60559

[1] 2

gt vrednosti na meji (5 na koncu) se zaokrozujejo na najblizje

gt sodo stevilo

gt round(25)

[1] 2

gt round(pidigits=3) lahko nastavimo tudi stevilo decimalk

[1] 3142

132 Vektor

Vektor je najosnovnejsa podatkovna struktura Vsebuje lahko samo podatke enegatipa Ce zelimo ustvariti vektor iz podatkov razlicnih tipov jih R sam pretvori vtip ki je najsplosnejsi (ce ns primer zdruzujemo stevilke in znake v tip rdquocharacterrdquo)Vektor ustvarimo tako da zdruzimo (combine) vrednosti s pomocjo funkcije c

R (oziroma njegov predhodnik S) je vektorski jezik kar pomeni da se ce ne izberemole posameznega dela operacije izvajajo na vseh elementih vektorja

Opozorilo

R dovoli tudi mnozenje dveh vektorjev razlicnih dolzin V primeru da dolzinadaljsega ni mnogokratnik dolzine krajsega izpise opozorilo sicer pa le izracunarezultat

Elemente vektorja izbiramo tako da njihove indekse navedemo v oglatih oklepajih [

] (glejte primer spodaj) Izbrane dele lahko tudi spreminjamo Negativna vrednostv oglatih oklepajih pomeni da izberemo vse razen tistega kar sledi rdquo-rdquo

gt alt-c(467312) ustvarimo vektor

gt a izpisemo vektor

[1] 4 6 7 3 1 2

gt a + 3

[1] 7 9 10 6 4 5

1 poglavje ndash Uvod v R 23

gt vsem elementom vektorja a pristejemo 3 (a se seveda ne

gt spremeni)

gt

gt blt-c(123456)

gt a+b elementi se sestejejo

[1] 5 8 10 7 6 8

gt ab oziroma zmnozijo

[1] 4 12 21 12 5 12

gt blt- c(12)

gt a+b b se 3x ponovi da doseze dolzino a-ja

[1] 5 8 8 5 2 4

gt pri tem R ne izpise kakrsnegakoli opozorila

gt ab

[1] 4 12 7 6 1 4

gt length(a) izpisemo dolzino vektorja a

[1] 6

gt length(b)

[1] 2

gt length(ab) dolzina rezultata je enaka dolzini daljsega

[1] 6

gt blt-c(1234)

gt ab b se ponovi 15-krat Izpise se opozorilo

[1] 4 12 21 12 1 4

gt a[3] izberemo 3 element vektorja a (stetje se zacne z 1)

[1] 7

gt clt-c(36d) ce zdruzimo razlicne elemente

gt c dobimo najsplosnejsi tip (znakovni)

[1] 3 6 d

gt c[2]lt-bla bla spremenimo 2 element v vektorju b

gt c

[1] 3 bla bla d

gt c[-2] izpisemo vse elemente razen drugega

[1] 3 d

Vektorzaporedje celih stevil od a do b tvorimo tako da napisemo ab kjer a

in b zamenjamo z ustreznima steviloma oziroma kjer sta to dve spremenljivki zustreznima vrednostma To lahko s pridom uporabljamo tudi pri izbiranju delavektorja saj lahko izberemo tudi vec kot en element vektorja tako da kot indekspodamo vektor stevil

Namesto indeksov lahko uporabimo tudi enako (kot originalni) dolg logicni vektor(ta ima samo vrednosti TRUE in FALSE) Izbrani so elementi kjer je vrednost TRUE

24 13 Podatkovne strukture

gt 15 vektor od 1 do 5

[1] 1 2 3 4 5

gt alt- -1010 kreiramo vektor od -10 do 10 in ga shranimo v a

gt a izpisemo vektor

[1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3

[15] 4 5 6 7 8 9 10

gt a[510] izpisemo stevilke na mestih od 5 do 10 (vkljucno)

[1] -6 -5 -4 -3 -2 -1

gt a[510][13]

[1] -6 -5 -4

gt izmed stevilk na mestih od 5 do 10 izberemo prve 3

gt

gt agt0 dobimo logicni vektor ki ga lahko uporabimo za izbor

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

[10] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

[19] TRUE TRUE TRUE

gt a[agt0] izberemo samo pozitivna stevila

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

gt a[c(11121)] izberemo stevilke na mestih 1 11 in 21

[1] -10 0 10

gt a[-c(11121)]

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

gt izberemo vse razen tistih na mestih 1 11 in 21

gt a[-(15)] izberemo vse razen tistih na mestih od 1 do 5

[1] -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10

Opozorilo

Ce pri zadnjem izrazu spustimo oklepaj to ni veljavno ker imajo potem indeksivrednosti od minus1 do 5 kar pa ni dovoljeno Pri indeksih ne smemo mesatinegativnih in pozitivnih stevil

Splosnejsa zaporedja dobimo s funkcijo seq Pri pisanju zank je se posebej uporabnafunkcija seq_len ki ima samo en argument in sicer dolzino zaporedja Njenaprednost je v tem da ce je dolzina 0 dejansko ustvari vektor dolzine 0

gt seq(from=1 to = 11 by= 2)

[1] 1 3 5 7 9 11

gt seq(from=1 to = 12 by= 2)

[1] 1 3 5 7 9 11

gt enako ker pri koraku 2 stevilo 12 tako ali tako izpustimo

gt seq(from=10 to = 0 by= -1) v obratnem vrstnem redu

1 poglavje ndash Uvod v R 25

[1] 10 9 8 7 6 5 4 3 2 1 0

gt nlt-5

gt 1n

[1] 1 2 3 4 5

gt seq_len(n) enako kot zgoraj

[1] 1 2 3 4 5

gt nlt-0

gt 1n morda ne ravno tisto kar smo pricakovali

[1] 1 0

gt seq_len(n) vektor dolzine 0 - bistveno bolj varno pri zankah

integer(0)

gt seq(lengthout=n) enako kot prej

integer(0)

Elementom vektorja (in tudi drugih struktur ki jih bomo spoznali kasneje) lahkodamo tudi imena To lahko storimo ko jih ustvarimo ali kasneje s funkcijo namesS to funkcijo jih tudi priklicemo Imena lahko uporabimo namesto indeksov zadostopanje do posameznih elementov

gt alt-13 ustvarimo vektor brez imen (za elemente)

gt a elementi nimajo imen

[1] 1 2 3

gt names(a)lt-c(abc)

gt a cleni imajo sedaj imena ki se izpisejo nad njimi

a b c

1 2 3

gt a[b] izberemo 2 element - b

b

2

gt ce zelimo izbrati vec kot en element moramo uporabiti

gt vektor imen

gt a[c(ac)]

a c

1 3

gt names(a)lt-NULL imena izbrisemo

gt blt-c(1a=1b=23 element=3) imena podamo ob nastanku

gt ce imamo v imenih presledke ali ce se zacnejo s stevilko

gt jih moramo dati v narekovaje sicer ni nujno

gt b

1a b 3 element

1 2 3

gt names(b)[2]lt-bbb spremenimo ime 2 clena

gt b

26 13 Podatkovne strukture

1a bbb 3 element

1 2 3

133 Nominalne in ordinalne spremenljivke

Ceprav bi nominalne spremenljivke lahko predstavili z znakovno spremenljivko (cha-racter) je priporocljivo da za njih uporabljamo tip factor Tak pristop je varnejsi(definiramo lahko kategorije) in ucinkovitejsi Ustvarimo jih s funkcijo factor ozi-roma spremenimo iz znakovnih spremenljivk s funkcijo asfactor

Zelo pomembni argumenti funkcije factor so

levels Vrednosti ki jih spremenljivka lahko zavzame Vrednosti morajo torej bititake kot vrednosti originalne spremenljivke Ce je argument podan se vse vre-dnosti spremenljivke ki niso tu navedene izlocijo Ce je vrednost argumentaordered=TRUE argument poda tudi vrstni red vrednosti Privzeta vrednostso vse vrednosti spremenljivke v takem vrstnem redu kot se prvic pojavijo(kar je zelo pomembno za pravilno uporabo argumenta labels)

labels Imena za posamezne vrednosti Prvo ime je ime vrednosti ki je kot prvapodana v levels drugo ime za vrednost ki je podana kot druga v levels

Uporaba labels brez levels ni priporocljiva Ce pa ze uporabljamolabels brez levels se moramo zavedati kaksna je privzeta vrednost zalevels (glejte zgoraj)

ordered Ta pove ali naj bo faktor rdquourejenrdquo torej ordinalna spremenljivka

Opozorilo

Pravilen tip spremenljivke je pri R-ju zelo pomemben ker se uposteva tudi pristatisticnih modelih Pri linearni regresiji na primer R iz spremenljivke tipafactor (nominalne) samodejno tvori umetne spremenljivke

Nekaj primerov

gt factor(rep(13times=3))

[1] 1 2 3 1 2 3 1 2 3

Levels 1 2 3

gt nominalna spremenljivka z vrednostmi 1 2 in 3

gt factor(rep(13times=3)levels=13 labels=c(abc))

[1] a b c a b c a b c

Levels a b c

gt nominalna spremenljivka z vrednostmi a b in c

gt factor(rep(13times=3)levels=c(abc))

1 poglavje ndash Uvod v R 27

[1] ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt

Levels a b c

gt vse vrednosti so NA - ce je levels specificiran

gt se kot veljavne vrednosti v originalni spremenljivki

gt upostevajo samo vrednosti v levels

gt factor(rep(13times=3)labels=c(abc))

[1] a b c a b c a b c

Levels a b c

gt sicer kot prej z levels a bolj nevarno

gt npr ce bi bila prva vrednost 3 bi a predstavljal 3

gt factor(rep(13times=3)labels=c(abc)levels=c(312))

[1] b c a b c a b c a

Levels a b c

gt ker je podal levels v drugacnem vrstnem redu

gt sedaj a predstavlja 3

gt

gt factor(rep(13times=3)ordered=TRUE)

[1] 1 2 3 1 2 3 1 2 3

Levels 1 lt 2 lt 3

gt ordinalna spremenljivka

gt factor(rep(13times=3)ordered=TRUElevels=c(312))

[1] 1 2 3 1 2 3 1 2 3

Levels 3 lt 1 lt 2

gt drugacen vrstni red kategorij

gt factor(rep(13times=3)ordered=TRUElevels=c(312)

labels=c(cab))

[1] a b c a b c a b c

Levels c lt a lt b

gt drugacen vrstni red kategorij z imeni

gt imena smo nastavili tako da a predstavlja 1

gt f1lt-factor(rep(13times=3)levels=13labels=c(abc))

gt factor(f1ordered=TRUElevels=c(cab))

[1] a b c a b c a b c

Levels c lt a lt b

gt v 2 korakih a morda bolj razumljivo

134 Seznam

Seznam (ang oziroma v R-ju list) je posebna oblika vektorja kjer so elementilahko karkoli (katerikoli elementi se pravi posamezna stevila vektorji matrike po-datkovni okvirji seznami celo funkcije)

28 13 Podatkovne strukture

Ustvarimo jih s funkcijo list ali tako da s funkcijo c skupaj zlepimo sezname Doposameznih elementov dostopamo tako da njihove indekse ali imena navedemo meddvojne oglate oklepaje ndash [[]] Ce navedemo imena ali indekse v enojnih oglatihoklepajih [] potem je rezultat nov seznam z izbranimi elementi (tudi ce izberemosamo enega)

Ce imajo elementi imena lahko do njih dostopamo tudi tako da za imenom seznamanapisemo znak za dolar $ ki mu sledi ime elementa

Na seznamih sta zelo uporabni sestrski funkciji lapply in sapply Obe funkcijiposkusata neko funkcijo (ki jo podamo kot argument) uporabiti na vseh elementihseznama Razlika je v tem da poskusa sapply poenostaviti rezultat (v vektor alimatriko) lapply pa vedno vrne seznam

gt llt-list(a=c(upsabc)b=15c=list(aa=abb=57)d=list)

gt zdruzili smo razlicne elemente - zadnji je funkcija list

gt

gt l[[a]] izberemo 1 element - vektor

[1] ups abc

gt l[[1]] enako

[1] ups abc

gt l[a] naredimo seznam ki ima samo 1 element starega

$a

[1] ups abc

gt l[1] enako

$a

[1] ups abc

gt l[13] izberemo prve 3 elemente

$a

[1] ups abc

$b

[1] 1 2 3 4 5

$c

$c$aa

[1] a

$c$bb

[1] 5 6 7

gt l[[13]] ne deluje - oziroma ima drugacno funkcijo

gt

gt

gt l[[c]][[2]][1]

1 poglavje ndash Uvod v R 29

[1] 5

gt izbrali smo 3 element (c) osnovnega seznama

gt ki pa je tudi seznam

gt v tem seznamu smo izbrali 2 element ki je vektor

gt v vektorju smo izbrali 1 element (stevilko 5)

gt l[[3]][[2]][1] enako

[1] 5

gt l[[3]][[2]] izberemo 2 element v 3 elementu

[1] 5 6 7

gt l[[32]] tokrat deluje in je enako kot zgoraj

[1] 5 6 7

gt mocno odsvetujem

gt

gt l$a ce imamo imena lahko uporabimo tudi ta nacin

[1] ups abc

gt l$c$aa deluje tudi v vec stopnjah

[1] a

gt xlt-l$d(346) ce je element seznama funkcija jo

gt lahko tudi uporabimo

gt x

[[1]]

[1] 3

[[2]]

[1] 4

[[3]]

[1] 6

gt l da se spomnimo kaj je l

$a

[1] ups abc

$b

[1] 1 2 3 4 5

$c

$c$aa

[1] a

$c$bb

[1] 5 6 7

30 13 Podatkovne strukture

$d

function () Primitive(list)

gt lapply(lFUN=length) izracunamo dolzino vseh elementov

$a

[1] 2

$b

[1] 5

$c

[1] 2

$d

[1] 1

gt zdaj smo dobili seznam

gt

gt sapply(lFUN=length) sapply vrne vektor

a b c d

2 5 2 1

gt to je mogoce ker so bili vsi elementi posamezna stevila

gt paziti je treba da je funkcija taka da se jo da

gt uporabiti na vseh elementih

135 Matrika

Matrika je pravzaprav vektor (katerekoli oblike razen seznama) ki ima dve dimenziji(stolpce in vrstice) Do elementov dostopamo tako da v oglatih oklepajih navedemoindekse ali imena celic v obeh dimenzijah (locene z vejicami ndash [ab]) ki jih zelimoizbrati Ce zelimo v kateri dimenziji izbrati vse celice lahko indekseimena za todimenzijo izpustimo (vseeno moramo pisati vejico)

Ustvarimo jo s funkcijo matrix Spodaj je prikazan klic funkcije in v njem tudi vsiargumenti Vrednosti ki so tu pripisane argumentom so privzete vrednosti Vec opomenu argumentov lahko preberemo v pomocimatrix(data = NA nrow = 1 ncol = 1 byrow = FALSE dimnames = NULL)

Matriko lahko ustvarimo tudi tako da vektorje rdquozlepimordquoskupaj kot stolpce (funkcijacbind) ali vrstice (funkcija rbind)

gt matrix dostop do pomoci za razlago argumentov

gt Alt-matrix(data=124nrow=6) ustvarimo matriko s 6 vrsticami

gt in 4 stolpci -gt ker je 24

gt elementov v data

1 poglavje ndash Uvod v R 31

gt

gt A ustvarjena matrika

[1] [2] [3] [4]

[1] 1 7 13 19

[2] 2 8 14 20

[3] 3 9 15 21

[4] 4 10 16 22

[5] 5 11 17 23

[6] 6 12 18 24

gt A[32] izberemo 2 element v 3 vrstici

[1] 9

gt oziroma vse elemente ki so v 3 vrstici in 2 stolpcu

gt

gt A[3] izberemo 3 vrstico

[1] 3 9 15 21

gt A[2] izberemo 2 stolpec

[1] 7 8 9 10 11 12

gt A[13] izberemo prve 3 vrstice

[1] [2] [3] [4]

[1] 1 7 13 19

[2] 2 8 14 20

[3] 3 9 15 21

gt izberemo elemente ki so v 2 ali 3 vrstici in

gt v 1 ali 4 stolpcu

gt A[c(24)c(14)]

[1] [2]

[1] 2 20

[2] 4 22

gt alt-14

gt blt-25

gt Blt-cbind(ab) matrika z dvema stolpcema

gt B

a b

[1] 1 2

[2] 2 3

[3] 3 4

[4] 4 5

gt Clt-rbind(ab) matrika z dvema vrsticama

gt C

[1] [2] [3] [4]

a 1 2 3 4

b 2 3 4 5

32 13 Podatkovne strukture

R vsebuje tudi jezik za matricno racunanje Pri tem sta najpomembnejsa operatorza matricno mnozenje in funkcija solve ki omogoca izracun inverzne matrikeNekaj primerov

gt Alt-matrix(data=124nrow=6)

gt klasicno se operacije pri matriki izvajajo tako kot pri

gt vektorjih torej po elementih

gt A+2

[1] [2] [3] [4]

[1] 3 9 15 21

[2] 4 10 16 22

[3] 5 11 17 23

[4] 6 12 18 24

[5] 7 13 19 25

[6] 8 14 20 26

gt A2

[1] [2] [3] [4]

[1] 05 35 65 95

[2] 10 40 70 100

[3] 15 45 75 105

[4] 20 50 80 110

[5] 25 55 85 115

[6] 30 60 90 120

gt A2

[1] [2] [3] [4]

[1] 2 14 26 38

[2] 4 16 28 40

[3] 6 18 30 42

[4] 8 20 32 44

[5] 10 22 34 46

[6] 12 24 36 48

gt A+A

[1] [2] [3] [4]

[1] 2 14 26 38

[2] 4 16 28 40

[3] 6 18 30 42

[4] 8 20 32 44

[5] 10 22 34 46

[6] 12 24 36 48

gt AA tudi ce je operacija mnozenje

[1] [2] [3] [4]

[1] 1 49 169 361

[2] 4 64 196 400

1 poglavje ndash Uvod v R 33

[3] 9 81 225 441

[4] 16 100 256 484

[5] 25 121 289 529

[6] 36 144 324 576

gt to ni matricno mnozenje

gt

gt A(14)

[1] [2] [3] [4]

[1] 1 21 13 57

[2] 4 32 28 80

[3] 9 9 45 21

[4] 16 20 64 44

[5] 5 33 17 69

[6] 12 48 36 96

gt tako kot pri racunanju z vektorji se krajsi reciklira

gt torej se tolikokrat ponovi da doseze dolzino daljsega

gt

gt t(A) transponiramo matriko - zamenjamo vrstice in stolpce

[1] [2] [3] [4] [5] [6]

[1] 1 2 3 4 5 6

[2] 7 8 9 10 11 12

[3] 13 14 15 16 17 18

[4] 19 20 21 22 23 24

gt dim(A) ugotovimo dimenziji matrike

[1] 6 4

gt dim(t(A)) pri transponirani matriki sta ravno obrnjeni

[1] 4 6

gt A t(A) matricno mnozenje

[1] [2] [3] [4] [5] [6]

[1] 580 620 660 700 740 780

[2] 620 664 708 752 796 840

[3] 660 708 756 804 852 900

[4] 700 752 804 856 908 960

[5] 740 796 852 908 964 1020

[6] 780 840 900 960 1020 1080

gt A (14) matricno mnozenje z vektorjem

[1]

[1] 130

[2] 140

[3] 150

[4] 160

[5] 170

[6] 180

34 13 Podatkovne strukture

gt R samodejno poskrbi da je vektor ustrezen

gt (stolpicni ali vrsticni)

gt bolje je sicer ce za to poskrbimo sami

gt alt-matrix(14ncol=1) stolpicni vektor

gt A a

[1]

[1] 130

[2] 140

[3] 150

[4] 160

[5] 170

[6] 180

gt izracunamo lahko tudi inverz matrike

gt seveda samo kvadratne in take z nenicelno determinanto

gt AA lt- A t(A) naredimo kvadratno matriko

gt det(AA) izracunamo determinanto

[1] 5494284e-59

gt determinanta je prakticno nic zato te matrike ne moremo

gt uporabiti

gt

gt Blt-matrix(c(163737379)ncol=3)

gt naredimo kvadratno matriko katere determinanta ni 0

gt det(B) izracunamo determinanto

[1] -154

gt invBlt-solve(B) izracunamo inverz matrike B

gt shranili smo ga v invB

gt invB izpisemo

[1] [2] [3]

[1] 01428571 2727273e-01 -025974026

[2] 02142857 4205453e-18 -007142857

[3] -02142857 -9090909e-02 025324675

gt B invB dokaz da smo izracunali inverz

[1] [2] [3]

[1] 1000000e+00 8326673e-17 0

[2] -3053113e-16 1000000e+00 0

[3] -1387779e-16 1387779e-16 1

gt rezultat je enotska matrika

gt na diagonali so samo enice drugod povsod nicle

gt nekatere vrednosti niso 0 ampak skoraj 0 zaradi

gt nenatancnosti izracuna -gt nekaterih vrednosti v racunalniku

gt ne moremo predstaviti natancno

gt zapsmall(BinvB)

1 poglavje ndash Uvod v R 35

[1] [2] [3]

[1] 1 0 0

[2] 0 1 0

[3] 0 0 1

gt funkcija zapsmall vrednosti ki so skoraj 0 spremeni v 0

Podobno kot lahko na seznamih uporabljamo funkciji lapply in sapply lahko namatrikah uporabimo funkcijo apply Tej moramo poleg matrike in funkcije podatitudi dimenzijo (vrstice ali stolpce) na kateri zelimo funkcijo uporabiti

gt Alt-matrix(data=124nrow=6)

gt apply(X=AMARGIN=1FUN=sum) vsota po vrsticah

[1] 40 44 48 52 56 60

gt apply(X=AMARGIN=2FUN=sum) vsota po stolpcih

[1] 21 57 93 129

136 Polje ndash Array

Nadgradnja matrike je polje (ang array) Od matrike se razlikuje po tem daima poljubno stevilo dimenzij Za vec poglejte array Tudi na poljih je mogoceuporabiti funkcijo apply

137 Podatkovni okvir ndash Data frame

Podatkovni okvir je podatkovna struktura ki je obicajno najprimernejsa za shra-njevanje podatkovij Ima podobno vlogo in strukturo kot podatkovne datoteke priostalih statisticnih programih na primer SPSS-u V vrsticah so enote v stolpcih paspremenljivke oziroma rdquovektorjirdquo

Podatkovni okvirji imajo tako nekatere lastnosti matrik pa tudi nekatere lastnostiseznamov Po eni strani so podobni matrikam vendar pa lahko pri podatkovnihokvirjih stolpci hranijo razlicne tipe podatkov Se bolj so podobni seznamom sajpravzaprav so seznami kjer so vsi elementi vektorji enake dolzine Se pravi soseznami kjer je vsak element (v statisticnem smislu) neka spremenljivka

Tudi do elementov lahko dostopamo tako kot pri seznamih ali tako kot pri matrikah

Podatkovni okvir ustvarimo s funkcijo dataframe ali tako da vanj preoblikujemomatriko ali seznam (ki mora biti ustrezne oblike) s funkcijo asdataframe

gt ustvarimo nekaj vektorjev

gt generiramo vrednosti slucajno iz normalne porazdelitve

36 13 Podatkovne strukture

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt ustvarimo slucajen vektor z nestevilskimi elementi

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt izberemo vzorec s ponavljanjem velikosti 10

gt podatkilt-dataframe(x1x2x3)

gt podatki

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 c

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 10202235 a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt names(podatki) imena kot pri seznamu

[1] x1 x2 x3

gt dim(podatki) preverimo dimenzije kot pri matriki

[1] 10 3

gt colnames(podatki) preverimo imena stolpcev kot pri matriki

[1] x1 x2 x3

gt dimnames(podatki) kot pri matriki - imena stolpcev in vrstic

[[1]]

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

[[2]]

[1] x1 x2 x3

gt izbiramo stolpce

gt podatki[x1] kot pri matriki (stolpci so 2 dimenzija)

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt podatki$x1 kot pri seznamu

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt podatki[x1]

x1

1 1772191

2 1685902

3 1820382

4 1800462

1 poglavje ndash Uvod v R 37

5 1788490

6 1768851

7 1741618

8 1835689

9 1724907

10 1726332

gt kot pri seznamu - to je se vedno podatkovni okvir

gt

gt podatki[c(x1x3)]

x1 x3

1 1772191 c

2 1685902 c

3 1820382 b

4 1800462 b

5 1788490 b

6 1768851 a

7 1741618 b

8 1835689 c

9 1724907 c

10 1726332 a

gt kot pri seznamu - to je se vedno podatkovni okvir

gt podatki[[x1]] kot pri seznamu - to je zdaj vektor

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt vektor dobimo (eno samo spremenljivko ker smo uporabili

gt dvojne oglate oklepaje)

gt

gt vrstice

gt podatki[13] kot pri matriki (vrstice so 2 dimenzija)

x1 x2 x3

1 1772191 1169315 c

2 1685902 1009201 c

3 1820382 1206257 b

gt elemente

gt podatki[2x1] kot pri matriki

[1] 1685902

gt tako lahko tudi vec naenkrat

gt podatki[24c(x1x3)] kot pri matriki

x1 x3

2 1685902 c

3 1820382 b

4 1800462 b

gt podatki$x1[13] kot pri seznamu - samo v enem stolpcu naenkrat

38 14 Funkcije in programiranje

[1] 1772191 1685902 1820382

gt podatki[[x1]][13] enako na drug nacin

[1] 1772191 1685902 1820382

138 Vaje

Vaja 1

Recimo da imate sledece vrednosti 10 23 43 43 32 12

Izracunajte povprecje varianco in standardni odklon Za izracun vsote lahko upo-rabite funkcijo sum naprednejsih vgrajenih funkcij pa ne uporabljajte (za variancostandardni odklon )

Vaja 2

Recimo da imamo tri spremenljivke ndash y x1 in x2 ki imajo sledece vrednostiy 10 23 43 43 32 12x1 15 23 54 45 42 10x2 210 183 186 164 175 200

Recimo da je y odvisna spremenljivka ter da sta x1 in x2 neodvisni spremenljivkiS pomocjo matricnega racunanja izracunajte vrednosti regresijskih koeficientov na-povedanih vrednosti in vrednosti rezidualov Poskrbite da bodo vsi trije rezultativektorji (rezultat matricnega racunanja je matrika)

Vse tri rezultate shranite v seznam

Namig Matricna formula za izracun regresijskih koeficientov je

β = (XprimeX)minus1Xprimey

Matrika X mora biti sestavljena iz stolpca enic in po enega stolpca za vsako neod-visno spremenljivko Formula za izracun napovedi pa je

yprime = Xβ

14 Funkcije in programiranje

Zaporedje ukazov ki jih pogosto uporabljamo skupaj je smiselno zdruziti skupaj vfunkcijo To omogoca da jih zelo enostavno veckrat uporabimo na razlicnih podat-kih

1 poglavje ndash Uvod v R 39

141 Nekaj koristnih funkcij

Poleg statisticnih funkcij R vsebuje tudi veliko funkcij za manipulacijo s podatkiNavedimo le nekaj najpomembnejsih

sort Uredi enote (v stevilskem vektorju po velikosti)

order Vrne zaporedno stevilko vsake enote ce jih uredimo glede na dolocenvektor Zelo uporabno za rdquosortiranjerdquo podatkovnih okvirjev

naomit Iz podatkovnega okvirja izbrise vse enote (vrstice) kjer nastopajomanjkajoce vrednosti To nam omogoca da pri vseh spremenljivkah uposte-vajo iste enote

attributes Vrne lastnosti (ang rdquoattributesrdquo) nekega objekta

sample Vrne slucajen vzorec izbrane velikosti iz izbranega vektorja ali se-znama Privzeto je vzorcenje brez ponavljanja lahko pa tudi nastavimo vzor-cenje s ponavljanjem Ce zelimo lahko tudi nastavimo verjetnosti za posame-zne elemente

which Vrne indekse (zaporedne stevilke) pri katerih je vrednost izraza TRUE

(nek pogoj je izpolnjen)

Poleg funkcij so pomembni tudi operatorji ki so sicer tudi sami neke vrste funkcija

Operatorji primerjav == (je enako ndash dva enacaja) gt= lt= gt lt =(ni enako)

Operator negacije Uporablja se z logicnimi vrednostmi ndash TRUE spremeniv FALSE in obratno

in Operator vsebovanja Pove ali so elementi 1 vektorja vsebovani v 2elementu

gt x1 lt- podatki$x1

gt x1 prvotna razporeditev

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt sort(x1) vrednosti urejene po velikosti narascajoce

[1] 1685902 1724907 1726332 1741618 1768851 1772191

[7] 1788490 1800462 1820382 1835689

gt sort(x1 decreasing = TRUE) urejene po velikosti padajoce

[1] 1835689 1820382 1800462 1788490 1772191 1768851

[7] 1741618 1726332 1724907 1685902

gt order(x1) zaporedne st v takem vrstnem redu

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

gt da bi bile vrednosti urejene po velikosti

gt x1[order(x1)] enak rezultat kot sort(x1)

40 14 Funkcije in programiranje

[1] 1685902 1724907 1726332 1741618 1768851 1772191

[7] 1788490 1800462 1820382 1835689

gt podatki originalni vrstni red

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 c

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 10202235 a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt podatki[order(podatki$x3)]

x1 x2 x3

6 1768851 10202235 a

10 1726332 11636876 a

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

7 1741618 8816272 b

1 1772191 11693152 c

2 1685902 10092010 c

8 1835689 8434124 c

9 1724907 9802423 c

gt podatki urejeni po velikosti x3 (abc)

gt podatki[order(podatki$x3podatki$x1)]

x1 x2 x3

10 1726332 11636876 a

6 1768851 10202235 a

7 1741618 8816272 b

5 1788490 9900317 b

4 1800462 10295941 b

3 1820382 12062572 b

2 1685902 10092010 c

9 1724907 9802423 c

1 1772191 11693152 c

8 1835689 8434124 c

gt podatki urejeni najprej glede na x3

gt znotraj kategorij x3 pa glede na x1

gt

gt podatkiNAlt-podatki skopiramo podatke

1 poglavje ndash Uvod v R 41

gt dodajmo v podatke manjkajoce vrednosti NA

gt podatkiNA[3x1]lt-NA

gt podatkiNA[6x2]lt-NA

gt podatkiNA[2x3]lt-NA

gt podatkiNA[3x2]lt-NA

gt podatkiNA podatki z manjkajocimi vrednostmi

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 ltNAgt

3 NA NA b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 NA a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt podatkiNAomitlt-naomit(podatkiNA)

gt odstranimo podatke z manjkajocimi enotami

gt podatkiNAomit

x1 x2 x3

1 1772191 11693152 c

4 1800462 10295941 b

5 1788490 9900317 b

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt attributes(podatkiNAomit)$naaction

2 3 6

2 3 6

attr(class)

[1] omit

gt informacija o tem katere vrstice smo odstranili

gt

gt sample(x=1100size=5)

[1] 94 55 41 83 23

gt slucajni vzorec 5 enot iz vektorja 1100 brez ponavljanja

gt sample(x=15size=5) permutacija (ker porabimo vse enote)

[1] 4 3 1 5 2

gt abclt-c(abc)

gt sample(x=abcsize=10replace=TRUE) vzorec s ponavljanjem

[1] c b c b a a b a b c

42 14 Funkcije in programiranje

gt sample(x=abcsize=10replace=TRUE prob=c(060202))

[1] a a b c b a c a c c

gt vzorec s ponavljanjem - razlicne verjetnosti izbora

gt

gt abclt-c(abc)

gt rep(abctimes=3) vektor ponovimo 3-krat

[1] a b c a b c a b c

gt rep(abceach=3) vsak element ponovimo 3-krat

[1] a a a b b b c c c

gt rep(abceach=3times=2)

[1] a a a b b b c c c a a a b b

[15] b c c c

gt vsak element ponovimo 3-krat vektor 2-krat

gt

gt

gt xlt-sample(x=abcsize=10replace=TRUE prob=c(060202))

gt x

[1] b b c a a a c c a a

gt which(x==a) na katerih mestih so a-ji

[1] 4 5 6 9 10

gt x[which(x==a)]

[1] a a a a a

gt x in c(bc)

[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

[10] FALSE

gt (x==a) enako

[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

[10] FALSE

Poleg zgornjih je treba omeniti se funkcije za generiranje psevdoslucajnih stevil Rvsebuje mnogo funkcij za generiranje slucajnih vrednosti iz razlicnih porazdelitevNaj omenimo samo najpomembnejse

rnorm normalna porazdelitev

runif enakomerna porazdelitev

rbinom binomska porazdelitev

rbeta beta porazdelitev (zelo fleksibilna)

rexp eksponentna porazdelitev

rf F porazdelitev

rt t porazdelitev

r Se kar nekaj drugih porazdelitev Ime funkcije se vedno zacne z rdquorrdquo sledioznaka (ime ali okrajsava) za porazdelitev

1 poglavje ndash Uvod v R 43

Vse zgoraj navedene funkcije kot prvi argument sprejmejo n ki pove koliko stevilzelimo generirati Poleg tega kot dodatne argumente sprejmejo parametre porazde-litve Pozor Porazdelitvene funkcije so lahko definirane drugace kot ste navajeni

Vse zgoraj navedene funkcije imajo tudi rdquosestrerdquo ki se namesto z rdquorrdquo zacnejo z

d funkcija gostote

p (kumulativna) porazdelitvena funkcija

q kvantilna funkcija ndash vrne vrednost ki pripada dolocnem kvantilnem rangu

Pomembna je tudi funkcija setseed kjer lahko nastavimo seme (koristno ce bi sekdaj zeleli generirati enake vrednosti)

Spodaj je nekaj primerov za generiranje slucajnih stevil iz razlicnih porazdelitev

gt setseed(1)

gt rnorm(n=5)

[1] -06264538 01836433 -08356286 15952808 03295078

gt 5 slucajnih stevil iz standardizirane normalne porazdelitve

gt rnorm(n=5 mean=10sd=2) drugacno povprecje in sd

[1] 8359063 10974858 11476649 11151563 9389223

gt rexp(n=10rate=05) 10 stevil iz eksponentne porazdelitve

[1] 0294092 2781470 1524060 2475207 8847868 2109086

[7] 2070488 3752070 1309493 0673867

gt rbeta(n=5 shape1=1shape2=1)

[1] 02057601 02762891 01790537 02170672 04702804

gt kovanec vrzemo 100-krat

gt predvidevamo da je posten (prob=05)

gt kolikokrat pade cifra

gt poskus ponovimo 10-krat

gt rbinom(n=10 size=100 prob=05)

[1] 46 56 50 52 42 44 49 54 39 52

142 Definiranje funkcij

Funkcija je zaporedje ukazov ki se izvrsi na vhodnih parametrih (ce jih funkcijaima) Funkcija lahko kaj vrne ni pa nujno Osnovna sintaksa funkcije jeime_funkcije lt-function(argumenti)

izraz1izraz2izraz3return(nek_objekt)

44 14 Funkcije in programiranje

Izrazi so lahko katerikoli veljavni R izrazi Ukaz return ni nujen Ce ukaza return

ni funkcija vrne rezultat zadnjega izracuna Ce zelimo da funkcija ne vrne nicesar(ce jo uporabljamo zaradi rdquostranskih ucinkovrdquo kot je na primer risanje pisanje vdatoteko ) potem moramo eksplicitno napisati return(NULL) Funkcija se vednozakljuci pri ukazu return (ce ta obstaja) Karkoli za njim se ne izvede

Argumente navedemo tako da navedemo njihova imena Ce jim zelimo pripisati tudiprivzete vrednosti (le-te se uporabijo ce ob klicu ne navedemo drugih) navedemoargumente kot

ime1=privzeta_vrednost1 ime2=privzeta_vrednost2 itd

Poseben argument je tudi argument rdquordquo Ce vsebuje funkcija ta argument sprejmetudi katerikoli argument ki ni eksplicitno naveden v definiciji funkcije uporablja pase predvsem za posredovanje argumentov funkcijam znotraj funkcije

V funkciji seveda lahko uporabimo tudi druge funkcije in tudi funkcijo ki jo pisemoSlednje je lahko zelo mocno orodje a tudi zelo nevarno (nujna je uporaba pogojev)

gt funkcija ki izracuna ploscino kroga

gt plKrogalt-function(r)

Funkcija ima samo en argument in sicer polmer kroga

Zamiki niso potrebni je pa koda tako preglednejsa

pllt-pir^2 pi je vrednost konstante pi

return(pl) Ta vrstica pravzaprav ni nujna

saj funkcija tudi sicer vrne pl

ker je to rezultat zadnjega izracuna

je pa to dobra praksa

gt plKroga(10) poklicemo funkcijo

[1] 3141593

gt rezultat lahko tudi shranimo

gt plR10lt-plKroga(10)

gt plR10

[1] 3141593

143 Programski tok

Pri kateremkoli programu je zelo pomembno usmerjanje programskega toka

V ta namen so v R-ju na voljo sledeci ukazi

if Pogojni stavek Telo stavka se izvrsi ce je pogoj izpolnjen oziroma ce je vrednostpogoja TRUE Ukaz ima oblikoif(pogoj)izraz1 else izraz2

1 poglavje ndash Uvod v R 45

pogoj je nekaj kar ima kot rezultat TRUE ali FALSE Ce je vrednost pogojaTRUE se izvede izraz1 sicer pa izraz2 Pozor R smatra 0 kot FALSE vseostale stevilke pa kot TRUEelse del ni obvezen Ce ga ni se v primeru da je vrednost pogoja FALSE neizvede nic

while Pogojno ponavljanjezanka Telo stavka se ponavlja dokler je pogoj izpol-njen oziroma dokler je vrednost pogoja TRUE Ukaz ima oblikowhile(pogoj)izraz

repeat Neskoncno ponavljanje oziroma neskoncna zanka Telo stavka se ponovidokler znotraj ne naleti na ukaz break (glejte naprej) Ukaz ima oblikorepeatizraz

Opozorilo

Ukaz repeat je zelo nevaren Nujno moramo v izraz zapisati ukaz breaksicer dobimo neskoncno zanko (smrt vsakega programa)

for Ponavljanjezanka preko zaporedja Telo stavka se ponavlja tolikokrat dazanka rdquoobdelardquo vse elemente zaporedja Ukaz ima oblikofor(spremenljivka in zaporedje) izrazizraz se ponavlja dokler spremenljivka ne pride cez vse elemente zaporedjaZanka se torej ponovi tolikokrat kolikor je elementov zaporedjaspremenljivka ima v vsaki ponovitvi drugacno vrednost vrednost naslednjegaelementa iz zaporedjazaporedje je ponavadi nek vektor (lahko tudi seznam) zelo pogosto kar rezultatfunkcije seq oziroma izraza ab

break Prekinitev zanke Ukaz se uporablja le znotraj zank in sprozi takojsnjo pre-kinitev zanke

next Naslednji Ukaz se uporablja le znotraj zank in sprozi zacetek naslednje po-novitve (trenutna ponovitev se na mestu ukaza konca)

Uporaba ukazov break in next je smiselna le znotraj if stavka (ko se ukaza izvedetale pod dolocenim pogojem) saj zanka sicer nima smisla

gt xlt-1

gt if(x==1)print(ok)elseprint(ups)

[1] ok

gt pogoj je bil izpolnjen zato se izpise ok

gt

gt xlt-2

gt if(x==1)print(ok)elseprint(ups)

[1] ups

46 14 Funkcije in programiranje

gt pogoj ni bil izpolnjen zato se izpise ups

gt

gt for(i in 15)

print(i)

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt xlt-1

gt while(xlt=5)

print(x)

xlt-x+1

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt xlt-1

gt repeat

print(x)

xlt-x+1

if(xgt5) break

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt for(i in 15)

if(i2==0) next

print(i)

[1] 1

[1] 3

[1] 5

1 poglavje ndash Uvod v R 47

144 Vaje

Vaja 1

Za probleme iz vaj v prejsnjem podpoglavju (podpoglavje Podatkovne strukturepodpodpoglavje 138 na strani 38) napisite funkcije tako da jih bo moc uporabitina poljubnem stevilu enot Prikazite uporabo

Vaja 2

Z uporabo zank napisite funkcijo za izracun vsote vseh elementov vektorja

Vaja 3

Napisite funkcijo ki izracuna fakulteto poljubnega naravnega stevila Poskusitenapisati funkcijo z zankami in z uporabo rekurzivne funkcije (funkcije v funkciji)

Namig Fakulteto stevila izracunamo po naslednji funkciji

n = n middot (nminus 1) middot (nminus 2) middot middot middot 2 middot 1 =nprodk=1

k = n middot (nminus 1)

Pozor Fakulteta hitro postane zelo veliko stevilo zato funkcije preizkusajte namanjsih stevilih (recimo do 10)

Vaja 4

Napisite funkcijo za izracun mediane

Namig 1 Za ureditev enot po vrsti lahko uporabite funkcijo sort

Namig 2 Za ugotovitev ali je stevilo enot sodo ali liho pride prav operator kivam vrne ostanek pri deljenju

15 Delo z datotekami

Nekaj dela z datotekami (shranjevanje in nalaganje delovnega okolja in zgodovine)smo ze obdelali v podpodpoglavju 125 Tu pa si bomo pogledali predvsem funkcijeza branje in pisanje podatkov

48 15 Delo z datotekami

151 Tekstovne datoteke

Tekstovne datoteke so datoteke ki jih lahko beremo z urejevalniki besedila (naprimer TextPad Notepad Notepad++ ) in ne z urejevalniki dokumentov kotso Microsoft (Office) Word ali OpenOfficeorg Writer Ponavadi so podatki urejenitako da so v stolpcih spremenljivke v vrsticah pa enote Stolpci so loceni z nekimznakom ki je lahko tabulator (t) podpicje () vejica () presledek ( )

Za branje tekstovnih datotek se najpogosteje uporablja funkcija readtable innjene izpeljanke Izpeljanke so identicne originalni funkciji le da imajo drugacneprivzete vrednosti ki so primerne za branje dolocenih formatov tekstovnih dato-tek Predvsem se pogosto uporabljata funkciji (za ostale glejte pomoc za funkcijoreadtable)

readcsv2 Za branje datotek rdquocsvrdquo Na koncu imena je rdquo2rdquo ker je to verzija zadatoteke rdquocsvrdquo ki za locilo uporabljajo podpicje () vejico () pa za decimalnolocilo kot je standard pri nas Obstaja tudi verzija brez koncnice rdquo2rdquo kisledi ameriskemu standardu Take datoteke znajo brati in pisati programi zadelo s preglednicami na primer Excel Tak program je obicajno tudi privzetiprogram za odpiranje takih datotek

readdelim2 Za branje datotek ki so locene z tabulatorjem (t) Na koncu imenaje rdquo2rdquo ker je to verzija za datoteke ki za decimalno locilo uporabljajo vejico() kot je standard pri nas Obstaja tudi verzija brez rdquo2rdquo ki sledi ameri-skemu standardu Tudi take datoteke znajo brati in pisati programi za delo spreglednicami na primer Excel

Funkcija readtable in njene izvedenke kot glavni argument sprejmejo ime datoteke(s potjo ce je potrebno) vrnejo pa podatkovni okvir Imajo se vrsto argumentov skaterimi je mogoce dolocati kako se obravnavajo znakovne spremenljivke kodiranje

Sedaj bomo prebrali tekstovno datoteko rdquoizborESSn30txtrdquo Njenih prvih nekaj vr-stic je videti takole

spol izobrazba kraj placa

1 zenski 12 kmetija 170

2 moski 12 manjse mesto 140

3 moski 11 manjse mesto 130

4 zenski 14 predmestje 150

V 1 vrstici so imena spremenljivk v 1 stolpcu pa rdquoimenardquo vrstic Prva vrstica(imena spremenljivk) se zacne kar s prvo spremenljivko (in ne z imenom stolpca zaimena vrstic) kar funkcija readdelim (obe verziji saj se razlikujeta le v decimal-nem locilu) tudi pricakuje Stolpci so loceni s tabulatorjem ceprav to iz zgornjegazapisa ni vidno v boljsih urejevalnikih besedila pa je mogoce nastaviti da so vidni

1 poglavje ndash Uvod v R 49

Narekovaji okoli nenumericnih spremenljivk sicer niso nujni (kadar so vrednosti locenes tabulatorji) so pa priporocljivi

gt izborlt-readdelim(file=izborESSn30txt)

gt izbor[14] izpisemo samo zgornje vrstice

spol izobrazba kraj placa

1 zenski 12 kmetija 170

2 moski 12 manjse mesto 140

3 moski 11 manjse mesto 130

4 zenski 14 predmestje 150

gt sapply(izborclass) pogledamo tipe spremenljivk

spol izobrazba kraj placa

factor integer factor integer

Ko smo prebrali podatke smo izpisali tipe spremenljivk Nenumericne spremenljivkeso v R-ju postale spremenljivke tipa factor Ce tega ne zelimo ce zelimo daso tipa character lahko to spremenimo z argumentom stringsAsFactors ki ganastavimo na FALSE

Za pisanje tekstovnih datotek se najpogosteje uporablja funkcija writetable innjene izpeljanke (writecsv in writecsv2)

Podatki ki jih zelimo zapisati s funkcijo writetable morajo biti v obliki matrikeali podatkovnega okvirja

Za bolj splosno branje tekstovnih datotek (v obliki tabel) se uporablja funkcija scanza pisanje takih datotek pa funkcija cat Za vec informacij glejte njuno pomoc

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt in se eno nenumericno

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt izberemo vzorec s ponavljanjem velikosti 10

gt podatkilt-dataframe(x1x2x3)

gt writetable(x=podatki file=podatkitxt sep = t

dec = rownames = FALSE)

gt sep = t - locilo stolpcev je tabulator

gt dec = - decimalno locilo je vejica

gt rownames = FALSE - imena vrstic ne shranimo

gt tako datoteko lahko preberemo z readdelim2

50 15 Delo z datotekami

152 Shranjevanje in branje objektov

Za shranjevanje R-jevih objektov je najprimernejsa funkcija save Je zelo podobnafunkciji saveimage ki smo jo spoznali v podpodpoglavju 125 Razlika je le v temda funkcija save shrani le izbrane objekte saveimage pa vse objekte v delovnemokolju

Objekte ki jih shranimo s funkcijo save lahko preberemo s funkcijo load niso paprimerni za branje z drugimi programi ali z urejevalniki besedila Obicajno damodatotekam koncnico RData

gt save(podatki file=podatkiRdata)

gt rm(podatki)

gt ls() objekta podatki ni vec

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] l n plKroga

[19] plR10 podatkiNA podatkiNAomit

[22] x x1 x2

[25] x3

gt load(file=podatkiRdata)

gt podatki so spet na voljo

x1 x2 x3

1 1742265 9081960 b

2 1808787 10511680 a

3 1798966 8305955 c

4 1711787 12149536 b

5 1710475 12970600 b

6 1785521 9449168 a

7 1813797 8433798 a

8 1752136 10854579 b

9 1821678 9797418 b

10 1787867 13602427 a

Drug nacin ki pa ne deluje dobro pri cisto vseh objektih je uporaba funkcije dump zapisanje in source za branje Funkcija dump poskusa predstaviti objekt z besedilomin to besedilo zapisati v tekstovno datoteko Deluje vedno kadar je mogoce objektpredstaviti z besedilom Ta nacin je posebej primeren za shranjevanjenalaganjefunkcij funkcija source pa tudi za nalaganje kode ki smo jo na primer napisali vurejevalniku besedila Obicajno damo datotekam koncnico R

Funkcija dump je uporabna tudi ko zelimo videti predstavitev objekta z besedilom

1 poglavje ndash Uvod v R 51

gt kvadratlt-function(x)x^2

gt ls()

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] kvadrat l n

[19] plKroga plR10 podatki

[22] podatkiNA podatkiNAomit x

[25] x1 x2 x3

gt dump(list=c(podatkikvadrat) file=raznoR)

gt rm(list=c(podatkikvadrat))

gt ls() objektov podatki in kvadrat ni vec

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] l n plKroga

[19] plR10 podatkiNA podatkiNAomit

[22] x x1 x2

[25] x3

gt source(file=raznoR)

gt ls() pa sta nazaj

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] kvadrat l n

[19] plKroga plR10 podatki

[22] podatkiNA podatkiNAomit x

[25] x1 x2 x3

153 Branje in pisanje datotek drugih programov

R vsebuje tudi paketek ( foreign) ki omogoca branje in pisanje datotek drugih sta-tisticnih programov Tako med drugim bere podatke iz formata sledecih programov

bull SPSS

bull Stata

52 15 Delo z datotekami

bull SAS

bull Weka

bull Octave

bull Minitab

Zaradi razsirjenosti SPSS-a v druzboslovju v tem ucbeniku najveckrat uporabljamfunkcijo readspss ki omogoca branje SPSS-ovih datotek obstajajo pa tudi po-dobne funkcije za ostale popularne statisticne programe (glejte zgoraj)

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign)

gt preberemo podatke

gt egolt-readspss(egoomr00_f2savtodataframe=TRUE

usevaluelabels = FALSEusemissings=TRUE)

gt ego[1319] izpisemo prve tri enote in prvih 9 spremenljivk

EGOID Q1A Q2A Q3A Q4A DQ1A DQ2A DQ3A DQ4A

1 1001 5 NA 5 NA 4 NA 4 NA

2 1003 5 6 6 6 5 6 6 6

3 1004 6 3 5 5 6 NA 5 5

Najpomembnejsi argumenti funkcije readspss so

todataframe Ce ga nastavimo na TRUE bo rezultat funkcije podatkovni okvir(kar ponavadi zelimo) sicer pa seznam (privzeta vrednost)

usevaluelabels Ali naj R uposteva opise vrednosti (rdquovalue labelsrdquo) iz SPSS-ove datoteke Ce ga nastavimo na TRUE potem bodo vse spremenljivke kiimajo nastavljene opise vrednosti obravnavane kot faktorji torej kot nomi-nalne spremenljivke Ne glede na vrednost argumenta se opisi vrednosti shra-nijo v rdquoattributerdquo z imenom rdquovalue labelsrdquo Do njih lahko dostopamo prekoukaza attr(xvaluelabels) kjer je x spremenljivka (npr ego$E_SPOL)za katero zelimo prebrati opise Ce smo uporabili usevaluelabels=FALSEje za spremembo spremenljivke v faktor uporabna funkcija makeFactorLabels

iz datoteke rdquoUcbenikR-funkcijeRrdquo

maxvaluelabels Argument je uporaben le kadar je usevaluelabels=TRUEV tem primeru lahko tudi nastavimo koliko razlicnih vrednosti ima lahkospremenljivka (v podatkih) da se se uporabijo opisi ndash da se spremenljivkaobravnava kot nominalna spremenljivka

usemissings Ali naj se upostevajo kode za manjkajoce vrednosti Ce je TRUE sevse SPSS-ove rdquouporabniske manjkajoce vrednostirdquopretvorijo v NA OpozoriloTa pretvorba ne deluje vedno v redu zato je dosti varneje ce uporabniskemanjkajoce vrednosti pretvorimo v sistemske manjkajoce vrednost v SPSS-u

1 poglavje ndash Uvod v R 53

V tem ucbeniku beremo vse podatke iz SPSS-ovega formata Razlog za izbor tegaformata je predvsem v razsirjenosti uporabe tega formata in tudi samega programaSPSS na Fakulteti za druzbene vede Univerze v Ljubljani pa tudi v obstoju odpr-tokodnega programa PSPP (httpwwwgnuorgsoftwarepspp) ki omogocabranje in pisanje podatkov v tem formatu Seveda pa je moc podatke iz ADP pre-nesti tudi v drugih formatih in jih prebrati v R Vecina ukazov v primerih v temucbeniku bo delovala neodvisno od izvornega zapisa vendar pa mora uporabnik vtem primeru sam poskrbeti za dostop do dolgih imen spremenljivk ter imen vredno-sti spremenljivk Funkcija makeFactorLabels denimo ne bo vec delovala Vendarpa njena uporaba v nekaterih primerih niti ni potrebna na primer pri branju izStatinega (dta) formata

V nadaljevanju sledi se primer branja podatkov is Statinega formata (dta) Pre-brali bomo enake podatke kot so uporabljeni v uvodnem primeru oziroma zgornjemprimeru za branje s funkcijo readspss le da smo te podatke iz ADP-ja prenesliv Statinem formatu Tokrat bomo uporabili funkcijo readdta ki je za uporabose preprostejsa saj obicajno zelen rezultat dobimo ze s privzetimi vrednostmi ar-gumentov Tako izpostavimo le argument convertfactors ki nadzoruje ali najse stevilske spremenljivke z opisi vrednosti shranijo kot faktorji Privzeta vrednostTRUE kot faktorje shrani tiste spremenljivke ki imajo definirane opise za vse vre-dnosti Pri vrednost FALSE se nobena spremenljivka ne shrani kot faktor (kot prireadspss pri vrednosti usevaluelabes=FALSE) pri vrednosti NA pa se vse spre-menljivke ki imajo za vsaj kaksno vrednost definiran opis shranijo kot faktorji (kotpri readspss pri vrednosti usevaluelabes=TRUE) Funkcija readdta vrnepodatkovni okvir Dolga imena spremenljivk so shranjena v atributu varlabels

vrnjenega podatkovnega okvirja opisi vrednosti spremenljivk pa v atributu la-

beltable

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign) ni potrebno ker bi moral biti ze nalozen

gt preberemo podatke s privzetimi nastavitvami

gt ki so obicajno primerne

gt egoStatalt-readdta(egoomr00_f2dta)

gt egoStata[1319]

EGOID Q1A Q2A

1 1001 precej zadovoljen-a ltNAgt

2 1003 precej zadovoljen-a zelo zadovoljen-a

3 1004 zelo zadovoljen-a malo nezadovoljen-a

Q3A Q4A

1 precej zadovoljen-a ltNAgt

2 zelo zadovoljen-a zelo zadovoljen-a

3 precej zadovoljen-a precej zadovoljen-a

DQ1A DQ2A DQ3A

54 15 Delo z datotekami

1 malo zadovoljen-a ltNAgt malo zadovoljen-a

2 precej zadovoljen-a zelo zadovoljen-a zelo zadovoljen-a

3 zelo zadovoljen-a ltNAgt precej zadovoljen-a

DQ4A

1 ltNAgt

2 zelo zadovoljen-a

3 precej zadovoljen-a

gt izpisemo prve enote in prvih 9 spremenljivk

gt

gt preberemo ponovno - tokrat brez pretvorbe v faktorje

gt egoStata2lt-readdta(egoomr00_f2dta convertfactors=FALSE)

gt egoStata2[1319]

EGOID Q1A Q2A Q3A Q4A DQ1A DQ2A DQ3A DQ4A

1 1001 5 NA 5 NA 4 NA 4 NA

2 1003 5 6 6 6 5 6 6 6

3 1004 6 3 5 5 6 NA 5 5

gt zopet izpisemo prve tri enote in prvih 9 spremenljivk

gt

gt attributes(egoStata2)$varlabels[13]

[1] ID ega

[2] zadovoljstvo z materialno oporo-1merjenje

[3] zadovoljstvo z informacijsko oporo-1merjenje

gt attributes(egoStata2)$labeltable[13]

$Q1A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

$Q2A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

$Q3A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

1 poglavje ndash Uvod v R 55

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

Za pisanje datotek ki jih zelimo uvoziti v SPSS bi sicer glede na opis funkcije lahkouporabili funkcijo writeforeign z argumentom package = rsquoSPSSrsquo Ta funkcijagenerira dve tekstovni datoteki podatkovno in datoteko s sintakso Vendar paSPSS pri branju zal javi napako Tudi ce bi postopek deloval je lazje zapisatidatoteko v formatu programa Stata s funkcijo writedta saj lahko ta format uvozitudi SPSS

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt podatkilt-dataframe(x1x2x3)

gt library(foreign) ni potrebno ker bi moral biti ze nalozen

gt writedta(dataframe=podatki file=podatkidta)

154 Vaje

Vaja 1

Ustvarite podatkovno datoteko rdquocsvrdquo (recimo v Excel-u) V datoteko vpisite vsaj10 enot in vsaj 4 spremenljivke (vsaj eno numericno in eno nominalno opisno)Datoteko si oglejte tudi z urejevalnikom besedila Datoteko preberite z R-jem

Vaja 2

Poljubne podatke shranite v tekstovno datoteko in jo potem poglejte v urejevalnikubesedila in programu za delo s preglednicami Lahko izberete tudi podatke ki sodostopni v R-ju preko funkcije data (napisite data() za seznam podatkovij)

Vaja 3

Uvozite podatke iz poljubne SPSS-ove datoteke Poskrbite da boste dobili podat-kovni okvir in da bodo uporabniske manjkajoce vrednosti opredeljene kot manjka-joce

56 16 Risanje

Vaja 4

Podatke iz Vaje 2 (ali kaksne druge) izvozite tako da jih boste lahko odprli z SPSS-om Med podatki naj bo vsaj ena spremenljivka tipa factor Podatke odprite zSPSS-om So pri spremenljivki tipa factor (v R-ju) vidni opisi vrednosti v SPSS-u

16 Risanje

R ima zelo dobro podprto grafiko oziroma risanje grafov Za vpogled v to kaj vse jemogoce narisati z R-jem in tudi za ideje kako kaj narediti sta zelo koristni stranirdquoR Graphical Manualrdquo (httpbm2genesnigacjpRGM2 in rdquoR graph galleryrdquohttpaddictedtorfreefrgraphiques

161 Visokonivojske funkcije za risanje

Visokonivojske funkcije za risanje so tiste ki ustvarijo nov graf Kasneje bomospoznali tudi nizkonivojske ki le dodajo elemente na obstojeci graf Locnica medvisoko- in nizko-nivojskimi funkcijami sicer ni ostra saj se nekatere funkcije lahkouporabljajo v obeh vlogah

Osnovna funkcija za risanje v R-ju je plot Delovanje funkcije se razlikuje glede natip objekta ki ji ga posredujemo kot argument Funkcija namrec poskusa pripra-viti graf ki je primeren vhodnemu argumentu Tu ne bomo mogli pregledati vsehmoznosti zato navajam le nekaj primerov

gt uporabimo podatke iz izborESSn30txt

gt izborlt-readdelim(file=izborESSn30txt)

gt sapply(izborclass) ponovimo kaksne tipe podatkov imamo

spol izobrazba kraj placa

factor integer factor integer

gt plot(izbor$placa)

gt na y osi je placa na x pa indeksi (zaporedne stevilke enot)

gt plot(izbor$placatype=o)

gt plot(izbor$spol) strukturni stolpci ker je spol nominalka

gt plot(placa~spoldata=izbor) skatlasti grafikon (z zavihki)

gt plot(spol~placadata=izbor) porazdelitev po razredih

gt plot(kraj~spoldata=izbor)

gt plot(placa~izobrazbadata=izbor)

gt pod data navedemo podatkovni okvir kjer se nahajajo sprem

gt razsevni grafikon - odvisnost place od izobrazbe

gt plot(placa~izobrazbadata=izbor)

1 poglavje ndash Uvod v R 57

gt plot(izbor) razsevni grafikon za vsak par spremenljivk

gt lmFitlt-lm(placa~izobrazba data=izbor) linearna regresija

gt plot(lmFit)

gt plot(placa~izobrazbadata=izborpch=asnumeric(spol)

col=spol cex=2 main = Razsevni grafion

xlab=Izobrazba v letih ylab = Placa v 1000 sit)

Kot smo videli funkcija plot vedno skusa narisati nekaj primernega tudi takrat kosmo kot argument uporabili rezultat linearne regresije Ta funkcija in vecina funk-cij za risanje sprejme vec argumentov s katerimi lahko prilagajamo risanje (glejtepredvsem daljsi primer na strani 59) Nekaj najpogostejsih

type Tip grafikona Relevantno pri razsevnih grafikonih ndash tocke crta tocke pove-zane s crto

data Iz katerega podatkovnega okvirja (ali seznama) naj uporabi podatke Pred-vsem se uporablja kadar je osnovni argument formula

main Glavni naslov

xlab ylab Ime osi x in y

pch Simbol ki naj se uporablja za risanje tock Lahko ima samo eno vrednost alipa je vrednost vektor ki za vsako tocko poda simbol

col Barva (ponavadi tocke) Podobno kot zgoraj

cex Velikost tocke Podobno kot zgoraj

xlim ylim Meje risanja na osi x in y (se nismo uporabili bomo kasneje)

Obstaja se veliko dodatnih argumentov s katerimi je mogoce po zelji prilagoditiprikaz Za pregled teh argumentov si poglejte pomoc za funkciji plotdefault inpar

Predvsem argumente slednje je treba pogosto nastaviti s klicem funkcije par predklicem izbrane funkcije Tak zelo uporaben argument je na primer argument mfrowoziroma mfcol ki nam omogoca da na eno sliko narisemo vec grafov Primer je nasliki 19 (koda sledi v naslednjem primeru)

Vseeno pa privzeti graf ni vedno tisti ki ga zelimo Poglejmo si se dodatne funkcijeza risanje grafov

hist Histogram

barplot Stoplci Pozor Za klasicne strukturne stolpce mora biti argument tabela(le-to dobimo s funkcijo table)

pie Strukturni krog Enako kot zgoraj

boxplot Skatlasti grafikon (z zavihki)

curve Risanje krivulj

58 16 Risanje

Slika 19 Strutkutna stolpca in krog na eni sliki

moski zenski

05

1015 moski

zenski

gt curve(dnorm(x)xlim=c(-44))

gt standardna normalna porazdelitev

gt

gt hist(izbor$placa) histogram - frekvence

gt hist(izbor$placa freq=FALSE) frekvence - gostota

gt boxplot(izbor$placa) ena skupina

gt boxplot(placa~spol data=izbor) dve skupini

gt par(mfrow=c(21)) spodnja 2 grafa zelimo imeti na eni sliki

gt barplot(table(izbor$spol))

gt pie(table(izbor$spol))

gt par(mfrow=c(11)) povrnemo originalne nastavitve

162 Nizkonivojske funkcije za risanje

Nizkonivojske funkcije za risanje ne ustvarijo novega grafa ampak le dodajo elementena obstojeci graf Nekaj najpomembnejsih

points lines Dodata tocke crte ali tocke povezane s crto

text Doda tekst

mtext Doda tekst na obrobeosi

axis Doda osi

title Doda naslov

legend Doda legendo

1 poglavje ndash Uvod v R 59

expression Uporabljamo ga za vnasanje matematicnih formul ali simbolov na slike5

bquote Uporablja se za vnasanje matematicnih formul ki vkljucujejo izracunanekolicine na slike (podobno kot expression)

Posebej je treba razloziti uporabo expression Vcasih zelimo na sliki izpisati tudimatematicne formule ali znake Le-te lahko uporabimo takorekoc povsod kjer lahkopisemo besedilo (na primer naslovi legende oznake osi oznake na oseh ) V temprimeru namesto besedila dolocenemu argumentu (na primer main text labels kot vrednost podamo expression Slabost tega nacina pa je da ne omogocardquomesanjardquo izracunih kolicin (recimo izracunano vrednost R2 v naslednjem primeru)in matematicnih oznak Nacin pisanja za obe moznosti je opisan v pomoci podgeslom plotmath (za dostop do pomoci torej uporabimo plotmath) je pa precejpodoben LATEX-u Primer slike z veliko dodatnimi elementi je na sliki 110

gt lmFitlt-lm(placa~izobrazba data=izbor) linearna regresija

gt maroldlt-par(mar)

gt par(mar=c(5444)+01)

gt plot(placa~izobrazbadata=izborpch=asnumeric(spol)

col=spol cex=1 main = Razsevni grafikon

xlab=Izobrazba v letih ylab = Placa v 1000 sit)

gt abline(lmFit)

gt axis(side=4 at=(28)2100239641000

labels = (28)2100)

gt mtext(text=Placa v EUR side=4line=25)

gt par(mar=marold) graficne parametre nastavimo nazaj

gt na staro vrednost

gt legend(x=5 y = 400 legend = c(moski zenski)

title=Spolpch=12col=12 xjust=0 yjust=1)

gt text(x=5 y = 300 adj=0labels=

paste(R kvadrat =round(summary(lmFit)$rsquared3)))

gt text(x=5 y = 280 adj=0

labels=expression(paste(R^2 = 0536)))

gt text(x=5 y = 260 adj=0

labels=bquote(R^2 == (round(summary(lmFit)$rsquared3))))

Poleg tega je mogoce veliko visokonivojskih funkcij uporabljati tudi za dodajanje naobstojeci graf (na primer curve hist ) tako da jim dodamo argument add=TRUE

5 Glavni rezultat funkcije je sicer da ustvari R-jev izraz ki pa se ne izvede (oziroma evalviraizracuna)

60 16 Risanje

Slika 110 Slika z veliko dodanimi elementi

5 10 15 20

100

150

200

250

300

350

400

Razsevni grafikon

Izobrazba v letih

Pla

ča v

100

0 si

t

400

600

800

1000

1200

1400

1600

Pla

ča v

EU

R

Spol

moškiženski

R kvadrat = 0536

R2 = 0536

R2 = 0536

gt hist(izbor$placa freq=FALSE) frekvence - gostota

gt curve(dnorm(xmean=mean(izbor$placa) sd=sd(izbor$placa))

add=TRUE) vrisemo normalno krivuljo

163 Shranjevanje slik

Slike narisane z R-jem je zelo enostavno shraniti v vec formatih To je moznostoriti na vec nacinov

1 Preko menija ki se odpre s klikom desnega miskinega gumba kjerkoli na slikiPreko tega menija je mogoce

(a) Shraniti slike v datoteko formata Windows metafile (WMFEMF) aliPostScript (PSEPS)

1 poglavje ndash Uvod v R 61

(b) Kopirati sliko v odlozisce v obliki bitne slike (rdquobitmaprdquo) ali v formatuWindows metafile To lahko potem s rdquoprilepirdquo oziroma rdquopasterdquo prilepite vvecino programov (na primer Word )

2 Preko funkcije savePlot je mogoce shraniti sliko iz trenutno aktivnega grafic-nega okna v enem izmed naslednjih formatov Windows metafile PNG JPEGBMP (Windows bitmap format) TIFF PostScript in PDF Tudi s pomocjote funkcije je mogoce shraniti sliko v odlozisce

3 Tako da rdquorisemordquo neposredno v datoteko oziroma na rdquonapravordquo (device) kipredstavlja datoteko Postopek je sestavljen iz sledecih korakov

(a) Odpremo izbrano napravo Za seznam razlicnih naprav (tipov dato-tek) uporabite ukaz Devices Moznosti in argumenti ki so dovoljenipri klicu funkcij ki odpirajo naprave se razlikujejo glede na vrsto na-pravedatoteke

(b) Risemo na enak nacin kot ce bi risali v odprto okno

(c) Napravo zapremo s funkcijo devoff()

Ta (tretji) nacin omogoca najvecjo fleksibilnost pri dolocanju lastnosti koncneslike (na primer kvalitete pri slikah jpg)

Recimo da zelimo narisati porazdelitve vseh spremenljivk v podatkih izbor vsakona svoj graf Te grafe zelimo shraniti v datoteke tipa png To lahko naredimo sspodnjo kodo

gt plotnumericlt-hist

gt S tem nastavimo histogram za privzeti prikaz numericnih

gt spremenljivk Tako pocetje je NEVARNO ker spreminjamo

gt privzeto obanasanje funkcije plot

gt png(filename = Slikadpngwidth = 1200 height = 1200

res=200) namesto d se bo v ime datoteke zapisala

gt zaporedna stevilka slike

gt nekaj parametrov smo nastavili po svoje

gt for(i in names(izbor)) plot(izbor[[i]]main=ixlab=i)

gt devoff()

pdf

2

gt rm(plotnumeric) Odstranimo nevarno nastavitev

Pojasnila

bull V imenu slike smo uporabili rdquodrdquo To nam omogoca da naredimo vec slik neda bi za vsako posebej klicali funkcij png in devoff Png namrec omogocale eno sliko na datoteko

62 16 Risanje

bull Ker je png nevektorski format sirino in visino podamo v tockah (pikslih)Velikost slike dolocimo z argumentom res kjer dolocimo stevilo tock na incPri vektorskih formatih (na primer pdf) sirino in visino podamo v incih

bull Na zacetku smo uporabili ukaz plotnumericlt-hist S tem smo nastavilihistogram za privzeti prikaz numericnih spremenljivk Tako pocetje je NE-VARNO saj bi nam povzrocalo probleme pri risanju razsevnih grafikonovZato smo na koncu tudi uporabili rm(plotnumeric) Ker ta funkcija prej niobstajala smo s tem povrnili prejsnje stanje

Narisimo se isto v datoteko pdf Ker pdf podpira vec strani lahko vse 4 grafenarisemo v eno datoteko

gt plotnumericlt-hist

gt pdf(file = StiriSlikepdf width = 6 height = 6)

gt nekaj parametrov smo nastavili po svoje

gt for(i in names(izbor)) plot(izbor[[i]]main=ixlab=i)

gt devoff()

pdf

2

gt rm(plotnumeric)

Opomba Pri formatih pdf eps in ps lahko velikost rdquopapirjardquo dolocamo neodvisno odvelikosti slike z argumentom papersize Privzeta vrednost je sicer da je velikostpapirja enaka velikosti slike

164 Vaje

Vaja 1

Narisite histogram za poljubno spremenljivko Vrisite tudi normalno krivuljo Glavninaslov in imena osi nastavite rocno (ne uporabite privzetih) Stolpci naj bodo modrebarve

Namig Normalno krivuljo je veliko lazje vrisati ce pri histogramu risete gostoto inne frekvenc

Vaja 2

Na eno sliko narisite 4 histograme (v 2 vrstici s po 2 stolpcema) za poljubno spre-menljivko Na vsakem histogramu uporabite drugo stevilo razredov

1 poglavje ndash Uvod v R 63

Vaja 3

Narisite razsevni grafikon za poljubni dve intervalni spremenljivki Izberite vsaj enoizmed sledecih moznosti

bull Velikost tocke naj se razlikuje glede na vrednost neke tretje razmernostnespremenljivke

bull Oblika tocke naj se razlikuje glede na vrednost neke nominalne spremenljivke

17 Priprava dokumentov z rezultati iz R-ja

R podpira vec nacinov za pripravo dokumentov z rezultati analiz Najzmogljivejsitemeljijo na konceptu ponovljive znanosti (ang rdquoreproducible researchrdquo) Pri pri-pravi tega ucbenika je uporabljen sistem Sweave (Leisch 2002) (httpwwwstatuni-muenchende~leischSweave) ki je del osnovne R-jeve distribucije Sistemomogoca da v enem dokumentu zdruzimo tekst in R-jevo kodo ter rezultate iz R-ja(izpis tabele grafi ) Osnovni sistem je bil razvit za LATEX preko paketka R2HTML

pa omogoca tudi uporabo HTML-ja Zelo podoben sistem podpira tudi paketekknitr (httpyihuinameknitr) ki ima dodatno prednost da lahko za ure-janje besedila uporablja tudi druge sisteme (ne samo LATEX) na primer HTML inMarkdown Predvsem Markdown je zelo enostaven za uporabo omogoca pa tudiizdelavo koncnega dokumenta v razlicnih formatih (Word PDF ali HTML)

Sweave sistem je mogoce uporabiti tudi preko dokumentov formata rdquoOpen Do-cument Formatrdquo oziroma rdquoODFrdquo ki jih na primer uporabljata OpenOfficeorg inLibre Office To omogoca paketek odfWeave(httpcranr-projectorgwebpackagesodfWeaveindexhtml) Prednost tega je da ne zahteva znanja LATEX-aali HTML-ja

Za uporabnike Microsoft (Office) Worda pa sta najbolj zanimiva paketeka R2wd

in rtf Prednost prvega je da omogoca vstavljanje neposredno v odprt Wordovdokument drugega pa da ne potrebuje dodatnih programov (npr Worda) in nimaz njimi povezanih omejitev sej neposredno ustvari RTF (rich text format) dokumentTako je mogoce neposredno ustvariti porocilo ali pa vanj le izvoziti tabele ki jihpotem lahko zelo enostavno prenesemo v Word

Poglejmo najprej paketek R2wd ki deluje le v povezavi z 32-bitnim Wordom Vprimeru da je namen dodajati rezultate iz R-ja v Word in ne avtomatsko generi-ranje porocil je verjetno najuporabnejsa funkcija wdTable Najbolj problematicnopri izvozu rezultatov v Word je namrec dodajanje tabel saj je osnovni R-jev izpistekstovni kar v porocilih ni videti lepo Ravno funkcija wdTable pa omogoca vsta-vljanje lepo oblikovanih tabel v Word zal pa je precej pocasna Preden pa lahkokarkoli pisemo v dokument ga moramo najprej odpreti s funkcijo wdGet

64 17 Priprava dokumentov z rezultati iz R-ja

S spodnjo kodo bomo v Word nalepili tri tabele

gt library(R2wd)

gt wdGet() odpremo nov ali obstojeci (kot argument podamo ime

gt in po potrebi pot do njega) dokument

gt vmes moramo pocakati da se dokument odpre

gt najbolj varno je da prej nimamo odprtega nobenega dokumenta

gt

gt wdTable(izbor) izvozimo tabelo (podatke) v dokument

gt tabela se pojavi na mestu kjer je kazalnik (oz kurzor)

gt

gt wdTable(table(Kraj=izbor$krajSpol=izbor$spol))

gt kontingencna tabela

gt

gt regKoeflt-summary(lm(placa~izobrazba+spoldata=izbor))$coef

gt regKoeflt-format(asdataframe(regKoef)digits=c(4441)

scien=FALSE) da bo lepsi format

gt wdTable(format(regKoef))

gt izvozimo tabelo regresijskih koeficientov

gt

gt Xlt-matrix(115ncol=3)

gt wdTable(X)

gt tole bi javilo napako

gt tabela ali matrika mora imeti definirana imena stolpcev in

gt vrstic

gt colnames(X)lt-c(abc)

gt rownames(X)lt-15

gt wdTable(X)

gt R2wd-package

gt vec pomoci o paketku

Kot lahko vidite na podlagi pomoci za paketek (R2wd-package) paketek omo-goca generiranje celotnih Wordovih dokumentov av tem ucbeniku je predstavljenle najbolj problematicen del Za vstavljanje slik sicer lahko uporabimo funkcijo wd-

Plot lahko pa tudi sliko iz R-ja enostavno skopiramo v odlozisce ali shranimo vdatoteko (glejte podpodpoglavje 163) in od tam prilepimo v Word

Poglejmo sedaj se uporabo paketka rtf Tudi tu je najbolj kljucna funkcija za iz-voz tabel funkcija addTable predstavljena pa je se uporaba funkcij addHeader zaustvarjanje naslovov in addText za vstavljanje navadnega besedila Pred obliko-vanjem dokumenta ga moramo najprej ustvariti s funkcijo RTF (ki kot argumentsprejme ime datoteke) in na koncu zapreti s funkcijo done

1 poglavje ndash Uvod v R 65

gt library(rtf)

gt rtfDoclt-RTF(testrtf) kreiramo novo datoteko in shranimo

gt dobljeni objekt

gt

gt dodamo naslov in podnaslov

gt addHeader(rtfDoctitle=Testsubtitle=Osnovni podatki)

gt addTable(rtfDocizbor)

gt addText(rtfDocTole so osnovni podatkin) dodamo tekst

gt addHeader(rtfDoctitle=NULLsubtitle=Kontingencna tabela)

gt addTable(rtfDoctable(Kraj=izbor$krajSpol=izbor$spol))

gt kontingencna tabela

gt

gt

gt regKoeflt-summary(lm(placa~izobrazba+spoldata=izbor))$coef

gt regKoeflt-format(asdataframe(regKoef)digits=c(4441)

scien=FALSE) da bo lepsi format

gt addHeader(rtfDoctitle=NULLsubtitle=Regresijski koeficienti)

gt addTable(rtfDocformat(regKoef))

gt izvozimo tabelo regresijskih koeficientov

gt

gt

gt Xlt-matrix(115ncol=3)

gt addHeader(rtfDoctitle=NULL

subtitle=Matrika brez imen stolpcev in vrstic)

gt dodajo se privzeta imena stolpcev

gt addTable(rtfDocX)

gt addText(rtfDocDodana so bila privzeta imena stolpcevn)

gt dodamo tekst

gt

gt colnames(X)lt-c(abc)

gt rownames(X)lt-15

gt addHeader(rtfDoctitle=NULL

subtitle=Matrika z imeni stolpcev in vrstic)

gt addTable(rtfDocX rownames=TRUE)

gt ce zelimo izpisati imena vrstic

gt done(rtfDoc) zapremo datoteko

gt rtf-package

gt vec pomoci o paketku

66 18 Resitve vaj

18 Resitve vaj

181 Podatkovne strukture

Vaja 1

gt xlt-c(10 23 43 43 32 12)

gt povXlt-sum(x)length(x)

gt povX

[1] 2716667

gt varXlt-sum((x - povX)^2)length(x)

gt varX

[1] 1778056

gt sdXlt-varX^(12) ali sqrt(varX)

gt sdX

[1] 1333437

gt reslt-c(povprecje=povXvarianca=varXsd=sdX)

gt res

povprecje varianca sd

2716667 17780556 1333437

Vaja 2

gt ylt-c(10 23 43 43 32 12)

gt x1lt-c(15 23 54 45 42 10)

gt x2lt-c(210 183 186 164 175 200)

gt Xlt-cbind(1x1x2)

gt blt-asvector(solve(t(X) X) t(X) y)

gt b

[1] 52819111 6240474 -0243166

gt names(b)lt-colnames(X)

gt b

x1 x2

52819111 6240474 -0243166

gt yNap lt- asvector(X b)

gt e lt- y - yNap

gt cbind(y=ynapoved=yNaprezidual=e)

y napoved rezidual

[1] 10 1111496 -11149560

[2] 23 2267282 03271824

[3] 43 4128879 17112125

1 poglavje ndash Uvod v R 67

[4] 43 4102201 19779861

[5] 32 3647505 -44750455

[6] 12 1042638 15736205

gt reslt-list(b=b napovedi=yNap rezidual=e)

gt res

$b

x1 x2

52819111 6240474 -0243166

$napovedi

[1] 1111496 2267282 4128879 4102201 3647505 1042638

$rezidual

[1] -11149560 03271824 17112125 19779861 -44750455

[6] 15736205

182 Funkcije in programiranje

Vaja 1

Resitev Vaje 1 iz podpodpoglavja 138 (podpoglavje Podatkovne struk-ture) v obliki funkcije

gt definicija funkcije

gt opisStatlt-function(x)

povXlt-sum(x)length(x)

varXlt-sum((x - povX)^2)length(x)

sdXlt-varX^(12) ali sqrt(varX)

reslt-c(povprecje=povXvarianca=varXsd=sdX)

return(res)

gt xlt-c(10 23 43 43 32 12)

gt opisStat(x)

povprecje varianca sd

2716667 17780556 1333437

Resitev Vaje 2 iz podpodpoglavja 138 (podpoglavje Podatkovne struk-ture) v obliki funkcije

gt regresijalt-function(yX)

Xlt-cbind(1X)

68 18 Resitve vaj

blt-asvector(solve(t(X) X) t(X) y)

names(b)lt-colnames(X)

yNap lt- asvector(X b)

e lt- y - yNap

reslt-list(b=b napovedi=yNap rezidual=e)

return(res)

gt ylt-c(10 23 43 43 32 12)

gt x1lt-c(15 23 54 45 42 10)

gt x2lt-c(210 183 186 164 175 200)

gt Xlt-cbind(x1x2)

gt regresija(yX)

$b

x1 x2

52819111 6240474 -0243166

$napovedi

[1] 1111496 2267282 4128879 4102201 3647505 1042638

$rezidual

[1] -11149560 03271824 17112125 19779861 -44750455

[6] 15736205

Vaja 2

gt vsotalt-function(x)

vsotalt-0

for(i in x)

vsota lt- vsota + i

return(vsota)

gt xlt-c(10 23 43 43 32 12)

gt vsota(x)

[1] 163

gt sum(x) enak rezultat

[1] 163

Vaja 3

1 poglavje ndash Uvod v R 69

gt funkcija s for zanko

gt fakForlt-function(n)

reslt-1

for(i in seq_len(n))

reslt-resi

return(res)

gt funkcija z while zanko

gt fakWhilelt-function(n)

reslt-1

while(ngt1)

reslt-resn

nlt-n-1

return(res)

gt funkcija z rekurzivno funkcijo

gt fakReklt-function(n)

if(nlt=1)

return(1)

else

return(nfakRek(n-1))

gt vse funkcije dajo seveda enak rezultat

gt fakFor(10)

[1] 3628800

gt fakWhile(10)

[1] 3628800

gt fakRek(10)

[1] 3628800

gt factorial(10) tudi R-jeva vgrajena funkcija

[1] 3628800

Vaja 4

gt medlt-function(x)

xlt-sort(x)

nlt-length(x)

if(n 2 ==0)

70 18 Resitve vaj

Slika 111 Resitev vaje 1 (Risanje)

Lep histogram

Moja spremenljivka

Gos

tota

6 8 10 12 14

000

005

010

015

return((x[n2]+x[n2+1])2)

else

return(x[ceiling(n2)])

gt xlt-c(10 23 43 43 32 12)

gt med(x)

[1] 275

183 Risanje

Vaja 1

gt setseed(2010)

gt xlt-rnorm(100mean=10sd=2)

gt hist(xcol=lightbluemain=Lep histogram

xlab=Moja spremenljivkafreq=FALSEylab=Gostota)

gt curve(dnorm(xmean=10sd=2)add=TRUExpd=NA)

Rezultat je prikazan na sliki 111

1 poglavje ndash Uvod v R 71

Vaja 2

gt setseed(2010)

gt xlt-rnorm(1000mean=10sd=2)

gt par(mfrow=c(22))

gt hist(xmain=priblizno 5 razredovfreq=FALSE

ylab=Gostota br=5)

gt hist(xmain=priblizno 10 razredovfreq=FALSE

ylab=Gostotabr=10)

gt hist(xmain=priblizno 30 razredovfreq=FALSE

ylab=Gostotabr=30)

gt hist(xmain=priblizno 50 razredovfreq=FALSE

ylab=Gostotabr=50)

gt par(mfrow=c(11))

Rezultat je prikazan na sliki 112

Vaja 3

gt setseed(2010)

gt xlt- rnorm(100mean=0sd=2)

gt ylt- x^2 +rnorm(100sd=3)

gt zlt-abs(abs(yx)^(14)+rnorm(100sd=05))

gt klt-asnumeric(cut(x+rnorm(100sd=1)breaks=5))

gt plot(y~xpch=kcex=z)

Rezultat je prikazan na sliki 113

19 Viri za poglabljanje znanja

191 Spletni viri

R je odprtokodni program zato je veliko virov na voljo tudi na spletu Tukajnastevamo nekaj najpomembnejsih

R-project Glavna spletna stran za R ki vsebuje veliko uporabnih vsebin pred-vsem pa omogoca tudi prenos programskega paketa RURL httpwww

r-projectorg

R-project ndash rdquouradnirdquo prirocniki Uradni prirocniki za R - precej tehnicno inosnovno URL httpcranr-projectorgmanualshtml

72 19 Viri za poglabljanje znanja

Slika 112 Resitev vaje 2 (Risanje)

približno 5 razredov

x

Gostota

5 10 15

000

005

010

015

približno 10 razredov

x

Gostota

4 6 8 10 12 14 16000

005

010

015

približno 30 razredov

x

Gostota

4 6 8 10 12 14 16

000

005

010

015

020

približno 50 razredov

x

Gostota

4 6 8 10 12 14 16

000

005

010

015

020

R-project ndash ostali prirocniki Poleg uradnih prirocnikov je na voljo tudi mnogodrugih prirocnikov in podobnega gradiva ki so ga prispevali uporabniki R-jaURL httpcranr-projectorgother-docshtml

Rseek Spletni iskalnik po vsebinah povezanih z R-jem vkljucno s seznami zaelektronsko posto za pomoc uporabnikom URL httpwwwrseekorg

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

R Graph Gallery Galerija grafov narejenih z R-jem vkljucno z uporabljeno kodoURL httpaddictedtorfreefrgraphiques

1 poglavje ndash Uvod v R 73

Slika 113 Resitev vaje 3 (Risanje)

-4 -2 0 2 4

-50

510

1520

x

y

RStudio Integrirano razvojno okolje za R Zdruzuje urejevalnik besedila z oznace-vanjem in samodokoncanjem R-jeve kode konzolo pomoc okno za graficneprikaze in se veliko vec URL httprstudioorg

Spletna stran prof dr Andreja Blejca o R-ju Vsebuje veliko koristnih vse-bin povezanih z R-jem vkljucno s prirocnikom Introduction to R URL httpablejecnibsiR

192 Knjizni viri

Splosne knjige o R-ju

Knjige v tem poglavju so splosni prirocniki za programski paket R Pokrivajo vsaali vecino podpoglavij tega poglavja vecinoma pa tudi podrocja iz ostalih dvehpoglavjih

74 19 Viri za poglabljanje znanja

bull Zuur Alain F Elena N Ieno in Erik HWG Meesters 2009 A BeginnerrsquosGuide to R New York Springer6

Zelo nezahtevna samo osnove R-ja (skoraj) brez statistike

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer7

Se posebej primerna za tiste ki ze poznajo SPSS ali SAS

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC8

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer9

Knjige o programiranju

bull Matloff Norman 2011 The Art of R Programming A Tour of StatisticalSoftware Design San Francisco No Starch PressManj zahtevna

bull Venables William N in Brian D Ripley 2000 S programming New YorkSpringerBolj zahtevna

Knjige o risanju

Prakticno vse splosne knjige o R-ju vsebujejo tudi poglavje o risanju ki ponavadizadostuje za osnovne grafe Spodaj nasteti knjigi pa bolj poglobljeno predstavljatarazlicne sisteme za risanje v R-ju (prva) ali se posebej podrobno dolocen nacinrisanja (druga)

bull Murrell Paul 2011 R graphics Boca Raton CRC PressRazlicni sistemi za risanje

bull Wickham Hadley 2009 ggplot2 Elegant Graphics for Data Analysis Do-rdrecht New York Springer URL httppubliceblibcomEBLPublic

PublicViewdoptiID=51146810

Sistem za risanje ki temelji na Wilsonovi (2005) graficni slovnici

6 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani7 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani8 Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf9 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani10Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani

1 poglavje ndash Uvod v R 75

Priprava dokumentovporocil

bull Xie Yihui 2013 Dynamic report generation with r and knitr Boca RatonChapman amp Hall Crc

bull Gandrud Christopher 2013 Reproducible research with R and RStudio BocaRaton Chapman amp HallCRC

110 Vprasanja za ponavljanje

1 R je vektorski jezik Kaj to pomeni

2 Katera podatkovna struktura v R-ju je najprimernejsa za shranjevanje podat-kovij ndash podatkov o vec spremenljivkah na vec enotah

3 Kako v R-ju priklicemo pomoc za neko funkcijo in kako iscemo po pomoci

4 Kateri izmed sledecih znakov so dovoljeni v imenih objektov v R-ju |- +

5 Na kaksen nacin v R-ju predstavimo nominalne spremenljivke

6 Ali R omogoca matricno racunanje

7 Kako R razsirimo z dodatnimi funkcijami

8 Katere vrste zank poznamo v R-ju in v cem se razlikujejo

9 Ali lahko z R-jem beremo podatkovne datoteke iz ostalih popularnih statistic-nih paketov (SPSS Stata ) Ce da kateri paketek potrebujemo za to

10 Katere funkcije lahko uporabimo za branje in pisanje tekstovnih podatkovnihdatotek

11 Od cesa je odvisno kaksne vrste graf narise funkcija plot

12 Kaksna je razlika med visokonivojskimi in nizkonivojskimi funkcijami za risa-nje

13 Kaj pomeni notacija y x in zakaj se uporablja v funkcijah za risanje

14 Kaksen graf narise funkcija plot ce kot argument podamo nominalno spre-menljivko in kaksen ce kot argumenta podamo dve intervalni spremenljivki

15 Na kaksne nacine lahko shranjujemo slike

16 Kako za neko funkcijo poiscemo njene argumente

17 V katerih formatih (vrstah datotek) lahko izdelujemo porocila z R-jem

77

2 poglavje

Univariatna in bivariatna statistika

Drugo poglavje obravnava kar veliko univariatnih in bivariatnih statisticnih metodtako s podrocja osnovne opisne statistike kot tudi inferencne statistike Na zacetkupoglavja so najprej predstavljeni podatki ki jih uporabljamo v tem poglavju skupajz navodili za njihovo pridobitev iz Arhiva druzboslovnih podatkov in branje z R-jem Sledi predstavitev osnovnih opisnih statistik predvsem mer srednjih vrednostiin variabilnosti ter mer za obliko porazdelitve (asimetrija sploscenost) Od tu naprejucbenik obravnava tudi metode inferencne statistike najprej pri pregledu metod zapreverjanje domnev o srednjih vrednostih (o eni srednji vrednosti in o razliki medsrednjimi vrednostmi za neodvisne in odvisne vzorce) in racunanje ustreznih inter-valov zaupanja kjer poleg parametricnih metod obravnavamo tudi neparametricneTo je tudi skoraj edini del ucbenika kjer tudi teoreticno predstavimo obravnavanemetode Sledi preverjanje domnev o delezih ter racunanje ustreznih intervalov zau-panja Na koncu poglavja obravnavamo se metode za merjenje o povezanosti dvehspremenljivk glede na merske lestvice spremenljivk ter za preverjanje domnev o po-vezanosti

21 Uporabljeni podatki

Za prikaz predstavljenih metod bomo uporabili podatke iz Evropske druzboslovneraziskave (httpwwweuropeansocialsurveyorg) za Slovenijo za leto 2004Uporabljena datoteka je bila pridobljena iz Arhiva druzboslovnih podatkov (Tosin drugi 2004) Opis raziskave in povezave do datoteke so dostopni na tem spletnemnaslovu httpwwwadpfdvuni-ljsiopisisjm042

Iz Arhiva druzboslovnih podatkov sem prenesel podatke v SPSS-formatu (rdquosavrdquo)Najprej preberemo podatke iz SPSS-ove datoteke ter uvozimo funkcije iz datotekerdquoUcbenikR-funkcijeRrdquo

78 22 Osnovne statistike

gt nalozimo podatke

gt library(foreign)

gt datalt-readspss(file=sjm042_f1sav

todataframe = TRUE usevaluelabels = TRUE

maxvaluelabels=5 usemissings=TRUE)

gt nalozimo tudi dodatne funkcije

gt source(UcbenikR-funkcijeR)

Nato preverimo stevilo enot in spremenljivk ter katere spremenljivke so v podatkih zuporabo funkcije names Dolga imena spremenljivk iz SPSS-a (labels) so shranjenav atributu variablelabels

gt dim(data) stevilo enot in spremenljivk

gt names(data)

gt attributes(data)$variablelabels

Zaradi dolzine izpisa ga tu ne navajamo

22 Osnovne statistike

R ze v osnovni razlicici (brez dodatnih paketkov) vsebuje funkcije za prakticno vseosnovne statistike Navedimo nekaj najosnovnejsih

mean aritmeticna sredina

median mediana

sd in var standardni odklon in varianca (vzorcna ndash (n - 1) v imenovalcu)

min in max minimum in maksimum

range razpon (vrne minimum in maksimum kot vektor)

quantile kvantili

Vse zgoraj nastete funkcije kot argument sprejmejo vektor (spremenljivko) V pri-vzeti obliki ne dovoljujejo manjkajocih vrednosti (NA) saj v tem primeru tudi vrnejoNA Vendar pa je mogoce nastaviti da manjkajoce vrednosti ignorirajo s parametromnarm=TRUE

Recimo da nas se posebej zanima spremenljivka G91 ndash Bruto placa Tako bomo nanjej izracunali osnovne statistike

gt G91 - bruto placa

gt izracunajmo osnovne statistike zanjo

gt sum(isna(data$G91))

2 poglavje ndash Univariatna in bivariatna statistika 79

[1] 325

gt prestejemo stevilo enot z veljavnimi vrednostmi pri G91

gt imamo jih samo 325

gt

gt hist(data$G91)narisemo histogram

gt pri vseh sledecih funkcijah dodamo argument narm=TRUE

gt brez njega bi zaradi manjkajocih vrednosti dobili

gt rezultat NA

gt range(data$G91 narm=TRUE) preverimo razpon

[1] 53 760

gt mean(data$G91 narm=TRUE) aritmeticna sredina

[1] 2257108

gt sd(data$G91 narm=TRUE) standardni odklon

[1] 120953

gt median(data$G91 narm=TRUE) mediana

[1] 200

gt quantile(data$G91 probs=c(02505075) narm=TRUE)

25 50 75

140 200 280

gt izracunamo kvartile

Zelo koristna je tudi funkcija summary ki izracuna povzetek ki je primeren gledena tip objektaspremenljivke Funkcija se lahko uporabi na razlicnih podatkovnihstrukturah (tudi na primer na celotnem podatkovnem okvirju)

Funkcija summary sicer naredi kar dober povzetek vendar pa pri stevilskih spre-menljivkah pogresam vsaj izracun standardnega odklona Lahko bi sicer naredilisvojo funkcijo lahko pa uporabimo funkcijo describe iz paketka psych ki polegtega izracuna tudi mere asimetrije in sploscenosti Tudi funkcijo describe lahkouporabimo le na eni spremenljivki ali na celotnem podatkovnem okvirju Je pa tafunkcija primerna le za intervalne in razmernostne spremenljivke Izracun naredisicer tudi za ostale a ni smiseln in zato jih v rezultatih oznaci z rdquordquo

V paketku psych najdemo tudi funkciji za koeficient asimetrije skew in splosce-nosti kurtosi in se veliko drugih uporabnih funkcij (ki se uporabljajo predvsem vpsihologiji in druzboslovju)

Poglejmo torej najprej uporabo summary na eni sami spremenljivki

gt povzetek za stevilsko spremenljivko

gt summary(data$G91)

Min 1st Qu Median Mean 3rd Qu Max NAs

530 1400 2000 2257 2800 7600 1117

gt in se za nominalno - spol

gt summary(data$O1F2)

80 22 Osnovne statistike

moski zenski NAs

648 762 32

gt summary uposteva tip podatka

gt

gt uporabili bomo tudi spremenljivko F6

gt ki jo moramo prej spremeniti nazaj v faktor

gt data$F6lt-makeFactorLabels(data$F6)

gt summary(data$F6)

nedokoncana OS dokoncana OS

69 368

2-3 letna poklicna gimnazija

347 434

2-letna visja visoka sola ali fakulteta

72 138

magisterij doktorat NAs

11 3

Funkcijo summary lahko uporabimo tudi na vec spremenljivkah ali celo na celotnempodatkovju (podatkovnem okvirju) a jo bomo tu zaradi varcevanja s prostoromuporabili le na nekaj izbranih spremenljivkah

gt izbraneSpremlt-c(O1F3O1F2F5F6F7G91G92)

gt izbor shranimo ker ga bomo uporabljal veckrat

gt da se lazje spomnimo kaj merijo

gt attributes(data)$variablelabels[izbraneSprem]

O1F3

leto rojstva

O1F2

spol

F5

Kje zivite

F6

izobrazba

F7

leta solanja

G91

Koliksna je obicajno vasa bruto placa

G92

Koliksna je obicajno vasa neto placa

gt summary(data[izbraneSprem])

O1F3 O1F2 F5

Min 1909 moski 648 veliko mesto132

1st Qu1944 zenski762 predmestje 204

2 poglavje ndash Univariatna in bivariatna statistika 81

Median 1960 NAs 32 manjse mesto326

Mean 1959 vas 626

3rd Qu1975 kmetija 148

Max 1989 NAs 6

NAs 16

F6 F7

gimnazija 434 Min 100

dokoncana OS 368 1st Qu 800

2-3 letna poklicna 347 Median 1100

visoka sola ali fakulteta138 Mean 1127

2-letna visja 72 3rd Qu1300

(Other) 80 Max 2300

NAs 3 NAs 11

G91 G92

Min 530 Min 70

1st Qu1400 1st Qu 725

Median 2000 Median 1200

Mean 2257 Mean 1248

3rd Qu2800 3rd Qu1700

Max 7600 Max 6000

NAs 1117 NAs 1046

Je s temi podatki kaj narobe

Minimum za spremenljivko G92 je rdquo7rdquo To mora biti napaka saj nihce ne moreimeti bruto place samo 7000 sit Verjetno gre za napako pri vnosu rdquo7rdquo je pogo-sta koda za manjkajoco vrednost pri tej spremenljivki pa bi se morala uporabljatikoda rdquo7777777rdquo Preglejmo ali je takih vrednosti vec Recimo tako da izpisemofrekvencno tabelo za to spremenljivko Nato popravimo podatke tako da vrednostiki niso mogoce (se posebej ce predvidevamo da gre za kode manjkajocih vrednosti)spremenimo v NA Nato ponovno izpisemo povzetek in se prepricamo da je sedajvse v redu

gt table(data$G92)

7 8 40 60 70 71 73 75 78 80 82 85 86 87 88

76 13 1 4 4 1 1 5 2 8 2 8 1 1 1

89 90 92 95 100 104 105 107 108 110 112 114 115 117 120

1 11 1 5 19 1 2 1 1 10 1 1 4 2 19

122 125 130 132 135 137 138 140 145 150 153 154 155 160 165

2 3 13 1 1 1 1 12 1 26 1 1 1 12 2

170 180 185 186 190 191 200 205 210 215 220 230 232 240 250

13 8 2 1 4 1 19 1 5 2 6 6 1 2 11

260 270 280 300 320 336 360 370 380 400 480 600

2 6 2 10 1 1 1 1 1 2 1 1

82 22 Osnovne statistike

gt data$G92[data$G92 in c(78)]lt-NA

gt vrednosti 7 in 8 spremenimo v NA

gt summary(data$G92)

Min 1st Qu Median Mean 3rd Qu Max NAs

400 1045 1500 1589 2000 6000 1135

Opozorilo

Kot kaze zgornji primer moramo vedno pred analizo opraviti osnovni pregledpodatkov da ugotovimo ali so v njih prisotne kaksne napake

Za racunanje opisnih statistik za stevilske spremenljivke pa je kot receno bolj pri-merna funkcija describe iz paketka psych Uporabimo se to

gt ce paketek psych ni namescen ga je treba namestiti z

gt installpackages(psych)

gt library(psych)

gt describe(data$G91)

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

range skew kurtosis se

1 707 146 252 671

gt lahko jo izracunamo tudi za vse podatke a tu jo zaradi

gt varcevanja s prostorom le za nekaj izbranih spremenljivk

gt describe(data[izbraneSprem])

vars n mean sd median trimmed mad min

O1F3 1 1426 195864 1896 1960 195917 2372 1909

O1F2 2 1410 154 050 2 155 000 1

F5 3 1436 332 112 4 339 148 1

F6 4 1439 337 134 3 326 148 1

F7 5 1431 1127 341 11 1120 297 1

G91 6 325 22571 12095 200 20885 10378 53

G92 7 307 15893 7413 150 14975 7413 40

max range skew kurtosis se

O1F3 1989 80 -020 -097 050

O1F2 2 1 -016 -198 001

F5 5 4 -060 -048 003

F6 7 6 046 -030 004

F7 23 22 013 026 009

G91 760 707 146 252 671

G92 600 560 165 481 423

gt skew(data$G91)

[1] 1455042

2 poglavje ndash Univariatna in bivariatna statistika 83

gt kurtosi(data$G91)

[1] 2516902

Spremenljivka rdquoBruto placardquo (G91) ima aritmeticno sredino 226 tisoc sit (enote so1000 sit) standardni odklon pa 121 tisoc sit Njena porazdelitev je precej asimetricnav desno in konicasta kar je pri porazdelitvi place sicer pricakovano

Funkciji summary in describe smo ze lahko neposredno uporabili na vec spremen-ljivkah naenkrat Pri funkcijah ki se uporabljajo na vektorjih pa upostevamo dalahko neko funkcijo uporabimo tudi na vec spremenljivkah s pomocjo funkcij applylapply in sapply

gt naredimo nov izbor s samo vsaj intervalnimi spremenljivkami

gt torej s samo intervalnimi in razmernostnimi spremenljivkami

gt izbraneIntSpremlt-c(O1F3F7G91G92)

gt izracunajmo aritmeticno sredino

gt apply(data[izbraneIntSprem]2mean narm=TRUE)

O1F3 F7 G91 G92

195863534 1126625 22571077 15893485

gt sapply(data[izbraneIntSprem]mean narm=TRUE) enako

O1F3 F7 G91 G92

195863534 1126625 22571077 15893485

gt lapply(data[izbraneIntSprem]mean narm=TRUE) drugacen izpis

$O1F3

[1] 1958635

$F7

[1] 1126625

$G91

[1] 2257108

$G92

[1] 1589349

gt standardni odklon

gt sapply(data[izbraneIntSprem]sd narm=TRUE)

O1F3 F7 G91 G92

18961464 3412601 120952965 74128283

gt razpon - funkcija lahko vrne tudi vec vrednosti

gt sapply(data[izbraneIntSprem]range narm=TRUE)

O1F3 F7 G91 G92

[1] 1909 1 53 40

[2] 1989 23 760 600

84 22 Osnovne statistike

gt za vecjo prilagodljivost lahko napisemo svojo funkcijo

gt mojPovzeteklt-function(x)c(

arit sredina = mean(xnarm=TRUE)

std odklon = sd(xnarm=TRUE)

st veljavnih vrednosti = sum(isna(x)))

gt sapply(data[izbraneIntSprem]mojPovzetek)

O1F3 F7 G91

arit sredina 195863534 11266247 2257108

std odklon 1896146 3412601 1209530

st veljavnih vrednosti 142600000 1431000000 3250000

G92

arit sredina 15893485

std odklon 7412828

st veljavnih vrednosti 30700000

Ce zelimo statistike izracunati po skupinah dolocenih z neko drugo spremenljivkoso koristne splosne funkcije kot je denimo aggregate ki omogocajo uporabo funkcijna skupinah Natancna uporaba je razvidna iz primera (in pomoci) Funkcija kotenega od argumentov sprejme funkcijo ki jo uporabi na vsaki skupini

V paketku psych pa obstaja tudi funkcija describeBy ki to omogoca neposredno

gt data$O1F2lt-factor(data$O1F2) odstranimo prazne kategorije

gt glede na eno spremenljivko

gt aggregate(x=data[c(G91G92)] by = list(data$O1F2)

FUN=mean narm=TRUE) rezultat je ena stevilka

Group1 G91 G92

1 moski 2375896 1689868

2 zenski 2099103 1472517

gt aggregate(x=data[c(G91G92)] by = list(data$O1F2)

FUN=mojPovzetek) vec stevilk

Group1 G91arit sredina G91std odklon

1 moski 2375896 1263618

2 zenski 2099103 1127086

G91st veljavnih vrednosti G92arit sredina

1 1730000 16898675

2 1450000 14725170

G92std odklon G92st veljavnih vrednosti

1 8153142 15100000

2 6430224 14700000

gt funkcija aggregate dela le na R 211 in novejsih

gt na starejsih verzijah R-ja javi napako

gt

2 poglavje ndash Univariatna in bivariatna statistika 85

gt glede na dve spremenljivki

gt aggregate(x=data[c(G91G92)]

by = list(data$O1F2 data$F5)

FUN=mean narm=TRUE) rezultat je ena stevilka

Group1 Group2 G91 G92

1 moski veliko mesto 2520000 1887059

2 zenski veliko mesto 2523333 1830000

3 moski predmestje 2311250 1593810

4 zenski predmestje 2092381 1472000

5 moski manjse mesto 2886923 1894186

6 zenski manjse mesto 2101143 1612353

7 moski vas 2270870 1574615

8 zenski vas 2028060 1335000

9 moski kmetija 1888889 1460556

10 zenski kmetija 1880000 1042857

gt aggregate(x=data[c(G91G92)]

by = list(data$O1F2 data$F5)

FUN=mojPovzetek) vec stevilk

Group1 Group2 G91arit sredina G91std odklon

1 moski veliko mesto 25200000 12794650

2 zenski veliko mesto 25233333 14355172

3 moski predmestje 23112500 9543917

4 zenski predmestje 20923810 9989640

5 moski manjse mesto 28869231 14734656

6 zenski manjse mesto 21011429 9263679

7 moski vas 22708696 12535992

8 zenski vas 20280597 12044064

9 moski kmetija 18888889 9864713

10 zenski kmetija 18800000 9854441

G91st veljavnih vrednosti G92arit sredina

1 1400000 18870588

2 1500000 18300000

3 2400000 15938095

4 2100000 14720000

5 3900000 18941860

6 3500000 16123529

7 6900000 15746154

8 6700000 13350000

9 2700000 14605556

10 700000 10428571

G92std odklon G92st veljavnih vrednosti

1 8084148 1700000

2 8344260 1900000

86 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

3 5339052 2100000

4 5679202 2500000

5 7964362 4300000

6 6177675 3400000

7 9427670 5200000

8 5901313 6200000

9 6550929 1800000

10 3413070 700000

Za funkcijo describeBy je koda spodaj izpis pa je zaradi varcevanja s prostoromizpuscen (seveda lahko kodo preizkusite sami)

gt z describeBy

gt glede na eno spremenljivko

gt describeBy(x=data[c(G91G92)]

group = data$O1F2)

gt glede na dve spremenljivki

gt describeBy(x=data[c(G91G92)]

group = list(data$O1F2 data$F5))

23 Preverjanje domnev o srednjih vrednostih in

pripadajoci intervali zaupanja

V tem podpodpoglavju so obravnavane le metode za preverjanje domnev o srednjivrednosti in o razliki dveh srednjih vrednosti (na odvisnih in neodvisnih vzorcih)Metode za preverjanje domnev o vec srednjih vrednostih so obravnavane v podpo-glavju 32 (Analiza variance (ANOVA)) Poleg tega bomo pri parametricnih pristopih(t-testih) omenili tudi pripadajoci interval zaupanja

Poleg parametricnega tukaj obravnavamo tudi neparametricni pristop Nekaj besedo razliki med obema

parametricni testi So rdquomocnejsirdquo11 a imajo obicajno strozje predpostavke

neparametricni testi Imajo manj predpostavk a so rdquosibkejsirdquo Ce predpo-stavke parametricnih testov (priblizno) drzijo izberemo parametricne testesicer neparametricne (ce njihove predpostavke drzijo)

Neparametricne teste pogosteje uporabljamo na manjsih vzorcih saj ima tam krsenjepredpostavk parametricnih testov hujse posledice

11Mocnejsi test je tisti ki pri izbrani stopnji tveganja zazna (statisticno znacilne) razlike pri manjsirazliki med vzorcno statistiko in vrednostjo iz nicelne domneve

2 poglavje ndash Univariatna in bivariatna statistika 87

Opozorilo

Neparametricni testi niso samo rdquorobustnejsa verzijardquo parametricnih ampak pre-verjajo drugacne domneve Za primere za katere tu ne podamo testa aliintervala zaupanja je ponavadi priporocljivo uporabiti metode ponovnega vzor-cenja

V ta namen so uporabne predvsem sledece funkcije

ttest Za vse vrste t-testov

vartest Test enakosti varianc Za preverjanje predpostavk t-testa

flignertest Se en test enakosti varianc Manj obcutljiv na odstopanje odnormalnosti Za preverjanje predpostavk t-testa

leveneTest Se en test enakosti varianc iz paketka car Tudi ta je manj ob-cutljiv na odstopanje od normalnosti Z argumentom center=mean (kar niprivzeta moznost) je to test ki ga uporablja SPSS Za preverjanje predpo-stavk t-testa

wilcoxtest Wilcoxonovi testi za en ali dva vzorca Test za dva neodvisnavzorca je znan tudi kot Mann-Whitneyjev test ali Wilcoxon-Mann-Whitneyjevtest

binomtest Uporaben za izvedbo testa predznaka (ang sign test) ki se upo-rablja kot test mediane

Preverjanje domnev uporabimo ce imamo oblikovano nicelno domnevo ki jo zelimo(obicajno) zavrniti Postopek temelji na tem da preverimo kako verjetno bi biloda bi na vzorcu dane velikosti dobili tako rdquoekstremnordquo vrednost testne statistike kotsmo jo dobili na nasem vzorcu

Intervale zaupanja podamo kadar zelimo podati oceno nekega parametra Ker ocenoracunamo na podlagi vzorca tockovna ocena (skoraj) zagotovo ni pravilna Takozelimo izracunati nek interval za katerega lahko z danim tveganjem (gotovostjo)trdimo da vsebuje populacijski parameter Ce se na primer vzorcne ocene g pa-rametra γ porazdeljujejo normalno s standardnim odklonom SE(g) potem lahkointerval zaupanja pri tveganju α izracunamo kot

P (g minus zα2SE(g) le γ ge g + zα2SE(g)) = 1minus α

Bolj splosno (tudi ce se vzorcne ocene ne porazdeljujejo normalno) vedno velja

P (Fminus1(p = α2 g ) le γ ge Fminus1(p = 1minus α2 g )) = 1minus α

Fminus1 je kvantilna funkcija za porazdelitev vzorcnih ocen g oziroma inverzna funkcijaporazdelitveni funkciji F Tu velja omeniti da R vsebuje kvantilne funkcija zavecino v statistiki uporabljenih porazdelitev Naj omenim samo najpomembnejse

qnorm Normalna porazdelitev

88 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

qt t porazdelitev

qf F porazdelitev

qbinom Binomska porazdelitev

qchisq χ2 porazdelitev

qunif Enakomerna porazdelitev

qexp Eksponentna porazdelitev

q Se kar nekaj drugih porazdelitev Ime funkcije se vedno zacne s rdquoqrdquosledi oznaka (ime ali okrajsava) za porazdelitev

Izracun intervala zaupanja bomo podrobneje prikazali samo za aritmeticno sredinoceprav bi lahko na zelo podoben nacin izracunali tudi intervala za razliko dveh arit-meticnih sredin na neodvisnih in odvisnih vzorcih (razlika je predvsem pri izracunustandardne napake vzorcne ocene

231 Preverjanje domneve o srednji vrednosti in pripada-joci interval zaupanja

Kaj je to srednja vrednost je odvisno od testa Pri parametricnih testih je to pravi-loma aritmeticna sredina drugje pa ni nujno To velja tudi pri problemih in testihki jih obravnavamo v sledecih podpodpoglavjih

T-test za en vzorec verjetno ze dobro poznate tako si poglejmo malce podrobnejele neparametricna testa za preverjanje domneve o srednji vrednosti

Wilcoxonov test oziroma Wilcoxonov test oznacenih rangov

bull Predpostavlja vsaj intervalno mersko lestvico

bull Naceloma predpostavlja simetricno porazdelitev rArr potem se lahko upo-rablja kot test mediane

bull V splosnem to torej ni test mediane in vsekakor ne rdquorobustenrdquotest o vrednosti aritmeticne sredine

bull Pogosto navajajo tudi da testira ali je porazdelitev simetricna glede natestno vrednost

bull Tehnicno gledano preverja ali je vsota rangov negativnih odklonov vecjaod pozitivnih

bull Uporablja se predvsem na majhnih vzorcih ko je porazdelitev simetricnaa ne normalna

Test predznaka Pogosto se uporablja tudi ime test mediane

bull Predpostavlja vsaj ordinalno mersko lestvico Zanima nas samopredznak odklona od testne vrednosti torej katera vrednost je vecja

2 poglavje ndash Univariatna in bivariatna statistika 89

Slika 21 Porazdelitev bruto place

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

020

4060

80

bull Testira domnevo o vrednosti mediane oziroma natancneje domnevoda je stevilo pozitivnih in negativnih odklonov enako

Najprej preverimo domnevo o srednji vrednosti V splosnem naj bo domneva H0Srednja vrednost bruto place je enaka 220 tisoc sit

Poleg tega izracunajmo tudi 90- interval zaupanja za povprecno placo

Porazdelitev bruto place je prikazana na sliki 21

gt najprej si oglejmo porazdelitev

gt hlt-hist(data$G91br=(016)50xlab=Bruto placa v 1000 sit

main=ylab=Frekvenca)

gt curve(dnorm(xmean=mean(data$G91narm=TRUE)

sd=sd(data$G91narm=TRUE))diff(h$breaks)[1]

sum(isna(data$G91)) add=TRUE)

gt describe(data$G91)

90 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

range skew kurtosis se

1 707 146 252 671

Iz slike 21 in opisnih statistik je razvidno da porazdelitev ni niti priblizno nor-malna Sedaj preverimo ali lahko zavrnemo domnevo da je povprecna placa enaka220000 sit prav tako pa izracunajmo tudi 90- interval zaupanja za povprecnobruto placo

gt ttest(data$G91mu=220conflevel = 090)

One Sample t-test

data data$G91

t = 085118 df = 324 p-value = 03953

alternative hypothesis true mean is not equal to 220

90 percent confidence interval

2146434 2367782

sample estimates

mean of x

2257108

Niti pri 10- tveganju ne moremo trditi da je povprecna bruto placa razlicna od220 tisoc sit Z 10- tveganjem lahko trdimo da je povprecna bruto placa med21464 in 23678 tisoc sit

gt interval zaupanja bi lahko izracunali tudi takole

gt nlt- sum(isna(data$G91)) stevilo veljavnih vrednosti

gt alfa lt- 01

gt mean(data$G91narm=TRUE) +

qt(c(alfa21-alfa2)df=n-1)sd(data$G91narm=TRUE)sqrt(n)

[1] 2146434 2367782

Wilcoxonov test se lahko uporablja za preverjanje domneve ali je porazdelitev brutoplace simetricna okoli 220000 sit Vendar pa ta domneva nima ravno smisla saj smovideli da je porazdelitev izrazito nesimetricna Tehnicno gledano preverja domnevoda je vsota rangov negativnih odklonov enaka vsoti rangov pozitivnih odklonov (priracunanju rangov se predznak ne uposteva)

gt wilcoxtest(data$G91mu=220)

Wilcoxon signed rank test with continuity correction

data data$G91

2 poglavje ndash Univariatna in bivariatna statistika 91

V = 21965 p-value = 01245

alternative hypothesis true location is not equal to 220

Tudi z Wilcoxonovim testom nicelne domneve pri 10- tveganju ne moremo za-vrniti Opravimo sedaj se test predznaka oziroma test medianePreverimo torejali je negativnih odklonov vec kot pozitivnih (pri tem odklonov z vrednostjo 0 neupostevamo)

gt nPozlt-sum(data$G91gt220 narm = TRUE)

gt manjkajoce vrednosti ignoriramo

gt nNeglt-sum(data$G91lt220 narm = TRUE)

gt binomtest(x=nPozn=nPoz+nNegp=05)

Exact binomial test

data nPoz and nPoz + nNeg

number of successes = 124 number of trials = 312

p-value = 00003462

alternative hypothesis true probability of success is not equal

to 05

95 percent confidence interval

03427360 04541027

sample estimates

probability of success

03974359

gt median(data$G92narm=TRUE)

[1] 150

Nicelno domnevo da je mediana place enaka 220 lahko zavrnemo pri 003- tve-ganju kar niti ni presenetljivo saj je vrednost mediane 200 binomtest lahkoklicemo tudi takole

gt binomtest(x=c(nPoznNeg)p=05)

232 Preverjanje domneve o razliki med srednjima vrednostmana odvisnih vzorcih in pripadajoci interval zaupanja

Vsi obravnavani testi za odvisne vzorce so enakovredni testom za en vzorec (o vre-dnosti srednje vrednosti) ki se izvedejo na razliki dveh spremenljivk To velja upo-stevati tudi pri interpretaciji rezultatov Pri t-testu to sicer ni problematicno sajvelja da je aritmeticna sredina razlike enaka razliki aritmeticnih sredin Enako pane velja za mediano ndash mediana razlike ni enaka razliki median

92 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

Slika 22 Porazdelitev zaupanja v Drzavni zbor in Evropski parlament

Zaupanje v Državni zbor

Fre

kven

ca

0 2 4 6 8 10

050

150

250

Zaupanje v Evropski parlament

Fre

kven

ca0 2 4 6 8 10

050

150

250

Opozorilo

Test predznaka torej preverja domnevo o vrednosti mediane razlike inne o vrednosti razlike median

Primer domneve je lahko H0 Zaupanje v drzavni zbor je v rdquopovprecjurdquo enakozaupanju v evropski parlament

Poleg tega izracunajmo tudi 90- interval zaupanja za razliko v zaupanju v obaparlamenta

Poglejmo si najprej porazdelitve obeh spremenljivk (slika 22) Kot vemo je kljucnaporazdelitev razlike obeh spremenljivk12 (slika 23) saj so testi za odvisne vzorceenakovredni testom za en vzorec na razliki spremenljivk

gt Pregledamo porazdelitve in opisne statistike

gt originalnih spremenljivk

gt par(mfrow=c(12))

gt hist(data$B4xlab=Zaupanje v Drzavni zbormain=

ylab=Frekvenca)

gt hist(data$B9xlab=Zaupanje v Evropski parlamentmain=

ylab=Frekvenca)

gt par(mfrow=c(11))

gt describe(data[c(B4B9)])

12Razliko izracunamo kot prva spremenljivka ndash druga spremenljivka

2 poglavje ndash Univariatna in bivariatna statistika 93

Slika 23 Porazdelitev razlike med zaupanjem v Drzavni zbor in zaupanjem v Evrop-ski parlament

Razlika v zaupanju (Državni zbor ndash Evropski parlament)

Fre

kven

ca

-10 -5 0 5

010

020

030

040

0

vars n mean sd median trimmed mad min max range

B4 1 1387 413 238 4 410 148 0 10 10

B9 2 1247 453 241 5 457 297 0 10 10

skew kurtosis se

B4 011 -054 006

B9 -009 -070 007

gt razlike

gt hlt-hist(data$B4-data$B9main=ylab=Frekvencabr=-107

xlab=Razlika v zaupanju (Drzavni zbor - Evropski parlament))

gt curve(dnorm(xmean=mean(data$B4-data$B9narm=TRUE)

sd=sd(data$B4-data$B9narm=TRUE))diff(h$breaks)[1]

sum(isna(data$B4-data$B9)) add=TRUE)

gt describe(data$B4-data$B9)

vars n mean sd median trimmed mad min max range

1 1 1231 -041 21 0 -037 148 -10 7 17

94 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

skew kurtosis se

1 -031 182 006

Na slikah 22 in 23 ter zgornjem izpisu vidimo da je porazdelitev obeh spremenljivkpodobna porazdelitev razlike pa sicer priblizno normalna z rahlo asimetrijo v levoin znatno konicavostjo

Sedaj preverimo se (nicelno) domnevo da je povprecno zaupanje v oba parlamentaenako ter izracunajmo 90- interval zaupanja

gt ttest(x=data$B4y=data$B9 paired=TRUE conflevel = 090)

Paired t-test

data data$B4 and data$B9

t = -6883 df = 1230 p-value = 9317e-12

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

-05093517 -03127442

sample estimates

mean of the differences

-04110479

Ugotovimo lahko da je razlika med obema povprecjema statisticno znacilna prizanemarljivem tveganju Z 10- tveganjem lahko trdimo da smo Slovenci leta 2004v povprecju med minus051 in minus031 tocke bolj zaupali Evropskemu parlamentu kotdrzavnemu zboru

Sedaj opravimo se neparametricne teste Pri Wilcoxonovem testu je formalna do-mneva da je vsota rangov negativnih vrednosti enaka vsoti rangov pozitivnih vre-dnosti (pri racunanju rangov se predznak ne uposteva) Pri testu predznakamedianepreverimo ali je negativnih odklonov vec kot pozitivnih (odklonov z vrednostjo 0ne upostevamo)

gt wilcoxtest(x=data$B4y=data$B9 paired=TRUE)

Wilcoxon signed rank test with continuity correction

data data$B4 and data$B9

V = 112990 p-value = 9524e-12

alternative hypothesis true location shift is not equal to 0

gt nPozlt-sum((data$B4-data$B9)gt0 narm = TRUE)

gt manjkajoce vrednosti ignoriramo

gt nNeglt-sum((data$B4-data$B9)lt0 narm = TRUE)

gt binomtest(x=nPozn=nPoz+nNegp=05)

2 poglavje ndash Univariatna in bivariatna statistika 95

Exact binomial test

data nPoz and nPoz + nNeg

number of successes = 308 number of trials = 790

p-value = 6433e-10

alternative hypothesis true probability of success is not equal

to 05

95 percent confidence interval

03556961 04248759

sample estimates

probability of success

03898734

Na podlagi obeh testov lahko ugotovimo da je razlika med povprecjema statisticnoznacilno razlicna od 0 pri zanemarljivem tveganju oziroma da srednji vrednosti nistaenaki

233 Preverjanje domneve o razliki med srednjima vrednostmana neodvisnih vzorcih in pripadajoci interval zaupanja

Edini neparametricni test ki ga bomo obravnavali tu je Mann-Whitneyjev test(oziroma Wilcoxonov test za neodvisna vzorca ali Wilcoxon-Mann-Whitneyjev test)

bull Predpostavlja vsaj ordinalno mersko lestvico

bull Testira ali sta povprecna ranga enaka oziroma ali je verjetnost da imaenota iz 1 skupine vecjo vrednost kot enota iz 2 skupine enaka 05

bull Ce sta obliki porazdelitev v obeh skupinah podobni se lahko uporablja za testenakosti srednjih vrednosti

Primer domneve je lahko H0 rdquoSrednja vrednostrdquo za bruto placo je enaka pri moskihin zenskah

Poleg tega izracunajmo tudi 90- interval zaupanja za razliko v bruto placi moskihin zensk

Poglejmo si najprej opisne statistike in porazdelitvi spremenljivke na obeh vzorcih(slika 24)

gt opisne statistike

gt describeBy(x=data$G91group=data$O1F2mat=TRUE)

item group1 vars n mean sd median trimmed

11 1 moski 1 173 2375896 1263618 200 2184460

12 2 zenski 1 145 2099103 1127086 184 1951026

mad min max range skew kurtosis se

96 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

Slika 24 Porazdelitev bruto place pri moskih in zenskah

Moški

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

010

2030

40

Ženske

Bruto plača v 1000 sit

Fre

kven

ca0 200 400 600 800

010

2030

40

11 889560 61 760 699 1573864 2777364 9607112

12 978516 53 700 647 1263913 1745150 9359942

gt poglejmo porazdelitev

gt par(mfrow=c(12))

gt hist(data$G91[data$O1F2==moski]br=(016)50

xlab=Bruto placa v 1000 sitmain=Moskiylab=Frekvenca)

gt hist(data$G91[data$O1F2==zenski]br=(016)50

xlab=Bruto placa v 1000 sitmain=Zenskeylab=Frekvenca)

gt par(mfrow=c(11))

Predpostavka klasicne razlicice t-testa za neodvisne vzorce je tudi enakost variancZato izvedemo tudi test enakosti varianc a se nanj ni dobro prevec opirati Privelikih vzorcih je namrec precej obcutljiv in zazna razlike v variancah veliko prejkot le-te zacnejo vplivati na veljavnost klasicnega t-testa

gt vartest(G91~O1F2data=data)

F test to compare two variances

data G91 by O1F2

F = 12569 num df = 172 denom df = 144 p-value =

01561

alternative hypothesis true ratio of variances is not equal to 1

95 percent confidence interval

09159805 17172157

sample estimates

2 poglavje ndash Univariatna in bivariatna statistika 97

ratio of variances

1256949

gt flignertest(G91~O1F2data=data)

Fligner-Killeen test of homogeneity of variances

data G91 by O1F2

Fligner-Killeenmed chi-squared = 013014 df = 1

p-value = 07183

gt neobcutljiv na odstopanja od normalnosti

gt library(car)

gt leveneTest(G91~O1F2data=data)

Levenes Test for Homogeneity of Variance (center = median)

Df F value Pr(gtF)

group 1 00538 08167

316

gt neobcutljiv na odstopanja od normalnosti

gt leveneTest(G91~O1F2data=data center=mean)

Levenes Test for Homogeneity of Variance (center = mean)

Df F value Pr(gtF)

group 1 0369 0544

316

gt razlicica kot jo uporablja SPSS

gt malce manj robustna

Glede na to da so vsi testi enakosti varianc pokazali da domneve o enakih variancahne moremo zavrniti lahko (brez zadrzkov kar se tice enakosti varianc) izvedemo t-test s predpostavko enakih varianc Poleg tega bomo izracunali tudi 90- intervalzaupanja za razliko aritmeticnih sredin

gt ttest(G91~O1F2data=datavarequal=TRUE conflevel = 090)

Two Sample t-test

data G91 by O1F2

t = 2043 df = 316 p-value = 004188

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

5328537 50029964

sample estimates

mean in group moski mean in group zenski

2375896 2099103

Pri 5- tveganju so razlike statisticno znacilne torej lahko s takim tveganje trdimoda imajo moski v povprecju visjo placo tudi na populaciji Z 10- tveganjem lahkotrdimo da imajo moski v povprecju od 533 do 5003 tisoc sit visjo placo kot zenske

98 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

Ce ne bi zeleli predpostaviti enakih varianc bi bila koda kot sledi Testa ne bomoopravili ker v tem primeru ni potrebe

gt ttest(G91~O1F2data=datavarequal=FALSE conflevel = 090)

gt ali

gt ttest(G91~O1F2data=data conflevel = 090)

gt argumenta varequal=FALSE ni treba navajati

gt ker je to privzeta vrednost

Sedaj pa opravimo se ustrezen neparametricen test torej Mann-Whitneyjev test

gt wilcoxtest(G91~O1F2data=data)

Wilcoxon rank sum test with continuity correction

data G91 by O1F2

W = 14496 p-value = 00167

alternative hypothesis true location shift is not equal to 0

Tudi tu ugotovimo da so razlike med srednjimi vrednostmi statisticno znacilne pri5- tveganju oz natancneje v tem primeru pri 17- tveganju

24 Preverjanje domnev o delezih in pripadajoci

intervali zaupanja

Domneve o delezih lahko preverjamo na vec nacinov V primeru velikih vzorcevobicajno predpostavljamo da se delezi ali razlike med delezi porazdeljujejo pribli-zno normalno Alternativni nacin za preverjanje domnev o delezih je s pomocjokontingencnih tabel in χ2 porazdelitve vendar je tudi ta le priblizen Za posamezneprobleme bomo obravnavali tudi natancne teste ki pa se od problema do problemarazlikujejo

V praksi se pogosto uporablja tudi pristop pri katerem se deleze obravnava kotpovprecja spremenljivk ki imajo vrednosti 0 in 1 V primeru dovolj velikih vzorcevin neekstremnih delezev (ki niso blizu 0 ali 1) je ta pristop primeren

2 poglavje ndash Univariatna in bivariatna statistika 99

241 Preverjanje domneve o vrednosti deleza in pripadajociinterval zaupanja

Nekih volitev se jih je udelezilo 687 anketirancev Preverili bomo domnevo dase je volitev udelezilo 70 volilnih upravicencev Ker je vzorec velik in delez niekstremen uporaba priblizkov ni problematicna

gt pogledamo frekvencno tabelo odgovorov (vec o tem kasneje)

gt tbllt-table(data$B11)

gt tbl

da ne

940 432

gt izracunamo deleze

gt proptable(tbl)

da ne

06851312 03148688

gt stevilo tistih ki so odgovorili z da ali ne

gt nlt-sum(tbl)

gt n

[1] 1372

gt delez tistih ki so glasovali

gt plt-tbl[1]n

gt p

da

06851312

gt preverjanje domneve s pomocjo klasicnega z-testa

gt H0 pi=piH=070

gt piHlt-070

gt izracun standardne napake

gt sePlt-sqrt(p(1-p)n)

gt izracun z statistike

gt zlt-(p-piH)seP

gt izracunamo p-vrednost (dvostranska)

gt 2pnorm(-abs(z))

da

02357121

Domnevo bi lahko zavrnili sele pri 236- tveganju in je zato ne zavrnemo Torej nemoremo trditi da se volitev ni udelezilo 70 volilnih upravicencev (ampak vec alimanj)

Namesto normalne bi bilo sicer bolje uporabiti t-porazdelitev (ker smo standardnonapako ocenili na vzorcu) a pri tako velikih vzorcih v obeh primerih dobimo enakrezultat

100 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

gt 2pt(-abs(z)df=n-1)

da

02359176

Izracunajmo sedaj se klasicna intervala zaupanja (z uporabo normalne in t poraz-delitve)

gt alfa lt- 01

gt (intZlt-p + qnorm(c(alfa21-alfa2))seP)

[1] 06645058 07057566

gt (intTlt-p + qt(c(alfa21-alfa2)df=n-1)seP)

[1] 06644919 07057705

S 10- tveganjem torej lahko trdimo da se je volitev udelezilo med 066 (066 pri t-porazdelitvi) in 071 volilnih upravicencev

Sedaj bomo preverili domnevo se s χ2-testom in natancnim testom (preko binomskeporazdelitve) Test preko binomske porazdelitve je pravzaprav najnatancnejsi Obefunkciji zraven izracunata tudi interval zaupanja

gt preko hi-kvadrat testa

gt proptest(x=tbl[1]n=np=piH conflevel=1-alfa)

1-sample proportions test with continuity correction

data tbl[1] out of n null probability piH

X-squared = 13745 df = 1 p-value = 0241

alternative hypothesis true p is not equal to 07

90 percent confidence interval

06637884 07057324

sample estimates

p

06851312

gt dobimo tudi interval zaupanja

gt

gt se natancen test

gt binomtest(x=tbl[1]n=np=piH conflevel=1-alfa)

Exact binomial test

data tbl[1] and n

number of successes = 940 number of trials = 1372

p-value = 02273

alternative hypothesis true probability of success is not equal

to 07

2 poglavje ndash Univariatna in bivariatna statistika 101

90 percent confidence interval

06638601 07058132

sample estimates

probability of success

06851312

Rezultatov zaradi podobnosti s prejsnjimi ne bom interpretiral

Za konec naredimo se test preko povprecij torej t-test Tu upostevamo da je pov-precje spremenljivke ki ima vrednosti le 0 in 1 pravzaprav delez enic Ta test jezaradi popolne krsitve predpostavke o normalnosti manj primeren ceprav priblizekpri velikih vzorcih ni slab

gt xlt-data$B11

gt xlt-(x==da)1

gt ttest(xmu=piH conflevel=1-alfa)

One Sample t-test

data x

t = -11853 df = 1371 p-value = 02361

alternative hypothesis true mean is not equal to 07

90 percent confidence interval

06644843 07057780

sample estimates

mean of x

06851312

Kot vidimo so rezultati v tem primeru (zaradi velikega vzorca) res skoraj identicni

242 Preverjanje domnev o razliki med delezema na neod-visnih vzorcih in pripadajoci intervali zaupanja

Tudi tu lahko uporabimo podobne pristope kot pri prejsnjem primeru Preverimodomnevo da je delez volivcev enak pri zenskah in moskih Najprej izracunamokontingencno tabelo (vec o tem v podpodpoglavju 252)

gt izracunamo kontingencno tabelo

gt tbllt-table(data$O1F2data$B11)

gt tbl

da ne

moski 427 188

zenski 492 235

102 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

gt izracunamo deleze

gt proptable(tblmargin=1)

da ne

moski 06943089 03056911

zenski 06767538 03232462

gt stevilo enot

gt nlt-apply(tbl1sum)

gt n

moski zenski

615 727

gt delez tistih ki so glasovali

gt plt-tbl[1]n

gt p

moski zenski

06943089 06767538

Najprej zopet s pomocjo klasicnega z-testa preverimo domnevo

gt H0 piM=piZ

gt izracun standardne napake

gt pSkuplt-sum(tbl[1])sum(n)

gt sePlt-sqrt(sum(pSkup(1-pSkup)n))

gt izracun z statistike

gt zlt-(p[1]-p[2])seP

gt izracunamo p-vrednost (dvostranska)

gt 2pnorm(-abs(z))

moski

04903852

Domnevo o enakosti delezev bi lahko zavrnili sele pri 49- tveganju in je zato nezavrnemo Tako ne moremo trditi da se delez volivcev na populaciji med spolomarazlikuje Sledijo se ostali testi torej χ2-test in test preko povprecij Pri obehdobimo tudi interval zaupanja za razliko delezev

gt preko hi-kvadrat testa

gt proptest(x=tbl conflevel=1-alfa)

2-sample test for equality of proportions with

continuity correction

data tbl

X-squared = 039783 df = 1 p-value = 05282

alternative hypothesis twosided

90 percent confidence interval

2 poglavje ndash Univariatna in bivariatna statistika 103

-002575264 006086296

sample estimates

prop 1 prop 2

06943089 06767538

gt dobimo tudi interval zaupanja

gt

gt preko povprecij

gt xlt-data$B11

gt xlt-(x==da)1

gt spollt-data$O1F2

gt ttest(x~spol varequal=TRUE conflevel=1-alfa)

Two Sample t-test

data x by spol

t = 06893 df = 1340 p-value = 04908

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

-002436485 005947517

sample estimates

mean in group moski mean in group zenski

06943089 06767538

Tu ugotovimo da ne moremo trditi da se delez volivcev na populaciji med spolomarazlikuje Kot receno dobimo tudi intervala zaupanja Ce upostevamo prvega kije zanesljivejsi lahko pri 10- tveganju trdimo da je razlika v delezu volivcev medmoskimi in zenskami med minus002575 in 006086

25 Frekvencne in kontingencne tabele

251 Frekvencne tabele

Frekvencne in kontingencne tabele v R-ju dobimo z ukazom table ki izracunasamo frekvence Za dodajanje vsote (rdquoSkupajrdquo) lahko potem uporabimo funkcijoaddmargins za izracun odstotkov pa proptable

Funkcija table s privzetimi vrednostmi ne uposteva manjkajocih vrednosti Cezelimo imeti v tabeli tudi manjkajoce vrednosti (NA) moramo pri klicu funkcijetable nastaviti exclude=NULL

Malce bogatejso frekvencno tabelo je moc dobiti tudi s funkcijo frekTab ki senahaja v datoteki rdquoUcbenikR-funkcijeRrdquo

Za risanje frekvencnih tabel sta primerni predvsem funkciji barplot in pie

104 25 Frekvencne in kontingencne tabele

Zacnimo s frekvencno tabelo

gt tbllt-table(data$F5)

gt tbl

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija

148

gt addmargins(tbl) a skupaj

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija Sum

148 1436

gt addmargins(proptable(tbl)) + skupaj

veliko mesto predmestje manjse mesto vas

009192201 014206128 022701950 043593315

kmetija Sum

010306407 100000000

gt barplot(tbl)

gt pie(tbl)

Z argumentom exclude=NULL zahtevamo naj se izpisejo tudi manjkajoce vrednosti(oz natancneje naj se iz tabele nicesar ne izpusti)

gt z NA

gt table(data$F5exclude=NULL)

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija ltNAgt

148 6

Se primer malce bogatejse frekvencne tabele s funkcijo frekTab (iz datoteke rdquoUcbenikR-funkcijeRrdquo)

gt s funkcijo frekTab

gt frekTab(data$F5)

Frekvenca Kum frek Kumulativni

veliko mesto 132 132 9192201 9192201

predmestje 204 336 14206128 23398329

manjse mesto 326 662 22701950 46100279

vas 626 1288 43593315 89693593

kmetija 148 1436 10306407 100000000

2 poglavje ndash Univariatna in bivariatna statistika 105

252 Kontingencne tabele

Za kontingecne tabele lahko uporabimo iste funkcije kot za frekvencne tabele Ce ze-limo na primer na podlagi dveh spremenljivk oblikovati osnovno kontingencno tabelouporabimo funkcijo table in ji kot argumente podamo spremenljivke na podlagikaterih zelimo oblikovati tabelo (najprej spremenljivka v vrsticah nato v stolpcih)Ce pri podajanju spremenljivk (argumentov) podamo tudi imena argumentov (nprKraj=data$F5 spodaj) postanejo imena argumentov imena posameznih dimenzijtabele

Najprej izracunajmo kontingencno tabelo za kraj bivanja in spol skupaj z vsotamiVrednosti v tabeli tudi pretvorimo v deleze in zopet dodamo vsote

gt tbl2Dlt-table(Kraj=data$F5Spol=data$O1F2)

gt tbl2D

Spol

Kraj moski zenski

veliko mesto 56 72

predmestje 94 110

manjse mesto 151 160

vas 264 351

kmetija 78 69

gt skupaj z vsotami

gt addmargins(tbl2D)

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

Sum 643 762 1405

gt preracun v skupne deleze

gt proptable(tbl2D)

Spol

Kraj moski zenski

veliko mesto 003985765 005124555

predmestje 006690391 007829181

manjse mesto 010747331 011387900

vas 018790036 024982206

kmetija 005551601 004911032

gt ptbllt-proptable(tbl2D)

gt addmargins(tbl2D)

106 25 Frekvencne in kontingencne tabele

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

Sum 643 762 1405

gt preracun v deleze po stolpcih

gt proptable(tbl2Dmargin=2)

Spol

Kraj moski zenski

veliko mesto 008709176 009448819

predmestje 014618974 014435696

manjse mesto 023483670 020997375

vas 041057543 046062992

kmetija 012130638 009055118

gt addmargins(tbl2Dmargin=2)

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

gt ptbllt-addmargins(proptable(addmargins(tbl2Dmargin=2)

margin=2)margin=1)

gt ptbl

Spol

Kraj moski zenski Sum

veliko mesto 008709176 009448819 009110320

predmestje 014618974 014435696 014519573

manjse mesto 023483670 020997375 022135231

vas 041057543 046062992 043772242

kmetija 012130638 009055118 010462633

Sum 100000000 100000000 100000000

gt v na 2 decimalki

gt round(ptbl1002)

Spol

Kraj moski zenski Sum

veliko mesto 871 945 911

predmestje 1462 1444 1452

manjse mesto 2348 2100 2214

2 poglavje ndash Univariatna in bivariatna statistika 107

vas 4106 4606 4377

kmetija 1213 906 1046

Sum 10000 10000 10000

Za dvodimenzionalne tabele pa lahko za bogatejsi izpis (tipa SPSS) uporabimo tudifunkcijo CrossTable iz paketka gmodels

gt enostavneje s paketkom gmodels

gt installpackages(gmodels)

gt library(gmodels)

gt CrossTable(data$F5data$O1F2)

Cell Contents

|-------------------------|

| N |

| Chi-square contribution |

| N Row Total |

| N Col Total |

| N Table Total |

|-------------------------|

Total Observations in Table 1405

| data$O1F2

data$F5 | moski | zenski | Row Total |

-------------|-----------|-----------|-----------|

veliko mesto | 56 | 72 | 128 |

| 0114 | 0096 | |

| 0438 | 0562 | 0091 |

| 0087 | 0094 | |

| 0040 | 0051 | |

-------------|-----------|-----------|-----------|

predmestje | 94 | 110 | 204 |

| 0004 | 0004 | |

| 0461 | 0539 | 0145 |

| 0146 | 0144 | |

| 0067 | 0078 | |

-------------|-----------|-----------|-----------|

manjse mesto | 151 | 160 | 311 |

| 0528 | 0446 | |

| 0486 | 0514 | 0221 |

| 0235 | 0210 | |

108 25 Frekvencne in kontingencne tabele

| 0107 | 0114 | |

-------------|-----------|-----------|-----------|

vas | 264 | 351 | 615 |

| 1083 | 0914 | |

| 0429 | 0571 | 0438 |

| 0411 | 0461 | |

| 0188 | 0250 | |

-------------|-----------|-----------|-----------|

kmetija | 78 | 69 | 147 |

| 1710 | 1443 | |

| 0531 | 0469 | 0105 |

| 0121 | 0091 | |

| 0056 | 0049 | |

-------------|-----------|-----------|-----------|

Column Total | 643 | 762 | 1405 |

| 0458 | 0542 | |

-------------|-----------|-----------|-----------|

gt zelimo samo po stolpcih + hi-kvadrat test - SPSS format

gt CrossTable(data$F5data$O1F2 propr=FALSE propc=TRUE

propt=FALSE propchisq=FALSE chisq = TRUE format=c(SPSS))

Cell Contents

|-------------------------|

| Count |

| Column Percent |

|-------------------------|

Total Observations in Table 1405

| data$O1F2

data$F5 | moski | zenski | Row Total |

-------------|-----------|-----------|-----------|

veliko mesto | 56 | 72 | 128 |

| 8709 | 9449 | |

-------------|-----------|-----------|-----------|

predmestje | 94 | 110 | 204 |

| 14619 | 14436 | |

-------------|-----------|-----------|-----------|

manjse mesto | 151 | 160 | 311 |

| 23484 | 20997 | |

-------------|-----------|-----------|-----------|

vas | 264 | 351 | 615 |

| 41058 | 46063 | |

-------------|-----------|-----------|-----------|

2 poglavje ndash Univariatna in bivariatna statistika 109

kmetija | 78 | 69 | 147 |

| 12131 | 9055 | |

-------------|-----------|-----------|-----------|

Column Total | 643 | 762 | 1405 |

| 45765 | 54235 | |

-------------|-----------|-----------|-----------|

Statistics for All Table Factors

Pearsons Chi-squared test

------------------------------------------------------------

Chi^2 = 6340168 df = 4 p = 01751438

Minimum expected frequency 5857936

Frekvencne tabele z vec kot dvema dimenzijama lahko ustvarimo na enak nacin kotdvodimenzionalne tabele s funkcijo table a je izpis pogosto zelo nepregleden Zapreglednejsi izpis lahko uporabimo funkcijo ftable ali tabelo pred izpisom pretvo-rimo v podatkovni okvir z asdataframe Kljub temu je izpis zelo dolg in ga zatoizpuscam

gt 3 in vec dimenzionalne tabele

gt tbl3Dlt-table(data$O1F2data$F5data$F6)

gt tbl3D

gt izpis postane zelo nepregleden

gt

gt ftable(tbl3D)

gt asdataframe(tbl3D)

253 Povezanost spremenljivk

S pomocjo kontingencnih tabel in na njih osnovanih mer lahko merimo in preverjamopovezanost med nominalnimi spremenljivkami

Za preverjanje domneve o neodvisnosti med dvema spremenljivkama lahko upora-bimo χ2-test Na voljo je v funkciji chisqtest ki kot argument sprejme vektormatriko ali dvodimenzionalno kontingencno tabelo Kot smo ze videli pa χ2-testvrne (ce tako izberemo) tudi funkcija CrossTable iz paketka gmodels

110 25 Frekvencne in kontingencne tabele

Funkcija chisqtest s privzetimi vrednostmi argumentov pri 2x2 tabelah uporabitudi Yatesov popravek omogoca pa tudi izracun (bolj) natancnih p vrednosti spomocjo simulacij (preko permutacijskega testa)

Statistiki si glede uporabe Yatesovega popravka niso enotni χ2-test ni natancen testampak le priblizek Uporaba Yatesovega popravka lahko v nekaterih primerih tapriblizek izboljsa lahko pa naredi χ2-test tudi prevec konzervativen

Za 2x2 tabele je na voljo tudi Fisherjev natancni test preko funkcije fishertest

Naredimo najprej obicajni χ2-test za povezanost tipa kraja bivanja in spola Prica-kujemo da nicelne domneve ne bomo mogli zavrniti

gt tblF5O1F2lt-table(data$F5data$O1F2)

gt tblF5O1F2

moski zenski

veliko mesto 56 72

predmestje 94 110

manjse mesto 151 160

vas 264 351

kmetija 78 69

gt chisqtest(tblF5O1F2)

Pearsons Chi-squared test

data tblF5O1F2

X-squared = 63402 df = 4 p-value = 01751

Domnevo bi lahko zavrnili sele pri 1751- tveganju in je zato ne zavrnemo

Poglejmo se primer tabele 2x2 kjer bomo preverjali domnevo o povezanosti (nicelnadomneva seveda predpostavlja neodvisnost) spremenljivk spol in rdquoclanstvo v politicnistrankirdquo Ker gre za tabelo 2x2 lahko uporabimo Yatesov popravek Izracunali bomoobe moznosti (s popravkom in brez njega)

gt attributes(data)$variablelabels[B21]

B21

Ali ste clan kaksne politicne stranke

gt data$B21lt-factor(data$B21)

gt (tblGndrBlt-table(data$B21data$O1F2)) 2x2 tabela

moski zenski

da 29 21

ne 618 738

2 poglavje ndash Univariatna in bivariatna statistika 111

gt hi-kvadrat test z Yatesovim popravkom (privzeta moznost)

gt chisqtest(tblGndrB)

Pearsons Chi-squared test with Yates continuity

correction

data tblGndrB

X-squared = 25174 df = 1 p-value = 01126

gt hi-kvadrat test brez Yatesovega popravka

gt chisqtest(tblGndrBcorrect = FALSE)

Pearsons Chi-squared test

data tblGndrB

X-squared = 29967 df = 1 p-value = 008343

Ce uporabimo privzeto moznost ce torej uporabimo Yatesov popravek lahko tuditu ugotovimo da niti pri 10- tveganju ne moremo trditi da sta spremenljivki spolin rdquoclanstvo v politicni strankirdquo povezani

Ce pa tega popravka ne bi uporabili bi pri 10- tveganju ze lahko trdili da staspremenljivki povezani

Ker je χ2-test pravzaprav le priblizek tukaj pa imamo celo dve razlicici pravilnostizracuna preverimo preko simulacij in Fisherjevega natancnega testa

gt chisqtest(tblGndrBsim=TRUE) p-vrednost preko simulacij

Pearsons Chi-squared test with simulated p-value

(based on 2000 replicates)

data tblGndrB

X-squared = 29967 df = NA p-value = 01134

gt fishertest(tblGndrB)

Fishers Exact Test for Count Data

data tblGndrB

p-value = 01112

alternative hypothesis true odds ratio is not equal to 1

95 percent confidence interval

08979363 30744330

sample estimates

odds ratio

1648488

Oba izracuna potrdita pravilnost izracuna χ2 z Yatesovim popravkom V primeruda bi izbrali χ2-test brez Yatesovega popravka bi dobili precej manjso stopnjo tve-ganja (priblizno 8-) ki pa bi bila glede na rezultate simulacij in Fisherjevega

112 26 Korelacija

natancnega testa napacna Uporaba popravka je torej v tem primeru primerna nipa vedno tako saj lahko popravek naredi test prevec konzervativen

Povezanost spremenljivk merimo s kontingencnimi koeficienti Ti so med drugim navoljo v funkciji assocstats v paketku vcd Razlaga vrnjenih koeficientov (glede naFerligoj 1994 166)

Phi-Coefficien Koren Pearsonovega koeficienta ndash pravzaprav gre v primeru binar-nih spremenljivk za Pearsonov korelacijski koeficient in ima tudi enako inter-pretacijo

Contingency Coeff Kontingencni koeficient (brez popravka)

Cramerrsquos V Kramerjev koeficient

gt installpackages(vcd)

gt library(vcd)

gt tblF5O1F2lt-table(data$F5data$O1F2)

gt assocstats(tblF5O1F2)

X^2 df P(gt X^2)

Likelihood Ratio 63309 4 017576

Pearson 63402 4 017514

Phi-Coefficient NA

Contingency Coeff 0067

Cramers V 0067

Vsi koeficienti imajo vrednost 0067 kar kaze da spremenljivki pravzaprav nistapovezani (oz sta zelo zelo sibko povezani)

26 Korelacija

Povezanost med ordinalnimi spremenljivkami in intervalnimi ali ordinalnimi spre-menljivkami merimo s pomocjo korelacijskih koeficientov

V R-ju lahko korelacijsko matriko izracunamo s pomocjo funkcije cor domneve okorelaciji pa lahko preverjamo s funkcijo cortest Prva (cor) izracuna korelacijomed vsemi spremenljivkami v podatkovnem okvirju ali matriki druga (cortest)izracuna in testira le eno korelacijo naenkrat Obe funkciji poznata naslednje kore-lacijske koeficiente

pearson Pearsonov koeficient (linearne) korelacije (privzeta moznost)

spearman Spearmanov koeficient korelacije

kendall Kendallov (τ) koeficient korelacijekonkordance

2 poglavje ndash Univariatna in bivariatna statistika 113

Slika 25 Razsevni grafikon ndash izobrazba in bruto placa

5 10 15 20

100

200

300

400

500

600

700

Izobrazba

Bru

to p

lača

Od teh treh je morda le Kendallov manj znan Tako kot Spearmanov koeficient ko-relacije je tudi Kendallov uporaben na ordinalnih spremenljivkah njegova vrednostpa se izracuna kot

(stevilo parov ki se ujemajo) ndash (stevilo parov ki se ne ujemajo)

stevilo vseh moznih parov

Pari ki se ujemajo so pari kjer je vrstni red enot (v paru) glede na obe spremenljivkienak tisti ki se ne ujemajo pa tisti kjer imata enoti drugacen vrstni red prispremenljivkah Stevilo vseh parov je n(nminus1)

2

Za primer vzemimo korelacijo med stevilom let solanja (F7) in bruto placo (G91)Odnos je prikazan tudi na sliki 25 Ocitno je zveza med spremenljivkama pozitivnaa nelinearna Izracunajmo in testirajmo vse tri koeficiente

gt narisemo razsevni grafikon

gt plot(G91~F7data=dataxlab=Izobrazbaylab=Bruto placa)

114 26 Korelacija

gt izracunamo Pearsonov koeficient korelacije

gt cor(x=data$F7y=data$G91use=completeobsmethod=pearson)

[1] 0550864

gt in preverimo domnevo (ki tudi izracuna korelacijo)

gt cortest(x=data$F7y=data$G91 method=pearson)

Pearsons product-moment correlation

data data$F7 and data$G91

t = 11862 df = 323 p-value lt 22e-16

alternative hypothesis true correlation is not equal to 0

95 percent confidence interval

04702540 06223585

sample estimates

cor

0550864

gt Spearmanov

gt cortest(x=data$F7y=data$G91 method=spearman)

Spearmans rank correlation rho

data data$F7 and data$G91

S = 2392800 p-value lt 22e-16

alternative hypothesis true rho is not equal to 0

sample estimates

rho

05817806

gt Kendallov

gt cortest(x=data$F7y=data$G91 method=kendall)

Kendalls rank correlation tau

data data$F7 and data$G91

z = 11146 p-value lt 22e-16

alternative hypothesis true tau is not equal to 0

sample estimates

tau

04474194

Vsi trije koeficienti kazejo na srednje mocno povezanost a vseeno je vrednost Ken-dallovega koeficienta bistveno nizja vrednost Spearmanovega pa najvisja

Kot smo ze omenili funkcija cor izracuna korelacijo med vsemi spremenljivkamiv podatkovnem okvirju funkcija cortest pa izracuna in testira le eno korelacijonaenkrat V ta namen je v datoteki rdquoUcbenikR-funkcijeRrdquo funkcija corTestDf kiomogoca da funkcijo cortest uporabimo na vec spremenljivkah Lepsi izpis sedobi z uporabo funkcije printCorTestDf

2 poglavje ndash Univariatna in bivariatna statistika 115

Slika 26 Razsevni grafikoni med vsemi spremenljivkami ki merijo zaupanje v in-stitucije

B4

0 4 8 0 4 8 0 4 8

04

8

04

8

B5

B6

04

8

04

8

B7

B8

04

8

04

8

B9

0 4 8 0 4 8 0 4 8 0 4 8

04

8

B10

Poglejmo si torej korelacije in statisticne znacilnosti na primeru sklopa spremenljivkB4-B10 (zaupanje v institucije) Izracunali bomo Pearsonove in Kendallove koefi-ciente Hiter pregled povezanosti med njimi je na sliki 26 (tocke so zaradi boljsepreglednosti rdquozatresenerdquo)

gt izbor shranimo

gt izborlt-c(B4 B5 B6 B7 B8 B9 B10)

gt izpisemo imena

gt attributes(data)$variablelabels[izbor]

B4 B5

drzavnemu zboru pravnemu sistemu

116 26 Korelacija

B6 B7

policiji politikom

B8 B9

politicnim strankam Evropskemu parlamentu

B10

Zdruzenim narodom

gt narisemo grafe

gt pairs(apply(data[izbor]2jitter)cex=03)

gt izracunamo Pearsonove korelacije

gt cor(data[izbor]use=pairwisecompleteobsmethod=pearson)

B4 B5 B6 B7 B8

B4 10000000 05946718 04616891 06415600 06311402

B5 05946718 10000000 05633582 05902897 05644650

B6 04616891 05633582 10000000 04800425 04414586

B7 06415600 05902897 04800425 10000000 08322464

B8 06311402 05644650 04414586 08322464 10000000

B9 06179115 05648233 04733737 05792044 05935754

B10 05188249 04824849 04596825 04667185 04893612

B9 B10

B4 06179115 05188249

B5 05648233 04824849

B6 04733737 04596825

B7 05792044 04667185

B8 05935754 04893612

B9 10000000 07889287

B10 07889287 10000000

gt tmplt-corTestDf(data[izbor]method=pearson)

gt printCorTestDf(tmp)

B4 B5 B6 B7 B8 B9 B10

B4 cor 0595 0462 0642 0631 0618 0519

p 0000 0000 0000 0000 0000 0000

n 1387 1358 1368 1374 1373 1231 1276

B5 cor 0595 0563 0590 0564 0565 0482

p 0000 0000 0000 0000 0000 0000

n 1358 1376 1365 1365 1364 1228 1274

B6 cor 0462 0563 0480 0441 0473 0460

p 0000 0000 0000 0000 0000 0000

n 1368 1365 1401 1380 1372 1238 1287

B7 cor 0642 0590 0480 0832 0579 0467

p 0000 0000 0000 0000 0000 0000

n 1374 1365 1380 1398 1380 1236 1283

B8 cor 0631 0564 0441 0832 0594 0489

2 poglavje ndash Univariatna in bivariatna statistika 117

p 0000 0000 0000 0000 0000 0000

n 1373 1364 1372 1380 1392 1236 1285

B9 cor 0618 0565 0473 0579 0594 0789

p 0000 0000 0000 0000 0000 0000

n 1231 1228 1238 1236 1236 1247 1227

B10 cor 0519 0482 0460 0467 0489 0789

p 0000 0000 0000 0000 0000 0000

n 1276 1274 1287 1283 1285 1227 1295

gt se Kendallove

gt cor(data[izbor]use=pairwisecompleteobsmethod=kendall)

B4 B5 B6 B7 B8

B4 10000000 04909485 03667314 05291117 05160148

B5 04909485 10000000 04606602 04794322 04546308

B6 03667314 04606602 10000000 03844481 03523638

B7 05291117 04794322 03844481 10000000 07607492

B8 05160148 04546308 03523638 07607492 10000000

B9 05049790 04485398 03736321 04639373 04807420

B10 04279313 03891029 03600516 03761712 03943594

B9 B10

B4 05049790 04279313

B5 04485398 03891029

B6 03736321 03600516

B7 04639373 03761712

B8 04807420 03943594

B9 10000000 06927734

B10 06927734 10000000

gt tmplt-corTestDf(data[izbor]method=kendall)

gt printCorTestDf(tmp)

B4 B5 B6 B7 B8 B9 B10

B4 cor 0491 0367 0529 0516 0505 0428

p 0000 0000 0000 0000 0000 0000

n 1387 1358 1368 1374 1373 1231 1276

B5 cor 0491 0461 0479 0455 0449 0389

p 0000 0000 0000 0000 0000 0000

n 1358 1376 1365 1365 1364 1228 1274

B6 cor 0367 0461 0384 0352 0374 0360

p 0000 0000 0000 0000 0000 0000

n 1368 1365 1401 1380 1372 1238 1287

B7 cor 0529 0479 0384 0761 0464 0376

p 0000 0000 0000 0000 0000 0000

n 1374 1365 1380 1398 1380 1236 1283

B8 cor 0516 0455 0352 0761 0481 0394

118 27 Viri za poglabljanje znanja

p 0000 0000 0000 0000 0000 0000

n 1373 1364 1372 1380 1392 1236 1285

B9 cor 0505 0449 0374 0464 0481 0693

p 0000 0000 0000 0000 0000 0000

n 1231 1228 1238 1236 1236 1247 1227

B10 cor 0428 0389 0360 0376 0394 0693

p 0000 0000 0000 0000 0000 0000

n 1276 1274 1287 1283 1285 1227 1295

Pri zanemarljivi stopnji tveganja lahko pri obeh koeficientih ugotovimo da so vsespremenljivke na populaciji povezane kar bi glede na to da merijo sorodne stvari inglede na velikost vzorca tudi pricakovali Tudi tu se pokaze da je linearna poveza-nost izmerjena s Pearsonovim koeficientom vecja od tiste izmerjene s Kendallovim

27 Viri za poglabljanje znanja

Za poglabljanje snovi iz tega poglavja so uporabni tudi spletni viri navedeni vpodpodpoglavju 191 (Spletni viri) a jih ju tu ponovno ne navajam Izpostavljamsamo enega s pomocjo katerega je mogoce zelo enostavno in hitro najti ustrezneukaze za izvedbo zelenih analiz

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

Za poglabljanje znanja iz statistike so primerni prakticno vsi splosni statisticni uc-beniki na primer

bull Minium Edward W Robert C Clarke in Theodore Coladarci 1999 Elementsof statistical reasoning New York Wiley

bull Levin Jack James Alan Fox in David R Forde 2013 Elementary Statisticsin Social Research (12th Edition) Pearson

bull Wonnacott Thomas H in Ronald J Wonnacott 1990 Introductory statisticsNew York Wiley

bull Kosmelj Blazenka in Joze Rovan 2007 Statisticno sklepanje Ljubljana Eko-nomska fakultetaSlovenski ucbenik ki ga uporabljajo na Ekonomski fakulteti Univerze v Lju-bljani

Osnovne statisticne analize v R-ju pa pokrivajo sledeci ucbeniki ki so bili sicervecinoma navedeni tudi pri virih v prvem poglavju

2 poglavje ndash Univariatna in bivariatna statistika 119

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer13

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer14

Se posebej primeren za tiste ki ze poznajo SPSS ali SAS sicer pa zelo zgoscenaobravnava

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC15

28 Vprasanja za ponavljanje

1 Kaj moramo narediti da nam funkcije kot so na primer mean in min vrnejoveljavno vrednost tudi ce imamo v podatkih manjkajoce vrednosti (NA) Ena-kovredno vprasanje je kaj moramo storiti da izracunajo statistiko samo napodlagi veljavnih (nemanjkajocih) vrednosti

2 Kateri paketek vsebuje veliko funkcij ki so zelo uporabne v druzboslovju in seposebej v psihologiji

3 S katerim argumentov vecini statisticnih funkcij povemo iz katerega podat-kovja (oziroma podatkovnega okvirja) naj crpa podatke (isce spremenljivke)

4 Kaksna je razlika med parametricnimi in neparametricnimi testi

5 Katero funkcijo ali funkcije moramo izbrati ce zelimo izvesti t-test za en vzo-rec za dva odvisna vzorca in za dva neodvisna vzorca Na podlagi cesa seodlocimo katerega izmed teh testov je treba izvesti

6 Kateri test za preverjanje domneve o srednji vrednosti ne zahteva vsaj inter-valne merske lestvice

7 Ali funkcija ttest s privzetimi argumenti pri izvedbi t-testa za neodvisnavzorca predpostavlja enako ali razlicno velike variance po skupinah

8 Kako funkcija table s privzetimi vrednostmi argumentov v kontingencnihtabelah izpisuje manjkajoce vrednosti (NA)

9 Kdaj lahko uporabimo Fisherjev natancni test za preverjanje domneve o po-vezanosti dveh nominalnih spremenljivk

10 Katere korelacijske koeficiente lahko izracuna funkcija cor

13Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani14Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani15Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf

120 28 Vprasanja za ponavljanje

11 Kako funkcija cor s privzetimi argumenti obravnava manjkajoce vrednosti ceracunamo korelacijsko matriko med vec spremenljivkami Kaksne so ostalemoznosti

12 Ali lahko na podlagi izpisa funkcije cor povemo ali lahko nicelno domnevo onepovezanosti dveh spremenljivk zavrnemo

121

3 poglavje

Analiza variance in linearna regre-sija

V zadnjem poglavju sta predstavljeni analiza variance in linearna regresija Pri obehzacnemo z najenostavnejsim (bivariatnim) primerom nato pa dodajamo dodatne ele-mente Poglavje kot obicajno zacnemo s predstavitvijo podatkov Sledi podpoglavjeo analizi variance kjer zacnemo z enofaktorsko analizo variance ki jo potem nad-gradimo v vecfaktorsko analizo variance kjer so mozne tudi interakcije med ucinkineodvisnih spremenljivk Prav tako obravnavamo tudi enofaktorsko analizo varianceza odvisne vzorce in Kruskal-Wallisov test vsote rangov neparametricno razlicicoklasicne enofaktorske analize variance za neodvisne vzorce

Analizi variance sledi podpoglavje o linearni regresiji kjer ponovno zacnemo z eno-stavno bivariatno linearno regresijo V nadaljevanju linearno regresijo najprej nad-gradimo z nelinearno regresijo vecina poglavja pa je namenjena multipli linearniregresiji torej linearni regresiji z vec neodvisnimi spremenljivkami Pri tem prika-zemo tudi kako lahko kot neodvisne spremenljivke vkljucimo nominalne in ordinalnespremenljivke ter kako v model vkljucimo interakcije med vplivi neodvisnih spremen-ljivk Proti koncu poglavja posebno pozornost namenimo preverjanju predpostavkZa bolj zagnane studente pa sta dodana podpodpoglavje o moznosti nadgrajevanjaoziroma izpopolnjevanja predstavljenega empiricnega primera (338) in podpodpo-glavje s prikazom izracuna ocen parametrov linearne regresije brez uporabe vgrajenihfunkcij za linearno regresijo (339) predvsem z uporabo linearne algebre (matric-nega racunanja)

31 Uporabljeni podatki

Za prikaz predstavljenih metod bomo tudi tu uporabili podatke iz Evropske druz-boslovne raziskave (httpwwweuropeansocialsurveyorg) za Slovenijo za leto

122 32 Analiza variance (ANOVA)

2004 Uporabljena datoteka je bila pridobljena iz Arhiva druzboslovnih podatkov(Tos in drugi 2004) Opis raziskave in povezave do datoteke so dostopne na tem sple-tnem naslovu httpwwwadpfdvuni-ljsiopisisjm042 Iz Arhiva druz-boslovnih podatkov sem prenesel podatke v SPSS-ovem formatu (rdquosavrdquo)

Uporabili bomo predvsem sledece spremenljivke

G91 bruto placa v 1000 sit

F5 kraj bivanja (5 kategorij)

O1F2 spol

Preberemo podatke iz SPSS-ove datotke

gt nalozimo podatke

gt library(foreign)

gt datalt-readspss(file=sjm042_f1sav

todataframe = TRUE usevaluelabels = TRUE

maxvaluelabels=5 usemissings=TRUE)

gt nalozimo tudi dodatne funkcije

gt source(UcbenikR-funkcijeR)

32 Analiza variance (ANOVA)

Analiza variance (ANOVA) je splosno ime za metode ki primerjajo pojasnjeno va-riabilnost (obicajno merjeno z vsoto kvadratov odklonov) z nepojasnjeno Ce jepojasnjena variabilnost dovolj velika v primerjavi z nepojasnjeno potem lahko za-kljucimo da ima tisto kar jo pojasnjuje nek vpliv na obravnavano odvisno spre-menljivko16

Omejili se bomo na probleme pri katerih preverjamo ali se aritmeticne sredinerazlikujejo med vzorci oziroma skupinami Pri takih primerih je pojasnjena varia-bilnost variabilnost med aritmeticnimi sredinami teh vzorcevskupin (variabilnostmed vzorci) nepojasnjena pa variabilnost znotraj vzorcev (variabilnost posameznihvrednosti okoli aritmeticnih sredin posameznih vzorcevskupin) Pojasnjena varia-bilnost je obicajno pojasnjena z eno ali vec nominalnimi17 spremenljivkami

16V splosnem je sicer odvisnih spremenljivk lahko tudi vec a tega ne bomo obravnavali17Oziroma spremenljivkami ki jih obravnavamo kot nominalne

3 poglavje ndash Analiza variance in linearna regresija 123

321 Enofaktorska analiza variance za neodvisne vzorce

Ta verzija analize variance je najbolj znana in najpogosteje uporabljena tako davecina ljudi ob izrazu rdquoanaliza variancerdquo pomisli ravno nanjo

Klasicna enofaktorska analiza variance za neodvisne vzorce ima sledece predpo-stavke

Normalnost (angl normality) Odvisna spremenljivka se znotraj vsake popula-cije porazdeljuje normalno

Enakost varianc (angl homogeneity of variance) Variabilnost je enaka v vseh(pod)populacijah (skupinah)

Ce je zadosceno tema dvema predpostavkama lahko uporabimo F-test (analizo va-riance) za testiranje domnev o razliki aritmeticnih sredin

Ce imamo velik vzorec (na primer kot 30 enot v vsakem vzorcu) lahko uporabimoF-test tudi ce predpostavki o normalnosti ni popolnoma zadosceno Pomembno jeda je porazdelitev v vseh populacijah priblizno enaka (na primer povsod podobnoasimetricna v desno) Pri majhnih vzorcih pa v primeru razlicnih varianc ne moremouporabiti obicajnega F-testa

V primeru da je krsena predpostavka o enakosti varianc pa lahko uporabimo Wel-chevo analizo variance (Welch 1951)

Predpostavko o normalnosti obicajno preverjamo graficno (histogram po skupinah)predpostavko o enakosti varianc pa preko opisnih statistik in formalnih testov Nekajmoznih testov

bartletttest Primeren ce je predpostavka o normalnosti izpolnjena

flignertest Neobcutljiv na odstopanja od normalnosti Temelji na rangih

leveneTest Tudi ta je neobcutljiv na odstopanja od normalnosti Z argumentomcenter=mean (kar ni privzeta moznost) je to test ki ga uporablja SPSS Navoljo je v paketku car

Enofaktorsko analizo variance in njeno neparametricno razlicico lahko izvedemo ssledecimi funkcijami

onewaytest Izvede klasicno in Welchevo enofaktorsko analizo variance

aov Bolj splosna funkcija za analizo variance (tudi vecfaktorsko) ki pa ne omogocamoznosti za razlicne variance (vsaj ne na enostaven nacin)

kruskaltest Kruskal-Wallisov test vsote rangov ndash neparametricna razlicica ana-lize variance oziroma razlicica Mann-Whitneyjevega testa za vec kot 2 vzorca

124 32 Analiza variance (ANOVA)

Opozorilo

Funkcija aov tako kot veliko drugih statisticnih funkcij kot glavni argumentsprejme formulo ki pove vpliv katerih neodvisnih spremenljivk na katero odvi-sno spremenljivko preucujemo Ce zelimo da se neodvisne spremenljivke obrav-navajo kot nominalne spremenljivke (in ne kot intervalne) morajo biti obveznotipa faktor (ali kvecjemu character ki ga funkcija samodejno spremeni vfaktor) Sicer je tisto kar dobimo bolj podobno linearni regresiji

Za primerjave katera povprecja se statisticno znacilno razlikujejo izvedemo takoimenovane rdquopost hocrdquo teste Za ta namen lahko v splosnem uporabimo funkcijopairwisettest Parne primerjave namrec niso nic drugega kot t-testi kjer do-bljene p-vrednosti popravimo tako da je skupno tveganje enako izbrani stopnji αPri funkciji pairwisettest lahko izberemo tudi metodo popravka p-vrednostiPriporocena je Holmova metoda (Holm 1979) ki je tudi splosno veljavna18 in jeboljsa kot Bofferonijeva

Ko je izpolnjena predpostavka o enakih variancah in smo za analizo variance upora-bili funkcijo aov lahko za te primerjave uporabimo tudi Tukeyjev test preko funkcijeTukeyHSD

Najprej preglejmo podatke ki jih bomo uporabljali v nadaljevanju (ne le v tempodpodpoglavju)

gt popravimo faktorje

gt table(data$O1F2)

moski zenski

648 762

gt table(data$F5)

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija

148

Spodaj je nekaj osnovnih izracunov Porazdelitve osnovnih spremenljivk so prika-zane na sliki 31

gt library(psych)

gt describe(data$G91)

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

18Tudi ce na primer ne moremo predpostavljati neodvisnosti med testi

3 poglavje ndash Analiza variance in linearna regresija 125

Slika 31 Porazdelitve uporabljenih spremenljivk

moski zenski

Spol

010

020

030

040

050

060

070

0

veliko mesto

predmestje

manjse mesto

vas

kmetija

Kraj bivanja

0 100 200 300 400 500 600

Bruto plača

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

050

100

150

range skew kurtosis se

1 707 146 252 671

gt frekTab(data$F5dec=2)[c(13)]

Frekvenca

veliko mesto 132 919

predmestje 204 1421

manjse mesto 326 2270

vas 626 4359

kmetija 148 1031

gt frekTab(data$O1F2dec=2)[c(13)]

Frekvenca

moski 648 4596

zenski 762 5404

gt if(exists(mardef)) mardeflt-par(mar)

gt par(mfrow=c(13))

gt plot(data$O1F2 main=Spol)

gt par(mar=c(3731))

gt plot(data$F5horiz=TRUElas=1main=Kraj bivanja)

gt par(mar=mardef)

gt hlt-hist(data$G91main=Bruto placa

xlab=Bruto placa v 1000 sit ylab=Frekvenca)

gt curve(dnorm(xmean=mean(data$G91narm=TRUE)

sd=sd(data$G91narm=TRUE))diff(h$breaks)[1]

sum(isna(data$G91)) add=TRUE)

gt par(mfrow=c(11))

Sedaj izracunajmo se opisne statistike za bruto placo po posameznih tipih krajevbivanja in narisemo ustrezne grafikone

126 32 Analiza variance (ANOVA)

gt describeBy(data$G91group=data$F5mat=TRUE)

item group1 vars n mean sd median

11 1 veliko mesto 1 30 2561000 13322715 225

12 2 predmestje 1 45 2209111 9705313 200

13 3 manjse mesto 1 77 2544675 12983812 220

14 4 vas 1 139 2138273 12217005 188

15 5 kmetija 1 34 1887059 9712271 170

trimmed mad min max range skew kurtosis

11 2532500 1690164 75 450 375 02320304 -156727318

12 2118919 1008168 95 490 395 08192702 -003695316

13 2374286 1037820 100 750 650 13747886 180644481

14 1961593 919212 53 760 707 17963112 418899970

15 1728929 593040 80 528 448 17785525 318494875

se

11 2432384

12 1446783

13 1479643

14 1036233

15 1665641

gt par(mfrow=c(23))

gt for(i in levels(data$F5))

hist(data$G91[data$F5==i] xlab=Bruto placa main=i

ylab=Frekvenca)

gt par(mfrow=c(11))

Namesto histograma pa lahko s spodnjo kodo zelo enostavno narisemo tudi skatlastegrafikone po skupinah

gt plot(G91~F5data=data)

V posameznih kategorijah imamo razmeroma malo enot vendar pa se vedno v vsakinad 30 Morda bi bilo smiselno narediti manj kategorij a glede na opisne statistikese kaksno zelo smiselno rekodiranje ravno ne ponuja19

Iz opisnih statistik vidimo da so standardni odkloni (koreni varianc) po skupinahrazmeroma podobni Tako lahko tudi brez testa sklepamo da s predpostavko oenakosti varianc ne bi prevec zgresili Bolj pa je problematicno ker sta asimetrija in(se bolj) konicavost bistveno visji v zadnjih dveh kategorijah (vas in kmetija) To jerazvidno tudi iz slike 32 Kljub temu bomo za demonstracijo izvedli tudi vse teste

19Ce bi kategorije zdruzevali na podlagi opisnih statistik (predvsem aritmeticnih sredin) bi bilo tonarobe Test ki bi ga naredili na podlagi tako zdruzenih kategorij ne bi bil veljaven

3 poglavje ndash Analiza variance in linearna regresija 127

Slika 32 Porazdelitev bruto place po krajih bivanja

veliko mesto

Bruto plača

Fre

kven

ca

100 200 300 400

01

23

45

6

predmestje

Bruto plača

Fre

kven

ca

100 200 300 400 500

02

46

810

12

manjse mesto

Bruto plača

Fre

kven

ca

100 200 300 400 500 600 700 800

05

1015

2025

3035

vas

Bruto plača

Fre

kven

ca

0 200 400 600 800

010

2030

4050

6070

kmetija

Bruto plača

Fre

kven

ca

100 200 300 400 500

02

46

810

12

gt bartletttest(G91~F5data=data)

Bartlett test of homogeneity of variances

data G91 by F5

Bartletts K-squared = 77277 df = 4 p-value =

01021

gt flignertest(G91~F5data=data)

Fligner-Killeen test of homogeneity of variances

data G91 by F5

Fligner-Killeenmed chi-squared = 11456 df = 4

p-value = 002189

gt neobcutljiv na odstopanja od normalnosti

gt library(car)

gt leveneTest(G91~F5data=data)

Levenes Test for Homogeneity of Variance (center = median)

Df F value Pr(gtF)

group 4 1789 01307

320

128 32 Analiza variance (ANOVA)

gt neobcutljiv na odstopanja od normalnosti

gt leveneTest(G91~F5data=data center=mean)

Levenes Test for Homogeneity of Variance (center = mean)

Df F value Pr(gtF)

group 4 22227 006639

320

---

Signif codes

0 0001 001 005 01 1

gt razlicica kot jo uporablja SPSS

gt malce manj robustna

Barlettov in Levenov test pokazeta da bi lahko domnevo o enakosti varianc zavrnilisele pri vec kot 10- tveganju Nasprotno pa Fligner-Killeenjev test domnevo zavrneze pri 22- tveganju Glede na to da same razlike med standardnimi odkloni nisotako velike lahko predpostavko o enakosti varianc obdrzimo Kljub temu pa bomo(za demonstracijo) izvedli obe razlicici analize variance (klasicno in Welchevo) Polegtega bomo izvedli tudi neparametricni Kruskal-Wallisov test

gt predpostavljamo enake variance

gt onewaytest(G91~F5data=datavarequal=TRUE)

One-way analysis of means

data G91 and F5

F = 27695 num df = 4 denom df = 320 p-value =

002742

gt predpostavljamo razlicne variance

gt varequal=FALSE bi lahko tudi izpustili ker je to

gt privzeta moznost

gt onewaytest(G91~F5data=datavarequal=FALSE)

One-way analysis of means (not assuming equal

variances)

data G91 and F5

F = 27964 num df = 400 denom df = 10316 p-value

= 002988

gt se preko funkcije aov

gt fitlt-aov(G91~F5data=data)

gt summary(fit)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 158604 39651 277 00274

Residuals 320 4581392 14317

---

3 poglavje ndash Analiza variance in linearna regresija 129

Signif codes

0 0001 001 005 01 1

1117 observations deleted due to missingness

gt rezultat je identicen kot pri prejsnji funkciji

gt ko smo predpostavljali enake variance

gt

gt kruskaltest(G91~F5data=data)

Kruskal-Wallis rank sum test

data G91 by F5

Kruskal-Wallis chi-squared = 12557 df = 4 p-value

= 001365

Obe razlicici ANOVE nam vrneta zelo podoben rezultat Glede na oba lahko stveganjem manjsim kot 3 trdimo da se povprecna bruto placa razlikuje gledena kraj bivanja Glede na Kruskal-Wallisov test pa lahko predpostavko o enakostisrednjih vrednosti zavrnemo ze pri 14- tveganju

Opozorilo

Domneva ki jo preverjamo s Kurskal-Walisovim testom ni vec enakaa

a Kruskal-Wallisov test preverja podobno domnevo kot Mann-Whitneyjev test ki je podrob-neje razlozen v podpodpoglavju 233

Poglejmo se katera povprecja so razlicna V primeru enakih varianc je za ta namennajprimernejsa funkcija TukeyHSD (ki jo uporabimo na rezultatu funkcije aov) re-zultat katere lahko tudi lepo narisemo V primeru neenakih varianc pa uporabimofunkcijo pairwisettest

gt TukeyHSD(fit) fit mora biti rezultat funkcije aov

Tukey multiple comparisons of means

95 family-wise confidence level

Fit aov(formula = G91 ~ F5 data = data)

$F5

diff lwr upr

predmestje-veliko mesto -35188889 -11255949 42181712

manjse mesto-veliko mesto -1632468 -7228018 69015248

vas-veliko mesto -42272662 -10835533 23810003

kmetija-veliko mesto -67394118 -14961878 14830549

manjse mesto-predmestje 33556421 -2803788 95150721

vas-predmestje -7083773 -6338365 49216108

130 32 Analiza variance (ANOVA)

kmetija-predmestje -32205229 -10679513 42384676

vas-manjse mesto -40640194 -8727244 5992052

kmetija-manjse mesto -65761650 -13335265 1829353

kmetija-vas -25121456 -8792562 37682705

p adj

predmestje-veliko mesto 07232946

manjse mesto-veliko mesto 09999963

vas-veliko mesto 04019543

kmetija-veliko mesto 01647508

manjse mesto-predmestje 05667485

vas-predmestje 09969399

kmetija-predmestje 07603006

vas-manjse mesto 01204253

kmetija-manjse mesto 00608866

kmetija-vas 08078518

gt par(mar=mardef+c(0800))

gt plot(TukeyHSD(fit)las=1) se graficna predstavitev rezultatov

gt par(mar=mardef)

gt TukeyHSD je primeren le ob predpostavki enakih varianc

gt

gt pairwisettest(x=data$G91g=data$F5padjustmethod= holm

poolsd=TRUE)

Pairwise comparisons using t tests with pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 100 - - -

manjse mesto 100 082 - -

vas 056 100 016 -

kmetija 020 100 008 100

P value adjustment method holm

gt pairwisettest(x=data$G91g=data$F5padjustmethod= bonf

poolsd=TRUE)

Pairwise comparisons using t tests with pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 100 - - -

manjse mesto 100 100 - -

vas 080 100 017 -

3 poglavje ndash Analiza variance in linearna regresija 131

kmetija 025 100 008 100

P value adjustment method bonferroni

gt ce ne zelimo uporabiti predpostavke o enakosti varianc

gt nastavimo poolsd=FALSE

gt

gt pairwisettest(x=data$G91g=data$F5padjustmethod= holm

poolsd=FALSE)

Pairwise comparisons using t tests with non-pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 0821 - - -

manjse mesto 1000 0754 - -

vas 0754 1000 0233 -

kmetija 0233 0754 0041 0821

P value adjustment method holm

Ce predpostavljamo enake variance lahko najdemo statisticno znacilne razlike selepri 10- tveganju (oziroma 6ndash8-) in se to le med manjsim mestom in kmetijoPodobno je tudi ce privzamemo da so variance razlicne le da lahko v tem primeruto trditev postavimo ze pri 41 tveganju

Za konec povprecja se graficno predstavimo na sliki 33

gt library(gplots)

gt plotmeans(G91~F5data=data)

322 Vecfaktorska analiza variance za neodvisne vzorce

Vecfaktorska analiza variance je analiza variance kjer so skupine dolocene z vec kotenim faktorjem Z njo torej preverjamo domnevo o vplivu dveh ali vec nominalnih(oziroma vsaj tako jih obravnavamo) neodvisnih spremenljivk na odvisno spremen-ljivko

Predpostavke vecfaktorske analize variance so podobne predpostavkam enofaktor-ske ndash porazdelitev v vseh skupinahcelicah (dolocenih s kombinacijo vseh faktorjevoziroma neodvisnih spremenljivk) je normalna z enako varianco

Analiza je bistveno enostavnejsa ce so neodvisne spremenljivke med seboj neodvi-snenepovezane kar pa se v druzboslovju (oziroma kjerkoli kjer podatke dobimo z

132 32 Analiza variance (ANOVA)

Slika 33 Porazdelitve uporabljenih spremenljivk

150

200

250

300

F5

G91

veliko mesto manjse mesto vas kmetija

n=30 n=45 n=77 n=139 n=34

opazovanjeanketiranjem in ne eksperimentom) redko zgodi V primeru da neod-visne spremenljivke med seboj niso neodvisne je pomemben vrstni red faktorjevModel namrec najprej poskusa pojasniti cim vec variabilnosti odvisne spremenljivkes 1 faktorjem nato z 2 3

Rezultati se torej spremenijo ce zamenjamo vrstni red faktorjev Od vrstnega redaje tudi odvisno kaj nek test sploh preverja Pri prvem faktorju test preverja ali le-ta pojasni vsaj nekaj variabilnosti odvisne spremenljivke (oziroma ali vpliva nanjo)Pri vseh ostalih pa preverja ali faktor pojasni kak del variabilnosti odvisne spre-menljivke ki se ni pojasnjen s faktorji ki so v modelu pred obravnavanim faktorjemVse to velja ce uporabimo rdquoklasicnordquo vsoto kvadratov oziroma vsoto kvadratov tipaI Obstajajo tudi druge vrste vsote kvadratov (tip II III IV za vec glejte Fox (2008159) Muenchen (2011 633ndash635) in IBM (2011)) vendar jih tu ne bomo obravnavaliVsote kvadratov tipa II in III lahko izracunate s pomocjo funkcije Anova iz paketkacar Pri tipu III vrstni red faktorjev ni pomemben

Preverjamo lahko tudi ali obstaja interakcija med vplivi posameznih faktorjev In-terakcija med vplivi faktorjev pomeni da se vpliv nekega faktorja razlikuje glede navrednosti nekega drugega faktorja

Na nasem primeru bomo preverjali ali lahko trdimo da kraj bivanja in spol vplivatana bruto placo Poleg tega bomo preverili tudi ali lahko trdimo da spol vpliva nabruto placo ce predhodno izlocimo vpliv kraja bivanja

3 poglavje ndash Analiza variance in linearna regresija 133

Pred izracunom bomo pripravili podatke in sicer tako da bomo v nov podatkovniokvir shranili samo za to analizo potrebne spremenljivke Tu bomo potem odstra-nili vse enote ki imajo manjkajoco vrednost pri katerikoli spremenljivki To bomonaredili tako da bomo v nadaljevanju pri vseh analizah upostevali iste enote (karnam bo omogocalo da bomo modele primerjali med seboj)

nnajprej torej pripravimo nov podatkovni okvir in odstranimo enote z manjkajocimivrednostmi Nato podobno kot pri enofaktorski ANOVI preverimo predpostavke(izracunamo opisne statistike po skupinah)

gt dataAovlt-data[c(G91O1F2F5)]

gt dataAovlt-naomit(dataAov)

gt odstranili smo enote z manjkajocimi vrednostmi

gt

gt describeBy(dataAov$G91group=dataAov[c(O1F2F5)]

mat=TRUE)

item group1 group2 vars n mean sd

11 1 moski veliko mesto 1 14 2520000 12794650

12 2 zenski veliko mesto 1 15 2523333 14355172

13 3 moski predmestje 1 24 2311250 9543917

14 4 zenski predmestje 1 21 2092381 9989640

15 5 moski manjse mesto 1 39 2886923 14734656

16 6 zenski manjse mesto 1 35 2101143 9263679

17 7 moski vas 1 69 2270870 12535992

18 8 zenski vas 1 67 2028060 12044064

19 9 moski kmetija 1 27 1888889 9864713

110 10 zenski kmetija 1 7 1880000 9854441

median trimmed mad min max range skew

11 226 2502500 1423296 75 450 375 03270494

12 200 2503846 1482600 80 450 370 02540330

13 200 2233500 1074885 120 490 370 07883115

14 184 1970000 948864 95 450 355 08518656

15 250 2741212 889560 110 750 640 11844391

16 170 1992759 770952 100 500 400 11385801

17 200 2089825 741300 61 760 699 19229792

18 180 1859091 1037820 53 700 647 15723492

19 170 1723913 593040 80 528 448 19727940

110 132 1880000 429954 103 350 247 06346745

kurtosis se

11 -142834380 3419514

12 -178216305 3706489

13 -002979449 1948144

14 -023542599 2179918

134 32 Analiza variance (ANOVA)

Slika 34 Porazdelitev bruto place po krajih bivanja in spolu

moski veliko mesto

Bruto plača

Fre

quen

cy

0 100 200 300 400 500

01

23

45

moski predmestje

Bruto plača

Fre

quen

cy

100 200 300 400 500

01

23

45

67

moski manjse mesto

Bruto plača

Fre

quen

cy

100 300 500 7000

510

15

moski vas

Bruto plača

Fre

quen

cy

0 200 400 600 800

05

1015

2025

3035

moski kmetija

Bruto plača

Fre

quen

cy

0 100 300 500

05

1015

zenski veliko mesto

Bruto plača

Fre

quen

cy

0 100 200 300 400 500

01

23

45

6

zenski predmestje

Bruto plača

Fre

quen

cy

100 200 300 400

01

23

45

6

zenski manjse mesto

Bruto plača

Fre

quen

cy

100 200 300 400 500

02

46

810

12

zenski vas

Bruto plača

Fre

quen

cy

0 200 400 600

05

1015

2025

30

zenski kmetija

Bruto plača

Fre

quen

cy

100 150 200 250 300 350

01

23

4

15 078377390 2359433

16 089652400 1565848

17 453230346 1509156

18 314171911 1471417

19 393661300 1898465

110 -156138214 3724628

gt par(mfrow=c(25))

gt for(iGndr in levels(dataAov$O1F2))

for(iF5 in levels(dataAov$F5))

hist(dataAov$G91[(dataAov$F5==iF5)ampdataAov$O1F2==iGndr]

xlab=Bruto placa main=paste(iGndriF5sep= ))

gt par(mfrow=c(11))

Sedaj je v nekaterih skupinah ze zelo malo enot Standardni odkloni med skupinaminiso pretirano razlicni se pa precej razlikujejo koeficienti asimetrije in sploscenostiVsekakor rezultati kazejo na to da porazdelitev v vseh skupinah ni (niti pribli-zno) normalna in tudi ne podobna med skupinami Predpostavke metode torej nisoizpolnjene zato moramo rezultate metode jemati z veliko rezervo

3 poglavje ndash Analiza variance in linearna regresija 135

Sedaj najprej ponovimo enofaktorsko ANOVO s funkcijo aov za vsak faktor po-sebej Poleg tega preverimo tudi ali sta neodvisni spremenljivki med seboj pove-zani

gt fitG91_F5lt-aov(G91~F5data=dataAov)

gt summary(fitG91_F5)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2298 00589

Residuals 313 4503794 14389

---

Signif codes

0 0001 001 005 01 1

gt fitG91_O1F2lt-aov(G91~O1F2data=dataAov)

gt summary(fitG91_O1F2)

Df Sum Sq Mean Sq F value Pr(gtF)

O1F2 1 60436 60436 4174 00419

Residuals 316 4575644 14480

---

Signif codes

0 0001 001 005 01 1

V primeru da bi bile predpostavke klasicne analize variance (normalnost enakevariance) izpolnjene (prej smo ugotovili da so krsene) bi lahko pri 59- tveganjutrdili da kraj bivanja vpliva na bruto placo in pri 42- tveganju da spol vplivana bruto placo

Kot smo omenili je pri vecfaktorski analizi variance pomembno ali sta neodvisnispremenljivki povezani Preverimo torej to predpostavko in izracunajmo moc pove-zanosti

gt tbllt-table(dataAov$O1F2dataAov$F5)

gt proptable(tblmargin=2)

veliko mesto predmestje manjse mesto vas

moski 04827586 05333333 05270270 05073529

zenski 05172414 04666667 04729730 04926471

kmetija

moski 07941176

zenski 02058824

gt lazje opazimo ali sta spremenljivki povazani

gt chisqtest(tbl)

Pearsons Chi-squared test

136 32 Analiza variance (ANOVA)

data tbl

X-squared = 98558 df = 4 p-value = 004293

gt installpackages(vcd)

gt library(vcd)

gt assocstats(tbl)

X^2 df P(gt X^2)

Likelihood Ratio 105712 4 0031830

Pearson 98558 4 0042928

Phi-Coefficient NA

Contingency Coeff 0173

Cramers V 0176

gt (pricakovana) zanimivost - na vseh podatkih povezanosti ni

gt chisqtest(table(data$O1F2data$F5))

Pearsons Chi-squared test

data table(data$O1F2 data$F5)

X-squared = 63402 df = 4 p-value = 01751

V nasih podatkih (tistih ki jih bomo uporabili pri analizi variance20) sta spremen-ljivki kraj bivanja in spol sibko povezani To je posledica tega da upostevamo samoenote z veljavnimi vrednostmi za bruto placo Na vseh enotah namrec povezanostini oziroma povezanost ni statisticno znacilna

Rekli smo da bomo preverjali ali lahko trdimo da kraj bivanja in spol vplivata nabruto placo Test celotnega modela je malce zahtevnejsi Standardne funkcije ga neizvedejo Lahko pa ga izvedemo zelo enostavno tako da model primerjamo z nicelnimmodelom Nicelni model je model kjer nimamo pojasnjevalnih spremenljivk V temmodelu so napovedi enake povprecju

Poleg tega bomo preverili tudi ali lahko trdimo da spol vpliva na bruto placo cepredhodno kontroliramo za vpliv kraja bivanja Tako bomo v model kot 1 spre-menljivko dali kraj bivanja kot 2 pa spol

gt izvedemo dvofaktorsko ANOVO

gt fitG91_F5O1F2lt-aov(G91~F5+O1F2data=dataAov)

gt summary(fitG91_F5O1F2)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2334 00556

O1F2 1 83242 83242 5875 00159

Residuals 312 4420552 14168

20Izlocili smo tiste enote ki vsaj pri eni spremenljivki niso imele veljavne vrednosti v veliki vecinipri bruto placi

3 poglavje ndash Analiza variance in linearna regresija 137

---

Signif codes

0 0001 001 005 01 1

gt rezultat pri spolu nam pove koliko ta model pojasni

gt vec kot model s samo krajem bivanja

gt anova(fitG91_F5fitG91_F5O1F2)

Analysis of Variance Table

Model 1 G91 ~ F5

Model 2 G91 ~ F5 + O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 313 4503794

2 312 4420552 1 83242 58752 001592

---

Signif codes

0 0001 001 005 01 1

gt ocenimo nicelni model

gt fitG91_1lt-update(fitG91_F5O1F2~1)

gt funkcija update popravi model glede na argumente

gt ali

gt fitG91_1lt-aov(G91~1data=dataAov)

gt

gt primerjamo model z nicelnim

gt da ocenimo statisticno znacilnost celotnega modela

gt anova(fitG91_1fitG91_F5O1F2)

Analysis of Variance Table

Model 1 G91 ~ 1

Model 2 G91 ~ F5 + O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 317 4636080

2 312 4420552 5 215527 30424 001069

---

Signif codes

0 0001 001 005 01 1

Iz rezultatov lahko razberemo

bull Pri 56- tveganju lahko trdimo da kraj bivanja vpliva na bruto placo Sto-pnja tveganja je manjsa kot pri enofaktorski ANOVI (kjer je bila 59-) kerje manjsa nepojasnjena varianca (del variance je sedaj pojasnjen s spolom)

bull Pri 16- tveganju lahko trdimo da spol vpliva na bruto placo ce izlocimovpliv kraja bivanja Ta stopnja tveganja je bistveno manjsa kot prej Pravza-prav je tudi pojasnjena vsota kvadratov (pri spolu) tu vecja To pomeni da

138 32 Analiza variance (ANOVA)

so razlike v bruto placi med spoloma vecje ce jih gledamo loceno po krajihbivanja kot ce jih gledamo skupaj

bull S priblizno 1- tveganjem lahko trdimo da spol ali kraj bivanja (vsaj enaizmed teh dveh spremenljivk) vplivata na bruto placo

Preverimo se ali obstaja tudi interakcija med vplivom spola in kraja bivanja Tardquoucinekrdquo moramo v model vedno vkljuciti oziroma navesti na koncu

gt izvedemo dvofaktorsko ANOVO

gt fitG91_F5O1F2Ilt-aov(G91~F5O1F2data=dataAov)

gt summary(fitG91_F5O1F2I)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2334 00557

O1F2 1 83242 83242 5874 00159

F5O1F2 4 56064 14016 0989 04136

Residuals 308 4364488 14170

---

Signif codes

0 0001 001 005 01 1

gt primerjamo model z nicelnim

gt da ocenimo statisticno znacilnost celotnega modela

gt anova(fitG91_1fitG91_F5O1F2I)

Analysis of Variance Table

Model 1 G91 ~ 1

Model 2 G91 ~ F5 O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 317 4636080

2 308 4364488 9 271591 21296 002692

---

Signif codes

0 0001 001 005 01 1

Interakcija med ucinkoma ni statisticno znacilna Ne moremo torej trditi da spoldrugace vpliva na bruto placo v razlicnih krajih bivanja Posledicno se tudi skupnaznacilnost modela zaradi vkljucitve interakcije zniza

323 Enofaktorska analiza variance za odvisne vzorce

Pogledali si bomo le najenostavnejsi primer analize variance za odvisne vzorce Ana-liza variance za odvisne vzorce je sorodna t-testu za odvisne vzorce le da je vzor-cevspremenljivk katerih povprecje preverjamo vec

3 poglavje ndash Analiza variance in linearna regresija 139

Analizo variance za odvisne vzorce lahko prav tako kot prejsnje tipe naredimopreko funkcije aov z ustreznimi argumenti vendar pa moramo pred uporabo po-datke prilagoditi Podatke je treba preurediti v podobno obliko kot jo imamo prineodvisnih vzorcih Potrebujemo torej eno odvisno spremenljivko in spremenljivkoki rdquodolocardquovzorce (oziroma originalne spremenljivke) Poleg tega pa moramo za vsakpodatek tudi vedeti kateri enoti pripada Za vsako enoto moramo imeti podatke zavse vzorcespremenljivke

Za to je uporabna tale funkcija21

gt razsiriPodatkelt-function(Xid=rownames(X)

varNames=colnames(X))

funkcija za pretvorbo podatkov v obliko

kot jo razumeta funkciji aov ali lm

n12lt-dim(X)

nlt-n12[1]

mlt-n12[2]

if(isnull(varNames)) varNameslt-1m

if(isnull(id)) idlt-1n

reslt-NULL

for(i in 1m)

reslt-rbind(resdataframe(id=idx=X[i]

var=varNames[i]))

return(res)

Funkcijo aov sicer uporabimo kot obicajno le da navedemo katera spremenljivkanam rdquodolocardquo enote oziroma natancneje povemo napake katerih rdquozapisovrdquo so kore-lirane Pozor Klic funkcije je casovno zahteven

Preverjali bomo domnevo ali Slovenci enako zaupamo Drzavnemu zboru (spremen-ljivka B4) Evropskemu parlamentu (B9) in Zdruzenim narodom (B10) Preglejmonajprej opisne statistike in pripravimo podatke

gt dataB4910lt-naomit(data[c(B4B9B10)])

gt za uporabo funkcije razsiriPodatke pripravimo

gt nov podatkovni okvir ki vsebuje le uporabljene

gt spremenljivke

gt describe(dataB4910)

21Funkcija se nahaja tudi v datoteki rdquoUcbenikR-funkcijeRrdquo

140 32 Analiza variance (ANOVA)

vars n mean sd median trimmed mad min max range

B4 1 1213 413 238 4 410 297 0 10 10

B9 2 1213 453 241 5 456 297 0 10 10

B10 3 1213 457 267 5 460 297 0 10 10

skew kurtosis se

B4 010 -057 007

B9 -008 -070 007

B10 -004 -082 008

gt dataB4910razlt-razsiriPodatke(dataB4910)

gt dataB4910raz[110] novi podatki izgledajo takole

id x var

1 1 2 B4

2 2 8 B4

3 4 4 B4

4 5 8 B4

5 6 3 B4

6 7 3 B4

7 8 7 B4

8 9 3 B4

9 11 2 B4

10 14 5 B4

Zaupanje v Evropski parlament in Zdruzene narode je bistveno visje kot v Drzavnizbor Preverimo ali je razlika statisticno znacilna

gt aovReplt-aov(x~var+Error(id)data=dataB4910raz)

gt summary(aovRep)

Error id

Df Sum Sq Mean Sq F value Pr(gtF)

Residuals 1212 17257 1424

Error Within

Df Sum Sq Mean Sq F value Pr(gtF)

var 2 148 7410 3404 264e-15

Residuals 2424 5277 218

---

Signif codes

0 0001 001 005 01 1

gt modeltables(aovReptype=means)

Tables of means

Grand mean

4409453

3 poglavje ndash Analiza variance in linearna regresija 141

var

var

B4 B9 B10

4125 4528 4575

Pri zanemarljivi stopnji tveganja lahko trdimo da Slovenci ne zaupamo vsem treminstitucijam enako

33 Linearna regresija

Z linearno regresijo ugotavljamo ce in ce kako ena ali vec neodvisnih spremenljivkvpliva(jo) na odvisno spremenljivko To vkljucuje tudi ugotavljanje moci vplivaocenjevanje prileganja modela oziroma pojasnjevalne moci modela preverjane pred-postavk in se kaj

Kot ze samo ime pove se omejimo na linearne vplive spremenljivk kar ce malcepoenostavimo pomeni da se vpliv posamezne spremenljivke ne spreminja v odvi-snosti od vrednosti odvisne spremenljivke Obstaja sicer tudi nelinearna regresija kijo lahko izvedemo na vec nacinov Pogosto tudi preko ustrezne transformacije spre-menljivk nelinearno regresijo prevedemo v linearno regresijo Na kratko se te temedotaknemo v podpodpoglavju 333 sicer pa tema ze presega obseg tega ucbenika

V ucbeniku tudi ne obravnavamo naprednejsih tem kot so na primer posploseni line-arni modeli in hierarhicni vecnivojski ali mesani modeli (glej Faraway 2006 Gelmanin Hill 2006 Snijders in Bosker 2012) Prav tako obravnavamo samo podatke zbranev eni casovni tocki ne pa na primer panelnih podatkov (glejte na primer Wooldridge2002)

Se vedno pa v tem podpoglavju obravnavamo precej siroko podrocje zato se tu sebolj kot v ostalih delih ucbenika omejimo na izvedbo analize (linearne regresije)v R-ju same teorije pa ne obravnavamo Za pridobitev znanja s tega podrocjapriporocam uporabo virov ki so navedeni v podpodpoglavju 34 se posebej Fox(2008)

331 Dodatne spremenljivke

Poleg spremenljivk ki smo jih ze uporabili pri analizi variance (glejte podpoglavje32) bomo od tu naprej uporabljali se spremenljivki F7 rdquoStevilo let solanjardquo in F21rdquoTipicno stevilo delovnih ur (vkljucno z nadurami) na tedenrdquo Graficni prikaz njunihporazdelitev je na sliki 35

Pri tem so upostevane samo enote ki imajo veljavne vrednosti pri vseh spremenljiv-kah ki jih bomo uporabili v regresiji (v kateremkoli modelu) ndash to so G91 O1F2 F5

142 33 Linearna regresija

F7 in F21 Na teh podatkih bomo opravili tudi vse linearne regresije Ta pristop smoizbrali zato da lahko rezultate razlicnih analiz med seboj primerjamo Funkcija lm 22

namrec izvede analizo na enotah ki imajo pri uporabljenih spremenljivkah veljavnevrednosti Posledica tega je da ce izvajamo vec razlicnih analiz z razlicnimi neod-visnimi spremenljivkami na originalnih podatkih niso v vseh analizah uporabljeneiste enote in zato rezultati niso primerljivi23

V praksi je v fazi izbire modela tak pristop (ce problem manjkajocih podatkov niprevelik) priporocljiv ko pa izberemo koncni model (predvsem dokoncno dolocimoneodvisne spremenljivke) pa je bolje ce upostevamo vse razpolozljive podatke (torejvse enote ki imajo veljavne vrednosti na spremenljivkah ki jih uporabimo v nekemmodelu)

V primeru manjkajocih vrednosti (torej takorekoc vedno) je najbolje da upostevamovse veljavne vrednosti (torej tudi veljavne vrednosti pri enotah ki imajo sicer tudikaksno manjkajoco vrednost) Izmed dobrih pristopov se najpogosteje uporabljajoveckratne imputacije oz multiple imputacije (Rubin 1987 1996) ki so tudi zelodobro podprte v paketku mice (Buuren in Groothuis-Oudshoorn 2011 Buuren 2012)Vendar pa to ze presega obseg tega ucbenika

Pripravimo torej najprej podatke ter preglejmo opisne statistike in porazdelitvi zadodatni spremenljivki

gt dataLRlt-naomit(data[c(G91O1F2F5F7F21)])

gt describe(dataLR[c(F7F21)])

vars n mean sd median trimmed mad min max range

F7 1 312 1236 308 12 1232 148 1 23 22

F21 2 312 4249 1240 42 4353 445 0 80 80

skew kurtosis se

F7 005 115 017

F21 -133 400 070

gt par(mfrow=c(12)mar=mardef)

gt hlt-hist(dataLR$F7main=Stevilo let solanja

xlab=Stevilo let solanja ylab=Frekvenca)

gt curve(dnorm(xmean=mean(dataLR$F7narm=TRUE)

sd=sd(dataLR$F7narm=TRUE))diff(h$breaks)[1]

sum(isna(dataLR$F7)) add=TRUE)

gt hlt-hist(dataLR$F21main=Tipicno stevilo delovnih ur na teden

xlab=Tipicno stevilo delovnih ur na teden ylab=Frekvenca)

22Enako velja za ostale R-jeve funkcije za regresijske metode (kar vkljucuje tudi analizo variance)23Se posebej je to problem ce zelimo modele formalno primerjati na primer s funkcijo anova ndash

glejte podpodpoglavje 335

3 poglavje ndash Analiza variance in linearna regresija 143

Slika 35 Porazdelitve dodatnih spremenljivk

Število let šolanja

Število let šolanja

Fre

kven

ca

0 5 10 15 20

050

100

150

Tipično število delovnih ur na teden

Tipično število delovnih ur na teden

Fre

kven

ca0 20 40 60 80

020

6010

0

gt curve(dnorm(xmean=mean(dataLR$F21narm=TRUE)

sd=sd(dataLR$F21narm=TRUE))diff(h$breaks)[1]

sum(isna(dataLR$F21)) add=TRUE)

gt par(mfrow=c(11))

Opazimo lahko da porazdelitev obeh spremenljivk ni normalna se posebej pa odnormalnosti odstopa porazdelitev spremenljivke rdquoTipicno stevilo delovnih ur na te-denrdquo ki je zelo konicasta in asimetricna v levo

332 Bivariatna regresija

Zacnimo z najenostavnejsim primerom bivariatne linearne regresije Preverimo kakostevilo let solanja vpliva na bruto placo

Odnos med spremenljivkama je graficno predstavljen na sliki 36 Za zdaj odmislimopolno crtopremico na tej sliki Rdeca crtkana crta pa prikazuje glajena povprecjaodvisne spremenljivke glede na vrednosti neodvisne

gt par(mar=mardef+c(00-30))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt lines(with(data=dataLRlowess(G91~F7))lwd=2lty=2col=red)

gt par(mar=mardef)

Iz slike lahko razberemo naslednje stvari

144 33 Linearna regresija

Slika 36 Odnos med bruto placo in stevilom let solanja

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

bull Ce stevilo let solanja narasca v povprecju narasca tudi bruto placa

bull Variabilnost bruto place narasca s stevilom let solanja kar je krsitev ene izmedpredpostavk linearne regresije

bull Videti je da s stevilom let solanja bruto placa najprej narasca pocasi (alisploh ne) kasneje pa narasca vse hitreje Torej je mogoce da linearna zvezani primerna

bull Videti je da zacne izobrazba vplivati na placo sele ko stevilo let solanja preseze12 let

Kljub pomislekom nadaljujmo najprej z enostavno linearno regresijo Za ocenjeva-nje linearne regresije uporabimo funkcijo lm za preverjanje domnev o koeficientih incelotnega modela za izracun determinacijskega ter nekaterih drugih statistih funk-cijo summary za izracun intervalov zaupanja pa funkcijo confint iz paketka carNarisemo tudi sliko ki prikazuje odvisnost bruto place od stevila let solanja

gt (fitG91_F7lt-lm(G91~F7data=dataLR))

Call

lm(formula = G91 ~ F7 data = dataLR)

Coefficients

(Intercept) F7

-3841 2139

3 poglavje ndash Analiza variance in linearna regresija 145

gt summary(fitG91_F7) za bolj bogat izpis

Call

lm(formula = G91 ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26809 -6502 -1833 4786 45609

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -3841 2407 -1596 0112

F7 2139 189 11320 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1025 on 310 degrees of freedom

Multiple R-squared 02925 Adjusted R-squared 02902

F-statistic 1281 on 1 and 310 DF p-value lt 22e-16

gt library(car)

gt confint(fitG91_F7level=09) 90 intervala zaupanja

5 95

(Intercept) -7812024 1296065

F7 1827676 24512959

gt par(mar=mardef+c(00-30))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt lines(with(data=dataLRlowess(G91~F7))lwd=2lty=2col=red)

gt abline(fitG91_F7lwd=2)

gt par(mar=mardef)

Z variabilnostjo v stevilu let solanja lahko pojasnimo 292 variabilnosti v brutoplaci Ce se stevilo let solanja poveca za eno leto se bo bruto placa v povprecjupovecala za 214 tisoc sit Vpliv stevila let solanja na bruto placo je staticno znacilenpri zanemarljivi stopnji tveganja

S pomocjo funkcije confint iz paketka car smo izracunali tudi 90- intervalazaupanja za regresijski koeficient in konstanto

Na podlagi rezultata smo na sliko 36 vrisali premico ki prikazuje ocenjeni odnosmed spremenljivkama Ocitno je da se premica pri velikih in majhnih vrednostihspremenljivke rdquoStevilo let solanjardquo ne prilega

To je morda se bolj ocitno ce si pogledamo graf kjer na y os nanasamo rezidualena x os pa vrednosti neodvisne spremenljivke (1 graf na sliki 37) Histogram na

146 33 Linearna regresija

Slika 37 Porazdelitev rezidualov

5 10 15 20

-200

020

040

0

Razsevni grafikon rezidualov gledena vrednosti neodvisne spremenljivke

Število let šolanja

Rez

idua

li

Histogram rezidualovz vrisano normalno krivuljo

Reziduali

Gos

tota

-200 0 200 4000

000

000

20

004

sliki 37 pa kaze da je krsena tudi predpostavka o normalni porazdelitvi rezidua-lovnapak Koda za sliko sledi

gt par(mfrow=c(12)xpd=NA)

gt plot(fitG91_F7$residuals~dataLR$F7

ylab=Reziduali xlab=Stevilo let solanja

main=Razsevni grafikon rezidualov glede

na vrednosti neodvisne spremenljivke)

gt hist(fitG91_F7$residuals freq=FALSE br=15

xlab=Reziduali ylab=Gostota

main=Histogram rezidualovnz vrisano normalno krivuljo)

gt curve(dnorm(xmean=0sd=sd(fitG91_F7$residuals))add=TRUE)

gt par(mfrow=c(11)xpd=FALSE)

Podobne zakljucke lahko izpeljemo tudi na podlagi grafikonov na sliki 38 ki so (vR-ju) standardni diagnosticni prikazi za linearno regresijo (tudi multiplo) zato jihdobimo zelo enostavno

gt par(mfrow=c(22)) zahtevamo 4 grafe na eno sliko

gt plot(fitG91_F7)

gt par(mfrow=c(11))

Graf levo zgoraj je podoben razsevnemu grafikonu na sliki 37 le da so na y osinapovedane vrednosti in ne neodvisna spremenljivka Pri bivariatni regresiji grepravzaprav le za linearno transformacijo skale (mnozenje in sestevanje) pri multipli

3 poglavje ndash Analiza variance in linearna regresija 147

Slika 38 Diagnosticni grafikoni za linearno regresijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641784 525

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641

784525

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641

784 525

000 001 002 003 004

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05

Residuals vs Leverage

199

784641

pa sluzijo napovedane vrednosti kot nek nadomestek za vse neodvisne spremenljivke(saj so napovedane vrednosti linearne kombinacije neodvisnih spremenljivk)

Graf desno zgoraj pa podaja podobno informacijo kot histogram Imenuje se Q-Qplot (Q je okrajsava za quantile) Ce so reziduali normalno porazdeljeni lezijo vsetocke na crtkani premici

333 Nelinearna regresija

Ugotovili smo da linearna zveza med spremenljivkama na danih podatkih morda ninajbolj optimalna Odnos je videti dosti bolj linearen ce bruto placo logaritmiramo

148 33 Linearna regresija

Na takih podatkih lahko ocenimo tudi linearno regresijo in sicer tako da znotrajformule bruto placo logaritmiramo Sicer se koda skorajda ne spremeni Rezultatlahko potem narisemo tudi na originalni lestvici Oboje je prikazano na sliki 39)

gt fitLnG91_F7lt-lm(log(G91)~F7data=dataLR)

gt summary(fitLnG91_F7) za bolj bogat izpis

Call

lm(formula = log(G91) ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-126487 -029420 002024 027755 145055

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 4224075 0098354 4295 lt2e-16

F7 0086630 0007723 1122 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 04189 on 310 degrees of freedom

Multiple R-squared 02887 Adjusted R-squared 02864

F-statistic 1258 on 1 and 310 DF p-value lt 22e-16

gt par(mfrow=c(12))

gt plot(log(G91)~F7data=dataLRxlab=Stevilo let solanja

ylab=Logaritem bruto place v 1000 sit

main=Pollogaritemski grafikon)

gt abline(fitLnG91_F7)

gt text(x=25y=65

labels=bquote(italic(G91)minute==

(round(coef(fitLnG91_F7)[1]3))

+(round(coef(fitLnG91_F7)[2]3))italic(F7)))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja

main=Originalna skala)

gt curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]x)

add=TRUE)

gt text(x=25y=700

labels=bquote(italic(G91)minute==

italic(e)^((round(coef(fitLnG91_F7)[1]3))

+(round(coef(fitLnG91_F7)[2]3))italic(F7))))

gt par(mfrow=c(11))

3 poglavje ndash Analiza variance in linearna regresija 149

Slika 39 Exponentna zveza ndash transformacija

5 10 15 20

40

50

60

Pollogaritemski grafikon

Število let šolanja

Loga

ritem

bru

to p

lače

v 1

000

sit

4224 + 0087F7

5 10 15 2010

030

050

070

0

Originalna skala

Število let šolanja

Bru

to p

lača

v 1

000

sit = e(4224+0087F7)

Ob tem pa se je treba zavedati da kadarkoli transformiramo odvisno spremenljivkoizracuni niso vec pravilni oziroma optimalni V tem primeru namrec ne minimizi-ramo vec vsote kvadratov odklonov originalne ampak transformirane spremenljivke(linearna regresija za ocenjevanje uporablja metodo najmanjsih kvadratov) Zaradiistega razloga tudi statistike R2 in podobne niso pravilne Pravilen izracun za R2 bibil

gt resLoglt-dataLR$G91- exp(fitLnG91_F7$fitted)

gt odkloniPovlt-dataLR$G91- mean(dataLR$G91)

gt R2loglt-1-sum(resLog^2)sum(odkloniPov^2)

gt R2log

[1] 02825734

Dejanski R2 je torej se nizji Sedaj smo sicer pravilno izracunali R2 a se vedno jeocenjevanje parametrov neoptimalno Parametre bi namrec morali ocenjevati takoda bi minimizirali vsoto kvadratov odklonov originalne spremenljivke

To lahko naredimo takole

gt expZvezalt-function(byX)

Xlt-asmatrix(X)

sslt-sum((y - exp(cbind(1X)b))^2)

return(ss)

gt optExplt-optim(par=coef(fitLnG91_F7)

fn=expZvezay=dataLR$G91X=dataLR[c(F7)])

150 33 Linearna regresija

gt resOptimlt-dataLR$G91 -

exp(optExp$par[1] + optExp$par[2]dataLR$F7)

gt odkloniPovlt-dataLR$G91-mean(dataLR$G91)

gt R2optimlt-1-sum(resOptim^2)sum(odkloniPov^2)

gt R2optim

[1] 0316329

gt R2log

[1] 02825734

gt summary(fitG91_F7)$rsq

[1] 02924672

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt curve(exp(optExp$par[1]+optExp$par[2]x)add=TRUEcol=blue)

gt curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]x)

add=TRUEcol=red)

gt abline(fitG91_F7col=green3)

gt text(x=19y=650

labels=bquote(italic(G91)minute==

italic(e)^((round(optExp$par[1]3)) +

(round(optExp$par[2]3))italic(F7)))col=blue)

gt legend(x=12y=790legend=c(linearna zveza

eksponentna zveza preko transformacije

eksponentna zveza preko optimizacije)

col=c(green3redblue)lty=1xjust=05yjust=0

xpd=TRUE)

Rezultat ocenjevanja je prikazan na sliki 310 R2 je sedaj znatno vecji kot prikateremkoli prejsnjem pristopu in znasa 0316

334 Multipla regresija

Sedaj razsirimo nas model tako da vkljucimo se eno intervalno neodvisno spremen-ljivko in sicer F21 rdquoTipicno stevilo delovnih ur (vkljucno z nadurami) na tedenrdquo

Tudi za to spremenljivko je pred vkljucitvijo dobro preveriti obliko njene povezanostiz odvisno spremenljivko Ustrezni prikaz je na sliki 311

gt par(mar=mardef+c(00-30))

gt plot(G91~F21data=dataLRylab=Bruto placa v 1000 sitxlab=

Tipicno stevilo delovnih ur (vkljucno z nadurami) na teden)

gt lines(with(data=dataLRlowess(G91~F21))lwd=2lty=2col=red)

gt par(mar=mardef)

3 poglavje ndash Analiza variance in linearna regresija 151

Slika 310 Ocenjevanje nelinearne zveze

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

G91 prime = e(4224+0093F7)

linearna zvezaeksponentna zveza preko transformacijeeksponentna zveza preko optimizacije

Slika 311 Odnos med bruto placo in tipicnim stevilom delovnih ur na teden

0 20 40 60 80

100

200

300

400

500

600

700

Tipično število delovnih ur (vključno z nadurami) na teden

Bru

to p

lača

v 1

000

sit

152 33 Linearna regresija

Kaksne posebne povezanosti med spremenljivkama ne vidimo Ker pa zelimo to tudiformalno preveriti bomo spremenljivko o stevilu delovnih ur vseeno vkljucili v line-arno regresijo Preverili bomo torej ali spremenljivka rdquoTipicno stevilo delovnih ur(vkljucno z nadurami) na tedenrdquo vpliva na bruto placo ce izlocimo vpliv izobrazbe(spremenljivka rdquoStevilo let solanjardquo) Zanima nas torej ali se bruto placa v pov-precju kaj spremeni ce se stevilo delovnih ur na teden poveca izobrazba pa ostanenespremenjena

Pri linearni regresiji vrstni red vkljucitve ni pomemben

Kljub temu da bi bila glede na nase podatke primernejsa nelinearna regresija bomo(iz pedagoskih razlogov) nadaljevali z linearno Enostaven popravek bi bil ce bisamo zamenjali G91 (bruto placo) z logaritmom te spremenljivke kar sicer (kot smovideli) ni optimalno

gt fitG91_F7F21lt-update(fitG91_F7~+F21)

gt prejsnjemu modelu dodamo dodatno neodvisno spremenljivko

gt ali daljse

gt fitG91_F7F21lt-lm(G91~F7+F21data=dataLR)

gt summary(fitG91_F7F21)

Call

lm(formula = G91 ~ F7 + F21 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26576 -6489 -1866 4783 45844

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -327354 311367 -1051 0294

F7 214004 18929 11306 lt2e-16

F21 -01352 04695 -0288 0774

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1027 on 309 degrees of freedom

Multiple R-squared 02927 Adjusted R-squared 02881

F-statistic 6392 on 2 and 309 DF p-value lt 22e-16

gt confint(fitG91_F7F21level=09)

5 95

(Intercept) -841046492 186338373

3 poglavje ndash Analiza variance in linearna regresija 153

F7 182775218 245233578

F21 -09098706 06394045

gt summary(fitG91_F7)

Call

lm(formula = G91 ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26809 -6502 -1833 4786 45609

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -3841 2407 -1596 0112

F7 2139 189 11320 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1025 on 310 degrees of freedom

Multiple R-squared 02925 Adjusted R-squared 02902

F-statistic 1281 on 1 and 310 DF p-value lt 22e-16

Za primerjavo smo izpisali se rezultat modela brez spremenljivke F21 Vpliv spre-menljivke F21 (kot smo pricakovali glede na sliko 311) ni statisticno znacilen Po-sledicno tudi njena vkljucitev ne vpliva bistveno na rezultate (R2 se je sicer malcepovecal popravljeni R2 pa malce zmanjsal vpliv spremenljivke F7 na G91 pa jeostal skoraj nespremenjen) Vseeno pa je interpretacija regresijskih koeficientov primultipli regresiji malce drugacna kot pri bivariatni regresiji Regresijski koeficientza stevilo let solanja 214 na primer pomeni da se bruto placa poveca za 214 tisocsit ce se stevilo let solanja poveca za eno leto in ostane tipicno stevilo delovnihur na teden nespremenjeno oziroma ce ostanejo vrednosti vseh ostalih neodvisnihspremenljivk (tu imamo pac samo eno) nespremenjene

Pri multipli regresiji je pomemben rezultat tudi F statistika in pripadajoci F -testTa nam v nasem primeru pove da lahko pri zanemarljivi stopnji tveganja trdimoda vsaj ena izmed neodvisnih spremenljivk vpliva na odvisno spremenljivko

Tudi tu bi bilo dobro preveriti porazdelitev rezidualov To storimo podobno kotpri bivariatni regresiji Ker pa imamo sedaj dve neodvisni spremenljivki bi moralinarisati dva razsevna grafikona (vsakega za svojo neodvisno spremenljivko na x osi)Taka grafa sta prikazana na sliki 312 Tako kot pri bivariatni regresiji se na prvemgrafu vidi heteroskedasticnost (variabilnost napak ni povsod enaka) na drugem pabi tezko z gotovostjo prepoznali nek vzorec (na sredini osi je x sicer variabilnostvideti najvecja a je tam tudi najvec vrednosti)

154 33 Linearna regresija

Slika 312 Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk

5 10 15 20

-200

020

040

0

Število let šolanja

Rez

idua

li

0 20 40 60 80-2

000

200

400

Število tipičnih delovnih ur

Rez

idua

li

gt par(mfrow=c(12)mar=mardef-c(0030))

gt plot(fitG91_F7F21$residuals~dataLR$F7

ylab=Reziduali xlab=Stevilo let solanja

main=)

gt plot(fitG91_F7F21$residuals~dataLR$F21

ylab=Reziduali xlab=Stevilo tipicnih delovnih ur

main=)

gt par(mfrow=c(11)mar=mardef)

Ker pa je takih grafov pri multipli regresiji lahko veliko je bolj prakticno da nari-semo samo en graf kjer na y os nanasamo napovedane vrednosti in ne neodvisnihspremenljivk Kot smo ze omenili tako napovedane vrednosti sluzijo kot nadomestekza vse neodvisne spremenljivke (saj so napovedane vrednosti linearne kombinacijeneodvisnih spremenljivk) Tak graf je skupaj s histogramom rezidualov prikazan nasliki 313

gt par(mfrow=c(12))

gt plot(fitG91_F7F21$residuals~fitG91_F7F21$fitted

ylab=Reziduali xlab=Napovedane vrednosti

main=Razsevni grafikon rezidualov glede

na napovedane vrednosti)

gt hist(fitG91_F7F21$residuals freq=FALSE br=15

xlab=Reziduali ylab=Gostota

main=Histogram rezidualovnz vrisano normalno krivuljo)

3 poglavje ndash Analiza variance in linearna regresija 155

Slika 313 Porazdelitev rezidualov

0 100 200 300 400

-200

020

040

0

Razsevni grafikon rezidualov gledena napovedane vrednosti

Napovedane vrednosti

Rez

idua

li

Histogram rezidualovz vrisano normalno krivuljo

Reziduali

Gos

tota

-200 0 200 4000

000

000

20

004

gt curve(dnorm(xmean=0sd=sd(fitG91_F7F21$residuals))add=TRUE)

gt par(mfrow=c(11))

R-jevi standardni diagnosticni prikazi za linearno regresijo so prikazani na sliki 314

gt par(mfrow=c(22))

gt plot(fitG91_F7)

gt par(mfrow=c(11))

335 Vkljucevanje nominalnihordinalnih spremenljivk

V linearno regresijo lahko kot neodvisne spremenljivke vkljucimo tudi nominalnespremenljivke in sicer preko umetnih spremenljivk Umetnih spremenljivk nam nitreba ustvariti saj jih samodejno ustvari funkcija lm Kot referencno kategorijoizbere tisto ki je pri faktorju navedena kot prva v levels

Funkcija lm kot nominalne spremenljivke obravnava le spremenljivke tipa factor incharacter ki pa jih pred uporabo spremeni v tip factor

156 33 Linearna regresija

Slika 314 Diagnosticni grafikoni za linearno regresijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641784 525

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641

784525

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641

784 525

000 001 002 003 004

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05

Residuals vs Leverage

199

784641

Opozorilo

Funkcija lm obravnava spremenljivke tipa ordered oziroma urejen factor takoda za njih na poseben nacin izracuna ndash rdquokontrasterdquo Tega nacina ne bomo obrav-navali saj je razmeroma zahteven za interpretacijo in razumevanje zato je pri-porocljivo da tudi za ordinalne spremenljivke uporabljate neurejen factor

Poglejmo najprej najenostavnejsi primer ko ima nominalna spremenljivka samo 2vrednosti V nas model torej vkljucimo se spol

3 poglavje ndash Analiza variance in linearna regresija 157

gt fitG91_F7F21O1F2lt-lm(G91~F7+F21+O1F2data=dataLR)

gt summary(fitG91_F7F21O1F2)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24770 -6939 -1786 5278 44416

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -170737 312701 -0546 058546

F7 216213 18731 11543 lt 2e-16

F21 -02170 04651 -0467 064108

O1F2zenski -330047 115776 -2851 000466

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1015 on 308 degrees of freedom

Multiple R-squared 03108 Adjusted R-squared 03041

F-statistic 4631 on 3 and 308 DF p-value lt 22e-16

Med rezultati je dodaten regresijski koeficient rdquoO1F2Zenskirdquo Iz njega vidimo daje bila kot referencna kategorija vzeta kategorija rdquoMoskirdquo saj te ni med koeficientiVrednost tega koeficienta (minus330) nam pove da imajo zenske v povprecju pri enakihvrednostih ostalih spremenljivk (izobrazba stevilo delovnih ur na teden) za 33 tisocsit nizjo placo kot moski Pri takem kodiranju je vrednost regresijskega koeficientavedno primerjava izbrane kategorije z referencno Vpliv spola je statisticno znacilenpri tveganju 047

Opozorilo

Klasicna interpretacija da se odvisna spremenljivka spremeni za bx ce se xpoveca za eno enoto in ostale spremenljivke ostanejo nespremenjene tu ni pri-merna ker se spol pri neki osebi naceloma ne spreminja

Dodajmo kot spremenljivko se kraj bivanja

gt fitG91_F7F21O1F2F5lt-lm(G91~F7+F21+O1F2+F5data=dataLR)

gt summary(fitG91_F7F21O1F2F5)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 data = dataLR)

158 33 Linearna regresija

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -105263 375909 -0280 077965

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5predmestje -158647 246244 -0644 051989

F5manjse mesto 114633 225129 0509 061099

F5vas -62163 212181 -0293 076974

F5kmetija -32327 268104 -0121 090411

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

Ker je bilo rdquoVeliko mestordquo izbrano kot referencna kategorija imamo v izpisu regre-sijske koeficiente za vse ostale kategorije Vsak izmed teh regresijskih koeficientovnam poda primerjavo med kategorijo in velikim mestom Tako nam vrednost koefi-cienta rdquoF5Vasrdquominus62 pove da imajo osebe ki zivijo na vasi v povprecju pri enakihvrednostih ostalih spremenljivk (izobrazba stevilo delovnih ur na teden spol) za 62tisoc sit nizjo bruto placo kot tisti ki zivijo v velikih mestih

Ce zelimo nastaviti kot referencno kaksno drugo kategorijo to najlazje storimo takoda zamenjamo vrstni red levels pri faktorju pred klicem funkcije lm Ce bi ze-leli da je na primer referencna kategorija rdquomanjse mestordquo lahko to dosezemo ta-kole

gt dataLR$F5alt-factor(dataLR$F5

levels=levels(dataLR$F5)[c(31245)])

gt lm(G91~F7+F21+O1F2+F5adata=dataLR)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5a data = dataLR)

Coefficients

(Intercept) F7 F21

09370 214129 -02492

3 poglavje ndash Analiza variance in linearna regresija 159

O1F2zenski F5aveliko mesto F5apredmestje

-331629 -114633 -273280

F5avas F5akmetija

-176796 -146960

gt sedaj je referencna kategorija manjse mesto

gt summary(lm(G91~F7+F21+O1F2+F5adata=dataLR))

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5a data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 09370 349314 0027 097862

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5aveliko mesto -114633 225129 -0509 061099

F5apredmestje -273280 199023 -1373 017073

F5avas -176796 149753 -1181 023869

F5akmetija -146960 220729 -0666 050605

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

Pri enakih vrednostih ostalih neodvisnih spremenljivk bi v vseh drugih krajih bivanjav povprecju pricakovali nizjo bruto placo kot v velikem mestu vendar pa ni nobedenod regresijskih koeficientov statisticno znacilen (niti pri 10- tveganju)

Vendar na podlagi tega izpisa ne sklepati o domnevi da kraj bivanja ne vpliva nabruto placo (oziroma ne moremo ugotoviti da tega ne moremo trditi na primer pri10- tveganju) Za preverjanje te domneve bi morali s pomocjo F -testa ta modelprimerjati z modelom brez kraja bivanja (torej s prejsnjim modelom) Medtem koizbor referencne kategorije vpliva na posamezne regresijske koeficiente in posledicnotudi na teste znacilnosti le-ta ne vpliva na rezultate F -testa kjer preverjamo vplivrdquocelotnerdquo nominalne spremenljivke (ali katerekoli druge posamezne spremenljivke alikombinacije vec spremenljivk)

160 33 Linearna regresija

gt anova(fitG91_F7F21O1F2fitG91_F7F21O1F2F5)

Analysis of Variance Table

Model 1 G91 ~ F7 + F21 + O1F2

Model 2 G91 ~ F7 + F21 + O1F2 + F5

ResDf RSS Df Sum of Sq F Pr(gtF)

1 308 3173025

2 304 3149602 4 23423 05652 06881

Sele ta primerjava nam pove da bi morali tvegati vec kot 70 ce bi zeleli trditida kraj bivanja vpliva na bruto placo ce izlocimo vplive stopnje izobrazbe steviladelovnih ur in spola

336 Interakcije med spremenljivkami

Interakcije med (ucinki) spremenljivk vkljucimo v model tako da kot dodatno ne-odvisno spremenljivko v model vkljucimo zmnozek spremenljivk V primeru nomi-nalnih spremenljivk morajo biti te ustrezno kodirane (na primer kot umetne spre-menljivke)

Opozorilo

Ko navajamo v R-ju rdquoformulordquo(npr y ~ x1 + x2) znak rdquordquopomeni da zelimov model vkljuciti izbrane spremenljivke in vse mozne interakcije med njimi in nedejanskega mnozenja (upostevajo se na primer tudi tipi spremenljivk) Ce zelimovkljuciti samo interakcijo potem damo med spremenljivki(ke) znak rdquordquo Takoje na primer y ~ x1x2x3 enako kot y ~ x1 + x2 + x3 + x1x2 + x1x3

+ x2x3 Ce zelimo da se nek operator (na primer ) interpretira dobesednodamo izraz kot argument funkciji I (na primer I(x1x2))

Ce torej zelimo vkljuciti interakcijo med spolom in izobrazbo (edini spremenljivki kista imeli statisticno znacilen vpliv) lahko to naredimo tako kot prikazuje naslednjiizpis

gt fitG91_F7F21O1F2F5int lt- lm(G91 ~ F7O1F2 + F21 + F5

data=dataLR)

gt ali takole

gt fitG91_F7F21O1F2F5int lt- lm(G91 ~ F7 + F21 + O1F2 + F5

gt + F7O1F2 data=dataLR)

gt summary(fitG91_F7F21O1F2F5int)

Call

lm(formula = G91 ~ F7 O1F2 + F21 + F5 data = dataLR)

3 poglavje ndash Analiza variance in linearna regresija 161

Residuals

Min 1Q Median 3Q Max

-23387 -6501 -2010 5017 43674

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -5052516 4638880 -1089 0277

F7 2455524 289956 8469 109e-15

O1F2zenski 3700699 4928161 0751 0453

F21 -020133 047672 -0422 0673

F5predmestje -1607825 2457842 -0654 0514

F5manjse mesto 829630 2257400 0368 0713

F5vas -701999 2118518 -0331 0741

F5kmetija -002075 2684935 -0001 0999

F7O1F2zenski -563564 384354 -1466 0144

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1016 on 303 degrees of freedom

Multiple R-squared 03207 Adjusted R-squared 03028

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

Vpliv interakcije ni statisticno znacilen Prav tako pa ni vec statisticno znacilenvpliv spola To je posledica multikolinearnosti ki jo bomo omenili v naslednjempodpodpoglavju Problem lahko zmanjsamo ce intervalne spremenljivke pred ra-cunanjem interakcije centriramo (od vsake vrednosti odstejemo povprecje) Zaradilepsega izpisa je bolje da to naredimo pred klicem funkcije lm

gt dataLR$F7centGndrZenskilt- (dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

gt fitG91_F7F21O1F2F5int2lt-lm(G91~F7+F21+O1F2+F5 +

F7centGndrZenskidata=dataLR)

gt summary(fitG91_F7F21O1F2F5int2)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 + F7centGndrZenski

data = dataLR)

Residuals

Min 1Q Median 3Q Max

-23387 -6501 -2010 5017 43674

162 33 Linearna regresija

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -5052516 4638880 -1089 02769

F7 2455524 289956 8469 109e-15

F21 -020133 047672 -0422 06731

O1F2zenski -3264380 1177205 -2773 00059

F5predmestje -1607825 2457842 -0654 05135

F5manjse mesto 829630 2257400 0368 07135

F5vas -701999 2118518 -0331 07406

F5kmetija -002075 2684935 -0001 09994

F7centGndrZenski -563564 384354 -1466 01436

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1016 on 303 degrees of freedom

Multiple R-squared 03207 Adjusted R-squared 03028

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

Spremenil se je le koeficient za spol vsi ostali rezultati (vkljucno z R2 in F -statistiko)pa so ostali nespremenjeni Pravzaprav se je spremenilo samo rdquokodiranje spremen-ljivkrdquo Ce vpliv spremenljivk vkljucenih v interakcije preverjamo na pravilen nacintorej tako da preverjamo vpliv celotne spremenljivke se pravi rdquoglavnirdquo ucinek in vseinterakcije v katerih nastopa preko F -testa potem kodiranje ni pomembno Pravilnobi ucinek spola torej preverjali tako kot sledi v nadaljevanju kjer nacin kodiranja narezultat testa ne vpliva

gt ocenimo model brez spola

gt fitG91_F7F21F5int lt- lm(G91 ~ F7 + F21 + F5 data=dataLR)

gt preverimo skupni vpliv spola tako da primerjamo

gt model brez spola z modelom s spolom

gt anova(fitG91_F7F21F5int fitG91_F7F21O1F2F5int)

Analysis of Variance Table

Model 1 G91 ~ F7 + F21 + F5

Model 2 G91 ~ F7 O1F2 + F21 + F5

ResDf RSS Df Sum of Sq F Pr(gtF)

1 305 3231587

2 303 3127412 2 104176 50465 0006983

---

Signif codes

0 0001 001 005 01 1

3 poglavje ndash Analiza variance in linearna regresija 163

Ugotovimo lahko da je vpliv spola (kjer upostevamo tudi njegov vpliv preko inte-rakcije z izobrazbo) statisticno znacilen pri stopnji tveganja 07

337 Preverjanje predpostavk

Analiza rezidualov

Deloma smo preverjanje predpostavk ze obdelali ko smo si ogledali diagnosticnegrafikone za porazdelitev rezidualov Veliko predpostavk je namrec vezanih na po-razdelitev rezidualov Se na zadnjem modelu (z interakcijo 2) poglejmo standardnegrafikone za diagnostiko Grafi so prikazani na sliki 315

gt par(mfrow=c(22))

gt plot(fitG91_F7F21O1F2F5int2)

gt par(mfrow=c(11))

Iz grafov na sliki 315 lahko razberemo

bull Ze na 1 grafu (levo zgoraj) se vidi da je variabilnost rezidualov vecja privecjih placah kot pri manjsih To je se bolj razvidno iz 3 grafa (levo spodaj)Graf je podoben zgornjemu (1) le da sedaj namesto rdquosurovihrdquo rezidualovna y os nanasamo korenjene absolutne standardizirane reziduale Pri temje bistveno predvsem to da nanasamo absolutne vrednosti Rdeca crta kiprikazuje glajena povprecja bi morala biti v primeru homoskedasticnosti (ko jeta predpostavka izpolnjena) ravna pri nas pa je ocitno da od takrat ko imamoneko vecje stevilo enot vseskozi narasca Torej je prisotna heteroskedasticnost

bull Na 2 grafu (desno zgoraj) vse tocke ne lezijo na premici kar pomeni dase reziduali ne porazdeljujejo normalno Predvsem imamo prevec zelo velikihvrednosti Enako lahko razberemo tudi iz histograma rezidualov z vrisanonormalno krivuljo na sliki 316

gt par(mar=mardef-c(0030))

gt hist(fitG91_F7F21O1F2F5int2$resfreq=FALSExlab=Reziduali

ylab=Gostotamain=br=15)

gt curve(dnorm(xsd=sd(fitG91_F7F21O1F2F5int2$res))add=TRUE)

gt par(mar=mardef)

Za preverjanje heteroskedasticnosti obstaja v paketku car tudi formalni test (funk-cija ncvTest) Prav tako ta paketek ponuja se dodatni grafikon ki narise logaritmi-rane absolutne vrednosti studentiziranih rezidualov v odvisnosti od logaritmiranihnapovedanih vrednosti (funkcija spreadLevelPlot) Zaradi uporabe logaritmovizpusti vse negativne napovedane vrednosti (in v tem primeru izpise opozorilo)

164 33 Linearna regresija

Slika 315 Diagnosticni grafikoni za linearno regresijo ndash model z interakcijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641525784

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641525784

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641525784

000 002 004 006 008 010 012

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

Residuals vs Leverage

784

199

525

Funkcija predlaga tudi transformacijo odvisne spremenljivke za odpravljanje pro-blema heteroskedasticnosti Graf je prikazan na sliki 317

gt ncvTest(fitG91_F7F21O1F2F5int2)

Non-constant Variance Score Test

Variance formula ~ fittedvalues

Chisquare = 1484605 Df = 1 p = 00001166521

gt spreadLevelPlot(fitG91_F7F21O1F2F5int2)

Suggested power transformation 05373901

3 poglavje ndash Analiza variance in linearna regresija 165

Slika 316 Histogram rezidualov

Reziduali

Gostota

-200 -100 0 100 200 300 400

0000

0001

0002

0003

0004

0005

Slika 317 Grafikon za ocenjevanje heteroskedasticnosti

50 100 200 500

000

50

020

010

00

500

200

0

Spread-Level Plot for fitG91_F7F21O1F2F5int2

Fitted Values

Abs

olut

e S

tude

ntiz

ed R

esid

uals

166 33 Linearna regresija

Na podlagi testa lahko domnevo o homoskedasticnosti zavrnemo pri zanemarljivistopnji tveganja Iz grafa na sliki 317 pa zopet vidimo da variabilnost rezidualovz visanjem napovedanih vrednosti narasca Na podlagi regresijskega koeficientapremice na tem grafu funkcija predlaga tudi potenco na katero naj bi potenciraliodvisno spremenljivko za odpravo problema heteroskedasticnosti

Multikolinearnost

Multikolinearnost lahko ocenjujemo z vec statistikami Poglejmo si najprej izracunfaktorja povecanja variance (variance inflation factor ndash vif) in toleranc Vif lahko iz-racunamo s funkcijo vif iz paketka car tolerance pa so kar 1vif Ti dve statistikista priporocljivi ker sta razumljivi in pokazeta pri katerih spremenljivkah se pro-blem pojavlja Mere bomo izracunali za oba modela z interakcijo (ki se razlikujetav parametrizacji interakcije)

Opomnik Drugo parametrizacijo smo izbrali ravno zato ker zmanjsuje multikoline-arnost

gt prvi model

gt vif(fitG91_F7F21O1F2F5int) variance inflation factor

GVIF Df GVIF^(1(2Df))

F7 2396263 1 1547987

O1F2 18183935 1 4264263

F21 1052758 1 1026040

F5 1216437 4 1024793

F7O1F2 19529971 1 4419273

gt 1vif(fitG91_F7F21O1F2F5int)[1] tolerance

F7 O1F2 F21 F5 F7O1F2

041731645 005499360 094988557 082207330 005120335

gt drugi model

gt vif(fitG91_F7F21O1F2F5int2) variance inflation factor

GVIF Df GVIF^(1(2Df))

F7 2396263 1 1547987

F21 1052758 1 1026040

O1F2 1037582 1 1018618

F5 1216437 4 1024793

F7centGndrZenski 2259556 1 1503182

gt 1vif(fitG91_F7F21O1F2F5int2)[1] tolerance

F7 F21 O1F2

04173164 09498856 09637791

F5 F7centGndrZenski

08220733 04425648

3 poglavje ndash Analiza variance in linearna regresija 167

Tolerance so pri spolu in pri interakciji med spolom in izobrazbo veliko visje pridrugem modelu faktorji povecanja variance pa nizji

Dober pokazatelj multikolinearnosti je tudi korelacijska matrika med ocenami re-gresijskih koeficientov Ta kaze na problem ce so korelacije po absolutni vrednostiblizu 1 S funkcijo vcov dobimo variancnokovariancno matriko ki pa jo lahko sfunkcijo cov2cor pretvorimo v korelacijsko

gt prvi model

gt vcov(fitG91_F7F21O1F2F5int) kovariancna matrika

gt cov2cor(vcov(fitG91_F7F21O1F2F5int)) korelacijska matrika

(Intercept) F7 O1F2zenski

(Intercept) 10000000 -080916407 -060845623

F7 -08091641 100000000 071746753

O1F2zenski -06084562 071746753 100000000

F21 -04241575 002872814 008249693

F5predmestje -03471743 003199666 000178113

F5manjse mesto -02765647 -003856876 -008880756

F5vas -03666217 006890147 -002361653

F5kmetija -04616874 022093944 011067464

F7O1F2zenski 05880620 -073911673 -097107735

F21 F5predmestje F5manjse mesto

(Intercept) -0424157534 -0347174290 -027656470

F7 0028728137 0031996658 -003856876

O1F2zenski 0082496930 0001781130 -008880756

F21 1000000000 0008758751 -009876780

F5predmestje 0008758751 1000000000 064435236

F5manjse mesto -0098767796 0644352359 100000000

F5vas -0142169932 0689732959 076571906

F5kmetija -0057753038 0555335692 059905425

F7O1F2zenski -0068533086 0005924216 009568067

F5vas F5kmetija F7O1F2zenski

(Intercept) -036662171 -046168741 0588061950

F7 006890147 022093944 -0739116728

O1F2zenski -002361653 011067464 -0971077352

F21 -014216993 -005775304 -0068533086

F5predmestje 068973296 055533569 0005924216

F5manjse mesto 076571906 059905425 0095680667

F5vas 100000000 066452253 0025873515

F5kmetija 066452253 100000000 -0081587125

F7O1F2zenski 002587352 -008158713 1000000000

168 33 Linearna regresija

gt drugi model

gt vcov(fitG91_F7F21O1F2F5int2) kovariancna matrika

gt cov2cor(vcov(fitG91_F7F21O1F2F5int2)) korelacijska matrika

(Intercept) F7 F21

(Intercept) 10000000 -080916407 -0424157534

F7 -08091641 100000000 0028728137

F21 -04241575 002872814 1000000000

O1F2zenski -01742628 002108728 0068815958

F5predmestje -03471743 003199666 0008758751

F5manjse mesto -02765647 -003856876 -0098767796

F5vas -03666217 006890147 -0142169932

F5kmetija -04616874 022093944 -0057753038

F7centGndrZenski 05880620 -073911673 -0068533086

O1F2zenski F5predmestje F5manjse mesto

(Intercept) -0174262837 -0347174290 -027656470

F7 0021087276 0031996658 -003856876

F21 0068815958 0008758751 -009876780

O1F2zenski 1000000000 0031361616 001431086

F5predmestje 0031361616 1000000000 064435236

F5manjse mesto 0014310857 0644352359 100000000

F5vas 0005537691 0689732959 076571906

F5kmetija 0134101643 0555335692 059905425

F7centGndrZenski -0030070878 0005924216 009568067

F5vas F5kmetija F7centGndrZenski

(Intercept) -0366621708 -046168741 0588061950

F7 0068901467 022093944 -0739116728

F21 -0142169932 -005775304 -0068533086

O1F2zenski 0005537691 013410164 -0030070878

F5predmestje 0689732959 055533569 0005924216

F5manjse mesto 0765719055 059905425 0095680667

F5vas 1000000000 066452253 0025873515

F5kmetija 0664522533 100000000 -0081587125

F7centGndrZenski 0025873515 -008158713 1000000000

Ponovno je glavna razlika med obema modeloma povezana s spolom in interakcijomed spolom in izobrazbo Tokrat je dejanska razlika prav v korelaciji med ocenamateh dveh koeficientov Medtem ko je ta korelacija pri prvem modelu po absolutnivrednosti zelo blizu 1 (minus097) je ta korelacija pri drugem modelu skoraj 0 (minus003)Razmeroma visoka (minus075) je tudi korelacija med ocenama koeficientov za izobrazboin interakcijo med spolom in izobrazbo ki je minus075 Preostale razmeroma visokekorelacije so le se med sklopom spremenljivk ki merijo kraj bivanja (ker merijo istospremenljivko je to pricakovano) in med nekaterimi spremenljivkami in konstanto(kar pa ni tako pomembno)

3 poglavje ndash Analiza variance in linearna regresija 169

Multikolinearnost lahko ocenimo tudi s pomocjo indeksov pogojnosti in lastnih vre-dnosti matrike neodvisnih spremenljivk (v katero so namesto nominalnih spremen-ljivk vkljucene umetne spremenljivke) Obstaja vec nacinov kako izracunati indeksepogojnosti V nadaljevanju sta predstavljena dva Pri tem bomo uporabili funkcijocolinEigen ki je definirana spodaj sicer pa se nahaja tudi v datoteki rdquoUcbenikR-funkcijeRrdquo Funkcija temelji na izracunu lastnih vrednosti matrike kriznih produktovneodvisnih spremenljivk

gt colinEigenlt-function(fitSPSS=TRUE)

funkcija za racunanje lastnih vrednosti in indeksov

pogojnosti

Xlt-fit[x]

if(isnull(X))

stop(Fit must include x See lm for detailsn)

else

Xlt-fit$x

tXXlt-t(X)X

if(SPSS)

tXXlt-cov2cor(tXX)

e lt- eigen(tXX)

return(list(eigen=e$values

condIndex=sqrt(e$val[1]e$val)))

Izracunajmo torej indekse pogojnosti na oba nacina za oba modela

gt fitG91_F7F21O1F2F5int2lt-lm(G91~F7+F21+O1F2+F5 +

F7centGndrZenskidata=dataLRx=TRUE)

gt ponovno smo ocenili model s parametrom x=TRUE

gt da dobimo kot rezultat tudi matriko neodvisnih spremenljivk

gt fitG91_F7F21O1F2F5intlt-lm(G91~F7O1F2+F21+F5data=dataLR

x=TRUE)

gt prvi model

gt 1 nacin

gt colinEigen(fitG91_F7F21O1F2F5intSPSS=FALSE)

$eigen

[1] 6652435e+05 1558161e+04 4912678e+03 9900302e+01

[5] 5302790e+01 3528826e+01 1873120e+01 5532393e+00

[9] 2662550e+00

170 33 Linearna regresija

$condIndex

[1] 1000000 6534074 11636735 81972106 112005173

[6] 137301463 188454950 346763845 499851942

gt oziroma taki kot jih vrne SPSS

gt colinEigen(fitG91_F7F21O1F2F5intSPSS=TRUE)

$eigen

[1] 4943854688 1088057228 1002859625 1000235359

[5] 0766591055 0092809934 0066547583 0031866833

[9] 0007177695

$condIndex

[1] 1000000 2131606 2220306 2223216 2539516

[6] 7298534 8619195 12455564 26244625

gt drugi model

gt 1 nacin

gt colinEigen(fitG91_F7F21O1F2F5int2SPSS=FALSE)

$eigen

[1] 6558974e+05 6585408e+03 1173476e+03 1011405e+02

[5] 7781142e+01 5243155e+01 3498490e+01 9599113e+00

[9] 3705997e+00

$condIndex

[1] 1000000 9979909 23641818 80529554 91811327

[6] 111846291 136923385 261398078 420693096

gt oziroma taki kot jih vrne SPSS

gt colinEigen(fitG91_F7F21O1F2F5int2SPSS=TRUE)

$eigen

[1] 4340401831 1109346570 1012708187 1000586611

[5] 0923653402 0473392997 0076159218 0053759618

[9] 0009991567

$condIndex

[1] 1000000 1978023 2070250 2082752 2167756

[6] 3027987 7549249 8985389 20842421

Ne glede na izracun so indeksi pogojnosti pri prvem modelu bistveno vecji karnakazuje da je tam multikolinearnost vecji problem Kljub vsemu pa tudi tu indekspogojnosti na nacin kot ga izracuna SPSS ne preseze meje 30 kar bi bil jasen signalza multikolinearnost

Ocena oblike zveze

Povedali smo ze da je za vsako neodvisno spremenljivko vkljuceno v model dobropogledati razsevni grafikon z odvisno spremenljivko Vendar pa ta grafikon vca-

3 poglavje ndash Analiza variance in linearna regresija 171

sih ne razkrije prave zveze ker je prava zveza rdquozakritardquo z vplivi ostalih neodvisnihspremenljivk V tem primeru pride prav rdquocomponent + residual plotrdquo (oziroma grafdelnih ostankov) kjer na y os nanasamo vrednosti odvisne spremenljivke od katereprej odstejemo vplive ostalih spremenljivk Take grafe lahko narisemo s pomocjofunkcije crPlots iz paketka car Pogoj za uporabo funkcije je da v modelu ni in-terakcij zato jih bomo uporabili na zadnjem modelu kjer se nismo imeli interakcijeRezultat je prikazan na sliki 318

gt component + residual plot

gt crPlots(fitG91_F7F21O1F2F5)

Nadgradnja teh grafikonov so CERES grafi ki so na voljo v funkciji ceresPlots vistem paketku Za razliko od prejsnje le-ta ne narise grafov za nominalne spremen-ljivke Rezultat je na sliki 319

gt Ceres graf - naprednejsa verzija zgornjega

gt ceresPlots(fitG91_F7F21O1F2F5)

Najzanimivejsi zakljucek ki je bil opazen ze na navadnih razsevnih grafikonih jeda izobrazba vpliva na placo sele ko stevilo let solanja preseze 12 leta Kot resitevtega problema lahko v model vkljucimo se eno spremenljivko in sicer rdquostevilo letsolanja nad 12 letrdquo ki bo imela vrednost 0 za vse ki imajo 12 let solanja ali manj

gt dataLR$F7nad12 lt- dataLR$F7 - 12

gt dataLR$F7nad12[dataLR$F7nad12lt0]lt-0

gt fitG91_F7F21O1F2F5F7nad12lt-lm(G91~F7 +O1F2+F7nad12+F21+F5

data=dataLR)

gt summary(fitG91_F7F21O1F2F5F7nad12)

Call

lm(formula = G91 ~ F7 + O1F2 + F7nad12 + F21 + F5 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-28067 -5650 -1733 4223 42537

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 1307917 480829 2720 00069

F7 73834 36457 2025 00437

O1F2zenski -424936 116175 -3658 00003

F7nad12 240146 53287 4507 942e-06

F21 -02669 04621 -0578 05640

172 33 Linearna regresija

Slika 318 Grafikoni delnih ostankov

5 10 15 20

-200

010

020

030

040

050

0

F7

Com

pone

nt+

Res

idua

l(G91

)

0 20 40 60 80-2

000

100

200

300

400

F21

Com

pone

nt+

Res

idua

l(G91

)

moski zenski

-200

020

040

0

O1F2

Com

pone

nt+

Res

idua

l(G91

)

veliko mesto manjse mesto kmetija

-200

010

020

030

040

0

F5

Com

pone

nt+

Res

idua

l(G91

)

Component + Residual Plots

F5predmestje -94125 239206 -0393 06942

F5manjse mesto 193332 219000 0883 03780

F5vas 56539 207426 0273 07854

F5kmetija -105924 260487 -0407 06846

---

Signif codes

0 0001 001 005 01 1

Residual standard error 987 on 303 degrees of freedom

Multiple R-squared 03589 Adjusted R-squared 0342

F-statistic 212 on 8 and 303 DF p-value lt 22e-16

3 poglavje ndash Analiza variance in linearna regresija 173

Slika 319 Ceres grafikoni

5 10 15 20

-600

-400

-200

0

F7

CE

RE

S R

esid

ual(G

91)

0 20 40 60 80-3

00-1

0010

030

0F21

CE

RE

S R

esid

ual(G

91)

CERES Plots

gt summary(fitG91_F7F21O1F2F5) za primerjavo

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -105263 375909 -0280 077965

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5predmestje -158647 246244 -0644 051989

F5manjse mesto 114633 225129 0509 061099

F5vas -62163 212181 -0293 076974

F5kmetija -32327 268104 -0121 090411

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

174 33 Linearna regresija

gt par(mfrow=c(22))

gt plot(fitG91_F7F21O1F2F5F7nad12)

gt par(mfrow=c(11))

Vpliv spremenljivke F7 je bistveno manjsi in sedaj komaj statisticno znacilen pri 5-tveganju kar nam pove da izobrazba do 12 let ne vpliva mocno na bruto placo Kerpa je koeficient spremenljivke F7nad12 bistveno vecji in mocno statisticno znacilenvidimo da zacne izobrazba mocneje vplivati na bruto placo sele ko stevilo let solanjapreseze 12 let oziroma po srednji soli O tem da je model sedaj bistveno boljsi pricatudi znatno vecji R2

Diagnosticni grafikoni so prikazani na sliki 320 Rezultati so sicer malce boljsi aproblem heteroskedasticnosti ostaja

338 V razmislek

Model bi se dalo se nadgrajevati Ze samo vpliv izobrazbe na placo za razlicneskupine je zelo kompleksna stvar Kaj se zgodi ce v novi model dodamo interakcijo

gt dataLR$F7centGndrZenskilt- (dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

gt dataLR$F7nad12centGndrZenski lt- (dataLR$F7nad12-

mean(dataLR$F7nad12))(dataLR$O1F2==zenski)

gt fitG91_F7F21O1F2F5F7nad12intlt-lm(G91~F7+F7nad12+O1F2+F21+F5+

F7centGndrZenski + F7nad12centGndrZenski data=dataLR)

gt summary(fitG91_F7F21O1F2F5F7nad12int)

Call

lm(formula = G91 ~ F7 + F7nad12 + O1F2 + F21 + F5 +

F7centGndrZenski + F7nad12centGndrZenski data = dataLR)

Residuals

Min 1Q Median 3Q Max

-25391 -5885 -1694 4557 42166

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 1701907 632377 2691 0007516

F7 28595 52133 0549 0583754

F7nad12 358691 73064 4909 15e-06

O1F2zenski -415327 115258 -3603 0000367

F21 -01829 04595 -0398 0690894

F5predmestje -86485 237140 -0365 0715590

3 poglavje ndash Analiza variance in linearna regresija 175

Slika 320 Diagnosticni grafikoni za linearno regresijo

100 200 300 400 500

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641525

1368

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641525

1368

100 200 300 400 500

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641525

1368

000 002 004 006 008 010 012

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05Residuals vs Leverage

784

362

525

F5manjse mesto 173586 218196 0796 0426918

F5vas 59867 205770 0291 0771297

F5kmetija -91023 259186 -0351 0725693

F7centGndrZenski 100282 70140 1430 0153828

F7nad12centGndrZenski -251789 103129 -2441 0015203

(Intercept)

F7

F7nad12

O1F2zenski

F21

176 33 Linearna regresija

F5predmestje

F5manjse mesto

F5vas

F5kmetija

F7centGndrZenski

F7nad12centGndrZenski

---

Signif codes

0 0001 001 005 01 1

Residual standard error 9783 on 301 degrees of freedom

Multiple R-squared 03744 Adjusted R-squared 03536

F-statistic 1801 on 10 and 301 DF p-value lt 22e-16

Vidimo da se odstotek pojasnjene variance se malce poveca To nam pravzapravnakazuje da bi morda morali ze na zacetku gledati graf na sliki 321

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanjapch=asnumeric(O1F2)

col=ifelse(O1F2==moskibluered))

gt dataLRzenlt-dataLR[dataLR$O1F2==zenski]

gt lines(with(data=dataLRzenlowess(G91~F7))lwd=2lty=2col=red)

gt dataLRmoslt-dataLR[dataLR$O1F2==moski]

gt lines(with(data=dataLRmoslowess(G91~F7))lwd=2lty=2

col=blue)

gt legend(x=1y=750legend=c(MoskiZenske)lty=2

col=c(bluered)pch=12yjust=1xjust=0

merge=FALSElwd=2)

339 Izracun rdquona rokerdquo

Za boljse razumevanje je koristno da naredimo izracune brez vgrajenih funkcij (ozi-roma s cim bolj enostavnimi) Ocenimo drugi model z interakcijo iz podpodpoglavja336 (ki smo ga shranili v objekt fitG91_F7F21O1F2F5int2) se na tak nacin

Najprej pripravimo podatke Pri tem je pomembno predvsem da naredimo umetnespremenljivke za nominalne spremenljivke

gt ylt-dataLR$G91 odvisna spremenljivka

gt Xlt-cbind(konstanta=1dataLR[c(F7F21)]

konstanta in intervalni neodvisni spremenljivki

O1F2Zenski=asnumeric(dataLR$O1F2==zenski)

3 poglavje ndash Analiza variance in linearna regresija 177

Slika 321 Odnos med izobrazbo in bruto placo po spolu

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

MoškiŽenske

F5Predmestje=asnumeric(dataLR$F5==predmestje)

F5Manjse mesto=asnumeric(dataLR$F5==manjse mesto)

F5Vas=asnumeric(dataLR$F5==vas)

F5Kmetija=asnumeric(dataLR$F5==kmetija)

F7centGndrZenski=(dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

)

gt Xlt-asmatrix(X)

gt preverimo rezultat

gt X[110]

konstanta F7 F21 O1F2Zenski F5Predmestje F5Manjse mesto

1 1 6 42 0 0 0

4 1 12 50 1 0 0

6 1 12 40 1 0 0

16 1 11 62 0 0 0

22 1 14 48 0 0 1

23 1 12 0 0 0 1

26 1 16 45 1 0 0

35 1 12 40 1 0 0

41 1 18 46 0 0 1

49 1 11 40 1 0 1

F5Vas F5Kmetija F7centGndrZenski

1 0 1 00000000

178 33 Linearna regresija

4 1 0 -03589744

6 1 0 -03589744

16 1 0 00000000

22 0 0 00000000

23 0 0 00000000

26 0 1 36410256

35 0 0 -03589744

41 0 0 00000000

49 0 0 -13589744

gt to je enako kot

gt fitG91_F7F21O1F2F5int2$x[110]

(Intercept) F7 F21 O1F2zenski F5predmestje

1 1 6 42 0 0

4 1 12 50 1 0

6 1 12 40 1 0

16 1 11 62 0 0

22 1 14 48 0 0

23 1 12 0 0 0

26 1 16 45 1 0

35 1 12 40 1 0

41 1 18 46 0 0

49 1 11 40 1 0

F5manjse mesto F5vas F5kmetija F7centGndrZenski

1 0 0 1 00000000

4 0 1 0 -03589744

6 0 1 0 -03589744

16 0 1 0 00000000

22 1 0 0 00000000

23 1 0 0 00000000

26 0 0 1 36410256

35 0 0 0 -03589744

41 1 0 0 00000000

49 1 0 0 -13589744

Spomnimo se da je matricna formula za izracun regresijskih koeficientov

b = (XprimeX)minus1Xprimey

Formuli za izracun napovedi in rezidualov pa

yprime = Xb

e = y minus yprime

3 poglavje ndash Analiza variance in linearna regresija 179

Na podlagi tega lahko izracunamo s[e] R2 popravljen R2pop in F -statistiko

se =

nsumi=1

e2

nminus k

R2 =var(yprime)

var(y)

R2pop = 1minus s2e

var(y)= 1minus (1minusR2)

nminus 1

nminus k

F =

nsumi=1

yprimei minus y

k minus 1nsumi=1

yi minus yprimei

nminus k

=

R2

k minus 11minusR2

nminus k

Izracunajmo

gt blt-solve(t(X) X) t(X) y

gt b

[1]

konstanta -5052516310

F7 2455524459

F21 -020132728

O1F2Zenski -3264379964

F5Predmestje -1607824506

F5Manjse mesto 829629531

F5Vas -701999244

F5Kmetija -002074509

F7centGndrZenski -563564466

gt kar je enako kot (do natancnosti racunalnika)

gt coef(fitG91_F7F21O1F2F5int2)

(Intercept) F7 F21

-5052516310 2455524459 -020132728

O1F2zenski F5predmestje F5manjse mesto

-3264379964 -1607824506 829629531

F5vas F5kmetija F7centGndrZenski

-701999244 -002074509 -563564466

gt yNap lt- X b

gt e lt- y - yNap

gt nlt-dim(X)[1]

gt klt-length(b)

180 33 Linearna regresija

gt sErrlt-sqrt(sum(e^2)(n-k))

gt sErr

[1] 1015947

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$sigma

[1] 1015947

gt R2=var(yNap)var(y)

gt R2

[1]

[1] 03207477

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$rsquared

[1] 03207477

gt R2poplt-1-sErr^2var(y)

gt R2pop

[1] 03028137

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$adjrsquared

[1] 03028137

gt F=(R2(k-1))((1-R2)(n-k))

gt F

[1]

[1] 1788484

gt (df1lt-k-1)

[1] 8

gt (df2lt-n-k)

[1] 303

gt pf(q=Fdf1=df1df2=df2lowertail =FALSE)

[1]

[1] 7405752e-22

gt cat(captureoutput(summary(fitG91_F7F21O1F2F5int2))[27]n)

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

gt p-vrednosti se malce razlikujeta a sta obe prakticno 0

gt verjetno gre za vprasanje racunske natancnosti

Izracunajmo se variancno-kovariancno matriko za ocene regresijskih koeficientov iniz nje se standardne napake za ocene regresijskih koeficientov Na podlagi variancno-kovariancne matrike lahko izracunamo se korelacijsko matriko ocen regresijskih ko-eficientov (za ocenjevanje multikolinearnosti)

Sb = s2e middot XprimeXminus1

se(bi) =radicSb[i i]

w = diag

(1radic

diag(Sb)

)

3 poglavje ndash Analiza variance in linearna regresija 181

Cb = w middot Sb middot w

Na podlagi ocen standardnih napak pa lahko izracunamo t-statistike kot t = bise(bi))

gt Sblt-sErr^2solve(t(X) X)

gt Sb

konstanta F7 F21

konstanta 2151921149 -10883837598 -938010552

F7 -108838376 840745537 003971066

F21 -9380106 003971066 022726613

O1F2Zenski -95163435 071978854 038619681

F5Predmestje -395835418 228029391 010262743

F5Manjse mesto -289613230 -252450622 -106289703

F5Vas -360299394 423246067 -143584413

F5Kmetija -575035961 1720043074 -073922389

F7centGndrZenski 104849908 -823715261 -012557392

O1F2Zenski F5Predmestje F5Manjse mesto

konstanta -951634352 -3958354175 -289613230

F7 07197885 22802939 -2524506

F21 03861968 01026274 -1062897

O1F2Zenski 1385811962 90741196 3802999

F5Predmestje 90741196 6040986074 357508039

F5Manjse mesto 38029995 3575080389 509585361

F5Vas 13810615 3591427268 366193057

F5Kmetija 423857670 3664741109 363085097

F7centGndrZenski -13605987 05596501 8301651

F5Vas F5Kmetija F7centGndrZenski

konstanta -360299394 -5750359613 1048499077

F7 4232461 172004307 -82371526

F21 -1435844 -07392239 -01255739

O1F2Zenski 1381062 423857670 -13605987

F5Predmestje 359142727 3664741109 05596501

F5Manjse mesto 366193057 3630850975 83016508

F5Vas 448811895 3779859757 21067811

F5Kmetija 377985976 7208876587 -84195178

F7centGndrZenski 2106781 -84195178 147728263

gt kar je enako kot

gt vcov(fitG91_F7F21O1F2F5int2)

gt max(abs(Sb-vcov(fitG91_F7F21O1F2F5int2)))

[1] 1364242e-12

gt seblt-sqrt(diag(Sb))

gt seb

182 33 Linearna regresija

konstanta F7 F21

463888041 28995612 04767244

O1F2Zenski F5Predmestje F5Manjse mesto

117720515 245784175 225739974

F5Vas F5Kmetija F7centGndrZenski

211851810 268493512 38435435

gt enakost z izracunom s funkcijo lm bomo preverili kasneje

gt

gt wlt-diag(1seb)

gt Cblt-w Sb w

gt kar je enako kot

gt cov2cor(vcov(fitG91_F7F21O1F2F5int2))

gt max(abs(Cb-cov2cor(vcov(fitG91_F7F21O1F2F5int2))))

[1] 144329e-15

gt t-statistika

gt tblt-bseb

gt pblt-2pt(-abs(tb)df=n-k)

gt tabela

gt cbind(b=asvector(b)Std napaka=asvector(seb)

t=asvector(tb)p-vrednost=asvector(pb))

b Std napaka t p-vrednost

[1] -5052516310 463888041 -10891671826 2769457e-01

[2] 2455524459 28995612 84686070004 1087724e-15

[3] -020132728 04767244 -04223137835 6730955e-01

[4] -3264379964 117720515 -27729915791 5898550e-03

[5] -1607824506 245784175 -06541611171 5135042e-01

[6] 829629531 225739974 03675155600 7134911e-01

[7] -701999244 211851810 -03313633444 7405991e-01

[8] -002074509 268493512 -00007726479 9993840e-01

[9] -563564466 38435435 -14662627672 1436137e-01

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$coef

Estimate Std Error t value

(Intercept) -5052516310 463888041 -10891671826

F7 2455524459 28995612 84686070004

F21 -020132728 04767244 -04223137835

O1F2zenski -3264379964 117720515 -27729915791

F5predmestje -1607824506 245784175 -06541611171

F5manjse mesto 829629531 225739974 03675155600

F5vas -701999244 211851810 -03313633444

F5kmetija -002074509 268493512 -00007726479

F7centGndrZenski -563564466 38435435 -14662627672

Pr(gt|t|)

3 poglavje ndash Analiza variance in linearna regresija 183

(Intercept) 2769457e-01

F7 1087724e-15

F21 6730955e-01

O1F2zenski 5898550e-03

F5predmestje 5135042e-01

F5manjse mesto 7134911e-01

F5vas 7405991e-01

F5kmetija 9993840e-01

F7centGndrZenski 1436137e-01

Seveda bi se na tak nacin dalo izracunati se marsikaj a bomo tu zakljucili

34 Viri za poglabljanje znanja

Za poglabljanje snovi iz tega poglavja so uporabni tudi spletni viri navedeni vpodpodpoglavju 191 (Spletni viri) a jih tu posebej ne navajam Tu izpostavljamsamo enega s pomocjo katerega je mogoce zelo enostavno in hitro najti ustrezneukaze za izvedbo zelenih analiz

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

Za poglabljanje znanja iz analize variance in linearne regresije je primerna vecinaucbenikov s teh podrocij na primer

bull Fox John 2008 Applied regression analysis and generalized linear modelsLos Angeles Sage

bull Kosmelj Blazenka 2005 Analiza odvisnosti za vzorcne podatke LjubljanaEkonomska fakultetaSlovenski ucbenik ki ga uporabljajo na Ekonomski fakulteti Univerze v Lju-bljani

bull Iversen Gudmund R in Helmut Norpoth 2002 Analysis of variance NewburyPark London New Delhi Sage

Vsebina tega poglavja je tudi vsaj deloma pokrita v nekaterih ucbenikih omenjenihv prejsnjem poglavju

Izvedbo analize variance in linearne regresije v R-ju pa pokrivajo sledeci ucbeniki

184 35 Vprasanja za ponavljanje

bull Faraway Julian James 2005 Linear models with R Boca Raton Chapmanamp HallCRC24

Najbolj priporocam prav ta vir

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer25

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer26

Se posebej primerna za tiste ki ze poznajo SPSS ali SAS sicer pa zelo zgoscenaobravnava

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC27

V bolj omejenem obsegu

35 Vprasanja za ponavljanje

1 Katere so predpostavke klasicne enofaktorske analize variance in kako jih pre-verjamo

2 Analizo variance lahko izvedemo z vec funkcijami Katerimi Kaksne so razlikemed njimi oziroma katere so prednosti in slabosti posameznih funkcij

3 Ali je vrstni red faktorjev pri vecfaktorski analizi variance pomemben Poja-snite

4 V kaksni obliki morajo biti podatki ce zelimo (s funkcijo aov) izvesti enofak-torsko analizo variance za odvisne vzorce

5 Ali lahko ce na nekem podatkovju z manjkajocimi podatki veckrat zazenemolinearno regresijo z razlicnimi neodvisnimi spremenljivkami pricakujemo daso vse analize izvedene na istih enotah

6 Kako v linearno regresijo s funkcijo lm vkljucimo nominalne spremenljivkeAli jih moramo predhodno kaj transformirati Na kaj moramo biti pri vklju-cevanju pozorni

7 Kako lahko s funkcijami za linearno regresijo vsaj priblizno ocenimo tudi ne-linearne zveze Kaksne so pomanjkljivosti tega pristopa

8 Kako (s katero funkcijo in kaj uporabimo kot argument) narisemo standardnegrafe za diagnostiko oziroma preverjanje predpostavk linearne regresije

24Starejsa in manj obsezna razlicica knjige je prostodostopna tudi na httpcranr-project

orgdoccontribFaraway-PRApdf25Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani26Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani27Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf

3 poglavje ndash Analiza variance in linearna regresija 185

9 Kako preverimo ali neka nominalna spremenljivka z vec kot dvema razlic-nima vrednostma vpliva na odvisno spremenljivko ce izlocimo vplive ostalihneodvisnih spremenljivk

10 Ali lahko na podlagi standardnega izpisa ene analize ugotavljamo ali so pov-precne vrednosti katerihkoli dveh kategorij nominalne spremenljivke statisticnoznacilno razlicne (pri izbrani stopnji tveganja) ob enakih vrednostih ostalih ne-odvisnih spremenljivk

11 Kako v formuli (argumentu funkcije lm) oznacimo da zelimo vkljuciti inte-rakcijo

12 Navedite vsaj en nacin ocenjevanja multikolinearnosti ki pove tudi pri katerihspremenljivkah se multikolinearnost pojavlja

13 Kaj nam povedo grafikoni delnih ostankov (oziroma component + residualplot) oziroma za kaksen namen jih uporabljamo

187

4 poglavje

Za konec

V tem ucbeniku je precej natancno predstavljena uporaba R-ja tako za opravljanjesplosnih opravil ki se uporabljajo pri vecini analiz (priprava podatkov risanje gra-fov) kot tudi za izvedbo univariatnih in bivariatnih statisticnih analiz ter multipleregresije Sama statisticna teorija je obravnavana le toliko kolikor se mi je zdelonujno potrebno

Ucbenik je sicer prvenstveno namenjen tistim ki ze poznajo osnove statistike radipa bi se naucili le-to izvajati s pomocjo R-ja Poleg tega pa je namenjen tudi vsemki bi radi le spoznali osnovno delovanje R-ja ne glede na to na katerem podrocjuga nameravajo uporabljati Za te je predvsem koristno prvo najsplosnejse in tudinajobseznejse poglavje Naj ucbenik zakljucim s pregledom nekaterih podrocij kjerse R lahko uporablja ter navedbo nekaterih virov za uporabo R-ja na teh podrocjih

Multivariatna analiza je obicajno naslednja stopnja pri ucenju statistike ki sledispoznavanju multiple regresije 28 Kot ze samo ime pove gre pri multivaria-tni analizi predvsem za socasno obravnavo vec spremenljivk Najbolj znanemetode multivariatne analize so razvrscanje v skupine metoda glavnih kom-ponent in faktorska analiza Nekatere metode multivariatne analize so pred-stavljene tudi v Uvodnem primeru Tukaj navajam par relevantnih ucbenikov

bull Everitt Brian 2005 An R and S-PLUS companion to multivariate ana-lysis London Springer

bull Everitt Brian in Torsten Hothorn 2011 An introduction to applied mul-tivariate analysis with R New York Springer

Podatkovno rudarjenje je ime za metode katerih glavni cilj je odkrivanje upo-rabnega veljavnega nepricakovanega in razumljivega znanja iz podatkov Po-gosto se uporablja na ogromnih podatkih pogosto ne-strukturiranih in prido-bljenih iz razlicnih virov Kljub navidezno velikim razlikam se v veliki meri

28Multipla regresija pravzaprav ze sodi v podrocje Multivariatne analize

188

prekriva s statistiko se bolj pa s podrocjem strojnega ucenja (nekateri sma-trajo celo da sta to le dve razlicni imeni za isto podrocje) zato ti podrocjiomenjam skupaj Nekaj ucbenikov ki obravnavajo podatkovno rudarjenje alistrojno ucenje v R-ju

bull Williams Graham J 2011 Data mining with Rattle and R the art ofexcavating data for knowledge discovery New York SpringerTo se posebej priporocam za zacetnike

bull Zhao Yanchang in Yonghua Cen 2013 Data Mining Applications withR 1 izdaja Amsterdam Boston Academic Press

bull Zhao Yanchang 2012 R and Data Mining Examples and Case Studies1 izdaja Amsterdam Academic Press

bull Lantz Brett 2013 Machine Learning with R Packt Publishing

Metode ponovnega vzorcenja so metode ki na podlagi ponovnega vzorcenjaomogocajo preverjanje domnev ali izracun intervalov v primerih ko se spre-menljivke ne porazdeljujejo (niti priblizno) normalno kar obicajno predvide-vajo klasicne metode Spodaj navajam tri ucbenike Phillipa Gooda ki po-krivajo uporabo metod ponovnega vzorcenja se posebej v R-ju na razlicnihnivojih

bull Good Phillip I 2011 Practitioners Guide to Resampling for Data Ana-lysis Data Mining and Modeling Zany BooksZraven je koda tako za R kot za Stato

bull mdashmdashmdash 2012 Introduction to Statistics Through Resampling Methods andR 2 izdaja WileySe posebej primeren za zacetnike in zelo vezan na R

bull mdashmdashmdash 2013 Resampling Methods 3 izdaja BirkhauserR je le eden od obravnavanih programskih jezikovpaketov

Statisticna analiza financnih podatkov je tudi podrocje kjer se pogosto upo-rablja R Kot samo ime pove gre za uporabo statistike in financne matema-tike za analizo financnih podatkov za (med drugim) upravljanje s tveganjinapovedovanje vrednosti financnih kazalnikov upravljanje portfelja Nekajucbenikov ki obravnavajo uporabo R-ja na tem podrocju

bull Carmona Rene 2013 Statistical Analysis of Financial Data in R 2izdaja Springer New York

bull Daroczi Gergely Edina Berlinger Peter Csoka Daniel Havran MartonMichaletzky Zsolt Tulassay Kata Varadi in Agnes Vidovics-Dancs 2013Introduction to R for Quantitative Finance Packt Publishing

bull Arratia Argimiro 2014 Computational Finance An Introductory Coursewith R Atlantis Press

4 poglavje ndash Za konec 189

Biostatistika se ukvarja s statisticno analizo na podrocju biologije medicine in so-rodnih ved Ukvarja se na primer z ugotavljanjem vplivov razlicnih dejavnikovna rast in razvoj rastlin in zivali ter na njihove lastnosti vplivom zdravil innacinov zdravljenja na potek bolezni in se bi lahko nastevali Na tem podrocjusta R njemu soroden S-PLUS med najpogosteje uporabljenimi programskimipaketi Nekaj knjig ki obravnavajo metode s tega podrocja v R-ju

bull Brostrom Goran 2012 Event History Analysis with R Boca RatonCRC Press

bull MacFarland Thomas W 2013 Introduction to Data Analysis and Graphi-cal Presentation in Biostatistics with R 1 izdaja Springer InternationalPublishing

bull Shahbaba Babak 2011 Biostatistics with R 1 izdaja New York Sprin-ger

Analiza ogromnih podatkov in spleta postaja vse bolj pomembno podrocje rdquoBigdatardquo (oz ogromni podatki) je tako imenovani rdquobuzzwordrdquo ki pridobiva na po-menu Gre za analizo podatkov ki jih ne moremo shraniti v delovni spominracunalnika zato so za analizo potrebni posebni pristopi Pogosto se podatkipridobijo neposredno na svetovnem spletu Tudi sicer narasca zanimanje zaanalizo podatkov ki so dostopni na spletu se posebej na socialnih omrez-jih Tudi za ta namen se lahko uporabi R Po eno delo z vsakega podrocja vpovezavi z R-jem navajam spodaj

bull Danneman Nathan in Richard Heimann 2014 Social Media Mining withR Packt Publishing

bull Prajapati Vignesh 2013 Big Data Analytics with R and Hadoop PacktPublishing

To seveda niso vsa podrocja kjer se Ruporablja vendar pa se iz navedenega vidi daje R res uporaben na zelo razlicnih podrocjih lahko bi rekli da je uporaben povsodkjer se uporablja analiza podatkov Ucenje R-ja je torej koristno za vsakega ki senamerava resno ukvarjati z analizo podatkov ne glede na sicersnje podrocje delaUpam da bo pricujoc ucbenik v pomoc vsaj pri zacetnem spoznavanju tega resrdquomocnegardquo programskega okolja

191

Literatura

Arratia Argimiro 2014 Computational Finance An Introductory Course with RAtlantis Press

Brostrom Goran 2012 Event History Analysis with R Boca Raton CRC Press

Buuren Stef in Karin Groothuis-Oudshoorn 2011 MICE Multivariate imputationby chained equations in R Journal of Statistical Software 45 (3) URL http

docutwentenl78938

Buuren Stef van 2012 Flexible imputation of missing data Boca Raton FL CRCPress

Carmona Rene 2013 Statistical Analysis of Financial Data in R 2 izdaja SpringerNew York

Dalgaard Peter 2002 Introductory statistics with R New York Springer

Danneman Nathan in Richard Heimann 2014 Social Media Mining with R PacktPublishing

Daroczi Gergely Edina Berlinger Peter Csoka Daniel Havran Marton MichaletzkyZsolt Tulassay Kata Varadi in Agnes Vidovics-Dancs 2013 Introduction to Rfor Quantitative Finance Packt Publishing

Everitt Brian 2005 An R and S-PLUS companion to multivariate analysis LondonSpringer

Everitt Brian in Torsten Hothorn 2011 An introduction to applied multivariateanalysis with R New York Springer

Faraway Julian James 2005 Linear models with R Boca Raton Chapman ampHallCRC

mdashmdashmdash 2006 Extending the linear model with R generalized linear mixed effectsand nonparametric regression models Boca Raton Chapman amp HallCRC

Ferligoj Anuska 1994 Osnove statistike na prosojnicah Ljubljana samozalozbaZenel Batagelj

192 Literatura

Ferligoj Anuska Tina Kogovsek Willem E Saris Germa Coenders in ValentinaHlebec 2000 Kakovost merjenja egocentricnih socialnih omrezij [datoteka po-datkov] Ljubljana Univerza v Ljubljani Fakulteta za druzbene vede Centerza metodologijo in informatiko [izdelava] 2000 Slovenija Ljubljana Univerza vLjubljani Arhiv druzboslovnih podatkov [distribucija] 2012

Fox John 2008 Applied regression analysis and generalized linear models LosAngeles Sage

Gandrud Christopher 2013 Reproducible research with R and RStudio BocaRaton Chapman amp HallCRC

Gelman Andrew in Jennifer Hill 2006 Data Analysis Using Regression and Multi-levelHierarchical Models Cambridge New York Cambridge University Press

Good Phillip I 2011 Practitioners Guide to Resampling for Data Analysis DataMining and Modeling Zany Books

mdashmdashmdash 2012 Introduction to Statistics Through Resampling Methods and R 2izdaja Wiley

mdashmdashmdash 2013 Resampling Methods 3 izdaja Birkhauser

Holm Sture 1979 A Simple Sequentially Rejective Multiple Test Procedure Scandi-navian Journal of Statistics 6 (2) 65ndash70 URL httpwwwjstororgstable

4615733

IBM 2011 Sum of Squares (IBM SPSS help) URL httppicdheibmcom

infocenterspssstatv20r0m0topiccomibmibmcomdocbannerhtm

Iversen Gudmund R in Helmut Norpoth 2002 Analysis of variance NewburyPark London New Delhi Sage

Jesenko Joze in Manca Jesenko 2007 Multivariatne statisticne metode KranjModerna organizacija

Johnson Richard A in Dean W Wichern 2007 Applied multivariate statisticalanalysis Upper Saddle River Pearson Prentice Hall Pearson Education Interna-tional

Kastelec Damijana in Katarina Kosmelj 2009 Statisticna analiza po-datkov s programoma Excel 2003 in R Ljubljana Biotehniska fa-kulteta URL httpwwwbfuni-ljsifileadmingroups2763C5

A1tudijsko_gradivoSAP_2003pdf

Kosmelj Blazenka 2005 Analiza odvisnosti za vzorcne podatke Ljubljana Eko-nomska fakulteta

Kosmelj Blazenka in Joze Rovan 2007 Statisticno sklepanje Ljubljana Ekonomskafakulteta

Literatura 193

Lantz Brett 2013 Machine Learning with R Packt Publishing

Leisch Friedrich 2002 Sweave Dynamic Generation of Statistical Reports UsingLiterate Data Analysis V Compstat ur Professor Dr Wolfgang Hardle in Profes-sor Dr Bernd Ronz 575ndash580 Physica-Verlag HD URL httplinkspringer

comchapter101007978-3-642-57489-4_89 DOI 101007978-3-642-57489-4 89

Levin Jack James Alan Fox in David R Forde 2013 Elementary Statistics inSocial Research (12th Edition) Pearson

MacFarland Thomas W 2013 Introduction to Data Analysis and Graphical Pre-sentation in Biostatistics with R 1 izdaja Springer International Publishing

Matloff Norman 2011 The Art of R Programming A Tour of Statistical SoftwareDesign San Francisco No Starch Press

Minium Edward W Robert C Clarke in Theodore Coladarci 1999 Elements ofstatistical reasoning New York Wiley

Muenchen Robert A 2011 R for SAS and SPSS users New York Springer

Murrell Paul 2011 R graphics Boca Raton CRC Press

Prajapati Vignesh 2013 Big Data Analytics with R and Hadoop Packt Publishing

Rubin Donald B 1987 Multiple imputation for nonresponse in surveys New YorkWiley

mdashmdashmdash 1996 Multiple Imputation After 18+ Years Journal of the AmericanStatistical Association 91 (434) 473ndash489 doi 1023072291635 URL http

wwwjstororgstable2291635

Shahbaba Babak 2011 Biostatistics with R 1 izdaja New York Springer

Snijders Tom A B in Roel J Bosker 2012 Multilevel analysis an introduction tobasic and advanced multilevel modeling Los Angeles Sage

Tabachnick Barbara G in Linda S Fidell 2007 Using multivariate statisticsBoston PearsonAllyn amp Bacon

Tos Niko Brina Malnar in skupina 2004 Slovensko javno mnenje 20042 Evropskadruzboslovna raziskava [datoteka podatkov] Slovenija Ljubljana Fakulteta zadruzbene vede Center za raziskovanje javnega mnenja in mnozicnih komunikacij[izdelava] 2004 Slovenija Ljubljana Univerza v Ljubljani Arhiv druzboslovnihpodatkov [distribucija] 2009

Venables William N in Brian D Ripley 2000 S programming New York Springer

Verzani John 2005 Using R for introductory statistics Boca Raton Chapman ampHallCRC

194 Literatura

Welch B L 1951 On the Comparison of Several Mean Values An AlternativeApproach Biometrika 38 (34) 330ndash336 doi 1023072332579 URL http

wwwjstororgstable2332579

Wickham Hadley 2009 ggplot2 Elegant Graphics for Data Analysis DordrechtNew York Springer URL httppubliceblibcomEBLPublicPublicView

doptiID=511468

Wilkinson Leland in Graham Wills 2005 The grammar of graphics New YorkSpringer

Williams Graham J 2011 Data mining with Rattle and R the art of excavatingdata for knowledge discovery New York Springer

Wonnacott Thomas H in Ronald J Wonnacott 1990 Introductory statistics NewYork Wiley

Wooldridge Jeffrey M 2002 Econometric analysis of cross section and panel dataCambridge Massachusetts MIT Press

Xie Yihui 2013 Dynamic report generation with r and knitr Boca Raton Cha-pman amp Hall Crc

Zhao Yanchang 2012 R and Data Mining Examples and Case Studies 1 izdajaAmsterdam Academic Press

Zhao Yanchang in Yonghua Cen 2013 Data Mining Applications with R 1 izdajaAmsterdam Boston Academic Press

Zuur Alain F Elena N Ieno in Erik HWG Meesters 2009 A Beginnerrsquos Guideto R New York Springer

  • Predgovor
  • Kazalo
  • Slike
  • Tabele
  • Uvod v R
    • Uvodni primer
    • Osnovne informacije
      • Osnovne racunske operacije
      • Spremenljivke
      • Uporaba funkcij in pomoci
      • Paketki
      • Drugi osnovni podatki
        • Podatkovne strukture
          • Osnovni podatkovni tipi
          • Vektor
          • Nominalne in ordinalne spremenljivke
          • Seznam
          • Matrika
          • Polje ndash Array
          • Podatkovni okvir ndash Data frame
          • Vaje
            • Funkcije in programiranje
              • Nekaj koristnih funkcij
              • Definiranje funkcij
              • Programski tok
              • Vaje
                • Delo z datotekami
                  • Tekstovne datoteke
                  • Shranjevanje in branje objektov
                  • Branje in pisanje datotek drugih programov
                  • Vaje
                    • Risanje
                      • Visokonivojske funkcije za risanje
                      • Nizkonivojske funkcije za risanje
                      • Shranjevanje slik
                      • Vaje
                        • Priprava dokumentov z rezultati iz R-ja
                        • Rešitve vaj
                          • Podatkovne strukture
                          • Funkcije in programiranje
                          • Risanje
                            • Viri za poglabljanje znanja
                              • Spletni viri
                              • Knjižni viri
                                • Vprašanja za ponavljanje
                                  • Univariatna in bivariatna statistika
                                    • Uporabljeni podatki
                                    • Osnovne statistike
                                    • Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja
                                      • Preverjanje domneve o srednji vrednosti in pripadajoci interval zaupanja
                                      • Preverjanje domneve o razliki med srednjima vrednostma na odvisnih vzorcih in pripadajoci interval zaupanja
                                      • Preverjanje domneve o razliki med srednjima vrednostma na neodvisnih vzorcih in pripadajoci interval zaupanja
                                        • Preverjanje domnev o deležih in pripadajoci intervali zaupanja
                                          • Preverjanje domneve o vrednosti deleža in pripadajoci interval zaupanja
                                          • Preverjanje domnev o razliki med deležema na neodvisnih vzorcih in pripadajoci intervali zaupanja
                                            • Frekvencne in kontingencne tabele
                                              • Frekvencne tabele
                                              • Kontingencne tabele
                                              • Povezanost spremenljivk
                                                • Korelacija
                                                • Viri za poglabljanje znanja
                                                • Vprašanja za ponavljanje
                                                  • Analiza variance in linearna regresija
                                                    • Uporabljeni podatki
                                                    • Analiza variance (ANOVA)
                                                      • Enofaktorska analiza variance za neodvisne vzorce
                                                      • Vecfaktorska analiza variance za neodvisne vzorce
                                                      • Enofaktorska analiza variance za odvisne vzorce
                                                        • Linearna regresija
                                                          • Dodatne spremenljivke
                                                          • Bivariatna regresija
                                                          • Nelinearna regresija
                                                          • Multipla regresija
                                                          • Vkljucevanje nominalnihordinalnih spremenljivk
                                                          • Interakcije med spremenljivkami
                                                          • Preverjanje predpostavk
                                                          • V razmislek
                                                          • Izracun na roke
                                                            • Viri za poglabljanje znanja
                                                            • Vprašanja za ponavljanje
                                                              • Za konec
                                                              • Literatura
Page 5: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji

i

Predgovor

Pricujoci ucbenik je namenjen studentom ki ze poznajo osnove univariatne in bi-variatne statistike ter multiple regresije in se zelijo nauciti omenjene metode upo-rabljati v programskem paketu R ali pa zelijo predvsem spoznati osnove uporabestatisticnega programskega paketa R V ucbeniku je torej precej natancno pred-stavljena uporaba R-ja tako za opravljanje splosnih opravil ki se uporabljajo privecini analiz (priprava podatkov risanje grafov) kot tudi za izvedbo univariatnihin bivariatnih statisticnih analiz ter multiple regresije sama statisticna teorija pa jeobravnavana le toliko kolikor se mi je zdelo glede na predznanje studentov (vec otem v naslednjem odstavku) nujno potrebno

V prvi vrsti je ucbenik namenjen studentom predmetov Statistika in analiza podat-kov na magistrskem programu Druzboslovna informatika na Fakulteti za druzbenevede (v nadaljevanju FDV) Univerze v Ljubljani (v nadaljevanju UL) Tehnicni ininformacijski sistemi na dodiplomskem programu Druzboslovna informatika na FDVUL in Multivariatna analiza na magistrskem programu Uporabna statistika na UL(medfakultetni program) njegova uporaba pa se nacrtuje tudi pri predmetu Osnovestatisticne obdelave s pomocjo informacijske tehnologije na Fakulteti za socialnodelo UL Tako ucbenik predvideva znanje opisne statistike in statisticnega sklepanjas podrocij univariatne in bivariatne statistike ter multivariatne regresije v obsegukot se obravnava pri predmetih Statistika in Statistika II z racunalnisko analizo po-datkov na FDV UL Obravnavane metode zato niso sirse predstavljene razen namestih kjer potrebno predznanje presega tisto kara so studenti obravnavali pri prejomenjenih predmetih (predvsem pri neparametricnih testih)

Ucbenik predvsem njegovo prvo najobseznejse poglavje je namenjen tudi vsem kibi radi spoznali R ne glede na to na katerem podrocju ga bodo kasneje uporabljaliR se namrec lahko uporablja na mnogo podrocjhi od ze omenjene osnovne stati-sticne analize do multivariatne analize biostatistike statisticne analize financnihpodatkov podatkovnega rudarjenja strojnega ucenja racunalniske analize besedilavtomatskega zajema podatkov s spleta

R (httpwwwr-projectorg) je odprtokodno programsko okolje za statisticneanalize R ima kar nekaj lastnosti ki ga naredijo zelo privlacnega

bull je brezplacen

ii Predgovor

bull podpira vecino statisticnih metod (preko paketkov)

bull se veliko uporablja v raziskovanju (instituti univerze )

bull deluje na vecini operacijskih sistemov (Windows Mac OSOS X Linux )

bull omogoca programiranje

bull je zelo primeren za simulacije in generiranje slucajnih spremenljivk

Medtem ko vecina studentov ceni predvsem prvo izmed nastetih lastnosti (brezplac-nost) pa je njegov razcvet v veliki meri povezan s preostalimi

Predvsem za zacetnike pa ima R tudi nekaj slabosti Glavna slabost je da v osnovnirazlicici nima graficnega vmesnika (vsaj ne v klasicnem smislu kjer bi preko meni-jev in oken zahtevali izvedbo analiz) zato vsaj na zacetku ucenje poteka pocasnejekot pri programih z graficnim vmesnikom (na primer SPSS PSPP Stata ) Tuje sicer treba omeniti da obstaja tudi nekaj graficnih vmesnikov za R med ka-terimi bi izpostavil predvsem Rcommander (httpwwwrcommandercom) sajje najobseznejsi in omogoca izvajanje najvecjega nabora analiz se posebej s po-mocjo velikega stevila paketkov ki razsirjajo njegovo funkcionalnost Tega vme-snika kot receno v tem ucbeniku ne obravnavam je pa vsaj za osnovno stati-sticno analizo ta opisan v ucbeniku Kastelec Damijana in Katarina Kosmelj 2009Statisticna analiza podatkov s programoma Excel 2003 in R Ljubljana Bioteh-niska fakulteta URL httpwwwbfuni-ljsifileadmingroups2763C5

A1tudijsko_gradivoSAP_2003pdf

V ucbeniku se omejim na uporabo preko ukazne vrstice Glavni razlog za to je dalahko le s tako uporabo izkoristimo vse prednosti R-ja taka uporaba pa je tudi nujnamed drugim za analize meri simulacije avtomatsko izdelavo porocil ter mnogo dru-gih opravil

Ucbenik je razdeljen na tri osnovna poglavja Prvo je Uvod v R in je namenjenospoznavanju R-ja Zacne se z uvodnim primerom statisticnih analiz nadaljuje pase z razmeroma sistematicnim pregledom podrocij ki so pomembna za uporabotega programskega okolja Podrocja vsebujejo tako osnovne podatkovne strukturein osnove programiranja kot tudi delo z datotekami risanje in pripravo porocil napodlagi opravljenih analiz Pravzaprav to poglavje vsebuje tiste rdquonestatisticnerdquo vse-bine ki so potrebne za osnovno uporabo R-ja Poznavanje vecine izmed teh vsebin(z izjemo programiranja v R-ju ndash podpodpoglavji 142 in 143) je kljucno za ucin-kovito izvajanje in porocanje o takorekoc vseh statisticnih analizah in torej tudi zarazumevanje preostalih dveh poglavij Pri tem se prvo poglavje v veliki meri lahkobere rdquopo potrebirdquo se pravi kot prirocnik kjer se prebere doloceno poglavje ko sepokaze potreba po posameznih znanjih Z vidika uporabe R-ja je to pravzapravnajzahtevnejse poglavje zato vsebuje tudi vrsto vaj z resitvami (resitve so na koncupoglavja)

Predgovor iii

Drugo poglavje je vsebinsko najsirse saj v njem obravnavamo kar veliko tako univari-atnih kot bivariatnih metod Pod bivariatne metode sicer spadata tudi enofaktorskaanaliza variance in bivariatna regresija vendar pa ju skupaj z njunima multivari-atnima razlicicama obravnavamo loceno v naslednjem poglavju V tem poglavjuobravnavamo tako osnovne opisne statistike kot tudi inferencno statistiko Znotrajinferencne statistike obravnavamo pri srednjih vrednostih tako izracune intervalovzaupanja kot preverjanje domnev pri bivariatni povezanosti pa le preverjanje do-mnev Pri vecini metod in statistik predstavljena le uporaba v R-ju in podaniprimeri izjema so neparametricni testi kjer so obravnavane metode tudi teoreticnopredstavljene

V tretjem poglavju sta predstavljeni analiza variance in linearna regresija Pri obehzacnemo z najenostavnejsim (bivariatnim) primerom nato pa dodajamo dodatneelemente (vec neodvisnih spremenljivk interakcije med ucinki ) Pri analizi variancpredstavimo tudi njeno neparametericno razlicico Pri obeh metodah je posebnapozornost namenjena tudi preverjanju predpostavk obeh metod

Vsako od treh glavnih poglavji se zakljuci z viri za poglabljanje in vprasanji zaponavljanje Na koncu ucbenika sledi se sklepno poglavje v katerem povzamemokaj vse je bilo v ucbeniku obdelano Nekaj podpoglavij vsebuje tudi zahtevnejsosnov ki za enostavno uporabo ni potrebna Naslovi takih podpoglavij so oznaceniz zvezdico ()

Velik del ucbenika predstavlja tudi prikaz dela v R-ju s pomocjo izpisov iz rdquokonzolerdquooziroma ukazne vrstice Izpisi iz ukazne vrstice so vizualno loceni z zaobljenimiokvirji s sivim ozadjem in z uporabo drugacne pisave in sicer posevne pisave

s fiksno sirino crk (Curier)1 za ukaze in obicajne pisave s fiksno sirino

crk za izpise Vsaka vrstica kjer nastopa ukaz se zacne z znakom gt Ukaz se lahkonadaljuje cez vec vrstic V tem primeru se naslednja vrstica zacne z dvema presled-koma Vrstice ki se ne zacnejo z znakom gt in niso nadaljevanje ukaza iz prejsnjevrstice vsebujejo izpise R-jevih funkcij V R-ju je komentar vse kar sledi znaku pojavlja pa se lahko na zacetku vrstice ali kasneje Vsa R-jeva koda uporabljena vtem ucbeniku je na voljo na spletnem naslovu www2arnessi~aziber4R

Primer izpisa iz R-ja s komentarjem je videti takole

gt 2 + 1 tole je ukaz za sestevanje dveh stevil

[1] 3

V ucbeniku uporabljam se dve posebni graficni obliki Prva je opozorilo

1 Enaka pisava se sicer uporablja tudi znotraj besedila za R-jevo kodo

iv Predgovor

Opozorilo

V opozorilih opozarjam na se posebej pomembne stvari katerih neupostevanjelahko vodi do resnih in pogosto nepricakovanih posledic

Druga oblika so dodatna pojasnila

Dodatna pojasnila so pojasnila ki jih lahko vecina bralcev brez hujsih posledic izpustivseeno pa lahko pripomorejo k boljsem razumevanju snovi

Pri pripravi ucbenika je bil uporabljen R razlicice 322 Razlicico R-ja lahko pre-verite med drugim z izpisom spremenljivke Rversionstring

gt Rversionstring

[1] R version 322 (2015-08-14)

v

Kazalo

Predgovor i

Kazalo v

Slike viii

Tabele x

1 Uvod v R 111 Uvodni primer 112 Osnovne informacije 14

121 Osnovne racunske operacije 14122 Spremenljivke 15123 Uporaba funkcij in pomoci 16124 Paketki 18125 Drugi osnovni podatki 19

13 Podatkovne strukture 20131 Osnovni podatkovni tipi 20132 Vektor 22133 Nominalne in ordinalne spremenljivke 26134 Seznam 27135 Matrika 30136 Polje ndash Array 35137 Podatkovni okvir ndash Data frame 35138 Vaje 38

14 Funkcije in programiranje 38141 Nekaj koristnih funkcij 39142 Definiranje funkcij 43143 Programski tok 44144 Vaje 47

15 Delo z datotekami 47151 Tekstovne datoteke 48152 Shranjevanje in branje objektov 50153 Branje in pisanje datotek drugih programov 51

vi Kazalo

154 Vaje 5516 Risanje 56

161 Visokonivojske funkcije za risanje 56162 Nizkonivojske funkcije za risanje 58163 Shranjevanje slik 60164 Vaje 62

17 Priprava dokumentov z rezultati iz R-ja 6318 Resitve vaj 66

181 Podatkovne strukture 66182 Funkcije in programiranje 67183 Risanje 70

19 Viri za poglabljanje znanja 71191 Spletni viri 71192 Knjizni viri 73

110 Vprasanja za ponavljanje 75

2 Univariatna in bivariatna statistika 7721 Uporabljeni podatki 7722 Osnovne statistike 7823 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali za-

upanja 86231 Preverjanje domneve o srednji vrednosti in pripadajoci inter-

val zaupanja 88232 Preverjanje domneve o razliki med srednjima vrednostma na

odvisnih vzorcih in pripadajoci interval zaupanja 91233 Preverjanje domneve o razliki med srednjima vrednostma na

neodvisnih vzorcih in pripadajoci interval zaupanja 9524 Preverjanje domnev o delezih in pripadajoci intervali zaupanja 98

241 Preverjanje domneve o vrednosti deleza in pripadajoci intervalzaupanja 99

242 Preverjanje domnev o razliki med delezema na neodvisnihvzorcih in pripadajoci intervali zaupanja 101

25 Frekvencne in kontingencne tabele 103251 Frekvencne tabele 103252 Kontingencne tabele 105253 Povezanost spremenljivk 109

26 Korelacija 11227 Viri za poglabljanje znanja 11828 Vprasanja za ponavljanje 119

3 Analiza variance in linearna regresija 12131 Uporabljeni podatki 12132 Analiza variance (ANOVA) 122

321 Enofaktorska analiza variance za neodvisne vzorce 123

Kazalo vii

322 Vecfaktorska analiza variance za neodvisne vzorce 131323 Enofaktorska analiza variance za odvisne vzorce 138

33 Linearna regresija 141331 Dodatne spremenljivke 141332 Bivariatna regresija 143333 Nelinearna regresija 147334 Multipla regresija 150335 Vkljucevanje nominalnihordinalnih spremenljivk 155336 Interakcije med spremenljivkami 160337 Preverjanje predpostavk 163338 V razmislek 174339 Izracun rdquona rokerdquo 176

34 Viri za poglabljanje znanja 18335 Vprasanja za ponavljanje 184

4 Za konec 187

Literatura 191

viii

Slike

11 Strukturni stolpci in krog za spol 312 Strukturni stolpci za povezanost dveh nominalnih spremenljivk 413 Histograma za ekstravertiranost in emocionalno stabilnost 514 Razsevni grafikon za ekstravertiranost in emocionalno stabilnost 815 Dendrogram ndash Wardovo razvrscanje s kvadrirano evklidsko razdaljo

na podlagi spremenljivk emocionalne stabilnosti 1016 Graf povprecij po skupinah dobljenih z metodo voditeljev 1217 Resitev razvrscanja v prostoru glavnih komponent 1418 Stirje obrazi 1919 Strutkutna stolpca in krog na eni sliki 58110 Slika z veliko dodanimi elementi 60111 Resitev vaje 1 (Risanje) 70112 Resitev vaje 2 (Risanje) 72113 Resitev vaje 3 (Risanje) 73

21 Porazdelitev bruto place 8922 Porazdelitev zaupanja v Drzavni zbor in Evropski parlament 9223 Porazdelitev razlike med zaupanjem v Drzavni zbor in zaupanjem v

Evropski parlament 9324 Porazdelitev bruto place pri moskih in zenskah 9625 Razsevni grafikon ndash izobrazba in bruto placa 11326 Razsevni grafikoni med vsemi spremenljivkami ki merijo zaupanje v

institucije 115

31 Porazdelitve uporabljenih spremenljivk 12532 Porazdelitev bruto place po krajih bivanja 12733 Porazdelitve uporabljenih spremenljivk 13234 Porazdelitev bruto place po krajih bivanja in spolu 13435 Porazdelitve dodatnih spremenljivk 14336 Odnos med bruto placo in stevilom let solanja 14437 Porazdelitev rezidualov 14638 Diagnosticni grafikoni za linearno regresijo 14739 Exponentna zveza ndash transformacija 149310 Ocenjevanje nelinearne zveze 151

Slike ix

311 Odnos med bruto placo in tipicnim stevilom delovnih ur na teden 151312 Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk 154313 Porazdelitev rezidualov 155314 Diagnosticni grafikoni za linearno regresijo 156315 Diagnosticni grafikoni za linearno regresijo ndash model z interakcijo 164316 Histogram rezidualov 165317 Grafikon za ocenjevanje heteroskedasticnosti 165318 Grafikoni delnih ostankov 172319 Ceres grafikoni 173320 Diagnosticni grafikoni za linearno regresijo 175321 Odnos med izobrazbo in bruto placo po spolu 177

x

Tabele

11 Frekvencna tabela za spol 212 Hierarhicno razvrscanje - povprecja po skupinah 1113 Metoda voditeljev ndash povprecja po skupinah 1214 Primerjava koncnih razvrstitev po enotah 13

1

1 poglavje

Uvod v R

Prvo poglavje je namenjeno spoznavanju R-ja Zacne se z uvodnim primerom sta-tisticnih analiz nato pa se nadaljuje z razmeroma sistematicnim pregledom podro-cij ki so pomembna za uporabo tega programskega okolja Sistematicni pregledse zacne z osnovnimi informacijami kjer velja se posebej izpostaviti navodila zauporabo funkcij in pomoci ter paketkov Tem sledi pregled podatkovnih strukturtorej osnovnih nacinov na katere lahko v R-ju shranjujemo podatke in rezultate (injih nato nadalje obdelujemo) Nadaljuje se s pregledom nekaterih (s statisticnegavidika) najkoristnejsih funkcij za napredne uporabnike pa tudi pravila za pisanjenovih funkcij in napotki za programiranje Zelo pomembno podpoglavje je tudi pod-poglavje o delu z datotekami saj preko le teh rdquoberemordquo in shranjujemo podatke terpogosto tudi rezultate statisticnih obdelav R je znan tudi po zelo kvalitetnih grafihin prav risanje ter shranjevanje grafov in drugih slik je opisano v naslednjem podpo-glavju Vsebinsko se poglavje zakljuci s pregledom nacinov za pripravo dokumentovz rezultati analiz iz R-ja kjer se osredotocimo na izvoz tabel v dokumente kompa-tibilne z urejevalniki besedila Ker je to poglavje z vidika uporabe R-ja pravzapravnajzahtevnejse poglavje vsebuje tudi vrsto vaj z resitvami (po podpoglavjih) ki sopodane na koncu poglavja

11 Uvodni primer

Za predstavitev nacina analize z R-jem zacnimo z realnim primerom Primer pri-kazuje uporabo metod predstavljenih v tem ucbeniku poleg tega pa prikazuje tudiuporabo multivariatnih metod z R-jem

Podatki na katerih temelji primer so bili zbrani v okviru raziskave Kakovost mer-jenja egocentricnih socialnih omrezij (Ferligoj in drugi 2000) Podroben opis raz-iskave je na voljo na spletni strani Arhiva druzboslovnih podatkov (ADP) (httpwwwadpfdvuni-ljsiopisiegoomr00) s katere je (po predhodni registra-

2 11 Uvodni primer

ciji) mogoce tudi prenesti podatke Za ta primer sem prenesel podatke v SPSS-ovemformatu (obicajnem ne rdquoportablerdquo (prenosljivem) torej datoteka s koncnico rdquosavrdquo)saj ga R dobro bere Kot sicer natancneje obravnavamo v podpodpoglavju 153lahko R bere in zapisuje tudi podatke izv mnogih-o drugih formatov med kate-rimi posebej izpostavim Statin format (predvsem zaradi prirocnosti pri pisanju) Vpodpodpoglavju 153 so opisani tudi razlogi za uporabo SPSS-ovega formata v temucbeniku in napotki v primeru da bralec bere podatke iz kaksnega drugega formata

Pred zacetka dela v R-ju preberemo funkcije (prej pripravljene iz datoteke rdquoUcbenikR-funkcijeRrdquo) in podatke Ker zelimo analizo izvesti samo na posameznikih ki so biliosebno anketirani opravimo se izbor enot

gt nalozimo datoteko s posebej pripravljenimi funkcijami

gt source(UcbenikR-funkcijeR)

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign)

gt preberemo podatke

gt ego1lt-readspss(egoomr00_f2savtodataframe=TRUE

usevaluelabels = FALSEusemissings=TRUE)

gt izbor samo tistih ki so bili osebno anketirani

gt egolt-ego1[ego1$MODE==1]

gt kopiranje atributov (zaradi prejsne izbire enot)

gt for(i in names(ego1))attributes(ego[i])lt-attributes(ego1[i])

Naredimo se frekvencno tabelo (lepo izpisana z LATEX-om je v tabeli 11) in grafa(slika 11) Najprej frekvencno tabelo

gt ego$E_SPOLlt-makeFactorLabels(ego$E_SPOL)

gt table(ego$E_SPOL)

moski zenski

267 364

gt frekTab(ego$E_SPOLdec=1)

Frekvenca Kum frek Kumulativni

moski 267 267 423 423

zenski 364 631 577 1000

Tabela 11 Frekvencna tabela za spol

Frekvenca Kum frek Kumulativni moski 267 267 423 423zenski 364 631 577 1000

Sedaj pa narisimo se strukturna stolpca in krog

1 poglavje ndash Uvod v R 3

Slika 11 Strukturni stolpci in krog za spol

moški ženski

Strukturna stolpca

050

150

250

350

moški

ženski

Strukturni krog

gt par(mfrow=c(12)) dva grafa na eno stran

gt barplot(table(ego$E_SPOL)main=Strukturna stolpca)

gt pie(table(ego$E_SPOL)main=Strukturni krog)

gt par(mfrow=c(11))

Delamo lahko tudi dvodimenzionalne tabele in jih na enostaven nacin narisemo (slika12)

gt ego$IZOBlt-makeFactorLabels(ego$IZOB)

gt tbllt-table(spol=ego$E_SPOLizobrazba=ego$IZOB)

gt tbl

izobrazba

spol nedokoncana osnovna sola osnovna sola

moski 1 18

zenski 5 36

izobrazba

spol poklicna sola stiriletna srednja sola visja sola

moski 44 110 28

zenski 44 157 40

izobrazba

spol visoka sola magisterij doktorat

moski 55 3 8

zenski 75 5 2

gt plot(tbllas=1 main=)

4 11 Uvodni primer

Slika 12 Strukturni stolpci za povezanost dveh nominalnih spremenljivk

spol

izob

razb

a

moški ženskinedokončana osnovna šolaosnovna šola

poklicna šola

štiriletna srednja šola

višja šola

visoka šola

magisterijdoktorat

Sledi transformacija spremenljivk ndash rdquoobracanjerdquo lestvice in izracun Likertovih lestvicza ekstravertiranost in emocionalno stabilnost

gt seznam spremenljivk ki jim je treba obrniti lestvico

gt spremZaRekodlt-c(O4 O7 O9 O10 O11 O12

O13 O14 O15 O17 O18 O19 O20)

gt imena za nove spremenljivke

gt rekodiraneSpremlt-paste(spremZaRekodRsep=)

gt obracanje vrednosti

gt ego[rekodiraneSprem]lt- 6 - ego[spremZaRekod]

gt spremEkstlt-c(O1 O2 O5 O8 O9R O12R O14R

O15R O16 O18R)

gt spremEmoclt-c(O3 O4R O6 O7R O10R O11R

O13R O17R O19R O20R)

gt uvedemo novi spremenljivki

gt ego$ekst_sco lt- apply(ego[spremEkst]1sum)

gt ego$emoc_sco lt- apply(ego[spremEmoc]1sum)

1 poglavje ndash Uvod v R 5

Porazdelitev teh dveh spremenljivk je prikazana na sliki 13 Porazdelitev obehspremenljivk je priblizno normalna se pa nakazuje rahla asimetrija v levo

gt par(mfrow=c(12)) dva grafa na eno stran

gt hist(ego$ekst_sco xlab=ekstravertiranost main=

freq=FALSEylab=gostota)

gt dodamo normalno krivuljo

gt curve(dnorm(xmean=mean(ego$ekst_sconarm=TRUE)

sd=sd(ego$ekst_sconarm=TRUE))add=TRUExpd=NA)

gt raje z gostoto

gt hist(ego$emoc_sco xlab=emocionalna stabilnost main=

freq=FALSEylab=gostota)

gt dodamo normalno krivuljo

gt curve(dnorm(xmean=mean(ego$emoc_sconarm=TRUE)

sd=sd(ego$emoc_sconarm=TRUE))add=TRUExpd=NA)

gt xpd=NA uporabimo da se vidi tudi vrh krivulje

gt par(mfrow=c(11))

Slika 13 Histograma za ekstravertiranost in emocionalno stabilnost

ekstravertiranost

gost

ota

10 20 30 40 50

000

002

004

emocionalna stabilnost

gost

ota

10 20 30 40 50

000

001

002

003

004

Izracunajmo se opisne statistike po skupinah glede na spol

gt opisne statistike po skupinah

gt ekstravertiranost

gt by(ego$ekst_sco INDICES=ego$E_SPOL

6 11 Uvodni primer

FUN = function(x)c(povprecje=mean(xnarm=TRUE)

sd=sd(xnarm=TRUE)n=sum(isna(x))))

ego$E_SPOL moski

povprecje sd n

34159696 7711717 263000000

---------------------------------------------

ego$E_SPOL zenski

povprecje sd n

34659091 8031826 352000000

gt emocionalna stabilnost

gt by(ego$emoc_sco INDICES=ego$E_SPOL

FUN = function(x)c(povprecje=mean(xnarm=TRUE)

sd=sd(xnarm=TRUE)n=sum(isna(x))))

ego$E_SPOL moski

povprecje sd n

36306818 8223621 264000000

---------------------------------------------

ego$E_SPOL zenski

povprecje sd n

33986111 9184723 360000000

Pri ekstravertiranosti (prvi izpis) imajo zenske malce vecje povprecje vendar pa stasi povprecji precej podobni Pri emocionalni stabilnosti imajo moski vecje povprecjePri obeh spremenljivkah pa je variabilnost med zenskami vecja kot med moskimiV nadaljevanju za emocionalno stabilnost preverimo domnevo da sta aritmeticnisredini v obeh skupinah (pri obeh spolih) enaki

gt EMOCIONALNA STABILNOST

gt testiramo enakost varianc (vec razlicnih testov)

gt vartest(emoc_sco~E_SPOLdata=ego)

F test to compare two variances

data emoc_sco by E_SPOL

F = 080167 num df = 263 denom df = 359 p-value =

005669

alternative hypothesis true ratio of variances is not equal to 1

95 percent confidence interval

06411573 10063491

sample estimates

ratio of variances

0801667

gt ce zelimo klasicen t-test (predpostavka enakih varianc)

gt ttest(emoc_sco~E_SPOL data=egovarequal = TRUE)

1 poglavje ndash Uvod v R 7

Two Sample t-test

data emoc_sco by E_SPOL

t = 32579 df = 622 p-value = 0001184

alternative hypothesis true difference in means is not equal to 0

95 percent confidence interval

09218292 37195850

sample estimates

mean in group moski mean in group zenski

3630682 3398611

Ker je ena izmed predpostavk klasicnega t-testa tudi enakost varianc po skupinahsmo najprej preverili to domnevo Domneve pri 5-odstotnem tveganju ne moremozavrniti zato izvedemo klasicno razlicico t-testa Ta nam pove da lahko pri tveganjupriblizno 01 trdimo da so moski (v Ljubljani) bolj emocionalno stabilni kotzenske

Izracunajmo se korelacijo med ekstravertiranostjo in emocionalno stabilnostjo pre-verimo domnevo da je ta korelacija enaka 0 ter prikazimo odnos z njima na razsev-nem grafikonu Ta je prikazan na sliki 14 kjer smo z razlicnimi barvami in znakioznacili tudi spol

gt plot(jitter(emoc_sco)~jitter(ekst_sco)

pch=asnumeric(E_SPOL)col=asnumeric(E_SPOL)data=ego

ylab=emocionalna stabilnostxlab=ekstravertiranost)

gt jitter malce razprsi tocke da se ne prekrivajo

gt legend(x=30y=525xjust=05yjust=0legend=c(moski

zenski)pch=12col=12horiz = TRUEtitle=Spol

xpd=TRUE)

Izracunamo se korelacijo med novima spremenljivkama in preverimo domnevo daje korelacija enaka 0

gt Pearsonov koeficient korelacije

gt cor(ego[c(emoc_scoekst_sco)]method = pearson

use=pairwisecompleteobs)

emoc_sco ekst_sco

emoc_sco 10000000 02278617

ekst_sco 02278617 10000000

gt cortest(y=ego$emoc_scox=ego$ekst_sco)

Pearsons product-moment correlation

data ego$ekst_sco and ego$emoc_sco

t = 57703 df = 608 p-value = 1261e-08

8 11 Uvodni primer

Slika 14 Razsevni grafikon za ekstravertiranost in emocionalno stabilnost

10 20 30 40 50

1020

3040

50

ekstravertiranost

emoc

iona

lna

stab

ilnos

t

Spol

moški ženski

alternative hypothesis true correlation is not equal to 0

95 percent confidence interval

01512119 03017878

sample estimates

cor

02278617

gt pravzarav bi bil dovolj samo ta drugi ukaz

gt prednost prvega je da bi lahko izracunali tudi korelacijo

gt med vec spremenljivkami

Korelacija je sicer razmeroma sibka in pozitivna a mocno statisticno znacilna (p lt0001)2 V povprecju imajo osebe z visjo ekstravertiranostjo tudi visjo emocionalnostabilnost in obratno a ta povezanost je kot receno sibka

2 Tako nizka stopnja tveganja (rdquomocnardquo statisticna znacilnost) je predvsem posledica velikegavzorca

1 poglavje ndash Uvod v R 9

Nadaljujemo z multivariatno analizo ndash razvrscanjem v skupine Multivariatne ana-lize sicer v ucbeniku ne obravnavam3 V uvodni primer sem jo vkljucil da bi vsajnakazal da R omogoca se bistveno vec kot je predstavljeno v tem ucbeniku

Zaceli bomo z razvrscanje v skupine Najprej izlocimo enote z manjkajocimi vre-dnostmi nato izracunamo kvadrirano evklidsko razdaljo in jo uporabimo za hierar-hicno razvrscanje z Wardovo metodo Na podlagi dobljenega dendrograma na sliki15 ocenimo da v podatkih nastopata 2 skupini

gt Hierarhicno razvrscanje v skupine

gt odstranimo enote z manjkajocimi vrednostmi

gt emoclt-naomit(ego[spremEmoc])

gt standardiziramo podatke s funkcijo scale

gt Zemoclt-scale(emoc)

gt izracunamo evklidsko razdaljo na standardiziranih podatkih

gt dlt-dist(Zemoc)

gt za kvadrirano evklidsko razdaljo jo kvadriramo

gt d2lt-d^2

gt uporabimo Wardovo metodo

gt wardlt-hclust(d=d2method=wardD)

gt narisemo dendrogram

gt plot(ward)

gt abline(h=1500 col=red)

Ti dve skupini shranimo in na nestandardiziranih spremenljivkah izracunamo pov-precja po skupinah Povprecja so prikazana v tabeli 12

gt izberemo 2 skupini (in shranimo pripadnost)

gt wardCluK2lt-cutree(wardk=2)

gt stevilo enot po skupinah

gt table(wardCluK2)

wardCluK2

1 2

352 272

gt izracunamo povprecja po skupinah

gt aggregate(x=emoc by=list(wardCluK2) FUN=mean)

Group1 O3 O4R O6 O7R O10R

1 1 3022727 2428977 3892045 2650568 2448864

2 2 4000000 4485294 4621324 4139706 4117647

3 Obstaja veliko splosnih ucbenikov za multivariatno analizo (na primer Johnson in Wichern 2007Tabachnick in Fidell 2007 Jesenko in Jesenko 2007) uporaba multivariatne analize v R-ju pa jepredstavljena predvsem v Everitt (2005) Everitt in Hothorn (2011)

10 11 Uvodni primer

Slika 15 Dendrogram ndash Wardovo razvrscanje s kvadrirano evklidsko razdaljo napodlagi spremenljivk emocionalne stabilnosti

543

627

590

880

755

1010 43

279

810

15 754

905

892

999

13 842

454

480

476

909

706

746

776

793

894

579

854

491

559

984

533

716

525

977

536

481

873

441

783

884

1025

857

572

478

938

692

861

968

841

663

1012

927

900

790

722

687

531

563

805

777

903

895

542

682

761

887

464

492

465

988

530

571

958

562

736

983

473

631

726

752

908 2

615

956

1003

442

498

742

788 15 815

494

768

643

851

775

493

767

883 7

753

450

637

890

518

630

676

803

636

665

824

526

506

923

1027

639

975

845

1017 70

272

943

783

643

457

3 980

774

354

654

914 51

067

786

752

746

710 49

661

172

453

755

365

874

196

984

773

177

8 564

269

884

910

01 656

634

930

797

598

673

732

564

834

468

647

1002

1028

462

769

757

813

850

539

906

858

863

779

978

709

575

548

955

689

1013

1009 99

796

293

791

591

491

088

187

184

378

169

368

368

067

164

963

560

460

358

643

052

042

656

192

845

846

395

298

682

696

010

07 678 6

532

691

951

648

1032

727

902

932

581

852

904

699

965

874

998

982

684

972

650

891

948

552

594

1033 63

878

292

189

743

985

976

584

499

570

092

460

176

056

066

495

496

386

252

391

244

471

250

559

712 57

897

997

199

651

964

586

088

953

574

862

193

582

859

266

869

561

651

292

052

987

642

210

16 427

547

515

591

738

947

580

582

632

893

882

608

720

555

772

1030

557

654

740

538

655

925

870

934

607

808

756

1000 56

870

463

375

999

173

551

754

159

577

452

879

688

546

910

08 605

714

945

585

830

451

600

501

846 1

503

715

1019

589

879

1024

721

919

521

1022 71

193

698

550

487

557

076

642

174

479

169

450

280

189

845

276

469

097

098

042

558

778

579

573

396

160

281

451

196

610

04 475

747

435

822

449

474

990

792

438

701

644

869

551

820

878

703

718

868

810

939

457

943

460

576

544

812

508

827

610

669

967

922

1011 70

793

180

056

969

762

086

583

244

654

079

981

751

376

349

794

191

692

967

944

062

666

675

157

780

948

688

893

383

188

680

657

410

20 609

588

661

524

696

829

428 8

821 16

447

949

907

1018 67

064

666

073

094

447

772

870

577

194

653

471

759

383

562

981

687

2 390

1 461

848

997

489

982

595

975

087

791

194

210

21 472

993

479

653

973

786

819

856

839

1029 54

562

878

499

455

081

1 1110

2342

494

0 1770

886

645

943

362

564

168

866

745

386

444

396

446

661

473

751

691

767

471

351

483

378

948

771

950

099

268

591

883

882

310

06 509

484

651

495

981

606

675

499

483

749

420

624

802

583

662

686

987

456

596

436

762

773

840

855

565

848

913

926

976

558

853

950

471

710

681

780

490

739

455

989

461

584

725

522

612

448

507

1031

1026

770

1005 64

065

265

944

548

874

562

379

465

762

280

461

978

755

473

455

695

748

275

842

948

543

161

767

256

759

983

795

310

14

050

010

0015

0020

0025

00

Cluster Dendrogram

hclust ( wardD)d2

Hei

ght

O11R O13R O17R O19R O20R

1 2306818 3301136 2974432 3536932 2758523

2 3746324 3786765 4220588 4639706 4518382

Dobili smo eno skupino s srednjo in eno z visoko emocionalno stabilnostjo Posku-simo se ali lahko z metodo voditeljev dobimo boljsi rezultat Povprecja po skupinahna nestandardiziranih spremenljivkah so prikazana v tabeli 13 in na sliki 16

gt Razvrscanje v skupine z metodo voditeljev

gt kMeansR10lt-kmeans(Zemoc centers=2 itermax = 50 nstart = 10)

gt ponovimo kar 10-krat (da se izognemo lokalnim minimumom)

gt koncni voditelji na standardiziranih spremenljivkah

gt (te smo uporabili za razvrscanje)

gt kMeansR10$centers

O3 O4R O6 O7R O10R

1 02807587 05873913 02360699 05311423 06126683

1 poglavje ndash Uvod v R 11

Tabela 12 Hierarhicno razvrscanje - povprecja po skupinah

1 2O3 302 400

O4R 243 449O6 389 462

O7R 265 414O10R 245 412O11R 231 375O13R 330 379O17R 297 422O19R 354 464O20R 276 452

2 -03449321 -07216522 -02900287 -06525462 -07527067

O11R O13R O17R O19R O20R

1 03711498 02967399 05099416 04663205 05518454

2 -04559841 -03645662 -06264997 -05729081 -06779815

gt velikosti skupin

gt kMeansR10$size

[1] 344 280

gt vrednost Wardove kriterijske funkcije

gt kMeansR10$totwithinss

[1] 4585664

gt povprecja na nestandardiziranih spremenljivkah po skupinah

gt aggregate(x=emoc by=list(kMeansR10$cluster) FUN=mean)

Group1 O3 O4R O6 O7R O10R

1 1 3854651 4261628 4470930 4104651 4098837

2 2 2950000 2175000 3889286 2310714 2042857

O11R O13R O17R O19R O20R

1 3526163 3947674 4290698 4613372 4322674

2 2207143 2978571 2567857 3285714 2546429

gt graf

gt meanslt-aggregate(x=emocby=list(kMeansR10$cluster)FUN=mean)

gt matplot(t(means[-1])type=oxaxt=nylab=povprecje)

gt axis(side=1at=1dim(means[-1])[2]

labels=colnames(means)[-1]las=2)

Primerjajmo se obe razbitji (dobljeni z razlicnima metodama) Vrednost kriterijskefunkcije za razbitje izracunano z Wardovo metodo je 491353 za tisto z metodovoditeljev pa 458566 Razbitje dobljeno z metodo voditeljev je torej boljse Kako

12 11 Uvodni primer

Tabela 13 Metoda voditeljev ndash povprecja po skupinah

1 2O3 385 295

O4R 426 217O6 447 389

O7R 410 231O10R 410 204O11R 353 221O13R 395 298O17R 429 257O19R 461 329O20R 432 255

Slika 16 Graf povprecij po skupinah dobljenih z metodo voditeljev

1

1

1

1 1

1

1

1

1

1

20

25

30

35

40

45

povprečje

2

2

2

2

2

2

2

2

2

2

O3

O4R O6

O7R

O10R

O11R

O13R

O17R

O19R

O20R

se razporeditvi prekrivata je prikazano v tabeli 14 Prekrivanje je zelo veliko sajse razbitji pri vecini enot ujemata (ne ujemata se le pri manjsem stevilu enot)4

4 Vecina enot ki je v prvi skupini po Wardovi metodi je v drugi po metodi voditeljev medtemko je vecina tistih ki so z Wardovo metodo razporejene v drugo skupino z metodo voditeljev

1 poglavje ndash Uvod v R 13

gt Primerjava kriterijskih funkcij

gt wardKF(ZemocwardCluK2) Wardova metoda

[1] 4913525

gt kMeansR10$totwithinss metoda voditeljev

[1] 4585664

gt Primerjava koncnih razvrstitev po enotah

gt table(Wardova metoda=wardCluK2

Metoda voditeljev=kMeansR10$cluster)

Metoda voditeljev

Wardova metoda 1 2

1 85 267

2 259 13

Tabela 14 Primerjava koncnih razvrstitev po enotah

1 21 85 2672 259 13

Razbitje prikazano v prostoru prvih dveh glavnih komponent je prikazano na sliki17 Vidi se da prva glavna komponenta zelo dobro loci med skupinama dobljenimaz metodo voditeljev

gt metoda glavnih komponent

gt PClt-princomp(Zemoc)

gt plot(PC$scores[12]ylab=2 komponentaxlab=1 komponenta

pch=kMeansR10$clustercol=kMeansR10$cluster)

gt legend(x=mean(range(PC$scores[1])) y=max(PC$scores[2])+05

legend = c(1 skupina 2 skupina)

title=Metoda voditeljevxjust=05 yjust=0xpd=TRUE

pch=kMeansR10$clustercol=kMeansR10$clusterhoriz=TRUE)

S tem zakljucujemo uvodni primer V nadaljevanju sledi pregled osnovnih informacijo delu s programskim paketom R

razporejena v prvo skupino Pri teh enotah se razvrstitvi ujemata saj oznake skupin (prvadruga) pri razvrscanju v skupine niso pomembne

14 12 Osnovne informacije

Slika 17 Resitev razvrscanja v prostoru glavnih komponent

-2 0 2 4 6

-20

24

1 komponenta

2 k

ompo

nent

a

Metoda voditeljev

1 skupina 2 skupina

12 Osnovne informacije

121 Osnovne racunske operacije

Najprej spoznajmo osnovne racunske operacije V R-ju se zanje uporabljajo stan-dardni simboli Morda omenimo le da je ˆ(stresica) znak za potenco sqrt pafunkcija kvadratnega korena

gt 2+2

[1] 4

gt 6-2

[1] 4

gt 35

[1] 15

gt 25

[1] 04

gt 52 vrne ostanek pri deljenju

1 poglavje ndash Uvod v R 15

[1] 1

gt 5^2 potenca

[1] 25

gt sqrt(25) kvadratni koren preko funkcije

[1] 5

gt 25^(12) in drugace (bolj splosno)

[1] 5

gt zgoraj upostevamo da je koren le posebna razlicica

gt potence in sicer oblike 1(stopnja korena)

122 Spremenljivke

Vrednost shranimo tako da jo priredimo spremenljivki (objektu) Za prirejanje upo-rabimo znak rdquolt-rdquo(uporabljamo lahko tudi znak rdquo=rdquo a se njegova uporaba odsvetuje)Spremenljivkeobjekte nato uporabljamo namesto vrednosti ki so shranjene v njih

V imenih spremenljivk lahko nastopajo

bull crke (velike in male ndash velikost crk je pomembna)

bull stevilke

bull znak rdquo rdquo ndash do verzije 180 R-ja bil uporabljan kot znak za prirejanje na karje treba biti pozoren ce naletite na kaksno zelo staro kodo

bull znak rdquordquo ndash predvsem pri funkcijah ima znak rdquordquo v imenu funkcije tudi posebenpomen (uporablja se za prilagoditev funkcije za dolocen razred objekta) zatose uporaba rdquordquo v drugih primerih odsvetuje (ni pa prepovedana)

Ime spremenljivke se mora nujno zaceti s crko ali piko (rdquordquo) Spremenljivke ki sezacenjajo s piko (rdquordquo) so skrite se pravi da se ne izpisejo s funkcijo ls() (ta funkcijaizpise vse vidne objekte v okolju)

Primer uporabe spremenljivk

gt a lt- 5 priredimo vrednost spremenljivki

gt a izpisemo vrednost spremenljivke

[1] 5

gt a + 4

[1] 9

gt b lt- a2 nekaj izracunamo in rezultat priredimo

gt b

[1] 10

gt (c lt- a + b) Kaj se zgodi zaradi oklepajev

[1] 15

16 12 Osnovne informacije

Zaradi oklepajev se najprej izvede izraz znotraj oklepaja torej se rezultat sesteva-nja shrani v spremenljivko c Nato pa se se rdquopoklicerdquo oklepaj kar izpise vrednostspremenljivke c

123 Uporaba funkcij in pomoci

Funkcija ls je prva R-jeva funkcija ki smo jo spoznali Za pomoc o katerikoli R-jevifunkciji napisemo v R eno od spodnjih moznostiime_funkcije

help(ime_funkcije)

Za iskanje po pomoci lahko uporabitehelpsearch(iskalni pogoj)

iskalni pogoj

Dodatno pomoc pa najdete tudi v meniju Help

Za iskanje funkcije katere ime ustreza dolocenemu vzorcu pa uporabite funkcijoapropos

Vsaka spremenljivka je pravzaprav objekt (objekti so tudi funkcije) Objekte lahkobrisemo s funkcijo rm

Funkcijo klicemo tako da navedemo njeno ime in potem v oklepajih () njene ar-gumente locene z vejico Nujno moramo navesti vse argumente ki nimajo privzetevrednosti ostale pa le ce nam privzeta vrednost ne ustreza Tudi ce ne navedemonobenega argumenta moramo nujno navesti oklepaje () kamor v tem primeru nenapisemo nic Za primer glejte podpodpoglavje 135 (Matrika)

Pri navajanju argumentov imamo dve moznosti

bull Argumente navajamo v takem vrstnem redu kot so navedeni v funkciji Tanacin lahko uporabimo samo pri argumentih ki so na zacetku oziroma prikaterih smo navedli tudi vse argumente pred njimi

bull Argumente navajamo v poljubnem vrstnem redu skupaj z njihovimi imeni kotdvojice ime=vrednost

V vsakem primeru argumente locimo z vejicami Drugi nacin je dosti varnejsi Prvise ponavadi uporablja le za prvi argument ali pri zelo pogosto uporabljenih funkcijahceprav tudi takrat ni priporocljiv

gt ls() Klicemo funkcijo ls ne da bi navedli kak argument

[1] a b

[3] c colinEigen

1 poglavje ndash Uvod v R 17

[5] corTestDf d

[7] d2 ego

[9] ego1 emoc

[11] frekTab i

[13] insert kMeansR10

[15] makeFactorLabels means

[17] PC plotMeans

[19] printCorTestDf razsiriPodatke

[21] rekodiraneSprem spremEkst

[23] spremEmoc spremZaRekod

[25] ss ssAllVar

[27] tbl ward

[29] wardCluK2 wardKF

[31] Zemoc

gt Argumenti niso potrebni ker je pri vseh argumentih

gt privzeta vrednost ustrezna

gt Z njo izpisemo vse vidne objekte - med njimi je tudi a

gt

gt alt-1 kreiramo a

gt rm(a) izbrisemo a - argument funkcije je

gt Pozor argument funkcije je objekt (ne njegovo ime)

gt ls() a-ja ni vec med objekti

[1] b c

[3] colinEigen corTestDf

[5] d d2

[7] ego ego1

[9] emoc frekTab

[11] i insert

[13] kMeansR10 makeFactorLabels

[15] means PC

[17] plotMeans printCorTestDf

[19] razsiriPodatke rekodiraneSprem

[21] spremEkst spremEmoc

[23] spremZaRekod ss

[25] ssAllVar tbl

[27] ward wardCluK2

[29] wardKF Zemoc

gt ls pomoc za funkcijo ls

gt help(ls) enako

gt List Objects isce po pomoci

gt ls(allnames = TRUE) izpisemo vse objekte tudi skrite

[1] cairo Randomseed

[3] b c

18 12 Osnovne informacije

[5] colinEigen corTestDf

[7] d d2

[9] ego ego1

[11] emoc frekTab

[13] i insert

[15] kMeansR10 makeFactorLabels

[17] means PC

[19] plotMeans printCorTestDf

[21] razsiriPodatke rekodiraneSprem

[23] spremEkst spremEmoc

[25] spremZaRekod ss

[27] ssAllVar tbl

[29] ward wardCluK2

[31] wardKF Zemoc

gt torej tudi tiste ki se zacnejo s piko ()

gt

gt rm(list=ls()) izbrisemo vse vidne objekte

gt ta ukaz uporabljajte zelo pazljivo

gt

gt ustvarimo nekaj spremenljivk

gt alt-1blt-2aalt-3aaaabblt-4daalt-5

gt V R-ju lahko v eno vrstico napisemo tudi vec ukazov

gt ki jih locimo s podpicji

gt ponavadi to sicer ni priporocljivo

gt

gt ls(pattern = aa) vsi objekti ki imajo v imenu aa

[1] aa aaaabb daa

gt uporabimo lahko sicer tudi regularne izraze

gt za vec informacij vtipkajte regexp

124 Paketki

Vse funkcije (ki jih nismo napisali sami) in tudi veliko podatkov je v R-ju shra-njeno v paketkih Paketke nalozimo preko menija Packages|Load package alienostavneje s funkcijama library ali require Edina razlika med njima je v temda prva ob neuspehu (ce na primer paketek ni namescen oziroma instaliran) javinapako druga pa vrednost FALSE Da pa paketke lahko nalozimo morajo biti prejnamesceni

Na voljo je veliko paketkov 30 osnovnih paketkov je vkljucenih ze v osnovno distri-bucijo R-ja (in jih imate tako po namestitvi R-ja ze namescene) veliko vec (trenutno8551) pa jih je na voljo na CRAN-u (Comprehensive R Archive Network)

1 poglavje ndash Uvod v R 19

Slika 18 Stirje obrazi

1 2

3 4

Paketke najlazje namestimo neposredno iz CRAN-a in sicer preko menija Packa-ges|Install package(s) ali preko funkcije installpackages

gt installpackages(TeachingDemos)

package TeachingDemos successfully unpacked and MD5 sums checked

The downloaded binary packages are in

CUsersAlesAppDataLocalTempRtmpcFnMNjdownloaded_packages

gt namestimo paketek s CRAN-a

gt library(TeachingDemos) nalozimo paketek

gt funkcija faces ni na voljo ce prej ne nalozimo paketka

gt faces() uporabimo funkcijo iz paketka - narisemo 4 obraze

Rezultat funkcije je na sliki 18

125 Drugi osnovni podatki

Prostor kamor v R-ju pisemo ukaze se imenuje ukazna vrstica oziroma konzolaVanjo lahko ukaze tipkamo lepimo ali posljemo iz urejevalnika besedil (ce le-ta toomogoca)

Zelo prirocno je tudi pomikanje po ze uporabljenih ukazih (za ponavljanje ali manjsespremembe) s smernimi tipkami za gor uarr in dol darr Po posameznem ukazu pa sepremikamo s smernimi tipkami za levo larr in desno rarr

20 13 Podatkovne strukture

R zapremo preko menija File|Exit ali s funkcijama q oziroma quit (funkciji staidenticni) Ko ga ugasnemo nas R tudi vprasa (ce nismo tega rdquopovedalirdquo ze zargumenti prej omenjenih funkcij) ali zelimo shraniti delovno okolje (workspace) inzgodovino

Stanje delovnega okolja (workspace) lahko kadarkoli shranimo s funkcijo saveimageali preko menija File|Save Workspace zgodovino ukazov pa s savehistory ozi-roma preko menija File|Save History Vse datoteke se (ce ne izberemo drugace)shranijo v delovno mapo (working directory) Delovno mapo lahko spremenimopreko funkcije setwd ali preko menija File|Change dir Nacin spreminjanjamape preko menija lahko uporabimo tudi le za to da najdemo trenutno delovnomapo lahko pa to ugotovimo tudi s funkcijo getwd

Shranjeno okolje lahko potem nalozimo na vec nacinov Ce nismo spreminjali imen(privzeto ime je rdquoRDatardquo za delovno okolje in rdquoRHistoryrdquo za zgodovino) potemse oboje samodejno nalozi ce bodisi zazenemo R v isti mapi bodisi zazenemo R zdvoklikom na shranjeno okolje rdquoRDatardquo Delovno okolje lahko nalozimo tudi takoda datoteko rdquoprenesemordquo v R-jevo okno s pomocjo funkcije loadimage ali prekomenija File|Load Workspace Podobno velja tudi za zgodovino

Zgodovino lahko kadarkoli izpisemo tudi s funkcijo history

R kot decimalno locilo uporaba piko () na primer 12

zapisemo kot 05 Pri ukazih setega ne da spreminjati (kar je nujno za konsistentno delovanje kateregakoli program-skega jezika) pri izpisih pa to lahko nastavimo preko funkcije optios Ce zelimokot decimalno locilo nastaviti vejico () torej decimalno locilo ki ga uporabljamo vslovenscini uporabimo ukaz options(OutDec = )

V tem ucbeniku uporabljam kot decimalno locilo piko () kjub temu da se zavedamda je to v nasprotju s slovenskim pravopisom Razloga za to sta dva oba pa izhajataiz narave ucbenika torej ucenje R-ja Prvi je v tem da menim da bi uporaba enegadecimalnega locila (pike) pri ukazih in drugega (vejice) pri izpisih lahko zmedlabralca Drugi je v tem da zelim da lahko uporabniki z uporabo ukazov iz ucbenikadobijo enak izpis kot ga podajam v ucbeniku Zato raje (kjer ni potrebno) nespreminjam zacetnih nastavitev S pomocjo funkcije options je mogoce nastavljatitudi veliko drugih nastavitev na primer sirino izpisa (tekstovnega) nacin izpisastevil (stevilo decimalnih mest znanstven ali obicajen zapis ) Za pregled in opisnastavitev ki jih je mogoce spreminjati uporabite options

13 Podatkovne strukture

131 Osnovni podatkovni tipi

R pozna naslednje osnovne podatkovne tipe

1 poglavje ndash Uvod v R 21

logical logicni vektor ndash vrednosti TRUE in FALSE

integer cela stevila

numeric realna stevila ndash to je privzeta vrednost za vsa stevila v R-ju tudi cela naprimer 2

complex kompleksna stevila

character znaki (poljubno stevilo) ndash vedno jih moramo pisati v narekovajih saj sedrugace upostevajo kot imena spremenljivk ali drugih objektov (funkcij)

raw shranjuje surove bajte (ang byte) ndash tega ne rabite

Podatkovne tipe spreminjamo s funkcijami asnekaj kjer je rdquonekajrdquo ime tipa Sfunkcijo isnekaj preverimo ali je nek podatek tipa rdquonekajrdquo (torej nekega doloce-nega tipa) Kaksnega tipa je nek podatek (objekt) pa preverimo s funkcijo mode

Obstajajo pa se sledece posebne vrednosti

NA Not available ndash ni na voljo oziroma R-jeva koda za manjkajoco vrednost

NaN Not a Number ndash ni stevilo Relevantno samo pri stevilskih tipih uporablja sekadar rezultat nekega izracuna ni definiran na primer 00

NULL Absoluten nic v R-ju prazen element

Pri prvih dveh (NA NaN) je rezultat izracuna kjer nastopa katera od teh vrednostiprakticno vedno kar ta vrednost tretji pa ima podobno vlogo kot prazen element

gt 4 realno stevilo

[1] 4

gt isnumeric(4)

[1] TRUE

gt isinteger(4) ni celo stevilo

[1] FALSE

gt a lt- asinteger(4) smo naredili celo stevilo

gt isinteger(a)

[1] TRUE

gt alt-to je znakovna spremenljivka

gt alt-4 se vedno znakovna spremenljivka

gt a cetudi je znak stevilka - ne moremo racunati

[1] 4

gt asnumeric(a)+3 po spremembi lahko racunamo

[1] 7

gt 00

[1] NaN

gt 1 + NA

[1] NA

Pri realnih podatkih prav pridejo spodaj prikazane funkcije za zaokrozevanje

22 13 Podatkovne strukture

gt floor(26) navzdol

[1] 2

gt ceiling(21) navzgor

[1] 3

gt round(21) na najblizjo vrednost

[1] 2

gt round(26)

[1] 3

gt round(15) pozor - uporablja standard IEC 60559

[1] 2

gt vrednosti na meji (5 na koncu) se zaokrozujejo na najblizje

gt sodo stevilo

gt round(25)

[1] 2

gt round(pidigits=3) lahko nastavimo tudi stevilo decimalk

[1] 3142

132 Vektor

Vektor je najosnovnejsa podatkovna struktura Vsebuje lahko samo podatke enegatipa Ce zelimo ustvariti vektor iz podatkov razlicnih tipov jih R sam pretvori vtip ki je najsplosnejsi (ce ns primer zdruzujemo stevilke in znake v tip rdquocharacterrdquo)Vektor ustvarimo tako da zdruzimo (combine) vrednosti s pomocjo funkcije c

R (oziroma njegov predhodnik S) je vektorski jezik kar pomeni da se ce ne izberemole posameznega dela operacije izvajajo na vseh elementih vektorja

Opozorilo

R dovoli tudi mnozenje dveh vektorjev razlicnih dolzin V primeru da dolzinadaljsega ni mnogokratnik dolzine krajsega izpise opozorilo sicer pa le izracunarezultat

Elemente vektorja izbiramo tako da njihove indekse navedemo v oglatih oklepajih [

] (glejte primer spodaj) Izbrane dele lahko tudi spreminjamo Negativna vrednostv oglatih oklepajih pomeni da izberemo vse razen tistega kar sledi rdquo-rdquo

gt alt-c(467312) ustvarimo vektor

gt a izpisemo vektor

[1] 4 6 7 3 1 2

gt a + 3

[1] 7 9 10 6 4 5

1 poglavje ndash Uvod v R 23

gt vsem elementom vektorja a pristejemo 3 (a se seveda ne

gt spremeni)

gt

gt blt-c(123456)

gt a+b elementi se sestejejo

[1] 5 8 10 7 6 8

gt ab oziroma zmnozijo

[1] 4 12 21 12 5 12

gt blt- c(12)

gt a+b b se 3x ponovi da doseze dolzino a-ja

[1] 5 8 8 5 2 4

gt pri tem R ne izpise kakrsnegakoli opozorila

gt ab

[1] 4 12 7 6 1 4

gt length(a) izpisemo dolzino vektorja a

[1] 6

gt length(b)

[1] 2

gt length(ab) dolzina rezultata je enaka dolzini daljsega

[1] 6

gt blt-c(1234)

gt ab b se ponovi 15-krat Izpise se opozorilo

[1] 4 12 21 12 1 4

gt a[3] izberemo 3 element vektorja a (stetje se zacne z 1)

[1] 7

gt clt-c(36d) ce zdruzimo razlicne elemente

gt c dobimo najsplosnejsi tip (znakovni)

[1] 3 6 d

gt c[2]lt-bla bla spremenimo 2 element v vektorju b

gt c

[1] 3 bla bla d

gt c[-2] izpisemo vse elemente razen drugega

[1] 3 d

Vektorzaporedje celih stevil od a do b tvorimo tako da napisemo ab kjer a

in b zamenjamo z ustreznima steviloma oziroma kjer sta to dve spremenljivki zustreznima vrednostma To lahko s pridom uporabljamo tudi pri izbiranju delavektorja saj lahko izberemo tudi vec kot en element vektorja tako da kot indekspodamo vektor stevil

Namesto indeksov lahko uporabimo tudi enako (kot originalni) dolg logicni vektor(ta ima samo vrednosti TRUE in FALSE) Izbrani so elementi kjer je vrednost TRUE

24 13 Podatkovne strukture

gt 15 vektor od 1 do 5

[1] 1 2 3 4 5

gt alt- -1010 kreiramo vektor od -10 do 10 in ga shranimo v a

gt a izpisemo vektor

[1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3

[15] 4 5 6 7 8 9 10

gt a[510] izpisemo stevilke na mestih od 5 do 10 (vkljucno)

[1] -6 -5 -4 -3 -2 -1

gt a[510][13]

[1] -6 -5 -4

gt izmed stevilk na mestih od 5 do 10 izberemo prve 3

gt

gt agt0 dobimo logicni vektor ki ga lahko uporabimo za izbor

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

[10] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

[19] TRUE TRUE TRUE

gt a[agt0] izberemo samo pozitivna stevila

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

gt a[c(11121)] izberemo stevilke na mestih 1 11 in 21

[1] -10 0 10

gt a[-c(11121)]

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

gt izberemo vse razen tistih na mestih 1 11 in 21

gt a[-(15)] izberemo vse razen tistih na mestih od 1 do 5

[1] -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10

Opozorilo

Ce pri zadnjem izrazu spustimo oklepaj to ni veljavno ker imajo potem indeksivrednosti od minus1 do 5 kar pa ni dovoljeno Pri indeksih ne smemo mesatinegativnih in pozitivnih stevil

Splosnejsa zaporedja dobimo s funkcijo seq Pri pisanju zank je se posebej uporabnafunkcija seq_len ki ima samo en argument in sicer dolzino zaporedja Njenaprednost je v tem da ce je dolzina 0 dejansko ustvari vektor dolzine 0

gt seq(from=1 to = 11 by= 2)

[1] 1 3 5 7 9 11

gt seq(from=1 to = 12 by= 2)

[1] 1 3 5 7 9 11

gt enako ker pri koraku 2 stevilo 12 tako ali tako izpustimo

gt seq(from=10 to = 0 by= -1) v obratnem vrstnem redu

1 poglavje ndash Uvod v R 25

[1] 10 9 8 7 6 5 4 3 2 1 0

gt nlt-5

gt 1n

[1] 1 2 3 4 5

gt seq_len(n) enako kot zgoraj

[1] 1 2 3 4 5

gt nlt-0

gt 1n morda ne ravno tisto kar smo pricakovali

[1] 1 0

gt seq_len(n) vektor dolzine 0 - bistveno bolj varno pri zankah

integer(0)

gt seq(lengthout=n) enako kot prej

integer(0)

Elementom vektorja (in tudi drugih struktur ki jih bomo spoznali kasneje) lahkodamo tudi imena To lahko storimo ko jih ustvarimo ali kasneje s funkcijo namesS to funkcijo jih tudi priklicemo Imena lahko uporabimo namesto indeksov zadostopanje do posameznih elementov

gt alt-13 ustvarimo vektor brez imen (za elemente)

gt a elementi nimajo imen

[1] 1 2 3

gt names(a)lt-c(abc)

gt a cleni imajo sedaj imena ki se izpisejo nad njimi

a b c

1 2 3

gt a[b] izberemo 2 element - b

b

2

gt ce zelimo izbrati vec kot en element moramo uporabiti

gt vektor imen

gt a[c(ac)]

a c

1 3

gt names(a)lt-NULL imena izbrisemo

gt blt-c(1a=1b=23 element=3) imena podamo ob nastanku

gt ce imamo v imenih presledke ali ce se zacnejo s stevilko

gt jih moramo dati v narekovaje sicer ni nujno

gt b

1a b 3 element

1 2 3

gt names(b)[2]lt-bbb spremenimo ime 2 clena

gt b

26 13 Podatkovne strukture

1a bbb 3 element

1 2 3

133 Nominalne in ordinalne spremenljivke

Ceprav bi nominalne spremenljivke lahko predstavili z znakovno spremenljivko (cha-racter) je priporocljivo da za njih uporabljamo tip factor Tak pristop je varnejsi(definiramo lahko kategorije) in ucinkovitejsi Ustvarimo jih s funkcijo factor ozi-roma spremenimo iz znakovnih spremenljivk s funkcijo asfactor

Zelo pomembni argumenti funkcije factor so

levels Vrednosti ki jih spremenljivka lahko zavzame Vrednosti morajo torej bititake kot vrednosti originalne spremenljivke Ce je argument podan se vse vre-dnosti spremenljivke ki niso tu navedene izlocijo Ce je vrednost argumentaordered=TRUE argument poda tudi vrstni red vrednosti Privzeta vrednostso vse vrednosti spremenljivke v takem vrstnem redu kot se prvic pojavijo(kar je zelo pomembno za pravilno uporabo argumenta labels)

labels Imena za posamezne vrednosti Prvo ime je ime vrednosti ki je kot prvapodana v levels drugo ime za vrednost ki je podana kot druga v levels

Uporaba labels brez levels ni priporocljiva Ce pa ze uporabljamolabels brez levels se moramo zavedati kaksna je privzeta vrednost zalevels (glejte zgoraj)

ordered Ta pove ali naj bo faktor rdquourejenrdquo torej ordinalna spremenljivka

Opozorilo

Pravilen tip spremenljivke je pri R-ju zelo pomemben ker se uposteva tudi pristatisticnih modelih Pri linearni regresiji na primer R iz spremenljivke tipafactor (nominalne) samodejno tvori umetne spremenljivke

Nekaj primerov

gt factor(rep(13times=3))

[1] 1 2 3 1 2 3 1 2 3

Levels 1 2 3

gt nominalna spremenljivka z vrednostmi 1 2 in 3

gt factor(rep(13times=3)levels=13 labels=c(abc))

[1] a b c a b c a b c

Levels a b c

gt nominalna spremenljivka z vrednostmi a b in c

gt factor(rep(13times=3)levels=c(abc))

1 poglavje ndash Uvod v R 27

[1] ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt

Levels a b c

gt vse vrednosti so NA - ce je levels specificiran

gt se kot veljavne vrednosti v originalni spremenljivki

gt upostevajo samo vrednosti v levels

gt factor(rep(13times=3)labels=c(abc))

[1] a b c a b c a b c

Levels a b c

gt sicer kot prej z levels a bolj nevarno

gt npr ce bi bila prva vrednost 3 bi a predstavljal 3

gt factor(rep(13times=3)labels=c(abc)levels=c(312))

[1] b c a b c a b c a

Levels a b c

gt ker je podal levels v drugacnem vrstnem redu

gt sedaj a predstavlja 3

gt

gt factor(rep(13times=3)ordered=TRUE)

[1] 1 2 3 1 2 3 1 2 3

Levels 1 lt 2 lt 3

gt ordinalna spremenljivka

gt factor(rep(13times=3)ordered=TRUElevels=c(312))

[1] 1 2 3 1 2 3 1 2 3

Levels 3 lt 1 lt 2

gt drugacen vrstni red kategorij

gt factor(rep(13times=3)ordered=TRUElevels=c(312)

labels=c(cab))

[1] a b c a b c a b c

Levels c lt a lt b

gt drugacen vrstni red kategorij z imeni

gt imena smo nastavili tako da a predstavlja 1

gt f1lt-factor(rep(13times=3)levels=13labels=c(abc))

gt factor(f1ordered=TRUElevels=c(cab))

[1] a b c a b c a b c

Levels c lt a lt b

gt v 2 korakih a morda bolj razumljivo

134 Seznam

Seznam (ang oziroma v R-ju list) je posebna oblika vektorja kjer so elementilahko karkoli (katerikoli elementi se pravi posamezna stevila vektorji matrike po-datkovni okvirji seznami celo funkcije)

28 13 Podatkovne strukture

Ustvarimo jih s funkcijo list ali tako da s funkcijo c skupaj zlepimo sezname Doposameznih elementov dostopamo tako da njihove indekse ali imena navedemo meddvojne oglate oklepaje ndash [[]] Ce navedemo imena ali indekse v enojnih oglatihoklepajih [] potem je rezultat nov seznam z izbranimi elementi (tudi ce izberemosamo enega)

Ce imajo elementi imena lahko do njih dostopamo tudi tako da za imenom seznamanapisemo znak za dolar $ ki mu sledi ime elementa

Na seznamih sta zelo uporabni sestrski funkciji lapply in sapply Obe funkcijiposkusata neko funkcijo (ki jo podamo kot argument) uporabiti na vseh elementihseznama Razlika je v tem da poskusa sapply poenostaviti rezultat (v vektor alimatriko) lapply pa vedno vrne seznam

gt llt-list(a=c(upsabc)b=15c=list(aa=abb=57)d=list)

gt zdruzili smo razlicne elemente - zadnji je funkcija list

gt

gt l[[a]] izberemo 1 element - vektor

[1] ups abc

gt l[[1]] enako

[1] ups abc

gt l[a] naredimo seznam ki ima samo 1 element starega

$a

[1] ups abc

gt l[1] enako

$a

[1] ups abc

gt l[13] izberemo prve 3 elemente

$a

[1] ups abc

$b

[1] 1 2 3 4 5

$c

$c$aa

[1] a

$c$bb

[1] 5 6 7

gt l[[13]] ne deluje - oziroma ima drugacno funkcijo

gt

gt

gt l[[c]][[2]][1]

1 poglavje ndash Uvod v R 29

[1] 5

gt izbrali smo 3 element (c) osnovnega seznama

gt ki pa je tudi seznam

gt v tem seznamu smo izbrali 2 element ki je vektor

gt v vektorju smo izbrali 1 element (stevilko 5)

gt l[[3]][[2]][1] enako

[1] 5

gt l[[3]][[2]] izberemo 2 element v 3 elementu

[1] 5 6 7

gt l[[32]] tokrat deluje in je enako kot zgoraj

[1] 5 6 7

gt mocno odsvetujem

gt

gt l$a ce imamo imena lahko uporabimo tudi ta nacin

[1] ups abc

gt l$c$aa deluje tudi v vec stopnjah

[1] a

gt xlt-l$d(346) ce je element seznama funkcija jo

gt lahko tudi uporabimo

gt x

[[1]]

[1] 3

[[2]]

[1] 4

[[3]]

[1] 6

gt l da se spomnimo kaj je l

$a

[1] ups abc

$b

[1] 1 2 3 4 5

$c

$c$aa

[1] a

$c$bb

[1] 5 6 7

30 13 Podatkovne strukture

$d

function () Primitive(list)

gt lapply(lFUN=length) izracunamo dolzino vseh elementov

$a

[1] 2

$b

[1] 5

$c

[1] 2

$d

[1] 1

gt zdaj smo dobili seznam

gt

gt sapply(lFUN=length) sapply vrne vektor

a b c d

2 5 2 1

gt to je mogoce ker so bili vsi elementi posamezna stevila

gt paziti je treba da je funkcija taka da se jo da

gt uporabiti na vseh elementih

135 Matrika

Matrika je pravzaprav vektor (katerekoli oblike razen seznama) ki ima dve dimenziji(stolpce in vrstice) Do elementov dostopamo tako da v oglatih oklepajih navedemoindekse ali imena celic v obeh dimenzijah (locene z vejicami ndash [ab]) ki jih zelimoizbrati Ce zelimo v kateri dimenziji izbrati vse celice lahko indekseimena za todimenzijo izpustimo (vseeno moramo pisati vejico)

Ustvarimo jo s funkcijo matrix Spodaj je prikazan klic funkcije in v njem tudi vsiargumenti Vrednosti ki so tu pripisane argumentom so privzete vrednosti Vec opomenu argumentov lahko preberemo v pomocimatrix(data = NA nrow = 1 ncol = 1 byrow = FALSE dimnames = NULL)

Matriko lahko ustvarimo tudi tako da vektorje rdquozlepimordquoskupaj kot stolpce (funkcijacbind) ali vrstice (funkcija rbind)

gt matrix dostop do pomoci za razlago argumentov

gt Alt-matrix(data=124nrow=6) ustvarimo matriko s 6 vrsticami

gt in 4 stolpci -gt ker je 24

gt elementov v data

1 poglavje ndash Uvod v R 31

gt

gt A ustvarjena matrika

[1] [2] [3] [4]

[1] 1 7 13 19

[2] 2 8 14 20

[3] 3 9 15 21

[4] 4 10 16 22

[5] 5 11 17 23

[6] 6 12 18 24

gt A[32] izberemo 2 element v 3 vrstici

[1] 9

gt oziroma vse elemente ki so v 3 vrstici in 2 stolpcu

gt

gt A[3] izberemo 3 vrstico

[1] 3 9 15 21

gt A[2] izberemo 2 stolpec

[1] 7 8 9 10 11 12

gt A[13] izberemo prve 3 vrstice

[1] [2] [3] [4]

[1] 1 7 13 19

[2] 2 8 14 20

[3] 3 9 15 21

gt izberemo elemente ki so v 2 ali 3 vrstici in

gt v 1 ali 4 stolpcu

gt A[c(24)c(14)]

[1] [2]

[1] 2 20

[2] 4 22

gt alt-14

gt blt-25

gt Blt-cbind(ab) matrika z dvema stolpcema

gt B

a b

[1] 1 2

[2] 2 3

[3] 3 4

[4] 4 5

gt Clt-rbind(ab) matrika z dvema vrsticama

gt C

[1] [2] [3] [4]

a 1 2 3 4

b 2 3 4 5

32 13 Podatkovne strukture

R vsebuje tudi jezik za matricno racunanje Pri tem sta najpomembnejsa operatorza matricno mnozenje in funkcija solve ki omogoca izracun inverzne matrikeNekaj primerov

gt Alt-matrix(data=124nrow=6)

gt klasicno se operacije pri matriki izvajajo tako kot pri

gt vektorjih torej po elementih

gt A+2

[1] [2] [3] [4]

[1] 3 9 15 21

[2] 4 10 16 22

[3] 5 11 17 23

[4] 6 12 18 24

[5] 7 13 19 25

[6] 8 14 20 26

gt A2

[1] [2] [3] [4]

[1] 05 35 65 95

[2] 10 40 70 100

[3] 15 45 75 105

[4] 20 50 80 110

[5] 25 55 85 115

[6] 30 60 90 120

gt A2

[1] [2] [3] [4]

[1] 2 14 26 38

[2] 4 16 28 40

[3] 6 18 30 42

[4] 8 20 32 44

[5] 10 22 34 46

[6] 12 24 36 48

gt A+A

[1] [2] [3] [4]

[1] 2 14 26 38

[2] 4 16 28 40

[3] 6 18 30 42

[4] 8 20 32 44

[5] 10 22 34 46

[6] 12 24 36 48

gt AA tudi ce je operacija mnozenje

[1] [2] [3] [4]

[1] 1 49 169 361

[2] 4 64 196 400

1 poglavje ndash Uvod v R 33

[3] 9 81 225 441

[4] 16 100 256 484

[5] 25 121 289 529

[6] 36 144 324 576

gt to ni matricno mnozenje

gt

gt A(14)

[1] [2] [3] [4]

[1] 1 21 13 57

[2] 4 32 28 80

[3] 9 9 45 21

[4] 16 20 64 44

[5] 5 33 17 69

[6] 12 48 36 96

gt tako kot pri racunanju z vektorji se krajsi reciklira

gt torej se tolikokrat ponovi da doseze dolzino daljsega

gt

gt t(A) transponiramo matriko - zamenjamo vrstice in stolpce

[1] [2] [3] [4] [5] [6]

[1] 1 2 3 4 5 6

[2] 7 8 9 10 11 12

[3] 13 14 15 16 17 18

[4] 19 20 21 22 23 24

gt dim(A) ugotovimo dimenziji matrike

[1] 6 4

gt dim(t(A)) pri transponirani matriki sta ravno obrnjeni

[1] 4 6

gt A t(A) matricno mnozenje

[1] [2] [3] [4] [5] [6]

[1] 580 620 660 700 740 780

[2] 620 664 708 752 796 840

[3] 660 708 756 804 852 900

[4] 700 752 804 856 908 960

[5] 740 796 852 908 964 1020

[6] 780 840 900 960 1020 1080

gt A (14) matricno mnozenje z vektorjem

[1]

[1] 130

[2] 140

[3] 150

[4] 160

[5] 170

[6] 180

34 13 Podatkovne strukture

gt R samodejno poskrbi da je vektor ustrezen

gt (stolpicni ali vrsticni)

gt bolje je sicer ce za to poskrbimo sami

gt alt-matrix(14ncol=1) stolpicni vektor

gt A a

[1]

[1] 130

[2] 140

[3] 150

[4] 160

[5] 170

[6] 180

gt izracunamo lahko tudi inverz matrike

gt seveda samo kvadratne in take z nenicelno determinanto

gt AA lt- A t(A) naredimo kvadratno matriko

gt det(AA) izracunamo determinanto

[1] 5494284e-59

gt determinanta je prakticno nic zato te matrike ne moremo

gt uporabiti

gt

gt Blt-matrix(c(163737379)ncol=3)

gt naredimo kvadratno matriko katere determinanta ni 0

gt det(B) izracunamo determinanto

[1] -154

gt invBlt-solve(B) izracunamo inverz matrike B

gt shranili smo ga v invB

gt invB izpisemo

[1] [2] [3]

[1] 01428571 2727273e-01 -025974026

[2] 02142857 4205453e-18 -007142857

[3] -02142857 -9090909e-02 025324675

gt B invB dokaz da smo izracunali inverz

[1] [2] [3]

[1] 1000000e+00 8326673e-17 0

[2] -3053113e-16 1000000e+00 0

[3] -1387779e-16 1387779e-16 1

gt rezultat je enotska matrika

gt na diagonali so samo enice drugod povsod nicle

gt nekatere vrednosti niso 0 ampak skoraj 0 zaradi

gt nenatancnosti izracuna -gt nekaterih vrednosti v racunalniku

gt ne moremo predstaviti natancno

gt zapsmall(BinvB)

1 poglavje ndash Uvod v R 35

[1] [2] [3]

[1] 1 0 0

[2] 0 1 0

[3] 0 0 1

gt funkcija zapsmall vrednosti ki so skoraj 0 spremeni v 0

Podobno kot lahko na seznamih uporabljamo funkciji lapply in sapply lahko namatrikah uporabimo funkcijo apply Tej moramo poleg matrike in funkcije podatitudi dimenzijo (vrstice ali stolpce) na kateri zelimo funkcijo uporabiti

gt Alt-matrix(data=124nrow=6)

gt apply(X=AMARGIN=1FUN=sum) vsota po vrsticah

[1] 40 44 48 52 56 60

gt apply(X=AMARGIN=2FUN=sum) vsota po stolpcih

[1] 21 57 93 129

136 Polje ndash Array

Nadgradnja matrike je polje (ang array) Od matrike se razlikuje po tem daima poljubno stevilo dimenzij Za vec poglejte array Tudi na poljih je mogoceuporabiti funkcijo apply

137 Podatkovni okvir ndash Data frame

Podatkovni okvir je podatkovna struktura ki je obicajno najprimernejsa za shra-njevanje podatkovij Ima podobno vlogo in strukturo kot podatkovne datoteke priostalih statisticnih programih na primer SPSS-u V vrsticah so enote v stolpcih paspremenljivke oziroma rdquovektorjirdquo

Podatkovni okvirji imajo tako nekatere lastnosti matrik pa tudi nekatere lastnostiseznamov Po eni strani so podobni matrikam vendar pa lahko pri podatkovnihokvirjih stolpci hranijo razlicne tipe podatkov Se bolj so podobni seznamom sajpravzaprav so seznami kjer so vsi elementi vektorji enake dolzine Se pravi soseznami kjer je vsak element (v statisticnem smislu) neka spremenljivka

Tudi do elementov lahko dostopamo tako kot pri seznamih ali tako kot pri matrikah

Podatkovni okvir ustvarimo s funkcijo dataframe ali tako da vanj preoblikujemomatriko ali seznam (ki mora biti ustrezne oblike) s funkcijo asdataframe

gt ustvarimo nekaj vektorjev

gt generiramo vrednosti slucajno iz normalne porazdelitve

36 13 Podatkovne strukture

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt ustvarimo slucajen vektor z nestevilskimi elementi

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt izberemo vzorec s ponavljanjem velikosti 10

gt podatkilt-dataframe(x1x2x3)

gt podatki

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 c

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 10202235 a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt names(podatki) imena kot pri seznamu

[1] x1 x2 x3

gt dim(podatki) preverimo dimenzije kot pri matriki

[1] 10 3

gt colnames(podatki) preverimo imena stolpcev kot pri matriki

[1] x1 x2 x3

gt dimnames(podatki) kot pri matriki - imena stolpcev in vrstic

[[1]]

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

[[2]]

[1] x1 x2 x3

gt izbiramo stolpce

gt podatki[x1] kot pri matriki (stolpci so 2 dimenzija)

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt podatki$x1 kot pri seznamu

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt podatki[x1]

x1

1 1772191

2 1685902

3 1820382

4 1800462

1 poglavje ndash Uvod v R 37

5 1788490

6 1768851

7 1741618

8 1835689

9 1724907

10 1726332

gt kot pri seznamu - to je se vedno podatkovni okvir

gt

gt podatki[c(x1x3)]

x1 x3

1 1772191 c

2 1685902 c

3 1820382 b

4 1800462 b

5 1788490 b

6 1768851 a

7 1741618 b

8 1835689 c

9 1724907 c

10 1726332 a

gt kot pri seznamu - to je se vedno podatkovni okvir

gt podatki[[x1]] kot pri seznamu - to je zdaj vektor

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt vektor dobimo (eno samo spremenljivko ker smo uporabili

gt dvojne oglate oklepaje)

gt

gt vrstice

gt podatki[13] kot pri matriki (vrstice so 2 dimenzija)

x1 x2 x3

1 1772191 1169315 c

2 1685902 1009201 c

3 1820382 1206257 b

gt elemente

gt podatki[2x1] kot pri matriki

[1] 1685902

gt tako lahko tudi vec naenkrat

gt podatki[24c(x1x3)] kot pri matriki

x1 x3

2 1685902 c

3 1820382 b

4 1800462 b

gt podatki$x1[13] kot pri seznamu - samo v enem stolpcu naenkrat

38 14 Funkcije in programiranje

[1] 1772191 1685902 1820382

gt podatki[[x1]][13] enako na drug nacin

[1] 1772191 1685902 1820382

138 Vaje

Vaja 1

Recimo da imate sledece vrednosti 10 23 43 43 32 12

Izracunajte povprecje varianco in standardni odklon Za izracun vsote lahko upo-rabite funkcijo sum naprednejsih vgrajenih funkcij pa ne uporabljajte (za variancostandardni odklon )

Vaja 2

Recimo da imamo tri spremenljivke ndash y x1 in x2 ki imajo sledece vrednostiy 10 23 43 43 32 12x1 15 23 54 45 42 10x2 210 183 186 164 175 200

Recimo da je y odvisna spremenljivka ter da sta x1 in x2 neodvisni spremenljivkiS pomocjo matricnega racunanja izracunajte vrednosti regresijskih koeficientov na-povedanih vrednosti in vrednosti rezidualov Poskrbite da bodo vsi trije rezultativektorji (rezultat matricnega racunanja je matrika)

Vse tri rezultate shranite v seznam

Namig Matricna formula za izracun regresijskih koeficientov je

β = (XprimeX)minus1Xprimey

Matrika X mora biti sestavljena iz stolpca enic in po enega stolpca za vsako neod-visno spremenljivko Formula za izracun napovedi pa je

yprime = Xβ

14 Funkcije in programiranje

Zaporedje ukazov ki jih pogosto uporabljamo skupaj je smiselno zdruziti skupaj vfunkcijo To omogoca da jih zelo enostavno veckrat uporabimo na razlicnih podat-kih

1 poglavje ndash Uvod v R 39

141 Nekaj koristnih funkcij

Poleg statisticnih funkcij R vsebuje tudi veliko funkcij za manipulacijo s podatkiNavedimo le nekaj najpomembnejsih

sort Uredi enote (v stevilskem vektorju po velikosti)

order Vrne zaporedno stevilko vsake enote ce jih uredimo glede na dolocenvektor Zelo uporabno za rdquosortiranjerdquo podatkovnih okvirjev

naomit Iz podatkovnega okvirja izbrise vse enote (vrstice) kjer nastopajomanjkajoce vrednosti To nam omogoca da pri vseh spremenljivkah uposte-vajo iste enote

attributes Vrne lastnosti (ang rdquoattributesrdquo) nekega objekta

sample Vrne slucajen vzorec izbrane velikosti iz izbranega vektorja ali se-znama Privzeto je vzorcenje brez ponavljanja lahko pa tudi nastavimo vzor-cenje s ponavljanjem Ce zelimo lahko tudi nastavimo verjetnosti za posame-zne elemente

which Vrne indekse (zaporedne stevilke) pri katerih je vrednost izraza TRUE

(nek pogoj je izpolnjen)

Poleg funkcij so pomembni tudi operatorji ki so sicer tudi sami neke vrste funkcija

Operatorji primerjav == (je enako ndash dva enacaja) gt= lt= gt lt =(ni enako)

Operator negacije Uporablja se z logicnimi vrednostmi ndash TRUE spremeniv FALSE in obratno

in Operator vsebovanja Pove ali so elementi 1 vektorja vsebovani v 2elementu

gt x1 lt- podatki$x1

gt x1 prvotna razporeditev

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt sort(x1) vrednosti urejene po velikosti narascajoce

[1] 1685902 1724907 1726332 1741618 1768851 1772191

[7] 1788490 1800462 1820382 1835689

gt sort(x1 decreasing = TRUE) urejene po velikosti padajoce

[1] 1835689 1820382 1800462 1788490 1772191 1768851

[7] 1741618 1726332 1724907 1685902

gt order(x1) zaporedne st v takem vrstnem redu

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

gt da bi bile vrednosti urejene po velikosti

gt x1[order(x1)] enak rezultat kot sort(x1)

40 14 Funkcije in programiranje

[1] 1685902 1724907 1726332 1741618 1768851 1772191

[7] 1788490 1800462 1820382 1835689

gt podatki originalni vrstni red

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 c

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 10202235 a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt podatki[order(podatki$x3)]

x1 x2 x3

6 1768851 10202235 a

10 1726332 11636876 a

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

7 1741618 8816272 b

1 1772191 11693152 c

2 1685902 10092010 c

8 1835689 8434124 c

9 1724907 9802423 c

gt podatki urejeni po velikosti x3 (abc)

gt podatki[order(podatki$x3podatki$x1)]

x1 x2 x3

10 1726332 11636876 a

6 1768851 10202235 a

7 1741618 8816272 b

5 1788490 9900317 b

4 1800462 10295941 b

3 1820382 12062572 b

2 1685902 10092010 c

9 1724907 9802423 c

1 1772191 11693152 c

8 1835689 8434124 c

gt podatki urejeni najprej glede na x3

gt znotraj kategorij x3 pa glede na x1

gt

gt podatkiNAlt-podatki skopiramo podatke

1 poglavje ndash Uvod v R 41

gt dodajmo v podatke manjkajoce vrednosti NA

gt podatkiNA[3x1]lt-NA

gt podatkiNA[6x2]lt-NA

gt podatkiNA[2x3]lt-NA

gt podatkiNA[3x2]lt-NA

gt podatkiNA podatki z manjkajocimi vrednostmi

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 ltNAgt

3 NA NA b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 NA a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt podatkiNAomitlt-naomit(podatkiNA)

gt odstranimo podatke z manjkajocimi enotami

gt podatkiNAomit

x1 x2 x3

1 1772191 11693152 c

4 1800462 10295941 b

5 1788490 9900317 b

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt attributes(podatkiNAomit)$naaction

2 3 6

2 3 6

attr(class)

[1] omit

gt informacija o tem katere vrstice smo odstranili

gt

gt sample(x=1100size=5)

[1] 94 55 41 83 23

gt slucajni vzorec 5 enot iz vektorja 1100 brez ponavljanja

gt sample(x=15size=5) permutacija (ker porabimo vse enote)

[1] 4 3 1 5 2

gt abclt-c(abc)

gt sample(x=abcsize=10replace=TRUE) vzorec s ponavljanjem

[1] c b c b a a b a b c

42 14 Funkcije in programiranje

gt sample(x=abcsize=10replace=TRUE prob=c(060202))

[1] a a b c b a c a c c

gt vzorec s ponavljanjem - razlicne verjetnosti izbora

gt

gt abclt-c(abc)

gt rep(abctimes=3) vektor ponovimo 3-krat

[1] a b c a b c a b c

gt rep(abceach=3) vsak element ponovimo 3-krat

[1] a a a b b b c c c

gt rep(abceach=3times=2)

[1] a a a b b b c c c a a a b b

[15] b c c c

gt vsak element ponovimo 3-krat vektor 2-krat

gt

gt

gt xlt-sample(x=abcsize=10replace=TRUE prob=c(060202))

gt x

[1] b b c a a a c c a a

gt which(x==a) na katerih mestih so a-ji

[1] 4 5 6 9 10

gt x[which(x==a)]

[1] a a a a a

gt x in c(bc)

[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

[10] FALSE

gt (x==a) enako

[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

[10] FALSE

Poleg zgornjih je treba omeniti se funkcije za generiranje psevdoslucajnih stevil Rvsebuje mnogo funkcij za generiranje slucajnih vrednosti iz razlicnih porazdelitevNaj omenimo samo najpomembnejse

rnorm normalna porazdelitev

runif enakomerna porazdelitev

rbinom binomska porazdelitev

rbeta beta porazdelitev (zelo fleksibilna)

rexp eksponentna porazdelitev

rf F porazdelitev

rt t porazdelitev

r Se kar nekaj drugih porazdelitev Ime funkcije se vedno zacne z rdquorrdquo sledioznaka (ime ali okrajsava) za porazdelitev

1 poglavje ndash Uvod v R 43

Vse zgoraj navedene funkcije kot prvi argument sprejmejo n ki pove koliko stevilzelimo generirati Poleg tega kot dodatne argumente sprejmejo parametre porazde-litve Pozor Porazdelitvene funkcije so lahko definirane drugace kot ste navajeni

Vse zgoraj navedene funkcije imajo tudi rdquosestrerdquo ki se namesto z rdquorrdquo zacnejo z

d funkcija gostote

p (kumulativna) porazdelitvena funkcija

q kvantilna funkcija ndash vrne vrednost ki pripada dolocnem kvantilnem rangu

Pomembna je tudi funkcija setseed kjer lahko nastavimo seme (koristno ce bi sekdaj zeleli generirati enake vrednosti)

Spodaj je nekaj primerov za generiranje slucajnih stevil iz razlicnih porazdelitev

gt setseed(1)

gt rnorm(n=5)

[1] -06264538 01836433 -08356286 15952808 03295078

gt 5 slucajnih stevil iz standardizirane normalne porazdelitve

gt rnorm(n=5 mean=10sd=2) drugacno povprecje in sd

[1] 8359063 10974858 11476649 11151563 9389223

gt rexp(n=10rate=05) 10 stevil iz eksponentne porazdelitve

[1] 0294092 2781470 1524060 2475207 8847868 2109086

[7] 2070488 3752070 1309493 0673867

gt rbeta(n=5 shape1=1shape2=1)

[1] 02057601 02762891 01790537 02170672 04702804

gt kovanec vrzemo 100-krat

gt predvidevamo da je posten (prob=05)

gt kolikokrat pade cifra

gt poskus ponovimo 10-krat

gt rbinom(n=10 size=100 prob=05)

[1] 46 56 50 52 42 44 49 54 39 52

142 Definiranje funkcij

Funkcija je zaporedje ukazov ki se izvrsi na vhodnih parametrih (ce jih funkcijaima) Funkcija lahko kaj vrne ni pa nujno Osnovna sintaksa funkcije jeime_funkcije lt-function(argumenti)

izraz1izraz2izraz3return(nek_objekt)

44 14 Funkcije in programiranje

Izrazi so lahko katerikoli veljavni R izrazi Ukaz return ni nujen Ce ukaza return

ni funkcija vrne rezultat zadnjega izracuna Ce zelimo da funkcija ne vrne nicesar(ce jo uporabljamo zaradi rdquostranskih ucinkovrdquo kot je na primer risanje pisanje vdatoteko ) potem moramo eksplicitno napisati return(NULL) Funkcija se vednozakljuci pri ukazu return (ce ta obstaja) Karkoli za njim se ne izvede

Argumente navedemo tako da navedemo njihova imena Ce jim zelimo pripisati tudiprivzete vrednosti (le-te se uporabijo ce ob klicu ne navedemo drugih) navedemoargumente kot

ime1=privzeta_vrednost1 ime2=privzeta_vrednost2 itd

Poseben argument je tudi argument rdquordquo Ce vsebuje funkcija ta argument sprejmetudi katerikoli argument ki ni eksplicitno naveden v definiciji funkcije uporablja pase predvsem za posredovanje argumentov funkcijam znotraj funkcije

V funkciji seveda lahko uporabimo tudi druge funkcije in tudi funkcijo ki jo pisemoSlednje je lahko zelo mocno orodje a tudi zelo nevarno (nujna je uporaba pogojev)

gt funkcija ki izracuna ploscino kroga

gt plKrogalt-function(r)

Funkcija ima samo en argument in sicer polmer kroga

Zamiki niso potrebni je pa koda tako preglednejsa

pllt-pir^2 pi je vrednost konstante pi

return(pl) Ta vrstica pravzaprav ni nujna

saj funkcija tudi sicer vrne pl

ker je to rezultat zadnjega izracuna

je pa to dobra praksa

gt plKroga(10) poklicemo funkcijo

[1] 3141593

gt rezultat lahko tudi shranimo

gt plR10lt-plKroga(10)

gt plR10

[1] 3141593

143 Programski tok

Pri kateremkoli programu je zelo pomembno usmerjanje programskega toka

V ta namen so v R-ju na voljo sledeci ukazi

if Pogojni stavek Telo stavka se izvrsi ce je pogoj izpolnjen oziroma ce je vrednostpogoja TRUE Ukaz ima oblikoif(pogoj)izraz1 else izraz2

1 poglavje ndash Uvod v R 45

pogoj je nekaj kar ima kot rezultat TRUE ali FALSE Ce je vrednost pogojaTRUE se izvede izraz1 sicer pa izraz2 Pozor R smatra 0 kot FALSE vseostale stevilke pa kot TRUEelse del ni obvezen Ce ga ni se v primeru da je vrednost pogoja FALSE neizvede nic

while Pogojno ponavljanjezanka Telo stavka se ponavlja dokler je pogoj izpol-njen oziroma dokler je vrednost pogoja TRUE Ukaz ima oblikowhile(pogoj)izraz

repeat Neskoncno ponavljanje oziroma neskoncna zanka Telo stavka se ponovidokler znotraj ne naleti na ukaz break (glejte naprej) Ukaz ima oblikorepeatizraz

Opozorilo

Ukaz repeat je zelo nevaren Nujno moramo v izraz zapisati ukaz breaksicer dobimo neskoncno zanko (smrt vsakega programa)

for Ponavljanjezanka preko zaporedja Telo stavka se ponavlja tolikokrat dazanka rdquoobdelardquo vse elemente zaporedja Ukaz ima oblikofor(spremenljivka in zaporedje) izrazizraz se ponavlja dokler spremenljivka ne pride cez vse elemente zaporedjaZanka se torej ponovi tolikokrat kolikor je elementov zaporedjaspremenljivka ima v vsaki ponovitvi drugacno vrednost vrednost naslednjegaelementa iz zaporedjazaporedje je ponavadi nek vektor (lahko tudi seznam) zelo pogosto kar rezultatfunkcije seq oziroma izraza ab

break Prekinitev zanke Ukaz se uporablja le znotraj zank in sprozi takojsnjo pre-kinitev zanke

next Naslednji Ukaz se uporablja le znotraj zank in sprozi zacetek naslednje po-novitve (trenutna ponovitev se na mestu ukaza konca)

Uporaba ukazov break in next je smiselna le znotraj if stavka (ko se ukaza izvedetale pod dolocenim pogojem) saj zanka sicer nima smisla

gt xlt-1

gt if(x==1)print(ok)elseprint(ups)

[1] ok

gt pogoj je bil izpolnjen zato se izpise ok

gt

gt xlt-2

gt if(x==1)print(ok)elseprint(ups)

[1] ups

46 14 Funkcije in programiranje

gt pogoj ni bil izpolnjen zato se izpise ups

gt

gt for(i in 15)

print(i)

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt xlt-1

gt while(xlt=5)

print(x)

xlt-x+1

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt xlt-1

gt repeat

print(x)

xlt-x+1

if(xgt5) break

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt for(i in 15)

if(i2==0) next

print(i)

[1] 1

[1] 3

[1] 5

1 poglavje ndash Uvod v R 47

144 Vaje

Vaja 1

Za probleme iz vaj v prejsnjem podpoglavju (podpoglavje Podatkovne strukturepodpodpoglavje 138 na strani 38) napisite funkcije tako da jih bo moc uporabitina poljubnem stevilu enot Prikazite uporabo

Vaja 2

Z uporabo zank napisite funkcijo za izracun vsote vseh elementov vektorja

Vaja 3

Napisite funkcijo ki izracuna fakulteto poljubnega naravnega stevila Poskusitenapisati funkcijo z zankami in z uporabo rekurzivne funkcije (funkcije v funkciji)

Namig Fakulteto stevila izracunamo po naslednji funkciji

n = n middot (nminus 1) middot (nminus 2) middot middot middot 2 middot 1 =nprodk=1

k = n middot (nminus 1)

Pozor Fakulteta hitro postane zelo veliko stevilo zato funkcije preizkusajte namanjsih stevilih (recimo do 10)

Vaja 4

Napisite funkcijo za izracun mediane

Namig 1 Za ureditev enot po vrsti lahko uporabite funkcijo sort

Namig 2 Za ugotovitev ali je stevilo enot sodo ali liho pride prav operator kivam vrne ostanek pri deljenju

15 Delo z datotekami

Nekaj dela z datotekami (shranjevanje in nalaganje delovnega okolja in zgodovine)smo ze obdelali v podpodpoglavju 125 Tu pa si bomo pogledali predvsem funkcijeza branje in pisanje podatkov

48 15 Delo z datotekami

151 Tekstovne datoteke

Tekstovne datoteke so datoteke ki jih lahko beremo z urejevalniki besedila (naprimer TextPad Notepad Notepad++ ) in ne z urejevalniki dokumentov kotso Microsoft (Office) Word ali OpenOfficeorg Writer Ponavadi so podatki urejenitako da so v stolpcih spremenljivke v vrsticah pa enote Stolpci so loceni z nekimznakom ki je lahko tabulator (t) podpicje () vejica () presledek ( )

Za branje tekstovnih datotek se najpogosteje uporablja funkcija readtable innjene izpeljanke Izpeljanke so identicne originalni funkciji le da imajo drugacneprivzete vrednosti ki so primerne za branje dolocenih formatov tekstovnih dato-tek Predvsem se pogosto uporabljata funkciji (za ostale glejte pomoc za funkcijoreadtable)

readcsv2 Za branje datotek rdquocsvrdquo Na koncu imena je rdquo2rdquo ker je to verzija zadatoteke rdquocsvrdquo ki za locilo uporabljajo podpicje () vejico () pa za decimalnolocilo kot je standard pri nas Obstaja tudi verzija brez koncnice rdquo2rdquo kisledi ameriskemu standardu Take datoteke znajo brati in pisati programi zadelo s preglednicami na primer Excel Tak program je obicajno tudi privzetiprogram za odpiranje takih datotek

readdelim2 Za branje datotek ki so locene z tabulatorjem (t) Na koncu imenaje rdquo2rdquo ker je to verzija za datoteke ki za decimalno locilo uporabljajo vejico() kot je standard pri nas Obstaja tudi verzija brez rdquo2rdquo ki sledi ameri-skemu standardu Tudi take datoteke znajo brati in pisati programi za delo spreglednicami na primer Excel

Funkcija readtable in njene izvedenke kot glavni argument sprejmejo ime datoteke(s potjo ce je potrebno) vrnejo pa podatkovni okvir Imajo se vrsto argumentov skaterimi je mogoce dolocati kako se obravnavajo znakovne spremenljivke kodiranje

Sedaj bomo prebrali tekstovno datoteko rdquoizborESSn30txtrdquo Njenih prvih nekaj vr-stic je videti takole

spol izobrazba kraj placa

1 zenski 12 kmetija 170

2 moski 12 manjse mesto 140

3 moski 11 manjse mesto 130

4 zenski 14 predmestje 150

V 1 vrstici so imena spremenljivk v 1 stolpcu pa rdquoimenardquo vrstic Prva vrstica(imena spremenljivk) se zacne kar s prvo spremenljivko (in ne z imenom stolpca zaimena vrstic) kar funkcija readdelim (obe verziji saj se razlikujeta le v decimal-nem locilu) tudi pricakuje Stolpci so loceni s tabulatorjem ceprav to iz zgornjegazapisa ni vidno v boljsih urejevalnikih besedila pa je mogoce nastaviti da so vidni

1 poglavje ndash Uvod v R 49

Narekovaji okoli nenumericnih spremenljivk sicer niso nujni (kadar so vrednosti locenes tabulatorji) so pa priporocljivi

gt izborlt-readdelim(file=izborESSn30txt)

gt izbor[14] izpisemo samo zgornje vrstice

spol izobrazba kraj placa

1 zenski 12 kmetija 170

2 moski 12 manjse mesto 140

3 moski 11 manjse mesto 130

4 zenski 14 predmestje 150

gt sapply(izborclass) pogledamo tipe spremenljivk

spol izobrazba kraj placa

factor integer factor integer

Ko smo prebrali podatke smo izpisali tipe spremenljivk Nenumericne spremenljivkeso v R-ju postale spremenljivke tipa factor Ce tega ne zelimo ce zelimo daso tipa character lahko to spremenimo z argumentom stringsAsFactors ki ganastavimo na FALSE

Za pisanje tekstovnih datotek se najpogosteje uporablja funkcija writetable innjene izpeljanke (writecsv in writecsv2)

Podatki ki jih zelimo zapisati s funkcijo writetable morajo biti v obliki matrikeali podatkovnega okvirja

Za bolj splosno branje tekstovnih datotek (v obliki tabel) se uporablja funkcija scanza pisanje takih datotek pa funkcija cat Za vec informacij glejte njuno pomoc

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt in se eno nenumericno

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt izberemo vzorec s ponavljanjem velikosti 10

gt podatkilt-dataframe(x1x2x3)

gt writetable(x=podatki file=podatkitxt sep = t

dec = rownames = FALSE)

gt sep = t - locilo stolpcev je tabulator

gt dec = - decimalno locilo je vejica

gt rownames = FALSE - imena vrstic ne shranimo

gt tako datoteko lahko preberemo z readdelim2

50 15 Delo z datotekami

152 Shranjevanje in branje objektov

Za shranjevanje R-jevih objektov je najprimernejsa funkcija save Je zelo podobnafunkciji saveimage ki smo jo spoznali v podpodpoglavju 125 Razlika je le v temda funkcija save shrani le izbrane objekte saveimage pa vse objekte v delovnemokolju

Objekte ki jih shranimo s funkcijo save lahko preberemo s funkcijo load niso paprimerni za branje z drugimi programi ali z urejevalniki besedila Obicajno damodatotekam koncnico RData

gt save(podatki file=podatkiRdata)

gt rm(podatki)

gt ls() objekta podatki ni vec

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] l n plKroga

[19] plR10 podatkiNA podatkiNAomit

[22] x x1 x2

[25] x3

gt load(file=podatkiRdata)

gt podatki so spet na voljo

x1 x2 x3

1 1742265 9081960 b

2 1808787 10511680 a

3 1798966 8305955 c

4 1711787 12149536 b

5 1710475 12970600 b

6 1785521 9449168 a

7 1813797 8433798 a

8 1752136 10854579 b

9 1821678 9797418 b

10 1787867 13602427 a

Drug nacin ki pa ne deluje dobro pri cisto vseh objektih je uporaba funkcije dump zapisanje in source za branje Funkcija dump poskusa predstaviti objekt z besedilomin to besedilo zapisati v tekstovno datoteko Deluje vedno kadar je mogoce objektpredstaviti z besedilom Ta nacin je posebej primeren za shranjevanjenalaganjefunkcij funkcija source pa tudi za nalaganje kode ki smo jo na primer napisali vurejevalniku besedila Obicajno damo datotekam koncnico R

Funkcija dump je uporabna tudi ko zelimo videti predstavitev objekta z besedilom

1 poglavje ndash Uvod v R 51

gt kvadratlt-function(x)x^2

gt ls()

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] kvadrat l n

[19] plKroga plR10 podatki

[22] podatkiNA podatkiNAomit x

[25] x1 x2 x3

gt dump(list=c(podatkikvadrat) file=raznoR)

gt rm(list=c(podatkikvadrat))

gt ls() objektov podatki in kvadrat ni vec

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] l n plKroga

[19] plR10 podatkiNA podatkiNAomit

[22] x x1 x2

[25] x3

gt source(file=raznoR)

gt ls() pa sta nazaj

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] kvadrat l n

[19] plKroga plR10 podatki

[22] podatkiNA podatkiNAomit x

[25] x1 x2 x3

153 Branje in pisanje datotek drugih programov

R vsebuje tudi paketek ( foreign) ki omogoca branje in pisanje datotek drugih sta-tisticnih programov Tako med drugim bere podatke iz formata sledecih programov

bull SPSS

bull Stata

52 15 Delo z datotekami

bull SAS

bull Weka

bull Octave

bull Minitab

Zaradi razsirjenosti SPSS-a v druzboslovju v tem ucbeniku najveckrat uporabljamfunkcijo readspss ki omogoca branje SPSS-ovih datotek obstajajo pa tudi po-dobne funkcije za ostale popularne statisticne programe (glejte zgoraj)

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign)

gt preberemo podatke

gt egolt-readspss(egoomr00_f2savtodataframe=TRUE

usevaluelabels = FALSEusemissings=TRUE)

gt ego[1319] izpisemo prve tri enote in prvih 9 spremenljivk

EGOID Q1A Q2A Q3A Q4A DQ1A DQ2A DQ3A DQ4A

1 1001 5 NA 5 NA 4 NA 4 NA

2 1003 5 6 6 6 5 6 6 6

3 1004 6 3 5 5 6 NA 5 5

Najpomembnejsi argumenti funkcije readspss so

todataframe Ce ga nastavimo na TRUE bo rezultat funkcije podatkovni okvir(kar ponavadi zelimo) sicer pa seznam (privzeta vrednost)

usevaluelabels Ali naj R uposteva opise vrednosti (rdquovalue labelsrdquo) iz SPSS-ove datoteke Ce ga nastavimo na TRUE potem bodo vse spremenljivke kiimajo nastavljene opise vrednosti obravnavane kot faktorji torej kot nomi-nalne spremenljivke Ne glede na vrednost argumenta se opisi vrednosti shra-nijo v rdquoattributerdquo z imenom rdquovalue labelsrdquo Do njih lahko dostopamo prekoukaza attr(xvaluelabels) kjer je x spremenljivka (npr ego$E_SPOL)za katero zelimo prebrati opise Ce smo uporabili usevaluelabels=FALSEje za spremembo spremenljivke v faktor uporabna funkcija makeFactorLabels

iz datoteke rdquoUcbenikR-funkcijeRrdquo

maxvaluelabels Argument je uporaben le kadar je usevaluelabels=TRUEV tem primeru lahko tudi nastavimo koliko razlicnih vrednosti ima lahkospremenljivka (v podatkih) da se se uporabijo opisi ndash da se spremenljivkaobravnava kot nominalna spremenljivka

usemissings Ali naj se upostevajo kode za manjkajoce vrednosti Ce je TRUE sevse SPSS-ove rdquouporabniske manjkajoce vrednostirdquopretvorijo v NA OpozoriloTa pretvorba ne deluje vedno v redu zato je dosti varneje ce uporabniskemanjkajoce vrednosti pretvorimo v sistemske manjkajoce vrednost v SPSS-u

1 poglavje ndash Uvod v R 53

V tem ucbeniku beremo vse podatke iz SPSS-ovega formata Razlog za izbor tegaformata je predvsem v razsirjenosti uporabe tega formata in tudi samega programaSPSS na Fakulteti za druzbene vede Univerze v Ljubljani pa tudi v obstoju odpr-tokodnega programa PSPP (httpwwwgnuorgsoftwarepspp) ki omogocabranje in pisanje podatkov v tem formatu Seveda pa je moc podatke iz ADP pre-nesti tudi v drugih formatih in jih prebrati v R Vecina ukazov v primerih v temucbeniku bo delovala neodvisno od izvornega zapisa vendar pa mora uporabnik vtem primeru sam poskrbeti za dostop do dolgih imen spremenljivk ter imen vredno-sti spremenljivk Funkcija makeFactorLabels denimo ne bo vec delovala Vendarpa njena uporaba v nekaterih primerih niti ni potrebna na primer pri branju izStatinega (dta) formata

V nadaljevanju sledi se primer branja podatkov is Statinega formata (dta) Pre-brali bomo enake podatke kot so uporabljeni v uvodnem primeru oziroma zgornjemprimeru za branje s funkcijo readspss le da smo te podatke iz ADP-ja prenesliv Statinem formatu Tokrat bomo uporabili funkcijo readdta ki je za uporabose preprostejsa saj obicajno zelen rezultat dobimo ze s privzetimi vrednostmi ar-gumentov Tako izpostavimo le argument convertfactors ki nadzoruje ali najse stevilske spremenljivke z opisi vrednosti shranijo kot faktorji Privzeta vrednostTRUE kot faktorje shrani tiste spremenljivke ki imajo definirane opise za vse vre-dnosti Pri vrednost FALSE se nobena spremenljivka ne shrani kot faktor (kot prireadspss pri vrednosti usevaluelabes=FALSE) pri vrednosti NA pa se vse spre-menljivke ki imajo za vsaj kaksno vrednost definiran opis shranijo kot faktorji (kotpri readspss pri vrednosti usevaluelabes=TRUE) Funkcija readdta vrnepodatkovni okvir Dolga imena spremenljivk so shranjena v atributu varlabels

vrnjenega podatkovnega okvirja opisi vrednosti spremenljivk pa v atributu la-

beltable

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign) ni potrebno ker bi moral biti ze nalozen

gt preberemo podatke s privzetimi nastavitvami

gt ki so obicajno primerne

gt egoStatalt-readdta(egoomr00_f2dta)

gt egoStata[1319]

EGOID Q1A Q2A

1 1001 precej zadovoljen-a ltNAgt

2 1003 precej zadovoljen-a zelo zadovoljen-a

3 1004 zelo zadovoljen-a malo nezadovoljen-a

Q3A Q4A

1 precej zadovoljen-a ltNAgt

2 zelo zadovoljen-a zelo zadovoljen-a

3 precej zadovoljen-a precej zadovoljen-a

DQ1A DQ2A DQ3A

54 15 Delo z datotekami

1 malo zadovoljen-a ltNAgt malo zadovoljen-a

2 precej zadovoljen-a zelo zadovoljen-a zelo zadovoljen-a

3 zelo zadovoljen-a ltNAgt precej zadovoljen-a

DQ4A

1 ltNAgt

2 zelo zadovoljen-a

3 precej zadovoljen-a

gt izpisemo prve enote in prvih 9 spremenljivk

gt

gt preberemo ponovno - tokrat brez pretvorbe v faktorje

gt egoStata2lt-readdta(egoomr00_f2dta convertfactors=FALSE)

gt egoStata2[1319]

EGOID Q1A Q2A Q3A Q4A DQ1A DQ2A DQ3A DQ4A

1 1001 5 NA 5 NA 4 NA 4 NA

2 1003 5 6 6 6 5 6 6 6

3 1004 6 3 5 5 6 NA 5 5

gt zopet izpisemo prve tri enote in prvih 9 spremenljivk

gt

gt attributes(egoStata2)$varlabels[13]

[1] ID ega

[2] zadovoljstvo z materialno oporo-1merjenje

[3] zadovoljstvo z informacijsko oporo-1merjenje

gt attributes(egoStata2)$labeltable[13]

$Q1A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

$Q2A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

$Q3A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

1 poglavje ndash Uvod v R 55

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

Za pisanje datotek ki jih zelimo uvoziti v SPSS bi sicer glede na opis funkcije lahkouporabili funkcijo writeforeign z argumentom package = rsquoSPSSrsquo Ta funkcijagenerira dve tekstovni datoteki podatkovno in datoteko s sintakso Vendar paSPSS pri branju zal javi napako Tudi ce bi postopek deloval je lazje zapisatidatoteko v formatu programa Stata s funkcijo writedta saj lahko ta format uvozitudi SPSS

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt podatkilt-dataframe(x1x2x3)

gt library(foreign) ni potrebno ker bi moral biti ze nalozen

gt writedta(dataframe=podatki file=podatkidta)

154 Vaje

Vaja 1

Ustvarite podatkovno datoteko rdquocsvrdquo (recimo v Excel-u) V datoteko vpisite vsaj10 enot in vsaj 4 spremenljivke (vsaj eno numericno in eno nominalno opisno)Datoteko si oglejte tudi z urejevalnikom besedila Datoteko preberite z R-jem

Vaja 2

Poljubne podatke shranite v tekstovno datoteko in jo potem poglejte v urejevalnikubesedila in programu za delo s preglednicami Lahko izberete tudi podatke ki sodostopni v R-ju preko funkcije data (napisite data() za seznam podatkovij)

Vaja 3

Uvozite podatke iz poljubne SPSS-ove datoteke Poskrbite da boste dobili podat-kovni okvir in da bodo uporabniske manjkajoce vrednosti opredeljene kot manjka-joce

56 16 Risanje

Vaja 4

Podatke iz Vaje 2 (ali kaksne druge) izvozite tako da jih boste lahko odprli z SPSS-om Med podatki naj bo vsaj ena spremenljivka tipa factor Podatke odprite zSPSS-om So pri spremenljivki tipa factor (v R-ju) vidni opisi vrednosti v SPSS-u

16 Risanje

R ima zelo dobro podprto grafiko oziroma risanje grafov Za vpogled v to kaj vse jemogoce narisati z R-jem in tudi za ideje kako kaj narediti sta zelo koristni stranirdquoR Graphical Manualrdquo (httpbm2genesnigacjpRGM2 in rdquoR graph galleryrdquohttpaddictedtorfreefrgraphiques

161 Visokonivojske funkcije za risanje

Visokonivojske funkcije za risanje so tiste ki ustvarijo nov graf Kasneje bomospoznali tudi nizkonivojske ki le dodajo elemente na obstojeci graf Locnica medvisoko- in nizko-nivojskimi funkcijami sicer ni ostra saj se nekatere funkcije lahkouporabljajo v obeh vlogah

Osnovna funkcija za risanje v R-ju je plot Delovanje funkcije se razlikuje glede natip objekta ki ji ga posredujemo kot argument Funkcija namrec poskusa pripra-viti graf ki je primeren vhodnemu argumentu Tu ne bomo mogli pregledati vsehmoznosti zato navajam le nekaj primerov

gt uporabimo podatke iz izborESSn30txt

gt izborlt-readdelim(file=izborESSn30txt)

gt sapply(izborclass) ponovimo kaksne tipe podatkov imamo

spol izobrazba kraj placa

factor integer factor integer

gt plot(izbor$placa)

gt na y osi je placa na x pa indeksi (zaporedne stevilke enot)

gt plot(izbor$placatype=o)

gt plot(izbor$spol) strukturni stolpci ker je spol nominalka

gt plot(placa~spoldata=izbor) skatlasti grafikon (z zavihki)

gt plot(spol~placadata=izbor) porazdelitev po razredih

gt plot(kraj~spoldata=izbor)

gt plot(placa~izobrazbadata=izbor)

gt pod data navedemo podatkovni okvir kjer se nahajajo sprem

gt razsevni grafikon - odvisnost place od izobrazbe

gt plot(placa~izobrazbadata=izbor)

1 poglavje ndash Uvod v R 57

gt plot(izbor) razsevni grafikon za vsak par spremenljivk

gt lmFitlt-lm(placa~izobrazba data=izbor) linearna regresija

gt plot(lmFit)

gt plot(placa~izobrazbadata=izborpch=asnumeric(spol)

col=spol cex=2 main = Razsevni grafion

xlab=Izobrazba v letih ylab = Placa v 1000 sit)

Kot smo videli funkcija plot vedno skusa narisati nekaj primernega tudi takrat kosmo kot argument uporabili rezultat linearne regresije Ta funkcija in vecina funk-cij za risanje sprejme vec argumentov s katerimi lahko prilagajamo risanje (glejtepredvsem daljsi primer na strani 59) Nekaj najpogostejsih

type Tip grafikona Relevantno pri razsevnih grafikonih ndash tocke crta tocke pove-zane s crto

data Iz katerega podatkovnega okvirja (ali seznama) naj uporabi podatke Pred-vsem se uporablja kadar je osnovni argument formula

main Glavni naslov

xlab ylab Ime osi x in y

pch Simbol ki naj se uporablja za risanje tock Lahko ima samo eno vrednost alipa je vrednost vektor ki za vsako tocko poda simbol

col Barva (ponavadi tocke) Podobno kot zgoraj

cex Velikost tocke Podobno kot zgoraj

xlim ylim Meje risanja na osi x in y (se nismo uporabili bomo kasneje)

Obstaja se veliko dodatnih argumentov s katerimi je mogoce po zelji prilagoditiprikaz Za pregled teh argumentov si poglejte pomoc za funkciji plotdefault inpar

Predvsem argumente slednje je treba pogosto nastaviti s klicem funkcije par predklicem izbrane funkcije Tak zelo uporaben argument je na primer argument mfrowoziroma mfcol ki nam omogoca da na eno sliko narisemo vec grafov Primer je nasliki 19 (koda sledi v naslednjem primeru)

Vseeno pa privzeti graf ni vedno tisti ki ga zelimo Poglejmo si se dodatne funkcijeza risanje grafov

hist Histogram

barplot Stoplci Pozor Za klasicne strukturne stolpce mora biti argument tabela(le-to dobimo s funkcijo table)

pie Strukturni krog Enako kot zgoraj

boxplot Skatlasti grafikon (z zavihki)

curve Risanje krivulj

58 16 Risanje

Slika 19 Strutkutna stolpca in krog na eni sliki

moski zenski

05

1015 moski

zenski

gt curve(dnorm(x)xlim=c(-44))

gt standardna normalna porazdelitev

gt

gt hist(izbor$placa) histogram - frekvence

gt hist(izbor$placa freq=FALSE) frekvence - gostota

gt boxplot(izbor$placa) ena skupina

gt boxplot(placa~spol data=izbor) dve skupini

gt par(mfrow=c(21)) spodnja 2 grafa zelimo imeti na eni sliki

gt barplot(table(izbor$spol))

gt pie(table(izbor$spol))

gt par(mfrow=c(11)) povrnemo originalne nastavitve

162 Nizkonivojske funkcije za risanje

Nizkonivojske funkcije za risanje ne ustvarijo novega grafa ampak le dodajo elementena obstojeci graf Nekaj najpomembnejsih

points lines Dodata tocke crte ali tocke povezane s crto

text Doda tekst

mtext Doda tekst na obrobeosi

axis Doda osi

title Doda naslov

legend Doda legendo

1 poglavje ndash Uvod v R 59

expression Uporabljamo ga za vnasanje matematicnih formul ali simbolov na slike5

bquote Uporablja se za vnasanje matematicnih formul ki vkljucujejo izracunanekolicine na slike (podobno kot expression)

Posebej je treba razloziti uporabo expression Vcasih zelimo na sliki izpisati tudimatematicne formule ali znake Le-te lahko uporabimo takorekoc povsod kjer lahkopisemo besedilo (na primer naslovi legende oznake osi oznake na oseh ) V temprimeru namesto besedila dolocenemu argumentu (na primer main text labels kot vrednost podamo expression Slabost tega nacina pa je da ne omogocardquomesanjardquo izracunih kolicin (recimo izracunano vrednost R2 v naslednjem primeru)in matematicnih oznak Nacin pisanja za obe moznosti je opisan v pomoci podgeslom plotmath (za dostop do pomoci torej uporabimo plotmath) je pa precejpodoben LATEX-u Primer slike z veliko dodatnimi elementi je na sliki 110

gt lmFitlt-lm(placa~izobrazba data=izbor) linearna regresija

gt maroldlt-par(mar)

gt par(mar=c(5444)+01)

gt plot(placa~izobrazbadata=izborpch=asnumeric(spol)

col=spol cex=1 main = Razsevni grafikon

xlab=Izobrazba v letih ylab = Placa v 1000 sit)

gt abline(lmFit)

gt axis(side=4 at=(28)2100239641000

labels = (28)2100)

gt mtext(text=Placa v EUR side=4line=25)

gt par(mar=marold) graficne parametre nastavimo nazaj

gt na staro vrednost

gt legend(x=5 y = 400 legend = c(moski zenski)

title=Spolpch=12col=12 xjust=0 yjust=1)

gt text(x=5 y = 300 adj=0labels=

paste(R kvadrat =round(summary(lmFit)$rsquared3)))

gt text(x=5 y = 280 adj=0

labels=expression(paste(R^2 = 0536)))

gt text(x=5 y = 260 adj=0

labels=bquote(R^2 == (round(summary(lmFit)$rsquared3))))

Poleg tega je mogoce veliko visokonivojskih funkcij uporabljati tudi za dodajanje naobstojeci graf (na primer curve hist ) tako da jim dodamo argument add=TRUE

5 Glavni rezultat funkcije je sicer da ustvari R-jev izraz ki pa se ne izvede (oziroma evalviraizracuna)

60 16 Risanje

Slika 110 Slika z veliko dodanimi elementi

5 10 15 20

100

150

200

250

300

350

400

Razsevni grafikon

Izobrazba v letih

Pla

ča v

100

0 si

t

400

600

800

1000

1200

1400

1600

Pla

ča v

EU

R

Spol

moškiženski

R kvadrat = 0536

R2 = 0536

R2 = 0536

gt hist(izbor$placa freq=FALSE) frekvence - gostota

gt curve(dnorm(xmean=mean(izbor$placa) sd=sd(izbor$placa))

add=TRUE) vrisemo normalno krivuljo

163 Shranjevanje slik

Slike narisane z R-jem je zelo enostavno shraniti v vec formatih To je moznostoriti na vec nacinov

1 Preko menija ki se odpre s klikom desnega miskinega gumba kjerkoli na slikiPreko tega menija je mogoce

(a) Shraniti slike v datoteko formata Windows metafile (WMFEMF) aliPostScript (PSEPS)

1 poglavje ndash Uvod v R 61

(b) Kopirati sliko v odlozisce v obliki bitne slike (rdquobitmaprdquo) ali v formatuWindows metafile To lahko potem s rdquoprilepirdquo oziroma rdquopasterdquo prilepite vvecino programov (na primer Word )

2 Preko funkcije savePlot je mogoce shraniti sliko iz trenutno aktivnega grafic-nega okna v enem izmed naslednjih formatov Windows metafile PNG JPEGBMP (Windows bitmap format) TIFF PostScript in PDF Tudi s pomocjote funkcije je mogoce shraniti sliko v odlozisce

3 Tako da rdquorisemordquo neposredno v datoteko oziroma na rdquonapravordquo (device) kipredstavlja datoteko Postopek je sestavljen iz sledecih korakov

(a) Odpremo izbrano napravo Za seznam razlicnih naprav (tipov dato-tek) uporabite ukaz Devices Moznosti in argumenti ki so dovoljenipri klicu funkcij ki odpirajo naprave se razlikujejo glede na vrsto na-pravedatoteke

(b) Risemo na enak nacin kot ce bi risali v odprto okno

(c) Napravo zapremo s funkcijo devoff()

Ta (tretji) nacin omogoca najvecjo fleksibilnost pri dolocanju lastnosti koncneslike (na primer kvalitete pri slikah jpg)

Recimo da zelimo narisati porazdelitve vseh spremenljivk v podatkih izbor vsakona svoj graf Te grafe zelimo shraniti v datoteke tipa png To lahko naredimo sspodnjo kodo

gt plotnumericlt-hist

gt S tem nastavimo histogram za privzeti prikaz numericnih

gt spremenljivk Tako pocetje je NEVARNO ker spreminjamo

gt privzeto obanasanje funkcije plot

gt png(filename = Slikadpngwidth = 1200 height = 1200

res=200) namesto d se bo v ime datoteke zapisala

gt zaporedna stevilka slike

gt nekaj parametrov smo nastavili po svoje

gt for(i in names(izbor)) plot(izbor[[i]]main=ixlab=i)

gt devoff()

pdf

2

gt rm(plotnumeric) Odstranimo nevarno nastavitev

Pojasnila

bull V imenu slike smo uporabili rdquodrdquo To nam omogoca da naredimo vec slik neda bi za vsako posebej klicali funkcij png in devoff Png namrec omogocale eno sliko na datoteko

62 16 Risanje

bull Ker je png nevektorski format sirino in visino podamo v tockah (pikslih)Velikost slike dolocimo z argumentom res kjer dolocimo stevilo tock na incPri vektorskih formatih (na primer pdf) sirino in visino podamo v incih

bull Na zacetku smo uporabili ukaz plotnumericlt-hist S tem smo nastavilihistogram za privzeti prikaz numericnih spremenljivk Tako pocetje je NE-VARNO saj bi nam povzrocalo probleme pri risanju razsevnih grafikonovZato smo na koncu tudi uporabili rm(plotnumeric) Ker ta funkcija prej niobstajala smo s tem povrnili prejsnje stanje

Narisimo se isto v datoteko pdf Ker pdf podpira vec strani lahko vse 4 grafenarisemo v eno datoteko

gt plotnumericlt-hist

gt pdf(file = StiriSlikepdf width = 6 height = 6)

gt nekaj parametrov smo nastavili po svoje

gt for(i in names(izbor)) plot(izbor[[i]]main=ixlab=i)

gt devoff()

pdf

2

gt rm(plotnumeric)

Opomba Pri formatih pdf eps in ps lahko velikost rdquopapirjardquo dolocamo neodvisno odvelikosti slike z argumentom papersize Privzeta vrednost je sicer da je velikostpapirja enaka velikosti slike

164 Vaje

Vaja 1

Narisite histogram za poljubno spremenljivko Vrisite tudi normalno krivuljo Glavninaslov in imena osi nastavite rocno (ne uporabite privzetih) Stolpci naj bodo modrebarve

Namig Normalno krivuljo je veliko lazje vrisati ce pri histogramu risete gostoto inne frekvenc

Vaja 2

Na eno sliko narisite 4 histograme (v 2 vrstici s po 2 stolpcema) za poljubno spre-menljivko Na vsakem histogramu uporabite drugo stevilo razredov

1 poglavje ndash Uvod v R 63

Vaja 3

Narisite razsevni grafikon za poljubni dve intervalni spremenljivki Izberite vsaj enoizmed sledecih moznosti

bull Velikost tocke naj se razlikuje glede na vrednost neke tretje razmernostnespremenljivke

bull Oblika tocke naj se razlikuje glede na vrednost neke nominalne spremenljivke

17 Priprava dokumentov z rezultati iz R-ja

R podpira vec nacinov za pripravo dokumentov z rezultati analiz Najzmogljivejsitemeljijo na konceptu ponovljive znanosti (ang rdquoreproducible researchrdquo) Pri pri-pravi tega ucbenika je uporabljen sistem Sweave (Leisch 2002) (httpwwwstatuni-muenchende~leischSweave) ki je del osnovne R-jeve distribucije Sistemomogoca da v enem dokumentu zdruzimo tekst in R-jevo kodo ter rezultate iz R-ja(izpis tabele grafi ) Osnovni sistem je bil razvit za LATEX preko paketka R2HTML

pa omogoca tudi uporabo HTML-ja Zelo podoben sistem podpira tudi paketekknitr (httpyihuinameknitr) ki ima dodatno prednost da lahko za ure-janje besedila uporablja tudi druge sisteme (ne samo LATEX) na primer HTML inMarkdown Predvsem Markdown je zelo enostaven za uporabo omogoca pa tudiizdelavo koncnega dokumenta v razlicnih formatih (Word PDF ali HTML)

Sweave sistem je mogoce uporabiti tudi preko dokumentov formata rdquoOpen Do-cument Formatrdquo oziroma rdquoODFrdquo ki jih na primer uporabljata OpenOfficeorg inLibre Office To omogoca paketek odfWeave(httpcranr-projectorgwebpackagesodfWeaveindexhtml) Prednost tega je da ne zahteva znanja LATEX-aali HTML-ja

Za uporabnike Microsoft (Office) Worda pa sta najbolj zanimiva paketeka R2wd

in rtf Prednost prvega je da omogoca vstavljanje neposredno v odprt Wordovdokument drugega pa da ne potrebuje dodatnih programov (npr Worda) in nimaz njimi povezanih omejitev sej neposredno ustvari RTF (rich text format) dokumentTako je mogoce neposredno ustvariti porocilo ali pa vanj le izvoziti tabele ki jihpotem lahko zelo enostavno prenesemo v Word

Poglejmo najprej paketek R2wd ki deluje le v povezavi z 32-bitnim Wordom Vprimeru da je namen dodajati rezultate iz R-ja v Word in ne avtomatsko generi-ranje porocil je verjetno najuporabnejsa funkcija wdTable Najbolj problematicnopri izvozu rezultatov v Word je namrec dodajanje tabel saj je osnovni R-jev izpistekstovni kar v porocilih ni videti lepo Ravno funkcija wdTable pa omogoca vsta-vljanje lepo oblikovanih tabel v Word zal pa je precej pocasna Preden pa lahkokarkoli pisemo v dokument ga moramo najprej odpreti s funkcijo wdGet

64 17 Priprava dokumentov z rezultati iz R-ja

S spodnjo kodo bomo v Word nalepili tri tabele

gt library(R2wd)

gt wdGet() odpremo nov ali obstojeci (kot argument podamo ime

gt in po potrebi pot do njega) dokument

gt vmes moramo pocakati da se dokument odpre

gt najbolj varno je da prej nimamo odprtega nobenega dokumenta

gt

gt wdTable(izbor) izvozimo tabelo (podatke) v dokument

gt tabela se pojavi na mestu kjer je kazalnik (oz kurzor)

gt

gt wdTable(table(Kraj=izbor$krajSpol=izbor$spol))

gt kontingencna tabela

gt

gt regKoeflt-summary(lm(placa~izobrazba+spoldata=izbor))$coef

gt regKoeflt-format(asdataframe(regKoef)digits=c(4441)

scien=FALSE) da bo lepsi format

gt wdTable(format(regKoef))

gt izvozimo tabelo regresijskih koeficientov

gt

gt Xlt-matrix(115ncol=3)

gt wdTable(X)

gt tole bi javilo napako

gt tabela ali matrika mora imeti definirana imena stolpcev in

gt vrstic

gt colnames(X)lt-c(abc)

gt rownames(X)lt-15

gt wdTable(X)

gt R2wd-package

gt vec pomoci o paketku

Kot lahko vidite na podlagi pomoci za paketek (R2wd-package) paketek omo-goca generiranje celotnih Wordovih dokumentov av tem ucbeniku je predstavljenle najbolj problematicen del Za vstavljanje slik sicer lahko uporabimo funkcijo wd-

Plot lahko pa tudi sliko iz R-ja enostavno skopiramo v odlozisce ali shranimo vdatoteko (glejte podpodpoglavje 163) in od tam prilepimo v Word

Poglejmo sedaj se uporabo paketka rtf Tudi tu je najbolj kljucna funkcija za iz-voz tabel funkcija addTable predstavljena pa je se uporaba funkcij addHeader zaustvarjanje naslovov in addText za vstavljanje navadnega besedila Pred obliko-vanjem dokumenta ga moramo najprej ustvariti s funkcijo RTF (ki kot argumentsprejme ime datoteke) in na koncu zapreti s funkcijo done

1 poglavje ndash Uvod v R 65

gt library(rtf)

gt rtfDoclt-RTF(testrtf) kreiramo novo datoteko in shranimo

gt dobljeni objekt

gt

gt dodamo naslov in podnaslov

gt addHeader(rtfDoctitle=Testsubtitle=Osnovni podatki)

gt addTable(rtfDocizbor)

gt addText(rtfDocTole so osnovni podatkin) dodamo tekst

gt addHeader(rtfDoctitle=NULLsubtitle=Kontingencna tabela)

gt addTable(rtfDoctable(Kraj=izbor$krajSpol=izbor$spol))

gt kontingencna tabela

gt

gt

gt regKoeflt-summary(lm(placa~izobrazba+spoldata=izbor))$coef

gt regKoeflt-format(asdataframe(regKoef)digits=c(4441)

scien=FALSE) da bo lepsi format

gt addHeader(rtfDoctitle=NULLsubtitle=Regresijski koeficienti)

gt addTable(rtfDocformat(regKoef))

gt izvozimo tabelo regresijskih koeficientov

gt

gt

gt Xlt-matrix(115ncol=3)

gt addHeader(rtfDoctitle=NULL

subtitle=Matrika brez imen stolpcev in vrstic)

gt dodajo se privzeta imena stolpcev

gt addTable(rtfDocX)

gt addText(rtfDocDodana so bila privzeta imena stolpcevn)

gt dodamo tekst

gt

gt colnames(X)lt-c(abc)

gt rownames(X)lt-15

gt addHeader(rtfDoctitle=NULL

subtitle=Matrika z imeni stolpcev in vrstic)

gt addTable(rtfDocX rownames=TRUE)

gt ce zelimo izpisati imena vrstic

gt done(rtfDoc) zapremo datoteko

gt rtf-package

gt vec pomoci o paketku

66 18 Resitve vaj

18 Resitve vaj

181 Podatkovne strukture

Vaja 1

gt xlt-c(10 23 43 43 32 12)

gt povXlt-sum(x)length(x)

gt povX

[1] 2716667

gt varXlt-sum((x - povX)^2)length(x)

gt varX

[1] 1778056

gt sdXlt-varX^(12) ali sqrt(varX)

gt sdX

[1] 1333437

gt reslt-c(povprecje=povXvarianca=varXsd=sdX)

gt res

povprecje varianca sd

2716667 17780556 1333437

Vaja 2

gt ylt-c(10 23 43 43 32 12)

gt x1lt-c(15 23 54 45 42 10)

gt x2lt-c(210 183 186 164 175 200)

gt Xlt-cbind(1x1x2)

gt blt-asvector(solve(t(X) X) t(X) y)

gt b

[1] 52819111 6240474 -0243166

gt names(b)lt-colnames(X)

gt b

x1 x2

52819111 6240474 -0243166

gt yNap lt- asvector(X b)

gt e lt- y - yNap

gt cbind(y=ynapoved=yNaprezidual=e)

y napoved rezidual

[1] 10 1111496 -11149560

[2] 23 2267282 03271824

[3] 43 4128879 17112125

1 poglavje ndash Uvod v R 67

[4] 43 4102201 19779861

[5] 32 3647505 -44750455

[6] 12 1042638 15736205

gt reslt-list(b=b napovedi=yNap rezidual=e)

gt res

$b

x1 x2

52819111 6240474 -0243166

$napovedi

[1] 1111496 2267282 4128879 4102201 3647505 1042638

$rezidual

[1] -11149560 03271824 17112125 19779861 -44750455

[6] 15736205

182 Funkcije in programiranje

Vaja 1

Resitev Vaje 1 iz podpodpoglavja 138 (podpoglavje Podatkovne struk-ture) v obliki funkcije

gt definicija funkcije

gt opisStatlt-function(x)

povXlt-sum(x)length(x)

varXlt-sum((x - povX)^2)length(x)

sdXlt-varX^(12) ali sqrt(varX)

reslt-c(povprecje=povXvarianca=varXsd=sdX)

return(res)

gt xlt-c(10 23 43 43 32 12)

gt opisStat(x)

povprecje varianca sd

2716667 17780556 1333437

Resitev Vaje 2 iz podpodpoglavja 138 (podpoglavje Podatkovne struk-ture) v obliki funkcije

gt regresijalt-function(yX)

Xlt-cbind(1X)

68 18 Resitve vaj

blt-asvector(solve(t(X) X) t(X) y)

names(b)lt-colnames(X)

yNap lt- asvector(X b)

e lt- y - yNap

reslt-list(b=b napovedi=yNap rezidual=e)

return(res)

gt ylt-c(10 23 43 43 32 12)

gt x1lt-c(15 23 54 45 42 10)

gt x2lt-c(210 183 186 164 175 200)

gt Xlt-cbind(x1x2)

gt regresija(yX)

$b

x1 x2

52819111 6240474 -0243166

$napovedi

[1] 1111496 2267282 4128879 4102201 3647505 1042638

$rezidual

[1] -11149560 03271824 17112125 19779861 -44750455

[6] 15736205

Vaja 2

gt vsotalt-function(x)

vsotalt-0

for(i in x)

vsota lt- vsota + i

return(vsota)

gt xlt-c(10 23 43 43 32 12)

gt vsota(x)

[1] 163

gt sum(x) enak rezultat

[1] 163

Vaja 3

1 poglavje ndash Uvod v R 69

gt funkcija s for zanko

gt fakForlt-function(n)

reslt-1

for(i in seq_len(n))

reslt-resi

return(res)

gt funkcija z while zanko

gt fakWhilelt-function(n)

reslt-1

while(ngt1)

reslt-resn

nlt-n-1

return(res)

gt funkcija z rekurzivno funkcijo

gt fakReklt-function(n)

if(nlt=1)

return(1)

else

return(nfakRek(n-1))

gt vse funkcije dajo seveda enak rezultat

gt fakFor(10)

[1] 3628800

gt fakWhile(10)

[1] 3628800

gt fakRek(10)

[1] 3628800

gt factorial(10) tudi R-jeva vgrajena funkcija

[1] 3628800

Vaja 4

gt medlt-function(x)

xlt-sort(x)

nlt-length(x)

if(n 2 ==0)

70 18 Resitve vaj

Slika 111 Resitev vaje 1 (Risanje)

Lep histogram

Moja spremenljivka

Gos

tota

6 8 10 12 14

000

005

010

015

return((x[n2]+x[n2+1])2)

else

return(x[ceiling(n2)])

gt xlt-c(10 23 43 43 32 12)

gt med(x)

[1] 275

183 Risanje

Vaja 1

gt setseed(2010)

gt xlt-rnorm(100mean=10sd=2)

gt hist(xcol=lightbluemain=Lep histogram

xlab=Moja spremenljivkafreq=FALSEylab=Gostota)

gt curve(dnorm(xmean=10sd=2)add=TRUExpd=NA)

Rezultat je prikazan na sliki 111

1 poglavje ndash Uvod v R 71

Vaja 2

gt setseed(2010)

gt xlt-rnorm(1000mean=10sd=2)

gt par(mfrow=c(22))

gt hist(xmain=priblizno 5 razredovfreq=FALSE

ylab=Gostota br=5)

gt hist(xmain=priblizno 10 razredovfreq=FALSE

ylab=Gostotabr=10)

gt hist(xmain=priblizno 30 razredovfreq=FALSE

ylab=Gostotabr=30)

gt hist(xmain=priblizno 50 razredovfreq=FALSE

ylab=Gostotabr=50)

gt par(mfrow=c(11))

Rezultat je prikazan na sliki 112

Vaja 3

gt setseed(2010)

gt xlt- rnorm(100mean=0sd=2)

gt ylt- x^2 +rnorm(100sd=3)

gt zlt-abs(abs(yx)^(14)+rnorm(100sd=05))

gt klt-asnumeric(cut(x+rnorm(100sd=1)breaks=5))

gt plot(y~xpch=kcex=z)

Rezultat je prikazan na sliki 113

19 Viri za poglabljanje znanja

191 Spletni viri

R je odprtokodni program zato je veliko virov na voljo tudi na spletu Tukajnastevamo nekaj najpomembnejsih

R-project Glavna spletna stran za R ki vsebuje veliko uporabnih vsebin pred-vsem pa omogoca tudi prenos programskega paketa RURL httpwww

r-projectorg

R-project ndash rdquouradnirdquo prirocniki Uradni prirocniki za R - precej tehnicno inosnovno URL httpcranr-projectorgmanualshtml

72 19 Viri za poglabljanje znanja

Slika 112 Resitev vaje 2 (Risanje)

približno 5 razredov

x

Gostota

5 10 15

000

005

010

015

približno 10 razredov

x

Gostota

4 6 8 10 12 14 16000

005

010

015

približno 30 razredov

x

Gostota

4 6 8 10 12 14 16

000

005

010

015

020

približno 50 razredov

x

Gostota

4 6 8 10 12 14 16

000

005

010

015

020

R-project ndash ostali prirocniki Poleg uradnih prirocnikov je na voljo tudi mnogodrugih prirocnikov in podobnega gradiva ki so ga prispevali uporabniki R-jaURL httpcranr-projectorgother-docshtml

Rseek Spletni iskalnik po vsebinah povezanih z R-jem vkljucno s seznami zaelektronsko posto za pomoc uporabnikom URL httpwwwrseekorg

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

R Graph Gallery Galerija grafov narejenih z R-jem vkljucno z uporabljeno kodoURL httpaddictedtorfreefrgraphiques

1 poglavje ndash Uvod v R 73

Slika 113 Resitev vaje 3 (Risanje)

-4 -2 0 2 4

-50

510

1520

x

y

RStudio Integrirano razvojno okolje za R Zdruzuje urejevalnik besedila z oznace-vanjem in samodokoncanjem R-jeve kode konzolo pomoc okno za graficneprikaze in se veliko vec URL httprstudioorg

Spletna stran prof dr Andreja Blejca o R-ju Vsebuje veliko koristnih vse-bin povezanih z R-jem vkljucno s prirocnikom Introduction to R URL httpablejecnibsiR

192 Knjizni viri

Splosne knjige o R-ju

Knjige v tem poglavju so splosni prirocniki za programski paket R Pokrivajo vsaali vecino podpoglavij tega poglavja vecinoma pa tudi podrocja iz ostalih dvehpoglavjih

74 19 Viri za poglabljanje znanja

bull Zuur Alain F Elena N Ieno in Erik HWG Meesters 2009 A BeginnerrsquosGuide to R New York Springer6

Zelo nezahtevna samo osnove R-ja (skoraj) brez statistike

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer7

Se posebej primerna za tiste ki ze poznajo SPSS ali SAS

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC8

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer9

Knjige o programiranju

bull Matloff Norman 2011 The Art of R Programming A Tour of StatisticalSoftware Design San Francisco No Starch PressManj zahtevna

bull Venables William N in Brian D Ripley 2000 S programming New YorkSpringerBolj zahtevna

Knjige o risanju

Prakticno vse splosne knjige o R-ju vsebujejo tudi poglavje o risanju ki ponavadizadostuje za osnovne grafe Spodaj nasteti knjigi pa bolj poglobljeno predstavljatarazlicne sisteme za risanje v R-ju (prva) ali se posebej podrobno dolocen nacinrisanja (druga)

bull Murrell Paul 2011 R graphics Boca Raton CRC PressRazlicni sistemi za risanje

bull Wickham Hadley 2009 ggplot2 Elegant Graphics for Data Analysis Do-rdrecht New York Springer URL httppubliceblibcomEBLPublic

PublicViewdoptiID=51146810

Sistem za risanje ki temelji na Wilsonovi (2005) graficni slovnici

6 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani7 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani8 Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf9 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani10Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani

1 poglavje ndash Uvod v R 75

Priprava dokumentovporocil

bull Xie Yihui 2013 Dynamic report generation with r and knitr Boca RatonChapman amp Hall Crc

bull Gandrud Christopher 2013 Reproducible research with R and RStudio BocaRaton Chapman amp HallCRC

110 Vprasanja za ponavljanje

1 R je vektorski jezik Kaj to pomeni

2 Katera podatkovna struktura v R-ju je najprimernejsa za shranjevanje podat-kovij ndash podatkov o vec spremenljivkah na vec enotah

3 Kako v R-ju priklicemo pomoc za neko funkcijo in kako iscemo po pomoci

4 Kateri izmed sledecih znakov so dovoljeni v imenih objektov v R-ju |- +

5 Na kaksen nacin v R-ju predstavimo nominalne spremenljivke

6 Ali R omogoca matricno racunanje

7 Kako R razsirimo z dodatnimi funkcijami

8 Katere vrste zank poznamo v R-ju in v cem se razlikujejo

9 Ali lahko z R-jem beremo podatkovne datoteke iz ostalih popularnih statistic-nih paketov (SPSS Stata ) Ce da kateri paketek potrebujemo za to

10 Katere funkcije lahko uporabimo za branje in pisanje tekstovnih podatkovnihdatotek

11 Od cesa je odvisno kaksne vrste graf narise funkcija plot

12 Kaksna je razlika med visokonivojskimi in nizkonivojskimi funkcijami za risa-nje

13 Kaj pomeni notacija y x in zakaj se uporablja v funkcijah za risanje

14 Kaksen graf narise funkcija plot ce kot argument podamo nominalno spre-menljivko in kaksen ce kot argumenta podamo dve intervalni spremenljivki

15 Na kaksne nacine lahko shranjujemo slike

16 Kako za neko funkcijo poiscemo njene argumente

17 V katerih formatih (vrstah datotek) lahko izdelujemo porocila z R-jem

77

2 poglavje

Univariatna in bivariatna statistika

Drugo poglavje obravnava kar veliko univariatnih in bivariatnih statisticnih metodtako s podrocja osnovne opisne statistike kot tudi inferencne statistike Na zacetkupoglavja so najprej predstavljeni podatki ki jih uporabljamo v tem poglavju skupajz navodili za njihovo pridobitev iz Arhiva druzboslovnih podatkov in branje z R-jem Sledi predstavitev osnovnih opisnih statistik predvsem mer srednjih vrednostiin variabilnosti ter mer za obliko porazdelitve (asimetrija sploscenost) Od tu naprejucbenik obravnava tudi metode inferencne statistike najprej pri pregledu metod zapreverjanje domnev o srednjih vrednostih (o eni srednji vrednosti in o razliki medsrednjimi vrednostmi za neodvisne in odvisne vzorce) in racunanje ustreznih inter-valov zaupanja kjer poleg parametricnih metod obravnavamo tudi neparametricneTo je tudi skoraj edini del ucbenika kjer tudi teoreticno predstavimo obravnavanemetode Sledi preverjanje domnev o delezih ter racunanje ustreznih intervalov zau-panja Na koncu poglavja obravnavamo se metode za merjenje o povezanosti dvehspremenljivk glede na merske lestvice spremenljivk ter za preverjanje domnev o po-vezanosti

21 Uporabljeni podatki

Za prikaz predstavljenih metod bomo uporabili podatke iz Evropske druzboslovneraziskave (httpwwweuropeansocialsurveyorg) za Slovenijo za leto 2004Uporabljena datoteka je bila pridobljena iz Arhiva druzboslovnih podatkov (Tosin drugi 2004) Opis raziskave in povezave do datoteke so dostopni na tem spletnemnaslovu httpwwwadpfdvuni-ljsiopisisjm042

Iz Arhiva druzboslovnih podatkov sem prenesel podatke v SPSS-formatu (rdquosavrdquo)Najprej preberemo podatke iz SPSS-ove datoteke ter uvozimo funkcije iz datotekerdquoUcbenikR-funkcijeRrdquo

78 22 Osnovne statistike

gt nalozimo podatke

gt library(foreign)

gt datalt-readspss(file=sjm042_f1sav

todataframe = TRUE usevaluelabels = TRUE

maxvaluelabels=5 usemissings=TRUE)

gt nalozimo tudi dodatne funkcije

gt source(UcbenikR-funkcijeR)

Nato preverimo stevilo enot in spremenljivk ter katere spremenljivke so v podatkih zuporabo funkcije names Dolga imena spremenljivk iz SPSS-a (labels) so shranjenav atributu variablelabels

gt dim(data) stevilo enot in spremenljivk

gt names(data)

gt attributes(data)$variablelabels

Zaradi dolzine izpisa ga tu ne navajamo

22 Osnovne statistike

R ze v osnovni razlicici (brez dodatnih paketkov) vsebuje funkcije za prakticno vseosnovne statistike Navedimo nekaj najosnovnejsih

mean aritmeticna sredina

median mediana

sd in var standardni odklon in varianca (vzorcna ndash (n - 1) v imenovalcu)

min in max minimum in maksimum

range razpon (vrne minimum in maksimum kot vektor)

quantile kvantili

Vse zgoraj nastete funkcije kot argument sprejmejo vektor (spremenljivko) V pri-vzeti obliki ne dovoljujejo manjkajocih vrednosti (NA) saj v tem primeru tudi vrnejoNA Vendar pa je mogoce nastaviti da manjkajoce vrednosti ignorirajo s parametromnarm=TRUE

Recimo da nas se posebej zanima spremenljivka G91 ndash Bruto placa Tako bomo nanjej izracunali osnovne statistike

gt G91 - bruto placa

gt izracunajmo osnovne statistike zanjo

gt sum(isna(data$G91))

2 poglavje ndash Univariatna in bivariatna statistika 79

[1] 325

gt prestejemo stevilo enot z veljavnimi vrednostmi pri G91

gt imamo jih samo 325

gt

gt hist(data$G91)narisemo histogram

gt pri vseh sledecih funkcijah dodamo argument narm=TRUE

gt brez njega bi zaradi manjkajocih vrednosti dobili

gt rezultat NA

gt range(data$G91 narm=TRUE) preverimo razpon

[1] 53 760

gt mean(data$G91 narm=TRUE) aritmeticna sredina

[1] 2257108

gt sd(data$G91 narm=TRUE) standardni odklon

[1] 120953

gt median(data$G91 narm=TRUE) mediana

[1] 200

gt quantile(data$G91 probs=c(02505075) narm=TRUE)

25 50 75

140 200 280

gt izracunamo kvartile

Zelo koristna je tudi funkcija summary ki izracuna povzetek ki je primeren gledena tip objektaspremenljivke Funkcija se lahko uporabi na razlicnih podatkovnihstrukturah (tudi na primer na celotnem podatkovnem okvirju)

Funkcija summary sicer naredi kar dober povzetek vendar pa pri stevilskih spre-menljivkah pogresam vsaj izracun standardnega odklona Lahko bi sicer naredilisvojo funkcijo lahko pa uporabimo funkcijo describe iz paketka psych ki polegtega izracuna tudi mere asimetrije in sploscenosti Tudi funkcijo describe lahkouporabimo le na eni spremenljivki ali na celotnem podatkovnem okvirju Je pa tafunkcija primerna le za intervalne in razmernostne spremenljivke Izracun naredisicer tudi za ostale a ni smiseln in zato jih v rezultatih oznaci z rdquordquo

V paketku psych najdemo tudi funkciji za koeficient asimetrije skew in splosce-nosti kurtosi in se veliko drugih uporabnih funkcij (ki se uporabljajo predvsem vpsihologiji in druzboslovju)

Poglejmo torej najprej uporabo summary na eni sami spremenljivki

gt povzetek za stevilsko spremenljivko

gt summary(data$G91)

Min 1st Qu Median Mean 3rd Qu Max NAs

530 1400 2000 2257 2800 7600 1117

gt in se za nominalno - spol

gt summary(data$O1F2)

80 22 Osnovne statistike

moski zenski NAs

648 762 32

gt summary uposteva tip podatka

gt

gt uporabili bomo tudi spremenljivko F6

gt ki jo moramo prej spremeniti nazaj v faktor

gt data$F6lt-makeFactorLabels(data$F6)

gt summary(data$F6)

nedokoncana OS dokoncana OS

69 368

2-3 letna poklicna gimnazija

347 434

2-letna visja visoka sola ali fakulteta

72 138

magisterij doktorat NAs

11 3

Funkcijo summary lahko uporabimo tudi na vec spremenljivkah ali celo na celotnempodatkovju (podatkovnem okvirju) a jo bomo tu zaradi varcevanja s prostoromuporabili le na nekaj izbranih spremenljivkah

gt izbraneSpremlt-c(O1F3O1F2F5F6F7G91G92)

gt izbor shranimo ker ga bomo uporabljal veckrat

gt da se lazje spomnimo kaj merijo

gt attributes(data)$variablelabels[izbraneSprem]

O1F3

leto rojstva

O1F2

spol

F5

Kje zivite

F6

izobrazba

F7

leta solanja

G91

Koliksna je obicajno vasa bruto placa

G92

Koliksna je obicajno vasa neto placa

gt summary(data[izbraneSprem])

O1F3 O1F2 F5

Min 1909 moski 648 veliko mesto132

1st Qu1944 zenski762 predmestje 204

2 poglavje ndash Univariatna in bivariatna statistika 81

Median 1960 NAs 32 manjse mesto326

Mean 1959 vas 626

3rd Qu1975 kmetija 148

Max 1989 NAs 6

NAs 16

F6 F7

gimnazija 434 Min 100

dokoncana OS 368 1st Qu 800

2-3 letna poklicna 347 Median 1100

visoka sola ali fakulteta138 Mean 1127

2-letna visja 72 3rd Qu1300

(Other) 80 Max 2300

NAs 3 NAs 11

G91 G92

Min 530 Min 70

1st Qu1400 1st Qu 725

Median 2000 Median 1200

Mean 2257 Mean 1248

3rd Qu2800 3rd Qu1700

Max 7600 Max 6000

NAs 1117 NAs 1046

Je s temi podatki kaj narobe

Minimum za spremenljivko G92 je rdquo7rdquo To mora biti napaka saj nihce ne moreimeti bruto place samo 7000 sit Verjetno gre za napako pri vnosu rdquo7rdquo je pogo-sta koda za manjkajoco vrednost pri tej spremenljivki pa bi se morala uporabljatikoda rdquo7777777rdquo Preglejmo ali je takih vrednosti vec Recimo tako da izpisemofrekvencno tabelo za to spremenljivko Nato popravimo podatke tako da vrednostiki niso mogoce (se posebej ce predvidevamo da gre za kode manjkajocih vrednosti)spremenimo v NA Nato ponovno izpisemo povzetek in se prepricamo da je sedajvse v redu

gt table(data$G92)

7 8 40 60 70 71 73 75 78 80 82 85 86 87 88

76 13 1 4 4 1 1 5 2 8 2 8 1 1 1

89 90 92 95 100 104 105 107 108 110 112 114 115 117 120

1 11 1 5 19 1 2 1 1 10 1 1 4 2 19

122 125 130 132 135 137 138 140 145 150 153 154 155 160 165

2 3 13 1 1 1 1 12 1 26 1 1 1 12 2

170 180 185 186 190 191 200 205 210 215 220 230 232 240 250

13 8 2 1 4 1 19 1 5 2 6 6 1 2 11

260 270 280 300 320 336 360 370 380 400 480 600

2 6 2 10 1 1 1 1 1 2 1 1

82 22 Osnovne statistike

gt data$G92[data$G92 in c(78)]lt-NA

gt vrednosti 7 in 8 spremenimo v NA

gt summary(data$G92)

Min 1st Qu Median Mean 3rd Qu Max NAs

400 1045 1500 1589 2000 6000 1135

Opozorilo

Kot kaze zgornji primer moramo vedno pred analizo opraviti osnovni pregledpodatkov da ugotovimo ali so v njih prisotne kaksne napake

Za racunanje opisnih statistik za stevilske spremenljivke pa je kot receno bolj pri-merna funkcija describe iz paketka psych Uporabimo se to

gt ce paketek psych ni namescen ga je treba namestiti z

gt installpackages(psych)

gt library(psych)

gt describe(data$G91)

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

range skew kurtosis se

1 707 146 252 671

gt lahko jo izracunamo tudi za vse podatke a tu jo zaradi

gt varcevanja s prostorom le za nekaj izbranih spremenljivk

gt describe(data[izbraneSprem])

vars n mean sd median trimmed mad min

O1F3 1 1426 195864 1896 1960 195917 2372 1909

O1F2 2 1410 154 050 2 155 000 1

F5 3 1436 332 112 4 339 148 1

F6 4 1439 337 134 3 326 148 1

F7 5 1431 1127 341 11 1120 297 1

G91 6 325 22571 12095 200 20885 10378 53

G92 7 307 15893 7413 150 14975 7413 40

max range skew kurtosis se

O1F3 1989 80 -020 -097 050

O1F2 2 1 -016 -198 001

F5 5 4 -060 -048 003

F6 7 6 046 -030 004

F7 23 22 013 026 009

G91 760 707 146 252 671

G92 600 560 165 481 423

gt skew(data$G91)

[1] 1455042

2 poglavje ndash Univariatna in bivariatna statistika 83

gt kurtosi(data$G91)

[1] 2516902

Spremenljivka rdquoBruto placardquo (G91) ima aritmeticno sredino 226 tisoc sit (enote so1000 sit) standardni odklon pa 121 tisoc sit Njena porazdelitev je precej asimetricnav desno in konicasta kar je pri porazdelitvi place sicer pricakovano

Funkciji summary in describe smo ze lahko neposredno uporabili na vec spremen-ljivkah naenkrat Pri funkcijah ki se uporabljajo na vektorjih pa upostevamo dalahko neko funkcijo uporabimo tudi na vec spremenljivkah s pomocjo funkcij applylapply in sapply

gt naredimo nov izbor s samo vsaj intervalnimi spremenljivkami

gt torej s samo intervalnimi in razmernostnimi spremenljivkami

gt izbraneIntSpremlt-c(O1F3F7G91G92)

gt izracunajmo aritmeticno sredino

gt apply(data[izbraneIntSprem]2mean narm=TRUE)

O1F3 F7 G91 G92

195863534 1126625 22571077 15893485

gt sapply(data[izbraneIntSprem]mean narm=TRUE) enako

O1F3 F7 G91 G92

195863534 1126625 22571077 15893485

gt lapply(data[izbraneIntSprem]mean narm=TRUE) drugacen izpis

$O1F3

[1] 1958635

$F7

[1] 1126625

$G91

[1] 2257108

$G92

[1] 1589349

gt standardni odklon

gt sapply(data[izbraneIntSprem]sd narm=TRUE)

O1F3 F7 G91 G92

18961464 3412601 120952965 74128283

gt razpon - funkcija lahko vrne tudi vec vrednosti

gt sapply(data[izbraneIntSprem]range narm=TRUE)

O1F3 F7 G91 G92

[1] 1909 1 53 40

[2] 1989 23 760 600

84 22 Osnovne statistike

gt za vecjo prilagodljivost lahko napisemo svojo funkcijo

gt mojPovzeteklt-function(x)c(

arit sredina = mean(xnarm=TRUE)

std odklon = sd(xnarm=TRUE)

st veljavnih vrednosti = sum(isna(x)))

gt sapply(data[izbraneIntSprem]mojPovzetek)

O1F3 F7 G91

arit sredina 195863534 11266247 2257108

std odklon 1896146 3412601 1209530

st veljavnih vrednosti 142600000 1431000000 3250000

G92

arit sredina 15893485

std odklon 7412828

st veljavnih vrednosti 30700000

Ce zelimo statistike izracunati po skupinah dolocenih z neko drugo spremenljivkoso koristne splosne funkcije kot je denimo aggregate ki omogocajo uporabo funkcijna skupinah Natancna uporaba je razvidna iz primera (in pomoci) Funkcija kotenega od argumentov sprejme funkcijo ki jo uporabi na vsaki skupini

V paketku psych pa obstaja tudi funkcija describeBy ki to omogoca neposredno

gt data$O1F2lt-factor(data$O1F2) odstranimo prazne kategorije

gt glede na eno spremenljivko

gt aggregate(x=data[c(G91G92)] by = list(data$O1F2)

FUN=mean narm=TRUE) rezultat je ena stevilka

Group1 G91 G92

1 moski 2375896 1689868

2 zenski 2099103 1472517

gt aggregate(x=data[c(G91G92)] by = list(data$O1F2)

FUN=mojPovzetek) vec stevilk

Group1 G91arit sredina G91std odklon

1 moski 2375896 1263618

2 zenski 2099103 1127086

G91st veljavnih vrednosti G92arit sredina

1 1730000 16898675

2 1450000 14725170

G92std odklon G92st veljavnih vrednosti

1 8153142 15100000

2 6430224 14700000

gt funkcija aggregate dela le na R 211 in novejsih

gt na starejsih verzijah R-ja javi napako

gt

2 poglavje ndash Univariatna in bivariatna statistika 85

gt glede na dve spremenljivki

gt aggregate(x=data[c(G91G92)]

by = list(data$O1F2 data$F5)

FUN=mean narm=TRUE) rezultat je ena stevilka

Group1 Group2 G91 G92

1 moski veliko mesto 2520000 1887059

2 zenski veliko mesto 2523333 1830000

3 moski predmestje 2311250 1593810

4 zenski predmestje 2092381 1472000

5 moski manjse mesto 2886923 1894186

6 zenski manjse mesto 2101143 1612353

7 moski vas 2270870 1574615

8 zenski vas 2028060 1335000

9 moski kmetija 1888889 1460556

10 zenski kmetija 1880000 1042857

gt aggregate(x=data[c(G91G92)]

by = list(data$O1F2 data$F5)

FUN=mojPovzetek) vec stevilk

Group1 Group2 G91arit sredina G91std odklon

1 moski veliko mesto 25200000 12794650

2 zenski veliko mesto 25233333 14355172

3 moski predmestje 23112500 9543917

4 zenski predmestje 20923810 9989640

5 moski manjse mesto 28869231 14734656

6 zenski manjse mesto 21011429 9263679

7 moski vas 22708696 12535992

8 zenski vas 20280597 12044064

9 moski kmetija 18888889 9864713

10 zenski kmetija 18800000 9854441

G91st veljavnih vrednosti G92arit sredina

1 1400000 18870588

2 1500000 18300000

3 2400000 15938095

4 2100000 14720000

5 3900000 18941860

6 3500000 16123529

7 6900000 15746154

8 6700000 13350000

9 2700000 14605556

10 700000 10428571

G92std odklon G92st veljavnih vrednosti

1 8084148 1700000

2 8344260 1900000

86 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

3 5339052 2100000

4 5679202 2500000

5 7964362 4300000

6 6177675 3400000

7 9427670 5200000

8 5901313 6200000

9 6550929 1800000

10 3413070 700000

Za funkcijo describeBy je koda spodaj izpis pa je zaradi varcevanja s prostoromizpuscen (seveda lahko kodo preizkusite sami)

gt z describeBy

gt glede na eno spremenljivko

gt describeBy(x=data[c(G91G92)]

group = data$O1F2)

gt glede na dve spremenljivki

gt describeBy(x=data[c(G91G92)]

group = list(data$O1F2 data$F5))

23 Preverjanje domnev o srednjih vrednostih in

pripadajoci intervali zaupanja

V tem podpodpoglavju so obravnavane le metode za preverjanje domnev o srednjivrednosti in o razliki dveh srednjih vrednosti (na odvisnih in neodvisnih vzorcih)Metode za preverjanje domnev o vec srednjih vrednostih so obravnavane v podpo-glavju 32 (Analiza variance (ANOVA)) Poleg tega bomo pri parametricnih pristopih(t-testih) omenili tudi pripadajoci interval zaupanja

Poleg parametricnega tukaj obravnavamo tudi neparametricni pristop Nekaj besedo razliki med obema

parametricni testi So rdquomocnejsirdquo11 a imajo obicajno strozje predpostavke

neparametricni testi Imajo manj predpostavk a so rdquosibkejsirdquo Ce predpo-stavke parametricnih testov (priblizno) drzijo izberemo parametricne testesicer neparametricne (ce njihove predpostavke drzijo)

Neparametricne teste pogosteje uporabljamo na manjsih vzorcih saj ima tam krsenjepredpostavk parametricnih testov hujse posledice

11Mocnejsi test je tisti ki pri izbrani stopnji tveganja zazna (statisticno znacilne) razlike pri manjsirazliki med vzorcno statistiko in vrednostjo iz nicelne domneve

2 poglavje ndash Univariatna in bivariatna statistika 87

Opozorilo

Neparametricni testi niso samo rdquorobustnejsa verzijardquo parametricnih ampak pre-verjajo drugacne domneve Za primere za katere tu ne podamo testa aliintervala zaupanja je ponavadi priporocljivo uporabiti metode ponovnega vzor-cenja

V ta namen so uporabne predvsem sledece funkcije

ttest Za vse vrste t-testov

vartest Test enakosti varianc Za preverjanje predpostavk t-testa

flignertest Se en test enakosti varianc Manj obcutljiv na odstopanje odnormalnosti Za preverjanje predpostavk t-testa

leveneTest Se en test enakosti varianc iz paketka car Tudi ta je manj ob-cutljiv na odstopanje od normalnosti Z argumentom center=mean (kar niprivzeta moznost) je to test ki ga uporablja SPSS Za preverjanje predpo-stavk t-testa

wilcoxtest Wilcoxonovi testi za en ali dva vzorca Test za dva neodvisnavzorca je znan tudi kot Mann-Whitneyjev test ali Wilcoxon-Mann-Whitneyjevtest

binomtest Uporaben za izvedbo testa predznaka (ang sign test) ki se upo-rablja kot test mediane

Preverjanje domnev uporabimo ce imamo oblikovano nicelno domnevo ki jo zelimo(obicajno) zavrniti Postopek temelji na tem da preverimo kako verjetno bi biloda bi na vzorcu dane velikosti dobili tako rdquoekstremnordquo vrednost testne statistike kotsmo jo dobili na nasem vzorcu

Intervale zaupanja podamo kadar zelimo podati oceno nekega parametra Ker ocenoracunamo na podlagi vzorca tockovna ocena (skoraj) zagotovo ni pravilna Takozelimo izracunati nek interval za katerega lahko z danim tveganjem (gotovostjo)trdimo da vsebuje populacijski parameter Ce se na primer vzorcne ocene g pa-rametra γ porazdeljujejo normalno s standardnim odklonom SE(g) potem lahkointerval zaupanja pri tveganju α izracunamo kot

P (g minus zα2SE(g) le γ ge g + zα2SE(g)) = 1minus α

Bolj splosno (tudi ce se vzorcne ocene ne porazdeljujejo normalno) vedno velja

P (Fminus1(p = α2 g ) le γ ge Fminus1(p = 1minus α2 g )) = 1minus α

Fminus1 je kvantilna funkcija za porazdelitev vzorcnih ocen g oziroma inverzna funkcijaporazdelitveni funkciji F Tu velja omeniti da R vsebuje kvantilne funkcija zavecino v statistiki uporabljenih porazdelitev Naj omenim samo najpomembnejse

qnorm Normalna porazdelitev

88 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

qt t porazdelitev

qf F porazdelitev

qbinom Binomska porazdelitev

qchisq χ2 porazdelitev

qunif Enakomerna porazdelitev

qexp Eksponentna porazdelitev

q Se kar nekaj drugih porazdelitev Ime funkcije se vedno zacne s rdquoqrdquosledi oznaka (ime ali okrajsava) za porazdelitev

Izracun intervala zaupanja bomo podrobneje prikazali samo za aritmeticno sredinoceprav bi lahko na zelo podoben nacin izracunali tudi intervala za razliko dveh arit-meticnih sredin na neodvisnih in odvisnih vzorcih (razlika je predvsem pri izracunustandardne napake vzorcne ocene

231 Preverjanje domneve o srednji vrednosti in pripada-joci interval zaupanja

Kaj je to srednja vrednost je odvisno od testa Pri parametricnih testih je to pravi-loma aritmeticna sredina drugje pa ni nujno To velja tudi pri problemih in testihki jih obravnavamo v sledecih podpodpoglavjih

T-test za en vzorec verjetno ze dobro poznate tako si poglejmo malce podrobnejele neparametricna testa za preverjanje domneve o srednji vrednosti

Wilcoxonov test oziroma Wilcoxonov test oznacenih rangov

bull Predpostavlja vsaj intervalno mersko lestvico

bull Naceloma predpostavlja simetricno porazdelitev rArr potem se lahko upo-rablja kot test mediane

bull V splosnem to torej ni test mediane in vsekakor ne rdquorobustenrdquotest o vrednosti aritmeticne sredine

bull Pogosto navajajo tudi da testira ali je porazdelitev simetricna glede natestno vrednost

bull Tehnicno gledano preverja ali je vsota rangov negativnih odklonov vecjaod pozitivnih

bull Uporablja se predvsem na majhnih vzorcih ko je porazdelitev simetricnaa ne normalna

Test predznaka Pogosto se uporablja tudi ime test mediane

bull Predpostavlja vsaj ordinalno mersko lestvico Zanima nas samopredznak odklona od testne vrednosti torej katera vrednost je vecja

2 poglavje ndash Univariatna in bivariatna statistika 89

Slika 21 Porazdelitev bruto place

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

020

4060

80

bull Testira domnevo o vrednosti mediane oziroma natancneje domnevoda je stevilo pozitivnih in negativnih odklonov enako

Najprej preverimo domnevo o srednji vrednosti V splosnem naj bo domneva H0Srednja vrednost bruto place je enaka 220 tisoc sit

Poleg tega izracunajmo tudi 90- interval zaupanja za povprecno placo

Porazdelitev bruto place je prikazana na sliki 21

gt najprej si oglejmo porazdelitev

gt hlt-hist(data$G91br=(016)50xlab=Bruto placa v 1000 sit

main=ylab=Frekvenca)

gt curve(dnorm(xmean=mean(data$G91narm=TRUE)

sd=sd(data$G91narm=TRUE))diff(h$breaks)[1]

sum(isna(data$G91)) add=TRUE)

gt describe(data$G91)

90 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

range skew kurtosis se

1 707 146 252 671

Iz slike 21 in opisnih statistik je razvidno da porazdelitev ni niti priblizno nor-malna Sedaj preverimo ali lahko zavrnemo domnevo da je povprecna placa enaka220000 sit prav tako pa izracunajmo tudi 90- interval zaupanja za povprecnobruto placo

gt ttest(data$G91mu=220conflevel = 090)

One Sample t-test

data data$G91

t = 085118 df = 324 p-value = 03953

alternative hypothesis true mean is not equal to 220

90 percent confidence interval

2146434 2367782

sample estimates

mean of x

2257108

Niti pri 10- tveganju ne moremo trditi da je povprecna bruto placa razlicna od220 tisoc sit Z 10- tveganjem lahko trdimo da je povprecna bruto placa med21464 in 23678 tisoc sit

gt interval zaupanja bi lahko izracunali tudi takole

gt nlt- sum(isna(data$G91)) stevilo veljavnih vrednosti

gt alfa lt- 01

gt mean(data$G91narm=TRUE) +

qt(c(alfa21-alfa2)df=n-1)sd(data$G91narm=TRUE)sqrt(n)

[1] 2146434 2367782

Wilcoxonov test se lahko uporablja za preverjanje domneve ali je porazdelitev brutoplace simetricna okoli 220000 sit Vendar pa ta domneva nima ravno smisla saj smovideli da je porazdelitev izrazito nesimetricna Tehnicno gledano preverja domnevoda je vsota rangov negativnih odklonov enaka vsoti rangov pozitivnih odklonov (priracunanju rangov se predznak ne uposteva)

gt wilcoxtest(data$G91mu=220)

Wilcoxon signed rank test with continuity correction

data data$G91

2 poglavje ndash Univariatna in bivariatna statistika 91

V = 21965 p-value = 01245

alternative hypothesis true location is not equal to 220

Tudi z Wilcoxonovim testom nicelne domneve pri 10- tveganju ne moremo za-vrniti Opravimo sedaj se test predznaka oziroma test medianePreverimo torejali je negativnih odklonov vec kot pozitivnih (pri tem odklonov z vrednostjo 0 neupostevamo)

gt nPozlt-sum(data$G91gt220 narm = TRUE)

gt manjkajoce vrednosti ignoriramo

gt nNeglt-sum(data$G91lt220 narm = TRUE)

gt binomtest(x=nPozn=nPoz+nNegp=05)

Exact binomial test

data nPoz and nPoz + nNeg

number of successes = 124 number of trials = 312

p-value = 00003462

alternative hypothesis true probability of success is not equal

to 05

95 percent confidence interval

03427360 04541027

sample estimates

probability of success

03974359

gt median(data$G92narm=TRUE)

[1] 150

Nicelno domnevo da je mediana place enaka 220 lahko zavrnemo pri 003- tve-ganju kar niti ni presenetljivo saj je vrednost mediane 200 binomtest lahkoklicemo tudi takole

gt binomtest(x=c(nPoznNeg)p=05)

232 Preverjanje domneve o razliki med srednjima vrednostmana odvisnih vzorcih in pripadajoci interval zaupanja

Vsi obravnavani testi za odvisne vzorce so enakovredni testom za en vzorec (o vre-dnosti srednje vrednosti) ki se izvedejo na razliki dveh spremenljivk To velja upo-stevati tudi pri interpretaciji rezultatov Pri t-testu to sicer ni problematicno sajvelja da je aritmeticna sredina razlike enaka razliki aritmeticnih sredin Enako pane velja za mediano ndash mediana razlike ni enaka razliki median

92 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

Slika 22 Porazdelitev zaupanja v Drzavni zbor in Evropski parlament

Zaupanje v Državni zbor

Fre

kven

ca

0 2 4 6 8 10

050

150

250

Zaupanje v Evropski parlament

Fre

kven

ca0 2 4 6 8 10

050

150

250

Opozorilo

Test predznaka torej preverja domnevo o vrednosti mediane razlike inne o vrednosti razlike median

Primer domneve je lahko H0 Zaupanje v drzavni zbor je v rdquopovprecjurdquo enakozaupanju v evropski parlament

Poleg tega izracunajmo tudi 90- interval zaupanja za razliko v zaupanju v obaparlamenta

Poglejmo si najprej porazdelitve obeh spremenljivk (slika 22) Kot vemo je kljucnaporazdelitev razlike obeh spremenljivk12 (slika 23) saj so testi za odvisne vzorceenakovredni testom za en vzorec na razliki spremenljivk

gt Pregledamo porazdelitve in opisne statistike

gt originalnih spremenljivk

gt par(mfrow=c(12))

gt hist(data$B4xlab=Zaupanje v Drzavni zbormain=

ylab=Frekvenca)

gt hist(data$B9xlab=Zaupanje v Evropski parlamentmain=

ylab=Frekvenca)

gt par(mfrow=c(11))

gt describe(data[c(B4B9)])

12Razliko izracunamo kot prva spremenljivka ndash druga spremenljivka

2 poglavje ndash Univariatna in bivariatna statistika 93

Slika 23 Porazdelitev razlike med zaupanjem v Drzavni zbor in zaupanjem v Evrop-ski parlament

Razlika v zaupanju (Državni zbor ndash Evropski parlament)

Fre

kven

ca

-10 -5 0 5

010

020

030

040

0

vars n mean sd median trimmed mad min max range

B4 1 1387 413 238 4 410 148 0 10 10

B9 2 1247 453 241 5 457 297 0 10 10

skew kurtosis se

B4 011 -054 006

B9 -009 -070 007

gt razlike

gt hlt-hist(data$B4-data$B9main=ylab=Frekvencabr=-107

xlab=Razlika v zaupanju (Drzavni zbor - Evropski parlament))

gt curve(dnorm(xmean=mean(data$B4-data$B9narm=TRUE)

sd=sd(data$B4-data$B9narm=TRUE))diff(h$breaks)[1]

sum(isna(data$B4-data$B9)) add=TRUE)

gt describe(data$B4-data$B9)

vars n mean sd median trimmed mad min max range

1 1 1231 -041 21 0 -037 148 -10 7 17

94 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

skew kurtosis se

1 -031 182 006

Na slikah 22 in 23 ter zgornjem izpisu vidimo da je porazdelitev obeh spremenljivkpodobna porazdelitev razlike pa sicer priblizno normalna z rahlo asimetrijo v levoin znatno konicavostjo

Sedaj preverimo se (nicelno) domnevo da je povprecno zaupanje v oba parlamentaenako ter izracunajmo 90- interval zaupanja

gt ttest(x=data$B4y=data$B9 paired=TRUE conflevel = 090)

Paired t-test

data data$B4 and data$B9

t = -6883 df = 1230 p-value = 9317e-12

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

-05093517 -03127442

sample estimates

mean of the differences

-04110479

Ugotovimo lahko da je razlika med obema povprecjema statisticno znacilna prizanemarljivem tveganju Z 10- tveganjem lahko trdimo da smo Slovenci leta 2004v povprecju med minus051 in minus031 tocke bolj zaupali Evropskemu parlamentu kotdrzavnemu zboru

Sedaj opravimo se neparametricne teste Pri Wilcoxonovem testu je formalna do-mneva da je vsota rangov negativnih vrednosti enaka vsoti rangov pozitivnih vre-dnosti (pri racunanju rangov se predznak ne uposteva) Pri testu predznakamedianepreverimo ali je negativnih odklonov vec kot pozitivnih (odklonov z vrednostjo 0ne upostevamo)

gt wilcoxtest(x=data$B4y=data$B9 paired=TRUE)

Wilcoxon signed rank test with continuity correction

data data$B4 and data$B9

V = 112990 p-value = 9524e-12

alternative hypothesis true location shift is not equal to 0

gt nPozlt-sum((data$B4-data$B9)gt0 narm = TRUE)

gt manjkajoce vrednosti ignoriramo

gt nNeglt-sum((data$B4-data$B9)lt0 narm = TRUE)

gt binomtest(x=nPozn=nPoz+nNegp=05)

2 poglavje ndash Univariatna in bivariatna statistika 95

Exact binomial test

data nPoz and nPoz + nNeg

number of successes = 308 number of trials = 790

p-value = 6433e-10

alternative hypothesis true probability of success is not equal

to 05

95 percent confidence interval

03556961 04248759

sample estimates

probability of success

03898734

Na podlagi obeh testov lahko ugotovimo da je razlika med povprecjema statisticnoznacilno razlicna od 0 pri zanemarljivem tveganju oziroma da srednji vrednosti nistaenaki

233 Preverjanje domneve o razliki med srednjima vrednostmana neodvisnih vzorcih in pripadajoci interval zaupanja

Edini neparametricni test ki ga bomo obravnavali tu je Mann-Whitneyjev test(oziroma Wilcoxonov test za neodvisna vzorca ali Wilcoxon-Mann-Whitneyjev test)

bull Predpostavlja vsaj ordinalno mersko lestvico

bull Testira ali sta povprecna ranga enaka oziroma ali je verjetnost da imaenota iz 1 skupine vecjo vrednost kot enota iz 2 skupine enaka 05

bull Ce sta obliki porazdelitev v obeh skupinah podobni se lahko uporablja za testenakosti srednjih vrednosti

Primer domneve je lahko H0 rdquoSrednja vrednostrdquo za bruto placo je enaka pri moskihin zenskah

Poleg tega izracunajmo tudi 90- interval zaupanja za razliko v bruto placi moskihin zensk

Poglejmo si najprej opisne statistike in porazdelitvi spremenljivke na obeh vzorcih(slika 24)

gt opisne statistike

gt describeBy(x=data$G91group=data$O1F2mat=TRUE)

item group1 vars n mean sd median trimmed

11 1 moski 1 173 2375896 1263618 200 2184460

12 2 zenski 1 145 2099103 1127086 184 1951026

mad min max range skew kurtosis se

96 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

Slika 24 Porazdelitev bruto place pri moskih in zenskah

Moški

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

010

2030

40

Ženske

Bruto plača v 1000 sit

Fre

kven

ca0 200 400 600 800

010

2030

40

11 889560 61 760 699 1573864 2777364 9607112

12 978516 53 700 647 1263913 1745150 9359942

gt poglejmo porazdelitev

gt par(mfrow=c(12))

gt hist(data$G91[data$O1F2==moski]br=(016)50

xlab=Bruto placa v 1000 sitmain=Moskiylab=Frekvenca)

gt hist(data$G91[data$O1F2==zenski]br=(016)50

xlab=Bruto placa v 1000 sitmain=Zenskeylab=Frekvenca)

gt par(mfrow=c(11))

Predpostavka klasicne razlicice t-testa za neodvisne vzorce je tudi enakost variancZato izvedemo tudi test enakosti varianc a se nanj ni dobro prevec opirati Privelikih vzorcih je namrec precej obcutljiv in zazna razlike v variancah veliko prejkot le-te zacnejo vplivati na veljavnost klasicnega t-testa

gt vartest(G91~O1F2data=data)

F test to compare two variances

data G91 by O1F2

F = 12569 num df = 172 denom df = 144 p-value =

01561

alternative hypothesis true ratio of variances is not equal to 1

95 percent confidence interval

09159805 17172157

sample estimates

2 poglavje ndash Univariatna in bivariatna statistika 97

ratio of variances

1256949

gt flignertest(G91~O1F2data=data)

Fligner-Killeen test of homogeneity of variances

data G91 by O1F2

Fligner-Killeenmed chi-squared = 013014 df = 1

p-value = 07183

gt neobcutljiv na odstopanja od normalnosti

gt library(car)

gt leveneTest(G91~O1F2data=data)

Levenes Test for Homogeneity of Variance (center = median)

Df F value Pr(gtF)

group 1 00538 08167

316

gt neobcutljiv na odstopanja od normalnosti

gt leveneTest(G91~O1F2data=data center=mean)

Levenes Test for Homogeneity of Variance (center = mean)

Df F value Pr(gtF)

group 1 0369 0544

316

gt razlicica kot jo uporablja SPSS

gt malce manj robustna

Glede na to da so vsi testi enakosti varianc pokazali da domneve o enakih variancahne moremo zavrniti lahko (brez zadrzkov kar se tice enakosti varianc) izvedemo t-test s predpostavko enakih varianc Poleg tega bomo izracunali tudi 90- intervalzaupanja za razliko aritmeticnih sredin

gt ttest(G91~O1F2data=datavarequal=TRUE conflevel = 090)

Two Sample t-test

data G91 by O1F2

t = 2043 df = 316 p-value = 004188

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

5328537 50029964

sample estimates

mean in group moski mean in group zenski

2375896 2099103

Pri 5- tveganju so razlike statisticno znacilne torej lahko s takim tveganje trdimoda imajo moski v povprecju visjo placo tudi na populaciji Z 10- tveganjem lahkotrdimo da imajo moski v povprecju od 533 do 5003 tisoc sit visjo placo kot zenske

98 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

Ce ne bi zeleli predpostaviti enakih varianc bi bila koda kot sledi Testa ne bomoopravili ker v tem primeru ni potrebe

gt ttest(G91~O1F2data=datavarequal=FALSE conflevel = 090)

gt ali

gt ttest(G91~O1F2data=data conflevel = 090)

gt argumenta varequal=FALSE ni treba navajati

gt ker je to privzeta vrednost

Sedaj pa opravimo se ustrezen neparametricen test torej Mann-Whitneyjev test

gt wilcoxtest(G91~O1F2data=data)

Wilcoxon rank sum test with continuity correction

data G91 by O1F2

W = 14496 p-value = 00167

alternative hypothesis true location shift is not equal to 0

Tudi tu ugotovimo da so razlike med srednjimi vrednostmi statisticno znacilne pri5- tveganju oz natancneje v tem primeru pri 17- tveganju

24 Preverjanje domnev o delezih in pripadajoci

intervali zaupanja

Domneve o delezih lahko preverjamo na vec nacinov V primeru velikih vzorcevobicajno predpostavljamo da se delezi ali razlike med delezi porazdeljujejo pribli-zno normalno Alternativni nacin za preverjanje domnev o delezih je s pomocjokontingencnih tabel in χ2 porazdelitve vendar je tudi ta le priblizen Za posamezneprobleme bomo obravnavali tudi natancne teste ki pa se od problema do problemarazlikujejo

V praksi se pogosto uporablja tudi pristop pri katerem se deleze obravnava kotpovprecja spremenljivk ki imajo vrednosti 0 in 1 V primeru dovolj velikih vzorcevin neekstremnih delezev (ki niso blizu 0 ali 1) je ta pristop primeren

2 poglavje ndash Univariatna in bivariatna statistika 99

241 Preverjanje domneve o vrednosti deleza in pripadajociinterval zaupanja

Nekih volitev se jih je udelezilo 687 anketirancev Preverili bomo domnevo dase je volitev udelezilo 70 volilnih upravicencev Ker je vzorec velik in delez niekstremen uporaba priblizkov ni problematicna

gt pogledamo frekvencno tabelo odgovorov (vec o tem kasneje)

gt tbllt-table(data$B11)

gt tbl

da ne

940 432

gt izracunamo deleze

gt proptable(tbl)

da ne

06851312 03148688

gt stevilo tistih ki so odgovorili z da ali ne

gt nlt-sum(tbl)

gt n

[1] 1372

gt delez tistih ki so glasovali

gt plt-tbl[1]n

gt p

da

06851312

gt preverjanje domneve s pomocjo klasicnega z-testa

gt H0 pi=piH=070

gt piHlt-070

gt izracun standardne napake

gt sePlt-sqrt(p(1-p)n)

gt izracun z statistike

gt zlt-(p-piH)seP

gt izracunamo p-vrednost (dvostranska)

gt 2pnorm(-abs(z))

da

02357121

Domnevo bi lahko zavrnili sele pri 236- tveganju in je zato ne zavrnemo Torej nemoremo trditi da se volitev ni udelezilo 70 volilnih upravicencev (ampak vec alimanj)

Namesto normalne bi bilo sicer bolje uporabiti t-porazdelitev (ker smo standardnonapako ocenili na vzorcu) a pri tako velikih vzorcih v obeh primerih dobimo enakrezultat

100 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

gt 2pt(-abs(z)df=n-1)

da

02359176

Izracunajmo sedaj se klasicna intervala zaupanja (z uporabo normalne in t poraz-delitve)

gt alfa lt- 01

gt (intZlt-p + qnorm(c(alfa21-alfa2))seP)

[1] 06645058 07057566

gt (intTlt-p + qt(c(alfa21-alfa2)df=n-1)seP)

[1] 06644919 07057705

S 10- tveganjem torej lahko trdimo da se je volitev udelezilo med 066 (066 pri t-porazdelitvi) in 071 volilnih upravicencev

Sedaj bomo preverili domnevo se s χ2-testom in natancnim testom (preko binomskeporazdelitve) Test preko binomske porazdelitve je pravzaprav najnatancnejsi Obefunkciji zraven izracunata tudi interval zaupanja

gt preko hi-kvadrat testa

gt proptest(x=tbl[1]n=np=piH conflevel=1-alfa)

1-sample proportions test with continuity correction

data tbl[1] out of n null probability piH

X-squared = 13745 df = 1 p-value = 0241

alternative hypothesis true p is not equal to 07

90 percent confidence interval

06637884 07057324

sample estimates

p

06851312

gt dobimo tudi interval zaupanja

gt

gt se natancen test

gt binomtest(x=tbl[1]n=np=piH conflevel=1-alfa)

Exact binomial test

data tbl[1] and n

number of successes = 940 number of trials = 1372

p-value = 02273

alternative hypothesis true probability of success is not equal

to 07

2 poglavje ndash Univariatna in bivariatna statistika 101

90 percent confidence interval

06638601 07058132

sample estimates

probability of success

06851312

Rezultatov zaradi podobnosti s prejsnjimi ne bom interpretiral

Za konec naredimo se test preko povprecij torej t-test Tu upostevamo da je pov-precje spremenljivke ki ima vrednosti le 0 in 1 pravzaprav delez enic Ta test jezaradi popolne krsitve predpostavke o normalnosti manj primeren ceprav priblizekpri velikih vzorcih ni slab

gt xlt-data$B11

gt xlt-(x==da)1

gt ttest(xmu=piH conflevel=1-alfa)

One Sample t-test

data x

t = -11853 df = 1371 p-value = 02361

alternative hypothesis true mean is not equal to 07

90 percent confidence interval

06644843 07057780

sample estimates

mean of x

06851312

Kot vidimo so rezultati v tem primeru (zaradi velikega vzorca) res skoraj identicni

242 Preverjanje domnev o razliki med delezema na neod-visnih vzorcih in pripadajoci intervali zaupanja

Tudi tu lahko uporabimo podobne pristope kot pri prejsnjem primeru Preverimodomnevo da je delez volivcev enak pri zenskah in moskih Najprej izracunamokontingencno tabelo (vec o tem v podpodpoglavju 252)

gt izracunamo kontingencno tabelo

gt tbllt-table(data$O1F2data$B11)

gt tbl

da ne

moski 427 188

zenski 492 235

102 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

gt izracunamo deleze

gt proptable(tblmargin=1)

da ne

moski 06943089 03056911

zenski 06767538 03232462

gt stevilo enot

gt nlt-apply(tbl1sum)

gt n

moski zenski

615 727

gt delez tistih ki so glasovali

gt plt-tbl[1]n

gt p

moski zenski

06943089 06767538

Najprej zopet s pomocjo klasicnega z-testa preverimo domnevo

gt H0 piM=piZ

gt izracun standardne napake

gt pSkuplt-sum(tbl[1])sum(n)

gt sePlt-sqrt(sum(pSkup(1-pSkup)n))

gt izracun z statistike

gt zlt-(p[1]-p[2])seP

gt izracunamo p-vrednost (dvostranska)

gt 2pnorm(-abs(z))

moski

04903852

Domnevo o enakosti delezev bi lahko zavrnili sele pri 49- tveganju in je zato nezavrnemo Tako ne moremo trditi da se delez volivcev na populaciji med spolomarazlikuje Sledijo se ostali testi torej χ2-test in test preko povprecij Pri obehdobimo tudi interval zaupanja za razliko delezev

gt preko hi-kvadrat testa

gt proptest(x=tbl conflevel=1-alfa)

2-sample test for equality of proportions with

continuity correction

data tbl

X-squared = 039783 df = 1 p-value = 05282

alternative hypothesis twosided

90 percent confidence interval

2 poglavje ndash Univariatna in bivariatna statistika 103

-002575264 006086296

sample estimates

prop 1 prop 2

06943089 06767538

gt dobimo tudi interval zaupanja

gt

gt preko povprecij

gt xlt-data$B11

gt xlt-(x==da)1

gt spollt-data$O1F2

gt ttest(x~spol varequal=TRUE conflevel=1-alfa)

Two Sample t-test

data x by spol

t = 06893 df = 1340 p-value = 04908

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

-002436485 005947517

sample estimates

mean in group moski mean in group zenski

06943089 06767538

Tu ugotovimo da ne moremo trditi da se delez volivcev na populaciji med spolomarazlikuje Kot receno dobimo tudi intervala zaupanja Ce upostevamo prvega kije zanesljivejsi lahko pri 10- tveganju trdimo da je razlika v delezu volivcev medmoskimi in zenskami med minus002575 in 006086

25 Frekvencne in kontingencne tabele

251 Frekvencne tabele

Frekvencne in kontingencne tabele v R-ju dobimo z ukazom table ki izracunasamo frekvence Za dodajanje vsote (rdquoSkupajrdquo) lahko potem uporabimo funkcijoaddmargins za izracun odstotkov pa proptable

Funkcija table s privzetimi vrednostmi ne uposteva manjkajocih vrednosti Cezelimo imeti v tabeli tudi manjkajoce vrednosti (NA) moramo pri klicu funkcijetable nastaviti exclude=NULL

Malce bogatejso frekvencno tabelo je moc dobiti tudi s funkcijo frekTab ki senahaja v datoteki rdquoUcbenikR-funkcijeRrdquo

Za risanje frekvencnih tabel sta primerni predvsem funkciji barplot in pie

104 25 Frekvencne in kontingencne tabele

Zacnimo s frekvencno tabelo

gt tbllt-table(data$F5)

gt tbl

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija

148

gt addmargins(tbl) a skupaj

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija Sum

148 1436

gt addmargins(proptable(tbl)) + skupaj

veliko mesto predmestje manjse mesto vas

009192201 014206128 022701950 043593315

kmetija Sum

010306407 100000000

gt barplot(tbl)

gt pie(tbl)

Z argumentom exclude=NULL zahtevamo naj se izpisejo tudi manjkajoce vrednosti(oz natancneje naj se iz tabele nicesar ne izpusti)

gt z NA

gt table(data$F5exclude=NULL)

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija ltNAgt

148 6

Se primer malce bogatejse frekvencne tabele s funkcijo frekTab (iz datoteke rdquoUcbenikR-funkcijeRrdquo)

gt s funkcijo frekTab

gt frekTab(data$F5)

Frekvenca Kum frek Kumulativni

veliko mesto 132 132 9192201 9192201

predmestje 204 336 14206128 23398329

manjse mesto 326 662 22701950 46100279

vas 626 1288 43593315 89693593

kmetija 148 1436 10306407 100000000

2 poglavje ndash Univariatna in bivariatna statistika 105

252 Kontingencne tabele

Za kontingecne tabele lahko uporabimo iste funkcije kot za frekvencne tabele Ce ze-limo na primer na podlagi dveh spremenljivk oblikovati osnovno kontingencno tabelouporabimo funkcijo table in ji kot argumente podamo spremenljivke na podlagikaterih zelimo oblikovati tabelo (najprej spremenljivka v vrsticah nato v stolpcih)Ce pri podajanju spremenljivk (argumentov) podamo tudi imena argumentov (nprKraj=data$F5 spodaj) postanejo imena argumentov imena posameznih dimenzijtabele

Najprej izracunajmo kontingencno tabelo za kraj bivanja in spol skupaj z vsotamiVrednosti v tabeli tudi pretvorimo v deleze in zopet dodamo vsote

gt tbl2Dlt-table(Kraj=data$F5Spol=data$O1F2)

gt tbl2D

Spol

Kraj moski zenski

veliko mesto 56 72

predmestje 94 110

manjse mesto 151 160

vas 264 351

kmetija 78 69

gt skupaj z vsotami

gt addmargins(tbl2D)

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

Sum 643 762 1405

gt preracun v skupne deleze

gt proptable(tbl2D)

Spol

Kraj moski zenski

veliko mesto 003985765 005124555

predmestje 006690391 007829181

manjse mesto 010747331 011387900

vas 018790036 024982206

kmetija 005551601 004911032

gt ptbllt-proptable(tbl2D)

gt addmargins(tbl2D)

106 25 Frekvencne in kontingencne tabele

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

Sum 643 762 1405

gt preracun v deleze po stolpcih

gt proptable(tbl2Dmargin=2)

Spol

Kraj moski zenski

veliko mesto 008709176 009448819

predmestje 014618974 014435696

manjse mesto 023483670 020997375

vas 041057543 046062992

kmetija 012130638 009055118

gt addmargins(tbl2Dmargin=2)

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

gt ptbllt-addmargins(proptable(addmargins(tbl2Dmargin=2)

margin=2)margin=1)

gt ptbl

Spol

Kraj moski zenski Sum

veliko mesto 008709176 009448819 009110320

predmestje 014618974 014435696 014519573

manjse mesto 023483670 020997375 022135231

vas 041057543 046062992 043772242

kmetija 012130638 009055118 010462633

Sum 100000000 100000000 100000000

gt v na 2 decimalki

gt round(ptbl1002)

Spol

Kraj moski zenski Sum

veliko mesto 871 945 911

predmestje 1462 1444 1452

manjse mesto 2348 2100 2214

2 poglavje ndash Univariatna in bivariatna statistika 107

vas 4106 4606 4377

kmetija 1213 906 1046

Sum 10000 10000 10000

Za dvodimenzionalne tabele pa lahko za bogatejsi izpis (tipa SPSS) uporabimo tudifunkcijo CrossTable iz paketka gmodels

gt enostavneje s paketkom gmodels

gt installpackages(gmodels)

gt library(gmodels)

gt CrossTable(data$F5data$O1F2)

Cell Contents

|-------------------------|

| N |

| Chi-square contribution |

| N Row Total |

| N Col Total |

| N Table Total |

|-------------------------|

Total Observations in Table 1405

| data$O1F2

data$F5 | moski | zenski | Row Total |

-------------|-----------|-----------|-----------|

veliko mesto | 56 | 72 | 128 |

| 0114 | 0096 | |

| 0438 | 0562 | 0091 |

| 0087 | 0094 | |

| 0040 | 0051 | |

-------------|-----------|-----------|-----------|

predmestje | 94 | 110 | 204 |

| 0004 | 0004 | |

| 0461 | 0539 | 0145 |

| 0146 | 0144 | |

| 0067 | 0078 | |

-------------|-----------|-----------|-----------|

manjse mesto | 151 | 160 | 311 |

| 0528 | 0446 | |

| 0486 | 0514 | 0221 |

| 0235 | 0210 | |

108 25 Frekvencne in kontingencne tabele

| 0107 | 0114 | |

-------------|-----------|-----------|-----------|

vas | 264 | 351 | 615 |

| 1083 | 0914 | |

| 0429 | 0571 | 0438 |

| 0411 | 0461 | |

| 0188 | 0250 | |

-------------|-----------|-----------|-----------|

kmetija | 78 | 69 | 147 |

| 1710 | 1443 | |

| 0531 | 0469 | 0105 |

| 0121 | 0091 | |

| 0056 | 0049 | |

-------------|-----------|-----------|-----------|

Column Total | 643 | 762 | 1405 |

| 0458 | 0542 | |

-------------|-----------|-----------|-----------|

gt zelimo samo po stolpcih + hi-kvadrat test - SPSS format

gt CrossTable(data$F5data$O1F2 propr=FALSE propc=TRUE

propt=FALSE propchisq=FALSE chisq = TRUE format=c(SPSS))

Cell Contents

|-------------------------|

| Count |

| Column Percent |

|-------------------------|

Total Observations in Table 1405

| data$O1F2

data$F5 | moski | zenski | Row Total |

-------------|-----------|-----------|-----------|

veliko mesto | 56 | 72 | 128 |

| 8709 | 9449 | |

-------------|-----------|-----------|-----------|

predmestje | 94 | 110 | 204 |

| 14619 | 14436 | |

-------------|-----------|-----------|-----------|

manjse mesto | 151 | 160 | 311 |

| 23484 | 20997 | |

-------------|-----------|-----------|-----------|

vas | 264 | 351 | 615 |

| 41058 | 46063 | |

-------------|-----------|-----------|-----------|

2 poglavje ndash Univariatna in bivariatna statistika 109

kmetija | 78 | 69 | 147 |

| 12131 | 9055 | |

-------------|-----------|-----------|-----------|

Column Total | 643 | 762 | 1405 |

| 45765 | 54235 | |

-------------|-----------|-----------|-----------|

Statistics for All Table Factors

Pearsons Chi-squared test

------------------------------------------------------------

Chi^2 = 6340168 df = 4 p = 01751438

Minimum expected frequency 5857936

Frekvencne tabele z vec kot dvema dimenzijama lahko ustvarimo na enak nacin kotdvodimenzionalne tabele s funkcijo table a je izpis pogosto zelo nepregleden Zapreglednejsi izpis lahko uporabimo funkcijo ftable ali tabelo pred izpisom pretvo-rimo v podatkovni okvir z asdataframe Kljub temu je izpis zelo dolg in ga zatoizpuscam

gt 3 in vec dimenzionalne tabele

gt tbl3Dlt-table(data$O1F2data$F5data$F6)

gt tbl3D

gt izpis postane zelo nepregleden

gt

gt ftable(tbl3D)

gt asdataframe(tbl3D)

253 Povezanost spremenljivk

S pomocjo kontingencnih tabel in na njih osnovanih mer lahko merimo in preverjamopovezanost med nominalnimi spremenljivkami

Za preverjanje domneve o neodvisnosti med dvema spremenljivkama lahko upora-bimo χ2-test Na voljo je v funkciji chisqtest ki kot argument sprejme vektormatriko ali dvodimenzionalno kontingencno tabelo Kot smo ze videli pa χ2-testvrne (ce tako izberemo) tudi funkcija CrossTable iz paketka gmodels

110 25 Frekvencne in kontingencne tabele

Funkcija chisqtest s privzetimi vrednostmi argumentov pri 2x2 tabelah uporabitudi Yatesov popravek omogoca pa tudi izracun (bolj) natancnih p vrednosti spomocjo simulacij (preko permutacijskega testa)

Statistiki si glede uporabe Yatesovega popravka niso enotni χ2-test ni natancen testampak le priblizek Uporaba Yatesovega popravka lahko v nekaterih primerih tapriblizek izboljsa lahko pa naredi χ2-test tudi prevec konzervativen

Za 2x2 tabele je na voljo tudi Fisherjev natancni test preko funkcije fishertest

Naredimo najprej obicajni χ2-test za povezanost tipa kraja bivanja in spola Prica-kujemo da nicelne domneve ne bomo mogli zavrniti

gt tblF5O1F2lt-table(data$F5data$O1F2)

gt tblF5O1F2

moski zenski

veliko mesto 56 72

predmestje 94 110

manjse mesto 151 160

vas 264 351

kmetija 78 69

gt chisqtest(tblF5O1F2)

Pearsons Chi-squared test

data tblF5O1F2

X-squared = 63402 df = 4 p-value = 01751

Domnevo bi lahko zavrnili sele pri 1751- tveganju in je zato ne zavrnemo

Poglejmo se primer tabele 2x2 kjer bomo preverjali domnevo o povezanosti (nicelnadomneva seveda predpostavlja neodvisnost) spremenljivk spol in rdquoclanstvo v politicnistrankirdquo Ker gre za tabelo 2x2 lahko uporabimo Yatesov popravek Izracunali bomoobe moznosti (s popravkom in brez njega)

gt attributes(data)$variablelabels[B21]

B21

Ali ste clan kaksne politicne stranke

gt data$B21lt-factor(data$B21)

gt (tblGndrBlt-table(data$B21data$O1F2)) 2x2 tabela

moski zenski

da 29 21

ne 618 738

2 poglavje ndash Univariatna in bivariatna statistika 111

gt hi-kvadrat test z Yatesovim popravkom (privzeta moznost)

gt chisqtest(tblGndrB)

Pearsons Chi-squared test with Yates continuity

correction

data tblGndrB

X-squared = 25174 df = 1 p-value = 01126

gt hi-kvadrat test brez Yatesovega popravka

gt chisqtest(tblGndrBcorrect = FALSE)

Pearsons Chi-squared test

data tblGndrB

X-squared = 29967 df = 1 p-value = 008343

Ce uporabimo privzeto moznost ce torej uporabimo Yatesov popravek lahko tuditu ugotovimo da niti pri 10- tveganju ne moremo trditi da sta spremenljivki spolin rdquoclanstvo v politicni strankirdquo povezani

Ce pa tega popravka ne bi uporabili bi pri 10- tveganju ze lahko trdili da staspremenljivki povezani

Ker je χ2-test pravzaprav le priblizek tukaj pa imamo celo dve razlicici pravilnostizracuna preverimo preko simulacij in Fisherjevega natancnega testa

gt chisqtest(tblGndrBsim=TRUE) p-vrednost preko simulacij

Pearsons Chi-squared test with simulated p-value

(based on 2000 replicates)

data tblGndrB

X-squared = 29967 df = NA p-value = 01134

gt fishertest(tblGndrB)

Fishers Exact Test for Count Data

data tblGndrB

p-value = 01112

alternative hypothesis true odds ratio is not equal to 1

95 percent confidence interval

08979363 30744330

sample estimates

odds ratio

1648488

Oba izracuna potrdita pravilnost izracuna χ2 z Yatesovim popravkom V primeruda bi izbrali χ2-test brez Yatesovega popravka bi dobili precej manjso stopnjo tve-ganja (priblizno 8-) ki pa bi bila glede na rezultate simulacij in Fisherjevega

112 26 Korelacija

natancnega testa napacna Uporaba popravka je torej v tem primeru primerna nipa vedno tako saj lahko popravek naredi test prevec konzervativen

Povezanost spremenljivk merimo s kontingencnimi koeficienti Ti so med drugim navoljo v funkciji assocstats v paketku vcd Razlaga vrnjenih koeficientov (glede naFerligoj 1994 166)

Phi-Coefficien Koren Pearsonovega koeficienta ndash pravzaprav gre v primeru binar-nih spremenljivk za Pearsonov korelacijski koeficient in ima tudi enako inter-pretacijo

Contingency Coeff Kontingencni koeficient (brez popravka)

Cramerrsquos V Kramerjev koeficient

gt installpackages(vcd)

gt library(vcd)

gt tblF5O1F2lt-table(data$F5data$O1F2)

gt assocstats(tblF5O1F2)

X^2 df P(gt X^2)

Likelihood Ratio 63309 4 017576

Pearson 63402 4 017514

Phi-Coefficient NA

Contingency Coeff 0067

Cramers V 0067

Vsi koeficienti imajo vrednost 0067 kar kaze da spremenljivki pravzaprav nistapovezani (oz sta zelo zelo sibko povezani)

26 Korelacija

Povezanost med ordinalnimi spremenljivkami in intervalnimi ali ordinalnimi spre-menljivkami merimo s pomocjo korelacijskih koeficientov

V R-ju lahko korelacijsko matriko izracunamo s pomocjo funkcije cor domneve okorelaciji pa lahko preverjamo s funkcijo cortest Prva (cor) izracuna korelacijomed vsemi spremenljivkami v podatkovnem okvirju ali matriki druga (cortest)izracuna in testira le eno korelacijo naenkrat Obe funkciji poznata naslednje kore-lacijske koeficiente

pearson Pearsonov koeficient (linearne) korelacije (privzeta moznost)

spearman Spearmanov koeficient korelacije

kendall Kendallov (τ) koeficient korelacijekonkordance

2 poglavje ndash Univariatna in bivariatna statistika 113

Slika 25 Razsevni grafikon ndash izobrazba in bruto placa

5 10 15 20

100

200

300

400

500

600

700

Izobrazba

Bru

to p

lača

Od teh treh je morda le Kendallov manj znan Tako kot Spearmanov koeficient ko-relacije je tudi Kendallov uporaben na ordinalnih spremenljivkah njegova vrednostpa se izracuna kot

(stevilo parov ki se ujemajo) ndash (stevilo parov ki se ne ujemajo)

stevilo vseh moznih parov

Pari ki se ujemajo so pari kjer je vrstni red enot (v paru) glede na obe spremenljivkienak tisti ki se ne ujemajo pa tisti kjer imata enoti drugacen vrstni red prispremenljivkah Stevilo vseh parov je n(nminus1)

2

Za primer vzemimo korelacijo med stevilom let solanja (F7) in bruto placo (G91)Odnos je prikazan tudi na sliki 25 Ocitno je zveza med spremenljivkama pozitivnaa nelinearna Izracunajmo in testirajmo vse tri koeficiente

gt narisemo razsevni grafikon

gt plot(G91~F7data=dataxlab=Izobrazbaylab=Bruto placa)

114 26 Korelacija

gt izracunamo Pearsonov koeficient korelacije

gt cor(x=data$F7y=data$G91use=completeobsmethod=pearson)

[1] 0550864

gt in preverimo domnevo (ki tudi izracuna korelacijo)

gt cortest(x=data$F7y=data$G91 method=pearson)

Pearsons product-moment correlation

data data$F7 and data$G91

t = 11862 df = 323 p-value lt 22e-16

alternative hypothesis true correlation is not equal to 0

95 percent confidence interval

04702540 06223585

sample estimates

cor

0550864

gt Spearmanov

gt cortest(x=data$F7y=data$G91 method=spearman)

Spearmans rank correlation rho

data data$F7 and data$G91

S = 2392800 p-value lt 22e-16

alternative hypothesis true rho is not equal to 0

sample estimates

rho

05817806

gt Kendallov

gt cortest(x=data$F7y=data$G91 method=kendall)

Kendalls rank correlation tau

data data$F7 and data$G91

z = 11146 p-value lt 22e-16

alternative hypothesis true tau is not equal to 0

sample estimates

tau

04474194

Vsi trije koeficienti kazejo na srednje mocno povezanost a vseeno je vrednost Ken-dallovega koeficienta bistveno nizja vrednost Spearmanovega pa najvisja

Kot smo ze omenili funkcija cor izracuna korelacijo med vsemi spremenljivkamiv podatkovnem okvirju funkcija cortest pa izracuna in testira le eno korelacijonaenkrat V ta namen je v datoteki rdquoUcbenikR-funkcijeRrdquo funkcija corTestDf kiomogoca da funkcijo cortest uporabimo na vec spremenljivkah Lepsi izpis sedobi z uporabo funkcije printCorTestDf

2 poglavje ndash Univariatna in bivariatna statistika 115

Slika 26 Razsevni grafikoni med vsemi spremenljivkami ki merijo zaupanje v in-stitucije

B4

0 4 8 0 4 8 0 4 8

04

8

04

8

B5

B6

04

8

04

8

B7

B8

04

8

04

8

B9

0 4 8 0 4 8 0 4 8 0 4 8

04

8

B10

Poglejmo si torej korelacije in statisticne znacilnosti na primeru sklopa spremenljivkB4-B10 (zaupanje v institucije) Izracunali bomo Pearsonove in Kendallove koefi-ciente Hiter pregled povezanosti med njimi je na sliki 26 (tocke so zaradi boljsepreglednosti rdquozatresenerdquo)

gt izbor shranimo

gt izborlt-c(B4 B5 B6 B7 B8 B9 B10)

gt izpisemo imena

gt attributes(data)$variablelabels[izbor]

B4 B5

drzavnemu zboru pravnemu sistemu

116 26 Korelacija

B6 B7

policiji politikom

B8 B9

politicnim strankam Evropskemu parlamentu

B10

Zdruzenim narodom

gt narisemo grafe

gt pairs(apply(data[izbor]2jitter)cex=03)

gt izracunamo Pearsonove korelacije

gt cor(data[izbor]use=pairwisecompleteobsmethod=pearson)

B4 B5 B6 B7 B8

B4 10000000 05946718 04616891 06415600 06311402

B5 05946718 10000000 05633582 05902897 05644650

B6 04616891 05633582 10000000 04800425 04414586

B7 06415600 05902897 04800425 10000000 08322464

B8 06311402 05644650 04414586 08322464 10000000

B9 06179115 05648233 04733737 05792044 05935754

B10 05188249 04824849 04596825 04667185 04893612

B9 B10

B4 06179115 05188249

B5 05648233 04824849

B6 04733737 04596825

B7 05792044 04667185

B8 05935754 04893612

B9 10000000 07889287

B10 07889287 10000000

gt tmplt-corTestDf(data[izbor]method=pearson)

gt printCorTestDf(tmp)

B4 B5 B6 B7 B8 B9 B10

B4 cor 0595 0462 0642 0631 0618 0519

p 0000 0000 0000 0000 0000 0000

n 1387 1358 1368 1374 1373 1231 1276

B5 cor 0595 0563 0590 0564 0565 0482

p 0000 0000 0000 0000 0000 0000

n 1358 1376 1365 1365 1364 1228 1274

B6 cor 0462 0563 0480 0441 0473 0460

p 0000 0000 0000 0000 0000 0000

n 1368 1365 1401 1380 1372 1238 1287

B7 cor 0642 0590 0480 0832 0579 0467

p 0000 0000 0000 0000 0000 0000

n 1374 1365 1380 1398 1380 1236 1283

B8 cor 0631 0564 0441 0832 0594 0489

2 poglavje ndash Univariatna in bivariatna statistika 117

p 0000 0000 0000 0000 0000 0000

n 1373 1364 1372 1380 1392 1236 1285

B9 cor 0618 0565 0473 0579 0594 0789

p 0000 0000 0000 0000 0000 0000

n 1231 1228 1238 1236 1236 1247 1227

B10 cor 0519 0482 0460 0467 0489 0789

p 0000 0000 0000 0000 0000 0000

n 1276 1274 1287 1283 1285 1227 1295

gt se Kendallove

gt cor(data[izbor]use=pairwisecompleteobsmethod=kendall)

B4 B5 B6 B7 B8

B4 10000000 04909485 03667314 05291117 05160148

B5 04909485 10000000 04606602 04794322 04546308

B6 03667314 04606602 10000000 03844481 03523638

B7 05291117 04794322 03844481 10000000 07607492

B8 05160148 04546308 03523638 07607492 10000000

B9 05049790 04485398 03736321 04639373 04807420

B10 04279313 03891029 03600516 03761712 03943594

B9 B10

B4 05049790 04279313

B5 04485398 03891029

B6 03736321 03600516

B7 04639373 03761712

B8 04807420 03943594

B9 10000000 06927734

B10 06927734 10000000

gt tmplt-corTestDf(data[izbor]method=kendall)

gt printCorTestDf(tmp)

B4 B5 B6 B7 B8 B9 B10

B4 cor 0491 0367 0529 0516 0505 0428

p 0000 0000 0000 0000 0000 0000

n 1387 1358 1368 1374 1373 1231 1276

B5 cor 0491 0461 0479 0455 0449 0389

p 0000 0000 0000 0000 0000 0000

n 1358 1376 1365 1365 1364 1228 1274

B6 cor 0367 0461 0384 0352 0374 0360

p 0000 0000 0000 0000 0000 0000

n 1368 1365 1401 1380 1372 1238 1287

B7 cor 0529 0479 0384 0761 0464 0376

p 0000 0000 0000 0000 0000 0000

n 1374 1365 1380 1398 1380 1236 1283

B8 cor 0516 0455 0352 0761 0481 0394

118 27 Viri za poglabljanje znanja

p 0000 0000 0000 0000 0000 0000

n 1373 1364 1372 1380 1392 1236 1285

B9 cor 0505 0449 0374 0464 0481 0693

p 0000 0000 0000 0000 0000 0000

n 1231 1228 1238 1236 1236 1247 1227

B10 cor 0428 0389 0360 0376 0394 0693

p 0000 0000 0000 0000 0000 0000

n 1276 1274 1287 1283 1285 1227 1295

Pri zanemarljivi stopnji tveganja lahko pri obeh koeficientih ugotovimo da so vsespremenljivke na populaciji povezane kar bi glede na to da merijo sorodne stvari inglede na velikost vzorca tudi pricakovali Tudi tu se pokaze da je linearna poveza-nost izmerjena s Pearsonovim koeficientom vecja od tiste izmerjene s Kendallovim

27 Viri za poglabljanje znanja

Za poglabljanje snovi iz tega poglavja so uporabni tudi spletni viri navedeni vpodpodpoglavju 191 (Spletni viri) a jih ju tu ponovno ne navajam Izpostavljamsamo enega s pomocjo katerega je mogoce zelo enostavno in hitro najti ustrezneukaze za izvedbo zelenih analiz

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

Za poglabljanje znanja iz statistike so primerni prakticno vsi splosni statisticni uc-beniki na primer

bull Minium Edward W Robert C Clarke in Theodore Coladarci 1999 Elementsof statistical reasoning New York Wiley

bull Levin Jack James Alan Fox in David R Forde 2013 Elementary Statisticsin Social Research (12th Edition) Pearson

bull Wonnacott Thomas H in Ronald J Wonnacott 1990 Introductory statisticsNew York Wiley

bull Kosmelj Blazenka in Joze Rovan 2007 Statisticno sklepanje Ljubljana Eko-nomska fakultetaSlovenski ucbenik ki ga uporabljajo na Ekonomski fakulteti Univerze v Lju-bljani

Osnovne statisticne analize v R-ju pa pokrivajo sledeci ucbeniki ki so bili sicervecinoma navedeni tudi pri virih v prvem poglavju

2 poglavje ndash Univariatna in bivariatna statistika 119

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer13

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer14

Se posebej primeren za tiste ki ze poznajo SPSS ali SAS sicer pa zelo zgoscenaobravnava

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC15

28 Vprasanja za ponavljanje

1 Kaj moramo narediti da nam funkcije kot so na primer mean in min vrnejoveljavno vrednost tudi ce imamo v podatkih manjkajoce vrednosti (NA) Ena-kovredno vprasanje je kaj moramo storiti da izracunajo statistiko samo napodlagi veljavnih (nemanjkajocih) vrednosti

2 Kateri paketek vsebuje veliko funkcij ki so zelo uporabne v druzboslovju in seposebej v psihologiji

3 S katerim argumentov vecini statisticnih funkcij povemo iz katerega podat-kovja (oziroma podatkovnega okvirja) naj crpa podatke (isce spremenljivke)

4 Kaksna je razlika med parametricnimi in neparametricnimi testi

5 Katero funkcijo ali funkcije moramo izbrati ce zelimo izvesti t-test za en vzo-rec za dva odvisna vzorca in za dva neodvisna vzorca Na podlagi cesa seodlocimo katerega izmed teh testov je treba izvesti

6 Kateri test za preverjanje domneve o srednji vrednosti ne zahteva vsaj inter-valne merske lestvice

7 Ali funkcija ttest s privzetimi argumenti pri izvedbi t-testa za neodvisnavzorca predpostavlja enako ali razlicno velike variance po skupinah

8 Kako funkcija table s privzetimi vrednostmi argumentov v kontingencnihtabelah izpisuje manjkajoce vrednosti (NA)

9 Kdaj lahko uporabimo Fisherjev natancni test za preverjanje domneve o po-vezanosti dveh nominalnih spremenljivk

10 Katere korelacijske koeficiente lahko izracuna funkcija cor

13Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani14Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani15Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf

120 28 Vprasanja za ponavljanje

11 Kako funkcija cor s privzetimi argumenti obravnava manjkajoce vrednosti ceracunamo korelacijsko matriko med vec spremenljivkami Kaksne so ostalemoznosti

12 Ali lahko na podlagi izpisa funkcije cor povemo ali lahko nicelno domnevo onepovezanosti dveh spremenljivk zavrnemo

121

3 poglavje

Analiza variance in linearna regre-sija

V zadnjem poglavju sta predstavljeni analiza variance in linearna regresija Pri obehzacnemo z najenostavnejsim (bivariatnim) primerom nato pa dodajamo dodatne ele-mente Poglavje kot obicajno zacnemo s predstavitvijo podatkov Sledi podpoglavjeo analizi variance kjer zacnemo z enofaktorsko analizo variance ki jo potem nad-gradimo v vecfaktorsko analizo variance kjer so mozne tudi interakcije med ucinkineodvisnih spremenljivk Prav tako obravnavamo tudi enofaktorsko analizo varianceza odvisne vzorce in Kruskal-Wallisov test vsote rangov neparametricno razlicicoklasicne enofaktorske analize variance za neodvisne vzorce

Analizi variance sledi podpoglavje o linearni regresiji kjer ponovno zacnemo z eno-stavno bivariatno linearno regresijo V nadaljevanju linearno regresijo najprej nad-gradimo z nelinearno regresijo vecina poglavja pa je namenjena multipli linearniregresiji torej linearni regresiji z vec neodvisnimi spremenljivkami Pri tem prika-zemo tudi kako lahko kot neodvisne spremenljivke vkljucimo nominalne in ordinalnespremenljivke ter kako v model vkljucimo interakcije med vplivi neodvisnih spremen-ljivk Proti koncu poglavja posebno pozornost namenimo preverjanju predpostavkZa bolj zagnane studente pa sta dodana podpodpoglavje o moznosti nadgrajevanjaoziroma izpopolnjevanja predstavljenega empiricnega primera (338) in podpodpo-glavje s prikazom izracuna ocen parametrov linearne regresije brez uporabe vgrajenihfunkcij za linearno regresijo (339) predvsem z uporabo linearne algebre (matric-nega racunanja)

31 Uporabljeni podatki

Za prikaz predstavljenih metod bomo tudi tu uporabili podatke iz Evropske druz-boslovne raziskave (httpwwweuropeansocialsurveyorg) za Slovenijo za leto

122 32 Analiza variance (ANOVA)

2004 Uporabljena datoteka je bila pridobljena iz Arhiva druzboslovnih podatkov(Tos in drugi 2004) Opis raziskave in povezave do datoteke so dostopne na tem sple-tnem naslovu httpwwwadpfdvuni-ljsiopisisjm042 Iz Arhiva druz-boslovnih podatkov sem prenesel podatke v SPSS-ovem formatu (rdquosavrdquo)

Uporabili bomo predvsem sledece spremenljivke

G91 bruto placa v 1000 sit

F5 kraj bivanja (5 kategorij)

O1F2 spol

Preberemo podatke iz SPSS-ove datotke

gt nalozimo podatke

gt library(foreign)

gt datalt-readspss(file=sjm042_f1sav

todataframe = TRUE usevaluelabels = TRUE

maxvaluelabels=5 usemissings=TRUE)

gt nalozimo tudi dodatne funkcije

gt source(UcbenikR-funkcijeR)

32 Analiza variance (ANOVA)

Analiza variance (ANOVA) je splosno ime za metode ki primerjajo pojasnjeno va-riabilnost (obicajno merjeno z vsoto kvadratov odklonov) z nepojasnjeno Ce jepojasnjena variabilnost dovolj velika v primerjavi z nepojasnjeno potem lahko za-kljucimo da ima tisto kar jo pojasnjuje nek vpliv na obravnavano odvisno spre-menljivko16

Omejili se bomo na probleme pri katerih preverjamo ali se aritmeticne sredinerazlikujejo med vzorci oziroma skupinami Pri takih primerih je pojasnjena varia-bilnost variabilnost med aritmeticnimi sredinami teh vzorcevskupin (variabilnostmed vzorci) nepojasnjena pa variabilnost znotraj vzorcev (variabilnost posameznihvrednosti okoli aritmeticnih sredin posameznih vzorcevskupin) Pojasnjena varia-bilnost je obicajno pojasnjena z eno ali vec nominalnimi17 spremenljivkami

16V splosnem je sicer odvisnih spremenljivk lahko tudi vec a tega ne bomo obravnavali17Oziroma spremenljivkami ki jih obravnavamo kot nominalne

3 poglavje ndash Analiza variance in linearna regresija 123

321 Enofaktorska analiza variance za neodvisne vzorce

Ta verzija analize variance je najbolj znana in najpogosteje uporabljena tako davecina ljudi ob izrazu rdquoanaliza variancerdquo pomisli ravno nanjo

Klasicna enofaktorska analiza variance za neodvisne vzorce ima sledece predpo-stavke

Normalnost (angl normality) Odvisna spremenljivka se znotraj vsake popula-cije porazdeljuje normalno

Enakost varianc (angl homogeneity of variance) Variabilnost je enaka v vseh(pod)populacijah (skupinah)

Ce je zadosceno tema dvema predpostavkama lahko uporabimo F-test (analizo va-riance) za testiranje domnev o razliki aritmeticnih sredin

Ce imamo velik vzorec (na primer kot 30 enot v vsakem vzorcu) lahko uporabimoF-test tudi ce predpostavki o normalnosti ni popolnoma zadosceno Pomembno jeda je porazdelitev v vseh populacijah priblizno enaka (na primer povsod podobnoasimetricna v desno) Pri majhnih vzorcih pa v primeru razlicnih varianc ne moremouporabiti obicajnega F-testa

V primeru da je krsena predpostavka o enakosti varianc pa lahko uporabimo Wel-chevo analizo variance (Welch 1951)

Predpostavko o normalnosti obicajno preverjamo graficno (histogram po skupinah)predpostavko o enakosti varianc pa preko opisnih statistik in formalnih testov Nekajmoznih testov

bartletttest Primeren ce je predpostavka o normalnosti izpolnjena

flignertest Neobcutljiv na odstopanja od normalnosti Temelji na rangih

leveneTest Tudi ta je neobcutljiv na odstopanja od normalnosti Z argumentomcenter=mean (kar ni privzeta moznost) je to test ki ga uporablja SPSS Navoljo je v paketku car

Enofaktorsko analizo variance in njeno neparametricno razlicico lahko izvedemo ssledecimi funkcijami

onewaytest Izvede klasicno in Welchevo enofaktorsko analizo variance

aov Bolj splosna funkcija za analizo variance (tudi vecfaktorsko) ki pa ne omogocamoznosti za razlicne variance (vsaj ne na enostaven nacin)

kruskaltest Kruskal-Wallisov test vsote rangov ndash neparametricna razlicica ana-lize variance oziroma razlicica Mann-Whitneyjevega testa za vec kot 2 vzorca

124 32 Analiza variance (ANOVA)

Opozorilo

Funkcija aov tako kot veliko drugih statisticnih funkcij kot glavni argumentsprejme formulo ki pove vpliv katerih neodvisnih spremenljivk na katero odvi-sno spremenljivko preucujemo Ce zelimo da se neodvisne spremenljivke obrav-navajo kot nominalne spremenljivke (in ne kot intervalne) morajo biti obveznotipa faktor (ali kvecjemu character ki ga funkcija samodejno spremeni vfaktor) Sicer je tisto kar dobimo bolj podobno linearni regresiji

Za primerjave katera povprecja se statisticno znacilno razlikujejo izvedemo takoimenovane rdquopost hocrdquo teste Za ta namen lahko v splosnem uporabimo funkcijopairwisettest Parne primerjave namrec niso nic drugega kot t-testi kjer do-bljene p-vrednosti popravimo tako da je skupno tveganje enako izbrani stopnji αPri funkciji pairwisettest lahko izberemo tudi metodo popravka p-vrednostiPriporocena je Holmova metoda (Holm 1979) ki je tudi splosno veljavna18 in jeboljsa kot Bofferonijeva

Ko je izpolnjena predpostavka o enakih variancah in smo za analizo variance upora-bili funkcijo aov lahko za te primerjave uporabimo tudi Tukeyjev test preko funkcijeTukeyHSD

Najprej preglejmo podatke ki jih bomo uporabljali v nadaljevanju (ne le v tempodpodpoglavju)

gt popravimo faktorje

gt table(data$O1F2)

moski zenski

648 762

gt table(data$F5)

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija

148

Spodaj je nekaj osnovnih izracunov Porazdelitve osnovnih spremenljivk so prika-zane na sliki 31

gt library(psych)

gt describe(data$G91)

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

18Tudi ce na primer ne moremo predpostavljati neodvisnosti med testi

3 poglavje ndash Analiza variance in linearna regresija 125

Slika 31 Porazdelitve uporabljenih spremenljivk

moski zenski

Spol

010

020

030

040

050

060

070

0

veliko mesto

predmestje

manjse mesto

vas

kmetija

Kraj bivanja

0 100 200 300 400 500 600

Bruto plača

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

050

100

150

range skew kurtosis se

1 707 146 252 671

gt frekTab(data$F5dec=2)[c(13)]

Frekvenca

veliko mesto 132 919

predmestje 204 1421

manjse mesto 326 2270

vas 626 4359

kmetija 148 1031

gt frekTab(data$O1F2dec=2)[c(13)]

Frekvenca

moski 648 4596

zenski 762 5404

gt if(exists(mardef)) mardeflt-par(mar)

gt par(mfrow=c(13))

gt plot(data$O1F2 main=Spol)

gt par(mar=c(3731))

gt plot(data$F5horiz=TRUElas=1main=Kraj bivanja)

gt par(mar=mardef)

gt hlt-hist(data$G91main=Bruto placa

xlab=Bruto placa v 1000 sit ylab=Frekvenca)

gt curve(dnorm(xmean=mean(data$G91narm=TRUE)

sd=sd(data$G91narm=TRUE))diff(h$breaks)[1]

sum(isna(data$G91)) add=TRUE)

gt par(mfrow=c(11))

Sedaj izracunajmo se opisne statistike za bruto placo po posameznih tipih krajevbivanja in narisemo ustrezne grafikone

126 32 Analiza variance (ANOVA)

gt describeBy(data$G91group=data$F5mat=TRUE)

item group1 vars n mean sd median

11 1 veliko mesto 1 30 2561000 13322715 225

12 2 predmestje 1 45 2209111 9705313 200

13 3 manjse mesto 1 77 2544675 12983812 220

14 4 vas 1 139 2138273 12217005 188

15 5 kmetija 1 34 1887059 9712271 170

trimmed mad min max range skew kurtosis

11 2532500 1690164 75 450 375 02320304 -156727318

12 2118919 1008168 95 490 395 08192702 -003695316

13 2374286 1037820 100 750 650 13747886 180644481

14 1961593 919212 53 760 707 17963112 418899970

15 1728929 593040 80 528 448 17785525 318494875

se

11 2432384

12 1446783

13 1479643

14 1036233

15 1665641

gt par(mfrow=c(23))

gt for(i in levels(data$F5))

hist(data$G91[data$F5==i] xlab=Bruto placa main=i

ylab=Frekvenca)

gt par(mfrow=c(11))

Namesto histograma pa lahko s spodnjo kodo zelo enostavno narisemo tudi skatlastegrafikone po skupinah

gt plot(G91~F5data=data)

V posameznih kategorijah imamo razmeroma malo enot vendar pa se vedno v vsakinad 30 Morda bi bilo smiselno narediti manj kategorij a glede na opisne statistikese kaksno zelo smiselno rekodiranje ravno ne ponuja19

Iz opisnih statistik vidimo da so standardni odkloni (koreni varianc) po skupinahrazmeroma podobni Tako lahko tudi brez testa sklepamo da s predpostavko oenakosti varianc ne bi prevec zgresili Bolj pa je problematicno ker sta asimetrija in(se bolj) konicavost bistveno visji v zadnjih dveh kategorijah (vas in kmetija) To jerazvidno tudi iz slike 32 Kljub temu bomo za demonstracijo izvedli tudi vse teste

19Ce bi kategorije zdruzevali na podlagi opisnih statistik (predvsem aritmeticnih sredin) bi bilo tonarobe Test ki bi ga naredili na podlagi tako zdruzenih kategorij ne bi bil veljaven

3 poglavje ndash Analiza variance in linearna regresija 127

Slika 32 Porazdelitev bruto place po krajih bivanja

veliko mesto

Bruto plača

Fre

kven

ca

100 200 300 400

01

23

45

6

predmestje

Bruto plača

Fre

kven

ca

100 200 300 400 500

02

46

810

12

manjse mesto

Bruto plača

Fre

kven

ca

100 200 300 400 500 600 700 800

05

1015

2025

3035

vas

Bruto plača

Fre

kven

ca

0 200 400 600 800

010

2030

4050

6070

kmetija

Bruto plača

Fre

kven

ca

100 200 300 400 500

02

46

810

12

gt bartletttest(G91~F5data=data)

Bartlett test of homogeneity of variances

data G91 by F5

Bartletts K-squared = 77277 df = 4 p-value =

01021

gt flignertest(G91~F5data=data)

Fligner-Killeen test of homogeneity of variances

data G91 by F5

Fligner-Killeenmed chi-squared = 11456 df = 4

p-value = 002189

gt neobcutljiv na odstopanja od normalnosti

gt library(car)

gt leveneTest(G91~F5data=data)

Levenes Test for Homogeneity of Variance (center = median)

Df F value Pr(gtF)

group 4 1789 01307

320

128 32 Analiza variance (ANOVA)

gt neobcutljiv na odstopanja od normalnosti

gt leveneTest(G91~F5data=data center=mean)

Levenes Test for Homogeneity of Variance (center = mean)

Df F value Pr(gtF)

group 4 22227 006639

320

---

Signif codes

0 0001 001 005 01 1

gt razlicica kot jo uporablja SPSS

gt malce manj robustna

Barlettov in Levenov test pokazeta da bi lahko domnevo o enakosti varianc zavrnilisele pri vec kot 10- tveganju Nasprotno pa Fligner-Killeenjev test domnevo zavrneze pri 22- tveganju Glede na to da same razlike med standardnimi odkloni nisotako velike lahko predpostavko o enakosti varianc obdrzimo Kljub temu pa bomo(za demonstracijo) izvedli obe razlicici analize variance (klasicno in Welchevo) Polegtega bomo izvedli tudi neparametricni Kruskal-Wallisov test

gt predpostavljamo enake variance

gt onewaytest(G91~F5data=datavarequal=TRUE)

One-way analysis of means

data G91 and F5

F = 27695 num df = 4 denom df = 320 p-value =

002742

gt predpostavljamo razlicne variance

gt varequal=FALSE bi lahko tudi izpustili ker je to

gt privzeta moznost

gt onewaytest(G91~F5data=datavarequal=FALSE)

One-way analysis of means (not assuming equal

variances)

data G91 and F5

F = 27964 num df = 400 denom df = 10316 p-value

= 002988

gt se preko funkcije aov

gt fitlt-aov(G91~F5data=data)

gt summary(fit)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 158604 39651 277 00274

Residuals 320 4581392 14317

---

3 poglavje ndash Analiza variance in linearna regresija 129

Signif codes

0 0001 001 005 01 1

1117 observations deleted due to missingness

gt rezultat je identicen kot pri prejsnji funkciji

gt ko smo predpostavljali enake variance

gt

gt kruskaltest(G91~F5data=data)

Kruskal-Wallis rank sum test

data G91 by F5

Kruskal-Wallis chi-squared = 12557 df = 4 p-value

= 001365

Obe razlicici ANOVE nam vrneta zelo podoben rezultat Glede na oba lahko stveganjem manjsim kot 3 trdimo da se povprecna bruto placa razlikuje gledena kraj bivanja Glede na Kruskal-Wallisov test pa lahko predpostavko o enakostisrednjih vrednosti zavrnemo ze pri 14- tveganju

Opozorilo

Domneva ki jo preverjamo s Kurskal-Walisovim testom ni vec enakaa

a Kruskal-Wallisov test preverja podobno domnevo kot Mann-Whitneyjev test ki je podrob-neje razlozen v podpodpoglavju 233

Poglejmo se katera povprecja so razlicna V primeru enakih varianc je za ta namennajprimernejsa funkcija TukeyHSD (ki jo uporabimo na rezultatu funkcije aov) re-zultat katere lahko tudi lepo narisemo V primeru neenakih varianc pa uporabimofunkcijo pairwisettest

gt TukeyHSD(fit) fit mora biti rezultat funkcije aov

Tukey multiple comparisons of means

95 family-wise confidence level

Fit aov(formula = G91 ~ F5 data = data)

$F5

diff lwr upr

predmestje-veliko mesto -35188889 -11255949 42181712

manjse mesto-veliko mesto -1632468 -7228018 69015248

vas-veliko mesto -42272662 -10835533 23810003

kmetija-veliko mesto -67394118 -14961878 14830549

manjse mesto-predmestje 33556421 -2803788 95150721

vas-predmestje -7083773 -6338365 49216108

130 32 Analiza variance (ANOVA)

kmetija-predmestje -32205229 -10679513 42384676

vas-manjse mesto -40640194 -8727244 5992052

kmetija-manjse mesto -65761650 -13335265 1829353

kmetija-vas -25121456 -8792562 37682705

p adj

predmestje-veliko mesto 07232946

manjse mesto-veliko mesto 09999963

vas-veliko mesto 04019543

kmetija-veliko mesto 01647508

manjse mesto-predmestje 05667485

vas-predmestje 09969399

kmetija-predmestje 07603006

vas-manjse mesto 01204253

kmetija-manjse mesto 00608866

kmetija-vas 08078518

gt par(mar=mardef+c(0800))

gt plot(TukeyHSD(fit)las=1) se graficna predstavitev rezultatov

gt par(mar=mardef)

gt TukeyHSD je primeren le ob predpostavki enakih varianc

gt

gt pairwisettest(x=data$G91g=data$F5padjustmethod= holm

poolsd=TRUE)

Pairwise comparisons using t tests with pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 100 - - -

manjse mesto 100 082 - -

vas 056 100 016 -

kmetija 020 100 008 100

P value adjustment method holm

gt pairwisettest(x=data$G91g=data$F5padjustmethod= bonf

poolsd=TRUE)

Pairwise comparisons using t tests with pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 100 - - -

manjse mesto 100 100 - -

vas 080 100 017 -

3 poglavje ndash Analiza variance in linearna regresija 131

kmetija 025 100 008 100

P value adjustment method bonferroni

gt ce ne zelimo uporabiti predpostavke o enakosti varianc

gt nastavimo poolsd=FALSE

gt

gt pairwisettest(x=data$G91g=data$F5padjustmethod= holm

poolsd=FALSE)

Pairwise comparisons using t tests with non-pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 0821 - - -

manjse mesto 1000 0754 - -

vas 0754 1000 0233 -

kmetija 0233 0754 0041 0821

P value adjustment method holm

Ce predpostavljamo enake variance lahko najdemo statisticno znacilne razlike selepri 10- tveganju (oziroma 6ndash8-) in se to le med manjsim mestom in kmetijoPodobno je tudi ce privzamemo da so variance razlicne le da lahko v tem primeruto trditev postavimo ze pri 41 tveganju

Za konec povprecja se graficno predstavimo na sliki 33

gt library(gplots)

gt plotmeans(G91~F5data=data)

322 Vecfaktorska analiza variance za neodvisne vzorce

Vecfaktorska analiza variance je analiza variance kjer so skupine dolocene z vec kotenim faktorjem Z njo torej preverjamo domnevo o vplivu dveh ali vec nominalnih(oziroma vsaj tako jih obravnavamo) neodvisnih spremenljivk na odvisno spremen-ljivko

Predpostavke vecfaktorske analize variance so podobne predpostavkam enofaktor-ske ndash porazdelitev v vseh skupinahcelicah (dolocenih s kombinacijo vseh faktorjevoziroma neodvisnih spremenljivk) je normalna z enako varianco

Analiza je bistveno enostavnejsa ce so neodvisne spremenljivke med seboj neodvi-snenepovezane kar pa se v druzboslovju (oziroma kjerkoli kjer podatke dobimo z

132 32 Analiza variance (ANOVA)

Slika 33 Porazdelitve uporabljenih spremenljivk

150

200

250

300

F5

G91

veliko mesto manjse mesto vas kmetija

n=30 n=45 n=77 n=139 n=34

opazovanjeanketiranjem in ne eksperimentom) redko zgodi V primeru da neod-visne spremenljivke med seboj niso neodvisne je pomemben vrstni red faktorjevModel namrec najprej poskusa pojasniti cim vec variabilnosti odvisne spremenljivkes 1 faktorjem nato z 2 3

Rezultati se torej spremenijo ce zamenjamo vrstni red faktorjev Od vrstnega redaje tudi odvisno kaj nek test sploh preverja Pri prvem faktorju test preverja ali le-ta pojasni vsaj nekaj variabilnosti odvisne spremenljivke (oziroma ali vpliva nanjo)Pri vseh ostalih pa preverja ali faktor pojasni kak del variabilnosti odvisne spre-menljivke ki se ni pojasnjen s faktorji ki so v modelu pred obravnavanim faktorjemVse to velja ce uporabimo rdquoklasicnordquo vsoto kvadratov oziroma vsoto kvadratov tipaI Obstajajo tudi druge vrste vsote kvadratov (tip II III IV za vec glejte Fox (2008159) Muenchen (2011 633ndash635) in IBM (2011)) vendar jih tu ne bomo obravnavaliVsote kvadratov tipa II in III lahko izracunate s pomocjo funkcije Anova iz paketkacar Pri tipu III vrstni red faktorjev ni pomemben

Preverjamo lahko tudi ali obstaja interakcija med vplivi posameznih faktorjev In-terakcija med vplivi faktorjev pomeni da se vpliv nekega faktorja razlikuje glede navrednosti nekega drugega faktorja

Na nasem primeru bomo preverjali ali lahko trdimo da kraj bivanja in spol vplivatana bruto placo Poleg tega bomo preverili tudi ali lahko trdimo da spol vpliva nabruto placo ce predhodno izlocimo vpliv kraja bivanja

3 poglavje ndash Analiza variance in linearna regresija 133

Pred izracunom bomo pripravili podatke in sicer tako da bomo v nov podatkovniokvir shranili samo za to analizo potrebne spremenljivke Tu bomo potem odstra-nili vse enote ki imajo manjkajoco vrednost pri katerikoli spremenljivki To bomonaredili tako da bomo v nadaljevanju pri vseh analizah upostevali iste enote (karnam bo omogocalo da bomo modele primerjali med seboj)

nnajprej torej pripravimo nov podatkovni okvir in odstranimo enote z manjkajocimivrednostmi Nato podobno kot pri enofaktorski ANOVI preverimo predpostavke(izracunamo opisne statistike po skupinah)

gt dataAovlt-data[c(G91O1F2F5)]

gt dataAovlt-naomit(dataAov)

gt odstranili smo enote z manjkajocimi vrednostmi

gt

gt describeBy(dataAov$G91group=dataAov[c(O1F2F5)]

mat=TRUE)

item group1 group2 vars n mean sd

11 1 moski veliko mesto 1 14 2520000 12794650

12 2 zenski veliko mesto 1 15 2523333 14355172

13 3 moski predmestje 1 24 2311250 9543917

14 4 zenski predmestje 1 21 2092381 9989640

15 5 moski manjse mesto 1 39 2886923 14734656

16 6 zenski manjse mesto 1 35 2101143 9263679

17 7 moski vas 1 69 2270870 12535992

18 8 zenski vas 1 67 2028060 12044064

19 9 moski kmetija 1 27 1888889 9864713

110 10 zenski kmetija 1 7 1880000 9854441

median trimmed mad min max range skew

11 226 2502500 1423296 75 450 375 03270494

12 200 2503846 1482600 80 450 370 02540330

13 200 2233500 1074885 120 490 370 07883115

14 184 1970000 948864 95 450 355 08518656

15 250 2741212 889560 110 750 640 11844391

16 170 1992759 770952 100 500 400 11385801

17 200 2089825 741300 61 760 699 19229792

18 180 1859091 1037820 53 700 647 15723492

19 170 1723913 593040 80 528 448 19727940

110 132 1880000 429954 103 350 247 06346745

kurtosis se

11 -142834380 3419514

12 -178216305 3706489

13 -002979449 1948144

14 -023542599 2179918

134 32 Analiza variance (ANOVA)

Slika 34 Porazdelitev bruto place po krajih bivanja in spolu

moski veliko mesto

Bruto plača

Fre

quen

cy

0 100 200 300 400 500

01

23

45

moski predmestje

Bruto plača

Fre

quen

cy

100 200 300 400 500

01

23

45

67

moski manjse mesto

Bruto plača

Fre

quen

cy

100 300 500 7000

510

15

moski vas

Bruto plača

Fre

quen

cy

0 200 400 600 800

05

1015

2025

3035

moski kmetija

Bruto plača

Fre

quen

cy

0 100 300 500

05

1015

zenski veliko mesto

Bruto plača

Fre

quen

cy

0 100 200 300 400 500

01

23

45

6

zenski predmestje

Bruto plača

Fre

quen

cy

100 200 300 400

01

23

45

6

zenski manjse mesto

Bruto plača

Fre

quen

cy

100 200 300 400 500

02

46

810

12

zenski vas

Bruto plača

Fre

quen

cy

0 200 400 600

05

1015

2025

30

zenski kmetija

Bruto plača

Fre

quen

cy

100 150 200 250 300 350

01

23

4

15 078377390 2359433

16 089652400 1565848

17 453230346 1509156

18 314171911 1471417

19 393661300 1898465

110 -156138214 3724628

gt par(mfrow=c(25))

gt for(iGndr in levels(dataAov$O1F2))

for(iF5 in levels(dataAov$F5))

hist(dataAov$G91[(dataAov$F5==iF5)ampdataAov$O1F2==iGndr]

xlab=Bruto placa main=paste(iGndriF5sep= ))

gt par(mfrow=c(11))

Sedaj je v nekaterih skupinah ze zelo malo enot Standardni odkloni med skupinaminiso pretirano razlicni se pa precej razlikujejo koeficienti asimetrije in sploscenostiVsekakor rezultati kazejo na to da porazdelitev v vseh skupinah ni (niti pribli-zno) normalna in tudi ne podobna med skupinami Predpostavke metode torej nisoizpolnjene zato moramo rezultate metode jemati z veliko rezervo

3 poglavje ndash Analiza variance in linearna regresija 135

Sedaj najprej ponovimo enofaktorsko ANOVO s funkcijo aov za vsak faktor po-sebej Poleg tega preverimo tudi ali sta neodvisni spremenljivki med seboj pove-zani

gt fitG91_F5lt-aov(G91~F5data=dataAov)

gt summary(fitG91_F5)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2298 00589

Residuals 313 4503794 14389

---

Signif codes

0 0001 001 005 01 1

gt fitG91_O1F2lt-aov(G91~O1F2data=dataAov)

gt summary(fitG91_O1F2)

Df Sum Sq Mean Sq F value Pr(gtF)

O1F2 1 60436 60436 4174 00419

Residuals 316 4575644 14480

---

Signif codes

0 0001 001 005 01 1

V primeru da bi bile predpostavke klasicne analize variance (normalnost enakevariance) izpolnjene (prej smo ugotovili da so krsene) bi lahko pri 59- tveganjutrdili da kraj bivanja vpliva na bruto placo in pri 42- tveganju da spol vplivana bruto placo

Kot smo omenili je pri vecfaktorski analizi variance pomembno ali sta neodvisnispremenljivki povezani Preverimo torej to predpostavko in izracunajmo moc pove-zanosti

gt tbllt-table(dataAov$O1F2dataAov$F5)

gt proptable(tblmargin=2)

veliko mesto predmestje manjse mesto vas

moski 04827586 05333333 05270270 05073529

zenski 05172414 04666667 04729730 04926471

kmetija

moski 07941176

zenski 02058824

gt lazje opazimo ali sta spremenljivki povazani

gt chisqtest(tbl)

Pearsons Chi-squared test

136 32 Analiza variance (ANOVA)

data tbl

X-squared = 98558 df = 4 p-value = 004293

gt installpackages(vcd)

gt library(vcd)

gt assocstats(tbl)

X^2 df P(gt X^2)

Likelihood Ratio 105712 4 0031830

Pearson 98558 4 0042928

Phi-Coefficient NA

Contingency Coeff 0173

Cramers V 0176

gt (pricakovana) zanimivost - na vseh podatkih povezanosti ni

gt chisqtest(table(data$O1F2data$F5))

Pearsons Chi-squared test

data table(data$O1F2 data$F5)

X-squared = 63402 df = 4 p-value = 01751

V nasih podatkih (tistih ki jih bomo uporabili pri analizi variance20) sta spremen-ljivki kraj bivanja in spol sibko povezani To je posledica tega da upostevamo samoenote z veljavnimi vrednostmi za bruto placo Na vseh enotah namrec povezanostini oziroma povezanost ni statisticno znacilna

Rekli smo da bomo preverjali ali lahko trdimo da kraj bivanja in spol vplivata nabruto placo Test celotnega modela je malce zahtevnejsi Standardne funkcije ga neizvedejo Lahko pa ga izvedemo zelo enostavno tako da model primerjamo z nicelnimmodelom Nicelni model je model kjer nimamo pojasnjevalnih spremenljivk V temmodelu so napovedi enake povprecju

Poleg tega bomo preverili tudi ali lahko trdimo da spol vpliva na bruto placo cepredhodno kontroliramo za vpliv kraja bivanja Tako bomo v model kot 1 spre-menljivko dali kraj bivanja kot 2 pa spol

gt izvedemo dvofaktorsko ANOVO

gt fitG91_F5O1F2lt-aov(G91~F5+O1F2data=dataAov)

gt summary(fitG91_F5O1F2)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2334 00556

O1F2 1 83242 83242 5875 00159

Residuals 312 4420552 14168

20Izlocili smo tiste enote ki vsaj pri eni spremenljivki niso imele veljavne vrednosti v veliki vecinipri bruto placi

3 poglavje ndash Analiza variance in linearna regresija 137

---

Signif codes

0 0001 001 005 01 1

gt rezultat pri spolu nam pove koliko ta model pojasni

gt vec kot model s samo krajem bivanja

gt anova(fitG91_F5fitG91_F5O1F2)

Analysis of Variance Table

Model 1 G91 ~ F5

Model 2 G91 ~ F5 + O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 313 4503794

2 312 4420552 1 83242 58752 001592

---

Signif codes

0 0001 001 005 01 1

gt ocenimo nicelni model

gt fitG91_1lt-update(fitG91_F5O1F2~1)

gt funkcija update popravi model glede na argumente

gt ali

gt fitG91_1lt-aov(G91~1data=dataAov)

gt

gt primerjamo model z nicelnim

gt da ocenimo statisticno znacilnost celotnega modela

gt anova(fitG91_1fitG91_F5O1F2)

Analysis of Variance Table

Model 1 G91 ~ 1

Model 2 G91 ~ F5 + O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 317 4636080

2 312 4420552 5 215527 30424 001069

---

Signif codes

0 0001 001 005 01 1

Iz rezultatov lahko razberemo

bull Pri 56- tveganju lahko trdimo da kraj bivanja vpliva na bruto placo Sto-pnja tveganja je manjsa kot pri enofaktorski ANOVI (kjer je bila 59-) kerje manjsa nepojasnjena varianca (del variance je sedaj pojasnjen s spolom)

bull Pri 16- tveganju lahko trdimo da spol vpliva na bruto placo ce izlocimovpliv kraja bivanja Ta stopnja tveganja je bistveno manjsa kot prej Pravza-prav je tudi pojasnjena vsota kvadratov (pri spolu) tu vecja To pomeni da

138 32 Analiza variance (ANOVA)

so razlike v bruto placi med spoloma vecje ce jih gledamo loceno po krajihbivanja kot ce jih gledamo skupaj

bull S priblizno 1- tveganjem lahko trdimo da spol ali kraj bivanja (vsaj enaizmed teh dveh spremenljivk) vplivata na bruto placo

Preverimo se ali obstaja tudi interakcija med vplivom spola in kraja bivanja Tardquoucinekrdquo moramo v model vedno vkljuciti oziroma navesti na koncu

gt izvedemo dvofaktorsko ANOVO

gt fitG91_F5O1F2Ilt-aov(G91~F5O1F2data=dataAov)

gt summary(fitG91_F5O1F2I)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2334 00557

O1F2 1 83242 83242 5874 00159

F5O1F2 4 56064 14016 0989 04136

Residuals 308 4364488 14170

---

Signif codes

0 0001 001 005 01 1

gt primerjamo model z nicelnim

gt da ocenimo statisticno znacilnost celotnega modela

gt anova(fitG91_1fitG91_F5O1F2I)

Analysis of Variance Table

Model 1 G91 ~ 1

Model 2 G91 ~ F5 O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 317 4636080

2 308 4364488 9 271591 21296 002692

---

Signif codes

0 0001 001 005 01 1

Interakcija med ucinkoma ni statisticno znacilna Ne moremo torej trditi da spoldrugace vpliva na bruto placo v razlicnih krajih bivanja Posledicno se tudi skupnaznacilnost modela zaradi vkljucitve interakcije zniza

323 Enofaktorska analiza variance za odvisne vzorce

Pogledali si bomo le najenostavnejsi primer analize variance za odvisne vzorce Ana-liza variance za odvisne vzorce je sorodna t-testu za odvisne vzorce le da je vzor-cevspremenljivk katerih povprecje preverjamo vec

3 poglavje ndash Analiza variance in linearna regresija 139

Analizo variance za odvisne vzorce lahko prav tako kot prejsnje tipe naredimopreko funkcije aov z ustreznimi argumenti vendar pa moramo pred uporabo po-datke prilagoditi Podatke je treba preurediti v podobno obliko kot jo imamo prineodvisnih vzorcih Potrebujemo torej eno odvisno spremenljivko in spremenljivkoki rdquodolocardquovzorce (oziroma originalne spremenljivke) Poleg tega pa moramo za vsakpodatek tudi vedeti kateri enoti pripada Za vsako enoto moramo imeti podatke zavse vzorcespremenljivke

Za to je uporabna tale funkcija21

gt razsiriPodatkelt-function(Xid=rownames(X)

varNames=colnames(X))

funkcija za pretvorbo podatkov v obliko

kot jo razumeta funkciji aov ali lm

n12lt-dim(X)

nlt-n12[1]

mlt-n12[2]

if(isnull(varNames)) varNameslt-1m

if(isnull(id)) idlt-1n

reslt-NULL

for(i in 1m)

reslt-rbind(resdataframe(id=idx=X[i]

var=varNames[i]))

return(res)

Funkcijo aov sicer uporabimo kot obicajno le da navedemo katera spremenljivkanam rdquodolocardquo enote oziroma natancneje povemo napake katerih rdquozapisovrdquo so kore-lirane Pozor Klic funkcije je casovno zahteven

Preverjali bomo domnevo ali Slovenci enako zaupamo Drzavnemu zboru (spremen-ljivka B4) Evropskemu parlamentu (B9) in Zdruzenim narodom (B10) Preglejmonajprej opisne statistike in pripravimo podatke

gt dataB4910lt-naomit(data[c(B4B9B10)])

gt za uporabo funkcije razsiriPodatke pripravimo

gt nov podatkovni okvir ki vsebuje le uporabljene

gt spremenljivke

gt describe(dataB4910)

21Funkcija se nahaja tudi v datoteki rdquoUcbenikR-funkcijeRrdquo

140 32 Analiza variance (ANOVA)

vars n mean sd median trimmed mad min max range

B4 1 1213 413 238 4 410 297 0 10 10

B9 2 1213 453 241 5 456 297 0 10 10

B10 3 1213 457 267 5 460 297 0 10 10

skew kurtosis se

B4 010 -057 007

B9 -008 -070 007

B10 -004 -082 008

gt dataB4910razlt-razsiriPodatke(dataB4910)

gt dataB4910raz[110] novi podatki izgledajo takole

id x var

1 1 2 B4

2 2 8 B4

3 4 4 B4

4 5 8 B4

5 6 3 B4

6 7 3 B4

7 8 7 B4

8 9 3 B4

9 11 2 B4

10 14 5 B4

Zaupanje v Evropski parlament in Zdruzene narode je bistveno visje kot v Drzavnizbor Preverimo ali je razlika statisticno znacilna

gt aovReplt-aov(x~var+Error(id)data=dataB4910raz)

gt summary(aovRep)

Error id

Df Sum Sq Mean Sq F value Pr(gtF)

Residuals 1212 17257 1424

Error Within

Df Sum Sq Mean Sq F value Pr(gtF)

var 2 148 7410 3404 264e-15

Residuals 2424 5277 218

---

Signif codes

0 0001 001 005 01 1

gt modeltables(aovReptype=means)

Tables of means

Grand mean

4409453

3 poglavje ndash Analiza variance in linearna regresija 141

var

var

B4 B9 B10

4125 4528 4575

Pri zanemarljivi stopnji tveganja lahko trdimo da Slovenci ne zaupamo vsem treminstitucijam enako

33 Linearna regresija

Z linearno regresijo ugotavljamo ce in ce kako ena ali vec neodvisnih spremenljivkvpliva(jo) na odvisno spremenljivko To vkljucuje tudi ugotavljanje moci vplivaocenjevanje prileganja modela oziroma pojasnjevalne moci modela preverjane pred-postavk in se kaj

Kot ze samo ime pove se omejimo na linearne vplive spremenljivk kar ce malcepoenostavimo pomeni da se vpliv posamezne spremenljivke ne spreminja v odvi-snosti od vrednosti odvisne spremenljivke Obstaja sicer tudi nelinearna regresija kijo lahko izvedemo na vec nacinov Pogosto tudi preko ustrezne transformacije spre-menljivk nelinearno regresijo prevedemo v linearno regresijo Na kratko se te temedotaknemo v podpodpoglavju 333 sicer pa tema ze presega obseg tega ucbenika

V ucbeniku tudi ne obravnavamo naprednejsih tem kot so na primer posploseni line-arni modeli in hierarhicni vecnivojski ali mesani modeli (glej Faraway 2006 Gelmanin Hill 2006 Snijders in Bosker 2012) Prav tako obravnavamo samo podatke zbranev eni casovni tocki ne pa na primer panelnih podatkov (glejte na primer Wooldridge2002)

Se vedno pa v tem podpoglavju obravnavamo precej siroko podrocje zato se tu sebolj kot v ostalih delih ucbenika omejimo na izvedbo analize (linearne regresije)v R-ju same teorije pa ne obravnavamo Za pridobitev znanja s tega podrocjapriporocam uporabo virov ki so navedeni v podpodpoglavju 34 se posebej Fox(2008)

331 Dodatne spremenljivke

Poleg spremenljivk ki smo jih ze uporabili pri analizi variance (glejte podpoglavje32) bomo od tu naprej uporabljali se spremenljivki F7 rdquoStevilo let solanjardquo in F21rdquoTipicno stevilo delovnih ur (vkljucno z nadurami) na tedenrdquo Graficni prikaz njunihporazdelitev je na sliki 35

Pri tem so upostevane samo enote ki imajo veljavne vrednosti pri vseh spremenljiv-kah ki jih bomo uporabili v regresiji (v kateremkoli modelu) ndash to so G91 O1F2 F5

142 33 Linearna regresija

F7 in F21 Na teh podatkih bomo opravili tudi vse linearne regresije Ta pristop smoizbrali zato da lahko rezultate razlicnih analiz med seboj primerjamo Funkcija lm 22

namrec izvede analizo na enotah ki imajo pri uporabljenih spremenljivkah veljavnevrednosti Posledica tega je da ce izvajamo vec razlicnih analiz z razlicnimi neod-visnimi spremenljivkami na originalnih podatkih niso v vseh analizah uporabljeneiste enote in zato rezultati niso primerljivi23

V praksi je v fazi izbire modela tak pristop (ce problem manjkajocih podatkov niprevelik) priporocljiv ko pa izberemo koncni model (predvsem dokoncno dolocimoneodvisne spremenljivke) pa je bolje ce upostevamo vse razpolozljive podatke (torejvse enote ki imajo veljavne vrednosti na spremenljivkah ki jih uporabimo v nekemmodelu)

V primeru manjkajocih vrednosti (torej takorekoc vedno) je najbolje da upostevamovse veljavne vrednosti (torej tudi veljavne vrednosti pri enotah ki imajo sicer tudikaksno manjkajoco vrednost) Izmed dobrih pristopov se najpogosteje uporabljajoveckratne imputacije oz multiple imputacije (Rubin 1987 1996) ki so tudi zelodobro podprte v paketku mice (Buuren in Groothuis-Oudshoorn 2011 Buuren 2012)Vendar pa to ze presega obseg tega ucbenika

Pripravimo torej najprej podatke ter preglejmo opisne statistike in porazdelitvi zadodatni spremenljivki

gt dataLRlt-naomit(data[c(G91O1F2F5F7F21)])

gt describe(dataLR[c(F7F21)])

vars n mean sd median trimmed mad min max range

F7 1 312 1236 308 12 1232 148 1 23 22

F21 2 312 4249 1240 42 4353 445 0 80 80

skew kurtosis se

F7 005 115 017

F21 -133 400 070

gt par(mfrow=c(12)mar=mardef)

gt hlt-hist(dataLR$F7main=Stevilo let solanja

xlab=Stevilo let solanja ylab=Frekvenca)

gt curve(dnorm(xmean=mean(dataLR$F7narm=TRUE)

sd=sd(dataLR$F7narm=TRUE))diff(h$breaks)[1]

sum(isna(dataLR$F7)) add=TRUE)

gt hlt-hist(dataLR$F21main=Tipicno stevilo delovnih ur na teden

xlab=Tipicno stevilo delovnih ur na teden ylab=Frekvenca)

22Enako velja za ostale R-jeve funkcije za regresijske metode (kar vkljucuje tudi analizo variance)23Se posebej je to problem ce zelimo modele formalno primerjati na primer s funkcijo anova ndash

glejte podpodpoglavje 335

3 poglavje ndash Analiza variance in linearna regresija 143

Slika 35 Porazdelitve dodatnih spremenljivk

Število let šolanja

Število let šolanja

Fre

kven

ca

0 5 10 15 20

050

100

150

Tipično število delovnih ur na teden

Tipično število delovnih ur na teden

Fre

kven

ca0 20 40 60 80

020

6010

0

gt curve(dnorm(xmean=mean(dataLR$F21narm=TRUE)

sd=sd(dataLR$F21narm=TRUE))diff(h$breaks)[1]

sum(isna(dataLR$F21)) add=TRUE)

gt par(mfrow=c(11))

Opazimo lahko da porazdelitev obeh spremenljivk ni normalna se posebej pa odnormalnosti odstopa porazdelitev spremenljivke rdquoTipicno stevilo delovnih ur na te-denrdquo ki je zelo konicasta in asimetricna v levo

332 Bivariatna regresija

Zacnimo z najenostavnejsim primerom bivariatne linearne regresije Preverimo kakostevilo let solanja vpliva na bruto placo

Odnos med spremenljivkama je graficno predstavljen na sliki 36 Za zdaj odmislimopolno crtopremico na tej sliki Rdeca crtkana crta pa prikazuje glajena povprecjaodvisne spremenljivke glede na vrednosti neodvisne

gt par(mar=mardef+c(00-30))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt lines(with(data=dataLRlowess(G91~F7))lwd=2lty=2col=red)

gt par(mar=mardef)

Iz slike lahko razberemo naslednje stvari

144 33 Linearna regresija

Slika 36 Odnos med bruto placo in stevilom let solanja

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

bull Ce stevilo let solanja narasca v povprecju narasca tudi bruto placa

bull Variabilnost bruto place narasca s stevilom let solanja kar je krsitev ene izmedpredpostavk linearne regresije

bull Videti je da s stevilom let solanja bruto placa najprej narasca pocasi (alisploh ne) kasneje pa narasca vse hitreje Torej je mogoce da linearna zvezani primerna

bull Videti je da zacne izobrazba vplivati na placo sele ko stevilo let solanja preseze12 let

Kljub pomislekom nadaljujmo najprej z enostavno linearno regresijo Za ocenjeva-nje linearne regresije uporabimo funkcijo lm za preverjanje domnev o koeficientih incelotnega modela za izracun determinacijskega ter nekaterih drugih statistih funk-cijo summary za izracun intervalov zaupanja pa funkcijo confint iz paketka carNarisemo tudi sliko ki prikazuje odvisnost bruto place od stevila let solanja

gt (fitG91_F7lt-lm(G91~F7data=dataLR))

Call

lm(formula = G91 ~ F7 data = dataLR)

Coefficients

(Intercept) F7

-3841 2139

3 poglavje ndash Analiza variance in linearna regresija 145

gt summary(fitG91_F7) za bolj bogat izpis

Call

lm(formula = G91 ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26809 -6502 -1833 4786 45609

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -3841 2407 -1596 0112

F7 2139 189 11320 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1025 on 310 degrees of freedom

Multiple R-squared 02925 Adjusted R-squared 02902

F-statistic 1281 on 1 and 310 DF p-value lt 22e-16

gt library(car)

gt confint(fitG91_F7level=09) 90 intervala zaupanja

5 95

(Intercept) -7812024 1296065

F7 1827676 24512959

gt par(mar=mardef+c(00-30))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt lines(with(data=dataLRlowess(G91~F7))lwd=2lty=2col=red)

gt abline(fitG91_F7lwd=2)

gt par(mar=mardef)

Z variabilnostjo v stevilu let solanja lahko pojasnimo 292 variabilnosti v brutoplaci Ce se stevilo let solanja poveca za eno leto se bo bruto placa v povprecjupovecala za 214 tisoc sit Vpliv stevila let solanja na bruto placo je staticno znacilenpri zanemarljivi stopnji tveganja

S pomocjo funkcije confint iz paketka car smo izracunali tudi 90- intervalazaupanja za regresijski koeficient in konstanto

Na podlagi rezultata smo na sliko 36 vrisali premico ki prikazuje ocenjeni odnosmed spremenljivkama Ocitno je da se premica pri velikih in majhnih vrednostihspremenljivke rdquoStevilo let solanjardquo ne prilega

To je morda se bolj ocitno ce si pogledamo graf kjer na y os nanasamo rezidualena x os pa vrednosti neodvisne spremenljivke (1 graf na sliki 37) Histogram na

146 33 Linearna regresija

Slika 37 Porazdelitev rezidualov

5 10 15 20

-200

020

040

0

Razsevni grafikon rezidualov gledena vrednosti neodvisne spremenljivke

Število let šolanja

Rez

idua

li

Histogram rezidualovz vrisano normalno krivuljo

Reziduali

Gos

tota

-200 0 200 4000

000

000

20

004

sliki 37 pa kaze da je krsena tudi predpostavka o normalni porazdelitvi rezidua-lovnapak Koda za sliko sledi

gt par(mfrow=c(12)xpd=NA)

gt plot(fitG91_F7$residuals~dataLR$F7

ylab=Reziduali xlab=Stevilo let solanja

main=Razsevni grafikon rezidualov glede

na vrednosti neodvisne spremenljivke)

gt hist(fitG91_F7$residuals freq=FALSE br=15

xlab=Reziduali ylab=Gostota

main=Histogram rezidualovnz vrisano normalno krivuljo)

gt curve(dnorm(xmean=0sd=sd(fitG91_F7$residuals))add=TRUE)

gt par(mfrow=c(11)xpd=FALSE)

Podobne zakljucke lahko izpeljemo tudi na podlagi grafikonov na sliki 38 ki so (vR-ju) standardni diagnosticni prikazi za linearno regresijo (tudi multiplo) zato jihdobimo zelo enostavno

gt par(mfrow=c(22)) zahtevamo 4 grafe na eno sliko

gt plot(fitG91_F7)

gt par(mfrow=c(11))

Graf levo zgoraj je podoben razsevnemu grafikonu na sliki 37 le da so na y osinapovedane vrednosti in ne neodvisna spremenljivka Pri bivariatni regresiji grepravzaprav le za linearno transformacijo skale (mnozenje in sestevanje) pri multipli

3 poglavje ndash Analiza variance in linearna regresija 147

Slika 38 Diagnosticni grafikoni za linearno regresijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641784 525

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641

784525

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641

784 525

000 001 002 003 004

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05

Residuals vs Leverage

199

784641

pa sluzijo napovedane vrednosti kot nek nadomestek za vse neodvisne spremenljivke(saj so napovedane vrednosti linearne kombinacije neodvisnih spremenljivk)

Graf desno zgoraj pa podaja podobno informacijo kot histogram Imenuje se Q-Qplot (Q je okrajsava za quantile) Ce so reziduali normalno porazdeljeni lezijo vsetocke na crtkani premici

333 Nelinearna regresija

Ugotovili smo da linearna zveza med spremenljivkama na danih podatkih morda ninajbolj optimalna Odnos je videti dosti bolj linearen ce bruto placo logaritmiramo

148 33 Linearna regresija

Na takih podatkih lahko ocenimo tudi linearno regresijo in sicer tako da znotrajformule bruto placo logaritmiramo Sicer se koda skorajda ne spremeni Rezultatlahko potem narisemo tudi na originalni lestvici Oboje je prikazano na sliki 39)

gt fitLnG91_F7lt-lm(log(G91)~F7data=dataLR)

gt summary(fitLnG91_F7) za bolj bogat izpis

Call

lm(formula = log(G91) ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-126487 -029420 002024 027755 145055

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 4224075 0098354 4295 lt2e-16

F7 0086630 0007723 1122 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 04189 on 310 degrees of freedom

Multiple R-squared 02887 Adjusted R-squared 02864

F-statistic 1258 on 1 and 310 DF p-value lt 22e-16

gt par(mfrow=c(12))

gt plot(log(G91)~F7data=dataLRxlab=Stevilo let solanja

ylab=Logaritem bruto place v 1000 sit

main=Pollogaritemski grafikon)

gt abline(fitLnG91_F7)

gt text(x=25y=65

labels=bquote(italic(G91)minute==

(round(coef(fitLnG91_F7)[1]3))

+(round(coef(fitLnG91_F7)[2]3))italic(F7)))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja

main=Originalna skala)

gt curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]x)

add=TRUE)

gt text(x=25y=700

labels=bquote(italic(G91)minute==

italic(e)^((round(coef(fitLnG91_F7)[1]3))

+(round(coef(fitLnG91_F7)[2]3))italic(F7))))

gt par(mfrow=c(11))

3 poglavje ndash Analiza variance in linearna regresija 149

Slika 39 Exponentna zveza ndash transformacija

5 10 15 20

40

50

60

Pollogaritemski grafikon

Število let šolanja

Loga

ritem

bru

to p

lače

v 1

000

sit

4224 + 0087F7

5 10 15 2010

030

050

070

0

Originalna skala

Število let šolanja

Bru

to p

lača

v 1

000

sit = e(4224+0087F7)

Ob tem pa se je treba zavedati da kadarkoli transformiramo odvisno spremenljivkoizracuni niso vec pravilni oziroma optimalni V tem primeru namrec ne minimizi-ramo vec vsote kvadratov odklonov originalne ampak transformirane spremenljivke(linearna regresija za ocenjevanje uporablja metodo najmanjsih kvadratov) Zaradiistega razloga tudi statistike R2 in podobne niso pravilne Pravilen izracun za R2 bibil

gt resLoglt-dataLR$G91- exp(fitLnG91_F7$fitted)

gt odkloniPovlt-dataLR$G91- mean(dataLR$G91)

gt R2loglt-1-sum(resLog^2)sum(odkloniPov^2)

gt R2log

[1] 02825734

Dejanski R2 je torej se nizji Sedaj smo sicer pravilno izracunali R2 a se vedno jeocenjevanje parametrov neoptimalno Parametre bi namrec morali ocenjevati takoda bi minimizirali vsoto kvadratov odklonov originalne spremenljivke

To lahko naredimo takole

gt expZvezalt-function(byX)

Xlt-asmatrix(X)

sslt-sum((y - exp(cbind(1X)b))^2)

return(ss)

gt optExplt-optim(par=coef(fitLnG91_F7)

fn=expZvezay=dataLR$G91X=dataLR[c(F7)])

150 33 Linearna regresija

gt resOptimlt-dataLR$G91 -

exp(optExp$par[1] + optExp$par[2]dataLR$F7)

gt odkloniPovlt-dataLR$G91-mean(dataLR$G91)

gt R2optimlt-1-sum(resOptim^2)sum(odkloniPov^2)

gt R2optim

[1] 0316329

gt R2log

[1] 02825734

gt summary(fitG91_F7)$rsq

[1] 02924672

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt curve(exp(optExp$par[1]+optExp$par[2]x)add=TRUEcol=blue)

gt curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]x)

add=TRUEcol=red)

gt abline(fitG91_F7col=green3)

gt text(x=19y=650

labels=bquote(italic(G91)minute==

italic(e)^((round(optExp$par[1]3)) +

(round(optExp$par[2]3))italic(F7)))col=blue)

gt legend(x=12y=790legend=c(linearna zveza

eksponentna zveza preko transformacije

eksponentna zveza preko optimizacije)

col=c(green3redblue)lty=1xjust=05yjust=0

xpd=TRUE)

Rezultat ocenjevanja je prikazan na sliki 310 R2 je sedaj znatno vecji kot prikateremkoli prejsnjem pristopu in znasa 0316

334 Multipla regresija

Sedaj razsirimo nas model tako da vkljucimo se eno intervalno neodvisno spremen-ljivko in sicer F21 rdquoTipicno stevilo delovnih ur (vkljucno z nadurami) na tedenrdquo

Tudi za to spremenljivko je pred vkljucitvijo dobro preveriti obliko njene povezanostiz odvisno spremenljivko Ustrezni prikaz je na sliki 311

gt par(mar=mardef+c(00-30))

gt plot(G91~F21data=dataLRylab=Bruto placa v 1000 sitxlab=

Tipicno stevilo delovnih ur (vkljucno z nadurami) na teden)

gt lines(with(data=dataLRlowess(G91~F21))lwd=2lty=2col=red)

gt par(mar=mardef)

3 poglavje ndash Analiza variance in linearna regresija 151

Slika 310 Ocenjevanje nelinearne zveze

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

G91 prime = e(4224+0093F7)

linearna zvezaeksponentna zveza preko transformacijeeksponentna zveza preko optimizacije

Slika 311 Odnos med bruto placo in tipicnim stevilom delovnih ur na teden

0 20 40 60 80

100

200

300

400

500

600

700

Tipično število delovnih ur (vključno z nadurami) na teden

Bru

to p

lača

v 1

000

sit

152 33 Linearna regresija

Kaksne posebne povezanosti med spremenljivkama ne vidimo Ker pa zelimo to tudiformalno preveriti bomo spremenljivko o stevilu delovnih ur vseeno vkljucili v line-arno regresijo Preverili bomo torej ali spremenljivka rdquoTipicno stevilo delovnih ur(vkljucno z nadurami) na tedenrdquo vpliva na bruto placo ce izlocimo vpliv izobrazbe(spremenljivka rdquoStevilo let solanjardquo) Zanima nas torej ali se bruto placa v pov-precju kaj spremeni ce se stevilo delovnih ur na teden poveca izobrazba pa ostanenespremenjena

Pri linearni regresiji vrstni red vkljucitve ni pomemben

Kljub temu da bi bila glede na nase podatke primernejsa nelinearna regresija bomo(iz pedagoskih razlogov) nadaljevali z linearno Enostaven popravek bi bil ce bisamo zamenjali G91 (bruto placo) z logaritmom te spremenljivke kar sicer (kot smovideli) ni optimalno

gt fitG91_F7F21lt-update(fitG91_F7~+F21)

gt prejsnjemu modelu dodamo dodatno neodvisno spremenljivko

gt ali daljse

gt fitG91_F7F21lt-lm(G91~F7+F21data=dataLR)

gt summary(fitG91_F7F21)

Call

lm(formula = G91 ~ F7 + F21 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26576 -6489 -1866 4783 45844

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -327354 311367 -1051 0294

F7 214004 18929 11306 lt2e-16

F21 -01352 04695 -0288 0774

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1027 on 309 degrees of freedom

Multiple R-squared 02927 Adjusted R-squared 02881

F-statistic 6392 on 2 and 309 DF p-value lt 22e-16

gt confint(fitG91_F7F21level=09)

5 95

(Intercept) -841046492 186338373

3 poglavje ndash Analiza variance in linearna regresija 153

F7 182775218 245233578

F21 -09098706 06394045

gt summary(fitG91_F7)

Call

lm(formula = G91 ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26809 -6502 -1833 4786 45609

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -3841 2407 -1596 0112

F7 2139 189 11320 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1025 on 310 degrees of freedom

Multiple R-squared 02925 Adjusted R-squared 02902

F-statistic 1281 on 1 and 310 DF p-value lt 22e-16

Za primerjavo smo izpisali se rezultat modela brez spremenljivke F21 Vpliv spre-menljivke F21 (kot smo pricakovali glede na sliko 311) ni statisticno znacilen Po-sledicno tudi njena vkljucitev ne vpliva bistveno na rezultate (R2 se je sicer malcepovecal popravljeni R2 pa malce zmanjsal vpliv spremenljivke F7 na G91 pa jeostal skoraj nespremenjen) Vseeno pa je interpretacija regresijskih koeficientov primultipli regresiji malce drugacna kot pri bivariatni regresiji Regresijski koeficientza stevilo let solanja 214 na primer pomeni da se bruto placa poveca za 214 tisocsit ce se stevilo let solanja poveca za eno leto in ostane tipicno stevilo delovnihur na teden nespremenjeno oziroma ce ostanejo vrednosti vseh ostalih neodvisnihspremenljivk (tu imamo pac samo eno) nespremenjene

Pri multipli regresiji je pomemben rezultat tudi F statistika in pripadajoci F -testTa nam v nasem primeru pove da lahko pri zanemarljivi stopnji tveganja trdimoda vsaj ena izmed neodvisnih spremenljivk vpliva na odvisno spremenljivko

Tudi tu bi bilo dobro preveriti porazdelitev rezidualov To storimo podobno kotpri bivariatni regresiji Ker pa imamo sedaj dve neodvisni spremenljivki bi moralinarisati dva razsevna grafikona (vsakega za svojo neodvisno spremenljivko na x osi)Taka grafa sta prikazana na sliki 312 Tako kot pri bivariatni regresiji se na prvemgrafu vidi heteroskedasticnost (variabilnost napak ni povsod enaka) na drugem pabi tezko z gotovostjo prepoznali nek vzorec (na sredini osi je x sicer variabilnostvideti najvecja a je tam tudi najvec vrednosti)

154 33 Linearna regresija

Slika 312 Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk

5 10 15 20

-200

020

040

0

Število let šolanja

Rez

idua

li

0 20 40 60 80-2

000

200

400

Število tipičnih delovnih ur

Rez

idua

li

gt par(mfrow=c(12)mar=mardef-c(0030))

gt plot(fitG91_F7F21$residuals~dataLR$F7

ylab=Reziduali xlab=Stevilo let solanja

main=)

gt plot(fitG91_F7F21$residuals~dataLR$F21

ylab=Reziduali xlab=Stevilo tipicnih delovnih ur

main=)

gt par(mfrow=c(11)mar=mardef)

Ker pa je takih grafov pri multipli regresiji lahko veliko je bolj prakticno da nari-semo samo en graf kjer na y os nanasamo napovedane vrednosti in ne neodvisnihspremenljivk Kot smo ze omenili tako napovedane vrednosti sluzijo kot nadomestekza vse neodvisne spremenljivke (saj so napovedane vrednosti linearne kombinacijeneodvisnih spremenljivk) Tak graf je skupaj s histogramom rezidualov prikazan nasliki 313

gt par(mfrow=c(12))

gt plot(fitG91_F7F21$residuals~fitG91_F7F21$fitted

ylab=Reziduali xlab=Napovedane vrednosti

main=Razsevni grafikon rezidualov glede

na napovedane vrednosti)

gt hist(fitG91_F7F21$residuals freq=FALSE br=15

xlab=Reziduali ylab=Gostota

main=Histogram rezidualovnz vrisano normalno krivuljo)

3 poglavje ndash Analiza variance in linearna regresija 155

Slika 313 Porazdelitev rezidualov

0 100 200 300 400

-200

020

040

0

Razsevni grafikon rezidualov gledena napovedane vrednosti

Napovedane vrednosti

Rez

idua

li

Histogram rezidualovz vrisano normalno krivuljo

Reziduali

Gos

tota

-200 0 200 4000

000

000

20

004

gt curve(dnorm(xmean=0sd=sd(fitG91_F7F21$residuals))add=TRUE)

gt par(mfrow=c(11))

R-jevi standardni diagnosticni prikazi za linearno regresijo so prikazani na sliki 314

gt par(mfrow=c(22))

gt plot(fitG91_F7)

gt par(mfrow=c(11))

335 Vkljucevanje nominalnihordinalnih spremenljivk

V linearno regresijo lahko kot neodvisne spremenljivke vkljucimo tudi nominalnespremenljivke in sicer preko umetnih spremenljivk Umetnih spremenljivk nam nitreba ustvariti saj jih samodejno ustvari funkcija lm Kot referencno kategorijoizbere tisto ki je pri faktorju navedena kot prva v levels

Funkcija lm kot nominalne spremenljivke obravnava le spremenljivke tipa factor incharacter ki pa jih pred uporabo spremeni v tip factor

156 33 Linearna regresija

Slika 314 Diagnosticni grafikoni za linearno regresijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641784 525

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641

784525

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641

784 525

000 001 002 003 004

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05

Residuals vs Leverage

199

784641

Opozorilo

Funkcija lm obravnava spremenljivke tipa ordered oziroma urejen factor takoda za njih na poseben nacin izracuna ndash rdquokontrasterdquo Tega nacina ne bomo obrav-navali saj je razmeroma zahteven za interpretacijo in razumevanje zato je pri-porocljivo da tudi za ordinalne spremenljivke uporabljate neurejen factor

Poglejmo najprej najenostavnejsi primer ko ima nominalna spremenljivka samo 2vrednosti V nas model torej vkljucimo se spol

3 poglavje ndash Analiza variance in linearna regresija 157

gt fitG91_F7F21O1F2lt-lm(G91~F7+F21+O1F2data=dataLR)

gt summary(fitG91_F7F21O1F2)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24770 -6939 -1786 5278 44416

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -170737 312701 -0546 058546

F7 216213 18731 11543 lt 2e-16

F21 -02170 04651 -0467 064108

O1F2zenski -330047 115776 -2851 000466

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1015 on 308 degrees of freedom

Multiple R-squared 03108 Adjusted R-squared 03041

F-statistic 4631 on 3 and 308 DF p-value lt 22e-16

Med rezultati je dodaten regresijski koeficient rdquoO1F2Zenskirdquo Iz njega vidimo daje bila kot referencna kategorija vzeta kategorija rdquoMoskirdquo saj te ni med koeficientiVrednost tega koeficienta (minus330) nam pove da imajo zenske v povprecju pri enakihvrednostih ostalih spremenljivk (izobrazba stevilo delovnih ur na teden) za 33 tisocsit nizjo placo kot moski Pri takem kodiranju je vrednost regresijskega koeficientavedno primerjava izbrane kategorije z referencno Vpliv spola je statisticno znacilenpri tveganju 047

Opozorilo

Klasicna interpretacija da se odvisna spremenljivka spremeni za bx ce se xpoveca za eno enoto in ostale spremenljivke ostanejo nespremenjene tu ni pri-merna ker se spol pri neki osebi naceloma ne spreminja

Dodajmo kot spremenljivko se kraj bivanja

gt fitG91_F7F21O1F2F5lt-lm(G91~F7+F21+O1F2+F5data=dataLR)

gt summary(fitG91_F7F21O1F2F5)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 data = dataLR)

158 33 Linearna regresija

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -105263 375909 -0280 077965

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5predmestje -158647 246244 -0644 051989

F5manjse mesto 114633 225129 0509 061099

F5vas -62163 212181 -0293 076974

F5kmetija -32327 268104 -0121 090411

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

Ker je bilo rdquoVeliko mestordquo izbrano kot referencna kategorija imamo v izpisu regre-sijske koeficiente za vse ostale kategorije Vsak izmed teh regresijskih koeficientovnam poda primerjavo med kategorijo in velikim mestom Tako nam vrednost koefi-cienta rdquoF5Vasrdquominus62 pove da imajo osebe ki zivijo na vasi v povprecju pri enakihvrednostih ostalih spremenljivk (izobrazba stevilo delovnih ur na teden spol) za 62tisoc sit nizjo bruto placo kot tisti ki zivijo v velikih mestih

Ce zelimo nastaviti kot referencno kaksno drugo kategorijo to najlazje storimo takoda zamenjamo vrstni red levels pri faktorju pred klicem funkcije lm Ce bi ze-leli da je na primer referencna kategorija rdquomanjse mestordquo lahko to dosezemo ta-kole

gt dataLR$F5alt-factor(dataLR$F5

levels=levels(dataLR$F5)[c(31245)])

gt lm(G91~F7+F21+O1F2+F5adata=dataLR)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5a data = dataLR)

Coefficients

(Intercept) F7 F21

09370 214129 -02492

3 poglavje ndash Analiza variance in linearna regresija 159

O1F2zenski F5aveliko mesto F5apredmestje

-331629 -114633 -273280

F5avas F5akmetija

-176796 -146960

gt sedaj je referencna kategorija manjse mesto

gt summary(lm(G91~F7+F21+O1F2+F5adata=dataLR))

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5a data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 09370 349314 0027 097862

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5aveliko mesto -114633 225129 -0509 061099

F5apredmestje -273280 199023 -1373 017073

F5avas -176796 149753 -1181 023869

F5akmetija -146960 220729 -0666 050605

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

Pri enakih vrednostih ostalih neodvisnih spremenljivk bi v vseh drugih krajih bivanjav povprecju pricakovali nizjo bruto placo kot v velikem mestu vendar pa ni nobedenod regresijskih koeficientov statisticno znacilen (niti pri 10- tveganju)

Vendar na podlagi tega izpisa ne sklepati o domnevi da kraj bivanja ne vpliva nabruto placo (oziroma ne moremo ugotoviti da tega ne moremo trditi na primer pri10- tveganju) Za preverjanje te domneve bi morali s pomocjo F -testa ta modelprimerjati z modelom brez kraja bivanja (torej s prejsnjim modelom) Medtem koizbor referencne kategorije vpliva na posamezne regresijske koeficiente in posledicnotudi na teste znacilnosti le-ta ne vpliva na rezultate F -testa kjer preverjamo vplivrdquocelotnerdquo nominalne spremenljivke (ali katerekoli druge posamezne spremenljivke alikombinacije vec spremenljivk)

160 33 Linearna regresija

gt anova(fitG91_F7F21O1F2fitG91_F7F21O1F2F5)

Analysis of Variance Table

Model 1 G91 ~ F7 + F21 + O1F2

Model 2 G91 ~ F7 + F21 + O1F2 + F5

ResDf RSS Df Sum of Sq F Pr(gtF)

1 308 3173025

2 304 3149602 4 23423 05652 06881

Sele ta primerjava nam pove da bi morali tvegati vec kot 70 ce bi zeleli trditida kraj bivanja vpliva na bruto placo ce izlocimo vplive stopnje izobrazbe steviladelovnih ur in spola

336 Interakcije med spremenljivkami

Interakcije med (ucinki) spremenljivk vkljucimo v model tako da kot dodatno ne-odvisno spremenljivko v model vkljucimo zmnozek spremenljivk V primeru nomi-nalnih spremenljivk morajo biti te ustrezno kodirane (na primer kot umetne spre-menljivke)

Opozorilo

Ko navajamo v R-ju rdquoformulordquo(npr y ~ x1 + x2) znak rdquordquopomeni da zelimov model vkljuciti izbrane spremenljivke in vse mozne interakcije med njimi in nedejanskega mnozenja (upostevajo se na primer tudi tipi spremenljivk) Ce zelimovkljuciti samo interakcijo potem damo med spremenljivki(ke) znak rdquordquo Takoje na primer y ~ x1x2x3 enako kot y ~ x1 + x2 + x3 + x1x2 + x1x3

+ x2x3 Ce zelimo da se nek operator (na primer ) interpretira dobesednodamo izraz kot argument funkciji I (na primer I(x1x2))

Ce torej zelimo vkljuciti interakcijo med spolom in izobrazbo (edini spremenljivki kista imeli statisticno znacilen vpliv) lahko to naredimo tako kot prikazuje naslednjiizpis

gt fitG91_F7F21O1F2F5int lt- lm(G91 ~ F7O1F2 + F21 + F5

data=dataLR)

gt ali takole

gt fitG91_F7F21O1F2F5int lt- lm(G91 ~ F7 + F21 + O1F2 + F5

gt + F7O1F2 data=dataLR)

gt summary(fitG91_F7F21O1F2F5int)

Call

lm(formula = G91 ~ F7 O1F2 + F21 + F5 data = dataLR)

3 poglavje ndash Analiza variance in linearna regresija 161

Residuals

Min 1Q Median 3Q Max

-23387 -6501 -2010 5017 43674

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -5052516 4638880 -1089 0277

F7 2455524 289956 8469 109e-15

O1F2zenski 3700699 4928161 0751 0453

F21 -020133 047672 -0422 0673

F5predmestje -1607825 2457842 -0654 0514

F5manjse mesto 829630 2257400 0368 0713

F5vas -701999 2118518 -0331 0741

F5kmetija -002075 2684935 -0001 0999

F7O1F2zenski -563564 384354 -1466 0144

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1016 on 303 degrees of freedom

Multiple R-squared 03207 Adjusted R-squared 03028

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

Vpliv interakcije ni statisticno znacilen Prav tako pa ni vec statisticno znacilenvpliv spola To je posledica multikolinearnosti ki jo bomo omenili v naslednjempodpodpoglavju Problem lahko zmanjsamo ce intervalne spremenljivke pred ra-cunanjem interakcije centriramo (od vsake vrednosti odstejemo povprecje) Zaradilepsega izpisa je bolje da to naredimo pred klicem funkcije lm

gt dataLR$F7centGndrZenskilt- (dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

gt fitG91_F7F21O1F2F5int2lt-lm(G91~F7+F21+O1F2+F5 +

F7centGndrZenskidata=dataLR)

gt summary(fitG91_F7F21O1F2F5int2)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 + F7centGndrZenski

data = dataLR)

Residuals

Min 1Q Median 3Q Max

-23387 -6501 -2010 5017 43674

162 33 Linearna regresija

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -5052516 4638880 -1089 02769

F7 2455524 289956 8469 109e-15

F21 -020133 047672 -0422 06731

O1F2zenski -3264380 1177205 -2773 00059

F5predmestje -1607825 2457842 -0654 05135

F5manjse mesto 829630 2257400 0368 07135

F5vas -701999 2118518 -0331 07406

F5kmetija -002075 2684935 -0001 09994

F7centGndrZenski -563564 384354 -1466 01436

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1016 on 303 degrees of freedom

Multiple R-squared 03207 Adjusted R-squared 03028

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

Spremenil se je le koeficient za spol vsi ostali rezultati (vkljucno z R2 in F -statistiko)pa so ostali nespremenjeni Pravzaprav se je spremenilo samo rdquokodiranje spremen-ljivkrdquo Ce vpliv spremenljivk vkljucenih v interakcije preverjamo na pravilen nacintorej tako da preverjamo vpliv celotne spremenljivke se pravi rdquoglavnirdquo ucinek in vseinterakcije v katerih nastopa preko F -testa potem kodiranje ni pomembno Pravilnobi ucinek spola torej preverjali tako kot sledi v nadaljevanju kjer nacin kodiranja narezultat testa ne vpliva

gt ocenimo model brez spola

gt fitG91_F7F21F5int lt- lm(G91 ~ F7 + F21 + F5 data=dataLR)

gt preverimo skupni vpliv spola tako da primerjamo

gt model brez spola z modelom s spolom

gt anova(fitG91_F7F21F5int fitG91_F7F21O1F2F5int)

Analysis of Variance Table

Model 1 G91 ~ F7 + F21 + F5

Model 2 G91 ~ F7 O1F2 + F21 + F5

ResDf RSS Df Sum of Sq F Pr(gtF)

1 305 3231587

2 303 3127412 2 104176 50465 0006983

---

Signif codes

0 0001 001 005 01 1

3 poglavje ndash Analiza variance in linearna regresija 163

Ugotovimo lahko da je vpliv spola (kjer upostevamo tudi njegov vpliv preko inte-rakcije z izobrazbo) statisticno znacilen pri stopnji tveganja 07

337 Preverjanje predpostavk

Analiza rezidualov

Deloma smo preverjanje predpostavk ze obdelali ko smo si ogledali diagnosticnegrafikone za porazdelitev rezidualov Veliko predpostavk je namrec vezanih na po-razdelitev rezidualov Se na zadnjem modelu (z interakcijo 2) poglejmo standardnegrafikone za diagnostiko Grafi so prikazani na sliki 315

gt par(mfrow=c(22))

gt plot(fitG91_F7F21O1F2F5int2)

gt par(mfrow=c(11))

Iz grafov na sliki 315 lahko razberemo

bull Ze na 1 grafu (levo zgoraj) se vidi da je variabilnost rezidualov vecja privecjih placah kot pri manjsih To je se bolj razvidno iz 3 grafa (levo spodaj)Graf je podoben zgornjemu (1) le da sedaj namesto rdquosurovihrdquo rezidualovna y os nanasamo korenjene absolutne standardizirane reziduale Pri temje bistveno predvsem to da nanasamo absolutne vrednosti Rdeca crta kiprikazuje glajena povprecja bi morala biti v primeru homoskedasticnosti (ko jeta predpostavka izpolnjena) ravna pri nas pa je ocitno da od takrat ko imamoneko vecje stevilo enot vseskozi narasca Torej je prisotna heteroskedasticnost

bull Na 2 grafu (desno zgoraj) vse tocke ne lezijo na premici kar pomeni dase reziduali ne porazdeljujejo normalno Predvsem imamo prevec zelo velikihvrednosti Enako lahko razberemo tudi iz histograma rezidualov z vrisanonormalno krivuljo na sliki 316

gt par(mar=mardef-c(0030))

gt hist(fitG91_F7F21O1F2F5int2$resfreq=FALSExlab=Reziduali

ylab=Gostotamain=br=15)

gt curve(dnorm(xsd=sd(fitG91_F7F21O1F2F5int2$res))add=TRUE)

gt par(mar=mardef)

Za preverjanje heteroskedasticnosti obstaja v paketku car tudi formalni test (funk-cija ncvTest) Prav tako ta paketek ponuja se dodatni grafikon ki narise logaritmi-rane absolutne vrednosti studentiziranih rezidualov v odvisnosti od logaritmiranihnapovedanih vrednosti (funkcija spreadLevelPlot) Zaradi uporabe logaritmovizpusti vse negativne napovedane vrednosti (in v tem primeru izpise opozorilo)

164 33 Linearna regresija

Slika 315 Diagnosticni grafikoni za linearno regresijo ndash model z interakcijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641525784

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641525784

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641525784

000 002 004 006 008 010 012

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

Residuals vs Leverage

784

199

525

Funkcija predlaga tudi transformacijo odvisne spremenljivke za odpravljanje pro-blema heteroskedasticnosti Graf je prikazan na sliki 317

gt ncvTest(fitG91_F7F21O1F2F5int2)

Non-constant Variance Score Test

Variance formula ~ fittedvalues

Chisquare = 1484605 Df = 1 p = 00001166521

gt spreadLevelPlot(fitG91_F7F21O1F2F5int2)

Suggested power transformation 05373901

3 poglavje ndash Analiza variance in linearna regresija 165

Slika 316 Histogram rezidualov

Reziduali

Gostota

-200 -100 0 100 200 300 400

0000

0001

0002

0003

0004

0005

Slika 317 Grafikon za ocenjevanje heteroskedasticnosti

50 100 200 500

000

50

020

010

00

500

200

0

Spread-Level Plot for fitG91_F7F21O1F2F5int2

Fitted Values

Abs

olut

e S

tude

ntiz

ed R

esid

uals

166 33 Linearna regresija

Na podlagi testa lahko domnevo o homoskedasticnosti zavrnemo pri zanemarljivistopnji tveganja Iz grafa na sliki 317 pa zopet vidimo da variabilnost rezidualovz visanjem napovedanih vrednosti narasca Na podlagi regresijskega koeficientapremice na tem grafu funkcija predlaga tudi potenco na katero naj bi potenciraliodvisno spremenljivko za odpravo problema heteroskedasticnosti

Multikolinearnost

Multikolinearnost lahko ocenjujemo z vec statistikami Poglejmo si najprej izracunfaktorja povecanja variance (variance inflation factor ndash vif) in toleranc Vif lahko iz-racunamo s funkcijo vif iz paketka car tolerance pa so kar 1vif Ti dve statistikista priporocljivi ker sta razumljivi in pokazeta pri katerih spremenljivkah se pro-blem pojavlja Mere bomo izracunali za oba modela z interakcijo (ki se razlikujetav parametrizacji interakcije)

Opomnik Drugo parametrizacijo smo izbrali ravno zato ker zmanjsuje multikoline-arnost

gt prvi model

gt vif(fitG91_F7F21O1F2F5int) variance inflation factor

GVIF Df GVIF^(1(2Df))

F7 2396263 1 1547987

O1F2 18183935 1 4264263

F21 1052758 1 1026040

F5 1216437 4 1024793

F7O1F2 19529971 1 4419273

gt 1vif(fitG91_F7F21O1F2F5int)[1] tolerance

F7 O1F2 F21 F5 F7O1F2

041731645 005499360 094988557 082207330 005120335

gt drugi model

gt vif(fitG91_F7F21O1F2F5int2) variance inflation factor

GVIF Df GVIF^(1(2Df))

F7 2396263 1 1547987

F21 1052758 1 1026040

O1F2 1037582 1 1018618

F5 1216437 4 1024793

F7centGndrZenski 2259556 1 1503182

gt 1vif(fitG91_F7F21O1F2F5int2)[1] tolerance

F7 F21 O1F2

04173164 09498856 09637791

F5 F7centGndrZenski

08220733 04425648

3 poglavje ndash Analiza variance in linearna regresija 167

Tolerance so pri spolu in pri interakciji med spolom in izobrazbo veliko visje pridrugem modelu faktorji povecanja variance pa nizji

Dober pokazatelj multikolinearnosti je tudi korelacijska matrika med ocenami re-gresijskih koeficientov Ta kaze na problem ce so korelacije po absolutni vrednostiblizu 1 S funkcijo vcov dobimo variancnokovariancno matriko ki pa jo lahko sfunkcijo cov2cor pretvorimo v korelacijsko

gt prvi model

gt vcov(fitG91_F7F21O1F2F5int) kovariancna matrika

gt cov2cor(vcov(fitG91_F7F21O1F2F5int)) korelacijska matrika

(Intercept) F7 O1F2zenski

(Intercept) 10000000 -080916407 -060845623

F7 -08091641 100000000 071746753

O1F2zenski -06084562 071746753 100000000

F21 -04241575 002872814 008249693

F5predmestje -03471743 003199666 000178113

F5manjse mesto -02765647 -003856876 -008880756

F5vas -03666217 006890147 -002361653

F5kmetija -04616874 022093944 011067464

F7O1F2zenski 05880620 -073911673 -097107735

F21 F5predmestje F5manjse mesto

(Intercept) -0424157534 -0347174290 -027656470

F7 0028728137 0031996658 -003856876

O1F2zenski 0082496930 0001781130 -008880756

F21 1000000000 0008758751 -009876780

F5predmestje 0008758751 1000000000 064435236

F5manjse mesto -0098767796 0644352359 100000000

F5vas -0142169932 0689732959 076571906

F5kmetija -0057753038 0555335692 059905425

F7O1F2zenski -0068533086 0005924216 009568067

F5vas F5kmetija F7O1F2zenski

(Intercept) -036662171 -046168741 0588061950

F7 006890147 022093944 -0739116728

O1F2zenski -002361653 011067464 -0971077352

F21 -014216993 -005775304 -0068533086

F5predmestje 068973296 055533569 0005924216

F5manjse mesto 076571906 059905425 0095680667

F5vas 100000000 066452253 0025873515

F5kmetija 066452253 100000000 -0081587125

F7O1F2zenski 002587352 -008158713 1000000000

168 33 Linearna regresija

gt drugi model

gt vcov(fitG91_F7F21O1F2F5int2) kovariancna matrika

gt cov2cor(vcov(fitG91_F7F21O1F2F5int2)) korelacijska matrika

(Intercept) F7 F21

(Intercept) 10000000 -080916407 -0424157534

F7 -08091641 100000000 0028728137

F21 -04241575 002872814 1000000000

O1F2zenski -01742628 002108728 0068815958

F5predmestje -03471743 003199666 0008758751

F5manjse mesto -02765647 -003856876 -0098767796

F5vas -03666217 006890147 -0142169932

F5kmetija -04616874 022093944 -0057753038

F7centGndrZenski 05880620 -073911673 -0068533086

O1F2zenski F5predmestje F5manjse mesto

(Intercept) -0174262837 -0347174290 -027656470

F7 0021087276 0031996658 -003856876

F21 0068815958 0008758751 -009876780

O1F2zenski 1000000000 0031361616 001431086

F5predmestje 0031361616 1000000000 064435236

F5manjse mesto 0014310857 0644352359 100000000

F5vas 0005537691 0689732959 076571906

F5kmetija 0134101643 0555335692 059905425

F7centGndrZenski -0030070878 0005924216 009568067

F5vas F5kmetija F7centGndrZenski

(Intercept) -0366621708 -046168741 0588061950

F7 0068901467 022093944 -0739116728

F21 -0142169932 -005775304 -0068533086

O1F2zenski 0005537691 013410164 -0030070878

F5predmestje 0689732959 055533569 0005924216

F5manjse mesto 0765719055 059905425 0095680667

F5vas 1000000000 066452253 0025873515

F5kmetija 0664522533 100000000 -0081587125

F7centGndrZenski 0025873515 -008158713 1000000000

Ponovno je glavna razlika med obema modeloma povezana s spolom in interakcijomed spolom in izobrazbo Tokrat je dejanska razlika prav v korelaciji med ocenamateh dveh koeficientov Medtem ko je ta korelacija pri prvem modelu po absolutnivrednosti zelo blizu 1 (minus097) je ta korelacija pri drugem modelu skoraj 0 (minus003)Razmeroma visoka (minus075) je tudi korelacija med ocenama koeficientov za izobrazboin interakcijo med spolom in izobrazbo ki je minus075 Preostale razmeroma visokekorelacije so le se med sklopom spremenljivk ki merijo kraj bivanja (ker merijo istospremenljivko je to pricakovano) in med nekaterimi spremenljivkami in konstanto(kar pa ni tako pomembno)

3 poglavje ndash Analiza variance in linearna regresija 169

Multikolinearnost lahko ocenimo tudi s pomocjo indeksov pogojnosti in lastnih vre-dnosti matrike neodvisnih spremenljivk (v katero so namesto nominalnih spremen-ljivk vkljucene umetne spremenljivke) Obstaja vec nacinov kako izracunati indeksepogojnosti V nadaljevanju sta predstavljena dva Pri tem bomo uporabili funkcijocolinEigen ki je definirana spodaj sicer pa se nahaja tudi v datoteki rdquoUcbenikR-funkcijeRrdquo Funkcija temelji na izracunu lastnih vrednosti matrike kriznih produktovneodvisnih spremenljivk

gt colinEigenlt-function(fitSPSS=TRUE)

funkcija za racunanje lastnih vrednosti in indeksov

pogojnosti

Xlt-fit[x]

if(isnull(X))

stop(Fit must include x See lm for detailsn)

else

Xlt-fit$x

tXXlt-t(X)X

if(SPSS)

tXXlt-cov2cor(tXX)

e lt- eigen(tXX)

return(list(eigen=e$values

condIndex=sqrt(e$val[1]e$val)))

Izracunajmo torej indekse pogojnosti na oba nacina za oba modela

gt fitG91_F7F21O1F2F5int2lt-lm(G91~F7+F21+O1F2+F5 +

F7centGndrZenskidata=dataLRx=TRUE)

gt ponovno smo ocenili model s parametrom x=TRUE

gt da dobimo kot rezultat tudi matriko neodvisnih spremenljivk

gt fitG91_F7F21O1F2F5intlt-lm(G91~F7O1F2+F21+F5data=dataLR

x=TRUE)

gt prvi model

gt 1 nacin

gt colinEigen(fitG91_F7F21O1F2F5intSPSS=FALSE)

$eigen

[1] 6652435e+05 1558161e+04 4912678e+03 9900302e+01

[5] 5302790e+01 3528826e+01 1873120e+01 5532393e+00

[9] 2662550e+00

170 33 Linearna regresija

$condIndex

[1] 1000000 6534074 11636735 81972106 112005173

[6] 137301463 188454950 346763845 499851942

gt oziroma taki kot jih vrne SPSS

gt colinEigen(fitG91_F7F21O1F2F5intSPSS=TRUE)

$eigen

[1] 4943854688 1088057228 1002859625 1000235359

[5] 0766591055 0092809934 0066547583 0031866833

[9] 0007177695

$condIndex

[1] 1000000 2131606 2220306 2223216 2539516

[6] 7298534 8619195 12455564 26244625

gt drugi model

gt 1 nacin

gt colinEigen(fitG91_F7F21O1F2F5int2SPSS=FALSE)

$eigen

[1] 6558974e+05 6585408e+03 1173476e+03 1011405e+02

[5] 7781142e+01 5243155e+01 3498490e+01 9599113e+00

[9] 3705997e+00

$condIndex

[1] 1000000 9979909 23641818 80529554 91811327

[6] 111846291 136923385 261398078 420693096

gt oziroma taki kot jih vrne SPSS

gt colinEigen(fitG91_F7F21O1F2F5int2SPSS=TRUE)

$eigen

[1] 4340401831 1109346570 1012708187 1000586611

[5] 0923653402 0473392997 0076159218 0053759618

[9] 0009991567

$condIndex

[1] 1000000 1978023 2070250 2082752 2167756

[6] 3027987 7549249 8985389 20842421

Ne glede na izracun so indeksi pogojnosti pri prvem modelu bistveno vecji karnakazuje da je tam multikolinearnost vecji problem Kljub vsemu pa tudi tu indekspogojnosti na nacin kot ga izracuna SPSS ne preseze meje 30 kar bi bil jasen signalza multikolinearnost

Ocena oblike zveze

Povedali smo ze da je za vsako neodvisno spremenljivko vkljuceno v model dobropogledati razsevni grafikon z odvisno spremenljivko Vendar pa ta grafikon vca-

3 poglavje ndash Analiza variance in linearna regresija 171

sih ne razkrije prave zveze ker je prava zveza rdquozakritardquo z vplivi ostalih neodvisnihspremenljivk V tem primeru pride prav rdquocomponent + residual plotrdquo (oziroma grafdelnih ostankov) kjer na y os nanasamo vrednosti odvisne spremenljivke od katereprej odstejemo vplive ostalih spremenljivk Take grafe lahko narisemo s pomocjofunkcije crPlots iz paketka car Pogoj za uporabo funkcije je da v modelu ni in-terakcij zato jih bomo uporabili na zadnjem modelu kjer se nismo imeli interakcijeRezultat je prikazan na sliki 318

gt component + residual plot

gt crPlots(fitG91_F7F21O1F2F5)

Nadgradnja teh grafikonov so CERES grafi ki so na voljo v funkciji ceresPlots vistem paketku Za razliko od prejsnje le-ta ne narise grafov za nominalne spremen-ljivke Rezultat je na sliki 319

gt Ceres graf - naprednejsa verzija zgornjega

gt ceresPlots(fitG91_F7F21O1F2F5)

Najzanimivejsi zakljucek ki je bil opazen ze na navadnih razsevnih grafikonih jeda izobrazba vpliva na placo sele ko stevilo let solanja preseze 12 leta Kot resitevtega problema lahko v model vkljucimo se eno spremenljivko in sicer rdquostevilo letsolanja nad 12 letrdquo ki bo imela vrednost 0 za vse ki imajo 12 let solanja ali manj

gt dataLR$F7nad12 lt- dataLR$F7 - 12

gt dataLR$F7nad12[dataLR$F7nad12lt0]lt-0

gt fitG91_F7F21O1F2F5F7nad12lt-lm(G91~F7 +O1F2+F7nad12+F21+F5

data=dataLR)

gt summary(fitG91_F7F21O1F2F5F7nad12)

Call

lm(formula = G91 ~ F7 + O1F2 + F7nad12 + F21 + F5 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-28067 -5650 -1733 4223 42537

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 1307917 480829 2720 00069

F7 73834 36457 2025 00437

O1F2zenski -424936 116175 -3658 00003

F7nad12 240146 53287 4507 942e-06

F21 -02669 04621 -0578 05640

172 33 Linearna regresija

Slika 318 Grafikoni delnih ostankov

5 10 15 20

-200

010

020

030

040

050

0

F7

Com

pone

nt+

Res

idua

l(G91

)

0 20 40 60 80-2

000

100

200

300

400

F21

Com

pone

nt+

Res

idua

l(G91

)

moski zenski

-200

020

040

0

O1F2

Com

pone

nt+

Res

idua

l(G91

)

veliko mesto manjse mesto kmetija

-200

010

020

030

040

0

F5

Com

pone

nt+

Res

idua

l(G91

)

Component + Residual Plots

F5predmestje -94125 239206 -0393 06942

F5manjse mesto 193332 219000 0883 03780

F5vas 56539 207426 0273 07854

F5kmetija -105924 260487 -0407 06846

---

Signif codes

0 0001 001 005 01 1

Residual standard error 987 on 303 degrees of freedom

Multiple R-squared 03589 Adjusted R-squared 0342

F-statistic 212 on 8 and 303 DF p-value lt 22e-16

3 poglavje ndash Analiza variance in linearna regresija 173

Slika 319 Ceres grafikoni

5 10 15 20

-600

-400

-200

0

F7

CE

RE

S R

esid

ual(G

91)

0 20 40 60 80-3

00-1

0010

030

0F21

CE

RE

S R

esid

ual(G

91)

CERES Plots

gt summary(fitG91_F7F21O1F2F5) za primerjavo

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -105263 375909 -0280 077965

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5predmestje -158647 246244 -0644 051989

F5manjse mesto 114633 225129 0509 061099

F5vas -62163 212181 -0293 076974

F5kmetija -32327 268104 -0121 090411

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

174 33 Linearna regresija

gt par(mfrow=c(22))

gt plot(fitG91_F7F21O1F2F5F7nad12)

gt par(mfrow=c(11))

Vpliv spremenljivke F7 je bistveno manjsi in sedaj komaj statisticno znacilen pri 5-tveganju kar nam pove da izobrazba do 12 let ne vpliva mocno na bruto placo Kerpa je koeficient spremenljivke F7nad12 bistveno vecji in mocno statisticno znacilenvidimo da zacne izobrazba mocneje vplivati na bruto placo sele ko stevilo let solanjapreseze 12 let oziroma po srednji soli O tem da je model sedaj bistveno boljsi pricatudi znatno vecji R2

Diagnosticni grafikoni so prikazani na sliki 320 Rezultati so sicer malce boljsi aproblem heteroskedasticnosti ostaja

338 V razmislek

Model bi se dalo se nadgrajevati Ze samo vpliv izobrazbe na placo za razlicneskupine je zelo kompleksna stvar Kaj se zgodi ce v novi model dodamo interakcijo

gt dataLR$F7centGndrZenskilt- (dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

gt dataLR$F7nad12centGndrZenski lt- (dataLR$F7nad12-

mean(dataLR$F7nad12))(dataLR$O1F2==zenski)

gt fitG91_F7F21O1F2F5F7nad12intlt-lm(G91~F7+F7nad12+O1F2+F21+F5+

F7centGndrZenski + F7nad12centGndrZenski data=dataLR)

gt summary(fitG91_F7F21O1F2F5F7nad12int)

Call

lm(formula = G91 ~ F7 + F7nad12 + O1F2 + F21 + F5 +

F7centGndrZenski + F7nad12centGndrZenski data = dataLR)

Residuals

Min 1Q Median 3Q Max

-25391 -5885 -1694 4557 42166

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 1701907 632377 2691 0007516

F7 28595 52133 0549 0583754

F7nad12 358691 73064 4909 15e-06

O1F2zenski -415327 115258 -3603 0000367

F21 -01829 04595 -0398 0690894

F5predmestje -86485 237140 -0365 0715590

3 poglavje ndash Analiza variance in linearna regresija 175

Slika 320 Diagnosticni grafikoni za linearno regresijo

100 200 300 400 500

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641525

1368

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641525

1368

100 200 300 400 500

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641525

1368

000 002 004 006 008 010 012

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05Residuals vs Leverage

784

362

525

F5manjse mesto 173586 218196 0796 0426918

F5vas 59867 205770 0291 0771297

F5kmetija -91023 259186 -0351 0725693

F7centGndrZenski 100282 70140 1430 0153828

F7nad12centGndrZenski -251789 103129 -2441 0015203

(Intercept)

F7

F7nad12

O1F2zenski

F21

176 33 Linearna regresija

F5predmestje

F5manjse mesto

F5vas

F5kmetija

F7centGndrZenski

F7nad12centGndrZenski

---

Signif codes

0 0001 001 005 01 1

Residual standard error 9783 on 301 degrees of freedom

Multiple R-squared 03744 Adjusted R-squared 03536

F-statistic 1801 on 10 and 301 DF p-value lt 22e-16

Vidimo da se odstotek pojasnjene variance se malce poveca To nam pravzapravnakazuje da bi morda morali ze na zacetku gledati graf na sliki 321

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanjapch=asnumeric(O1F2)

col=ifelse(O1F2==moskibluered))

gt dataLRzenlt-dataLR[dataLR$O1F2==zenski]

gt lines(with(data=dataLRzenlowess(G91~F7))lwd=2lty=2col=red)

gt dataLRmoslt-dataLR[dataLR$O1F2==moski]

gt lines(with(data=dataLRmoslowess(G91~F7))lwd=2lty=2

col=blue)

gt legend(x=1y=750legend=c(MoskiZenske)lty=2

col=c(bluered)pch=12yjust=1xjust=0

merge=FALSElwd=2)

339 Izracun rdquona rokerdquo

Za boljse razumevanje je koristno da naredimo izracune brez vgrajenih funkcij (ozi-roma s cim bolj enostavnimi) Ocenimo drugi model z interakcijo iz podpodpoglavja336 (ki smo ga shranili v objekt fitG91_F7F21O1F2F5int2) se na tak nacin

Najprej pripravimo podatke Pri tem je pomembno predvsem da naredimo umetnespremenljivke za nominalne spremenljivke

gt ylt-dataLR$G91 odvisna spremenljivka

gt Xlt-cbind(konstanta=1dataLR[c(F7F21)]

konstanta in intervalni neodvisni spremenljivki

O1F2Zenski=asnumeric(dataLR$O1F2==zenski)

3 poglavje ndash Analiza variance in linearna regresija 177

Slika 321 Odnos med izobrazbo in bruto placo po spolu

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

MoškiŽenske

F5Predmestje=asnumeric(dataLR$F5==predmestje)

F5Manjse mesto=asnumeric(dataLR$F5==manjse mesto)

F5Vas=asnumeric(dataLR$F5==vas)

F5Kmetija=asnumeric(dataLR$F5==kmetija)

F7centGndrZenski=(dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

)

gt Xlt-asmatrix(X)

gt preverimo rezultat

gt X[110]

konstanta F7 F21 O1F2Zenski F5Predmestje F5Manjse mesto

1 1 6 42 0 0 0

4 1 12 50 1 0 0

6 1 12 40 1 0 0

16 1 11 62 0 0 0

22 1 14 48 0 0 1

23 1 12 0 0 0 1

26 1 16 45 1 0 0

35 1 12 40 1 0 0

41 1 18 46 0 0 1

49 1 11 40 1 0 1

F5Vas F5Kmetija F7centGndrZenski

1 0 1 00000000

178 33 Linearna regresija

4 1 0 -03589744

6 1 0 -03589744

16 1 0 00000000

22 0 0 00000000

23 0 0 00000000

26 0 1 36410256

35 0 0 -03589744

41 0 0 00000000

49 0 0 -13589744

gt to je enako kot

gt fitG91_F7F21O1F2F5int2$x[110]

(Intercept) F7 F21 O1F2zenski F5predmestje

1 1 6 42 0 0

4 1 12 50 1 0

6 1 12 40 1 0

16 1 11 62 0 0

22 1 14 48 0 0

23 1 12 0 0 0

26 1 16 45 1 0

35 1 12 40 1 0

41 1 18 46 0 0

49 1 11 40 1 0

F5manjse mesto F5vas F5kmetija F7centGndrZenski

1 0 0 1 00000000

4 0 1 0 -03589744

6 0 1 0 -03589744

16 0 1 0 00000000

22 1 0 0 00000000

23 1 0 0 00000000

26 0 0 1 36410256

35 0 0 0 -03589744

41 1 0 0 00000000

49 1 0 0 -13589744

Spomnimo se da je matricna formula za izracun regresijskih koeficientov

b = (XprimeX)minus1Xprimey

Formuli za izracun napovedi in rezidualov pa

yprime = Xb

e = y minus yprime

3 poglavje ndash Analiza variance in linearna regresija 179

Na podlagi tega lahko izracunamo s[e] R2 popravljen R2pop in F -statistiko

se =

nsumi=1

e2

nminus k

R2 =var(yprime)

var(y)

R2pop = 1minus s2e

var(y)= 1minus (1minusR2)

nminus 1

nminus k

F =

nsumi=1

yprimei minus y

k minus 1nsumi=1

yi minus yprimei

nminus k

=

R2

k minus 11minusR2

nminus k

Izracunajmo

gt blt-solve(t(X) X) t(X) y

gt b

[1]

konstanta -5052516310

F7 2455524459

F21 -020132728

O1F2Zenski -3264379964

F5Predmestje -1607824506

F5Manjse mesto 829629531

F5Vas -701999244

F5Kmetija -002074509

F7centGndrZenski -563564466

gt kar je enako kot (do natancnosti racunalnika)

gt coef(fitG91_F7F21O1F2F5int2)

(Intercept) F7 F21

-5052516310 2455524459 -020132728

O1F2zenski F5predmestje F5manjse mesto

-3264379964 -1607824506 829629531

F5vas F5kmetija F7centGndrZenski

-701999244 -002074509 -563564466

gt yNap lt- X b

gt e lt- y - yNap

gt nlt-dim(X)[1]

gt klt-length(b)

180 33 Linearna regresija

gt sErrlt-sqrt(sum(e^2)(n-k))

gt sErr

[1] 1015947

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$sigma

[1] 1015947

gt R2=var(yNap)var(y)

gt R2

[1]

[1] 03207477

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$rsquared

[1] 03207477

gt R2poplt-1-sErr^2var(y)

gt R2pop

[1] 03028137

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$adjrsquared

[1] 03028137

gt F=(R2(k-1))((1-R2)(n-k))

gt F

[1]

[1] 1788484

gt (df1lt-k-1)

[1] 8

gt (df2lt-n-k)

[1] 303

gt pf(q=Fdf1=df1df2=df2lowertail =FALSE)

[1]

[1] 7405752e-22

gt cat(captureoutput(summary(fitG91_F7F21O1F2F5int2))[27]n)

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

gt p-vrednosti se malce razlikujeta a sta obe prakticno 0

gt verjetno gre za vprasanje racunske natancnosti

Izracunajmo se variancno-kovariancno matriko za ocene regresijskih koeficientov iniz nje se standardne napake za ocene regresijskih koeficientov Na podlagi variancno-kovariancne matrike lahko izracunamo se korelacijsko matriko ocen regresijskih ko-eficientov (za ocenjevanje multikolinearnosti)

Sb = s2e middot XprimeXminus1

se(bi) =radicSb[i i]

w = diag

(1radic

diag(Sb)

)

3 poglavje ndash Analiza variance in linearna regresija 181

Cb = w middot Sb middot w

Na podlagi ocen standardnih napak pa lahko izracunamo t-statistike kot t = bise(bi))

gt Sblt-sErr^2solve(t(X) X)

gt Sb

konstanta F7 F21

konstanta 2151921149 -10883837598 -938010552

F7 -108838376 840745537 003971066

F21 -9380106 003971066 022726613

O1F2Zenski -95163435 071978854 038619681

F5Predmestje -395835418 228029391 010262743

F5Manjse mesto -289613230 -252450622 -106289703

F5Vas -360299394 423246067 -143584413

F5Kmetija -575035961 1720043074 -073922389

F7centGndrZenski 104849908 -823715261 -012557392

O1F2Zenski F5Predmestje F5Manjse mesto

konstanta -951634352 -3958354175 -289613230

F7 07197885 22802939 -2524506

F21 03861968 01026274 -1062897

O1F2Zenski 1385811962 90741196 3802999

F5Predmestje 90741196 6040986074 357508039

F5Manjse mesto 38029995 3575080389 509585361

F5Vas 13810615 3591427268 366193057

F5Kmetija 423857670 3664741109 363085097

F7centGndrZenski -13605987 05596501 8301651

F5Vas F5Kmetija F7centGndrZenski

konstanta -360299394 -5750359613 1048499077

F7 4232461 172004307 -82371526

F21 -1435844 -07392239 -01255739

O1F2Zenski 1381062 423857670 -13605987

F5Predmestje 359142727 3664741109 05596501

F5Manjse mesto 366193057 3630850975 83016508

F5Vas 448811895 3779859757 21067811

F5Kmetija 377985976 7208876587 -84195178

F7centGndrZenski 2106781 -84195178 147728263

gt kar je enako kot

gt vcov(fitG91_F7F21O1F2F5int2)

gt max(abs(Sb-vcov(fitG91_F7F21O1F2F5int2)))

[1] 1364242e-12

gt seblt-sqrt(diag(Sb))

gt seb

182 33 Linearna regresija

konstanta F7 F21

463888041 28995612 04767244

O1F2Zenski F5Predmestje F5Manjse mesto

117720515 245784175 225739974

F5Vas F5Kmetija F7centGndrZenski

211851810 268493512 38435435

gt enakost z izracunom s funkcijo lm bomo preverili kasneje

gt

gt wlt-diag(1seb)

gt Cblt-w Sb w

gt kar je enako kot

gt cov2cor(vcov(fitG91_F7F21O1F2F5int2))

gt max(abs(Cb-cov2cor(vcov(fitG91_F7F21O1F2F5int2))))

[1] 144329e-15

gt t-statistika

gt tblt-bseb

gt pblt-2pt(-abs(tb)df=n-k)

gt tabela

gt cbind(b=asvector(b)Std napaka=asvector(seb)

t=asvector(tb)p-vrednost=asvector(pb))

b Std napaka t p-vrednost

[1] -5052516310 463888041 -10891671826 2769457e-01

[2] 2455524459 28995612 84686070004 1087724e-15

[3] -020132728 04767244 -04223137835 6730955e-01

[4] -3264379964 117720515 -27729915791 5898550e-03

[5] -1607824506 245784175 -06541611171 5135042e-01

[6] 829629531 225739974 03675155600 7134911e-01

[7] -701999244 211851810 -03313633444 7405991e-01

[8] -002074509 268493512 -00007726479 9993840e-01

[9] -563564466 38435435 -14662627672 1436137e-01

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$coef

Estimate Std Error t value

(Intercept) -5052516310 463888041 -10891671826

F7 2455524459 28995612 84686070004

F21 -020132728 04767244 -04223137835

O1F2zenski -3264379964 117720515 -27729915791

F5predmestje -1607824506 245784175 -06541611171

F5manjse mesto 829629531 225739974 03675155600

F5vas -701999244 211851810 -03313633444

F5kmetija -002074509 268493512 -00007726479

F7centGndrZenski -563564466 38435435 -14662627672

Pr(gt|t|)

3 poglavje ndash Analiza variance in linearna regresija 183

(Intercept) 2769457e-01

F7 1087724e-15

F21 6730955e-01

O1F2zenski 5898550e-03

F5predmestje 5135042e-01

F5manjse mesto 7134911e-01

F5vas 7405991e-01

F5kmetija 9993840e-01

F7centGndrZenski 1436137e-01

Seveda bi se na tak nacin dalo izracunati se marsikaj a bomo tu zakljucili

34 Viri za poglabljanje znanja

Za poglabljanje snovi iz tega poglavja so uporabni tudi spletni viri navedeni vpodpodpoglavju 191 (Spletni viri) a jih tu posebej ne navajam Tu izpostavljamsamo enega s pomocjo katerega je mogoce zelo enostavno in hitro najti ustrezneukaze za izvedbo zelenih analiz

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

Za poglabljanje znanja iz analize variance in linearne regresije je primerna vecinaucbenikov s teh podrocij na primer

bull Fox John 2008 Applied regression analysis and generalized linear modelsLos Angeles Sage

bull Kosmelj Blazenka 2005 Analiza odvisnosti za vzorcne podatke LjubljanaEkonomska fakultetaSlovenski ucbenik ki ga uporabljajo na Ekonomski fakulteti Univerze v Lju-bljani

bull Iversen Gudmund R in Helmut Norpoth 2002 Analysis of variance NewburyPark London New Delhi Sage

Vsebina tega poglavja je tudi vsaj deloma pokrita v nekaterih ucbenikih omenjenihv prejsnjem poglavju

Izvedbo analize variance in linearne regresije v R-ju pa pokrivajo sledeci ucbeniki

184 35 Vprasanja za ponavljanje

bull Faraway Julian James 2005 Linear models with R Boca Raton Chapmanamp HallCRC24

Najbolj priporocam prav ta vir

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer25

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer26

Se posebej primerna za tiste ki ze poznajo SPSS ali SAS sicer pa zelo zgoscenaobravnava

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC27

V bolj omejenem obsegu

35 Vprasanja za ponavljanje

1 Katere so predpostavke klasicne enofaktorske analize variance in kako jih pre-verjamo

2 Analizo variance lahko izvedemo z vec funkcijami Katerimi Kaksne so razlikemed njimi oziroma katere so prednosti in slabosti posameznih funkcij

3 Ali je vrstni red faktorjev pri vecfaktorski analizi variance pomemben Poja-snite

4 V kaksni obliki morajo biti podatki ce zelimo (s funkcijo aov) izvesti enofak-torsko analizo variance za odvisne vzorce

5 Ali lahko ce na nekem podatkovju z manjkajocimi podatki veckrat zazenemolinearno regresijo z razlicnimi neodvisnimi spremenljivkami pricakujemo daso vse analize izvedene na istih enotah

6 Kako v linearno regresijo s funkcijo lm vkljucimo nominalne spremenljivkeAli jih moramo predhodno kaj transformirati Na kaj moramo biti pri vklju-cevanju pozorni

7 Kako lahko s funkcijami za linearno regresijo vsaj priblizno ocenimo tudi ne-linearne zveze Kaksne so pomanjkljivosti tega pristopa

8 Kako (s katero funkcijo in kaj uporabimo kot argument) narisemo standardnegrafe za diagnostiko oziroma preverjanje predpostavk linearne regresije

24Starejsa in manj obsezna razlicica knjige je prostodostopna tudi na httpcranr-project

orgdoccontribFaraway-PRApdf25Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani26Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani27Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf

3 poglavje ndash Analiza variance in linearna regresija 185

9 Kako preverimo ali neka nominalna spremenljivka z vec kot dvema razlic-nima vrednostma vpliva na odvisno spremenljivko ce izlocimo vplive ostalihneodvisnih spremenljivk

10 Ali lahko na podlagi standardnega izpisa ene analize ugotavljamo ali so pov-precne vrednosti katerihkoli dveh kategorij nominalne spremenljivke statisticnoznacilno razlicne (pri izbrani stopnji tveganja) ob enakih vrednostih ostalih ne-odvisnih spremenljivk

11 Kako v formuli (argumentu funkcije lm) oznacimo da zelimo vkljuciti inte-rakcijo

12 Navedite vsaj en nacin ocenjevanja multikolinearnosti ki pove tudi pri katerihspremenljivkah se multikolinearnost pojavlja

13 Kaj nam povedo grafikoni delnih ostankov (oziroma component + residualplot) oziroma za kaksen namen jih uporabljamo

187

4 poglavje

Za konec

V tem ucbeniku je precej natancno predstavljena uporaba R-ja tako za opravljanjesplosnih opravil ki se uporabljajo pri vecini analiz (priprava podatkov risanje gra-fov) kot tudi za izvedbo univariatnih in bivariatnih statisticnih analiz ter multipleregresije Sama statisticna teorija je obravnavana le toliko kolikor se mi je zdelonujno potrebno

Ucbenik je sicer prvenstveno namenjen tistim ki ze poznajo osnove statistike radipa bi se naucili le-to izvajati s pomocjo R-ja Poleg tega pa je namenjen tudi vsemki bi radi le spoznali osnovno delovanje R-ja ne glede na to na katerem podrocjuga nameravajo uporabljati Za te je predvsem koristno prvo najsplosnejse in tudinajobseznejse poglavje Naj ucbenik zakljucim s pregledom nekaterih podrocij kjerse R lahko uporablja ter navedbo nekaterih virov za uporabo R-ja na teh podrocjih

Multivariatna analiza je obicajno naslednja stopnja pri ucenju statistike ki sledispoznavanju multiple regresije 28 Kot ze samo ime pove gre pri multivaria-tni analizi predvsem za socasno obravnavo vec spremenljivk Najbolj znanemetode multivariatne analize so razvrscanje v skupine metoda glavnih kom-ponent in faktorska analiza Nekatere metode multivariatne analize so pred-stavljene tudi v Uvodnem primeru Tukaj navajam par relevantnih ucbenikov

bull Everitt Brian 2005 An R and S-PLUS companion to multivariate ana-lysis London Springer

bull Everitt Brian in Torsten Hothorn 2011 An introduction to applied mul-tivariate analysis with R New York Springer

Podatkovno rudarjenje je ime za metode katerih glavni cilj je odkrivanje upo-rabnega veljavnega nepricakovanega in razumljivega znanja iz podatkov Po-gosto se uporablja na ogromnih podatkih pogosto ne-strukturiranih in prido-bljenih iz razlicnih virov Kljub navidezno velikim razlikam se v veliki meri

28Multipla regresija pravzaprav ze sodi v podrocje Multivariatne analize

188

prekriva s statistiko se bolj pa s podrocjem strojnega ucenja (nekateri sma-trajo celo da sta to le dve razlicni imeni za isto podrocje) zato ti podrocjiomenjam skupaj Nekaj ucbenikov ki obravnavajo podatkovno rudarjenje alistrojno ucenje v R-ju

bull Williams Graham J 2011 Data mining with Rattle and R the art ofexcavating data for knowledge discovery New York SpringerTo se posebej priporocam za zacetnike

bull Zhao Yanchang in Yonghua Cen 2013 Data Mining Applications withR 1 izdaja Amsterdam Boston Academic Press

bull Zhao Yanchang 2012 R and Data Mining Examples and Case Studies1 izdaja Amsterdam Academic Press

bull Lantz Brett 2013 Machine Learning with R Packt Publishing

Metode ponovnega vzorcenja so metode ki na podlagi ponovnega vzorcenjaomogocajo preverjanje domnev ali izracun intervalov v primerih ko se spre-menljivke ne porazdeljujejo (niti priblizno) normalno kar obicajno predvide-vajo klasicne metode Spodaj navajam tri ucbenike Phillipa Gooda ki po-krivajo uporabo metod ponovnega vzorcenja se posebej v R-ju na razlicnihnivojih

bull Good Phillip I 2011 Practitioners Guide to Resampling for Data Ana-lysis Data Mining and Modeling Zany BooksZraven je koda tako za R kot za Stato

bull mdashmdashmdash 2012 Introduction to Statistics Through Resampling Methods andR 2 izdaja WileySe posebej primeren za zacetnike in zelo vezan na R

bull mdashmdashmdash 2013 Resampling Methods 3 izdaja BirkhauserR je le eden od obravnavanih programskih jezikovpaketov

Statisticna analiza financnih podatkov je tudi podrocje kjer se pogosto upo-rablja R Kot samo ime pove gre za uporabo statistike in financne matema-tike za analizo financnih podatkov za (med drugim) upravljanje s tveganjinapovedovanje vrednosti financnih kazalnikov upravljanje portfelja Nekajucbenikov ki obravnavajo uporabo R-ja na tem podrocju

bull Carmona Rene 2013 Statistical Analysis of Financial Data in R 2izdaja Springer New York

bull Daroczi Gergely Edina Berlinger Peter Csoka Daniel Havran MartonMichaletzky Zsolt Tulassay Kata Varadi in Agnes Vidovics-Dancs 2013Introduction to R for Quantitative Finance Packt Publishing

bull Arratia Argimiro 2014 Computational Finance An Introductory Coursewith R Atlantis Press

4 poglavje ndash Za konec 189

Biostatistika se ukvarja s statisticno analizo na podrocju biologije medicine in so-rodnih ved Ukvarja se na primer z ugotavljanjem vplivov razlicnih dejavnikovna rast in razvoj rastlin in zivali ter na njihove lastnosti vplivom zdravil innacinov zdravljenja na potek bolezni in se bi lahko nastevali Na tem podrocjusta R njemu soroden S-PLUS med najpogosteje uporabljenimi programskimipaketi Nekaj knjig ki obravnavajo metode s tega podrocja v R-ju

bull Brostrom Goran 2012 Event History Analysis with R Boca RatonCRC Press

bull MacFarland Thomas W 2013 Introduction to Data Analysis and Graphi-cal Presentation in Biostatistics with R 1 izdaja Springer InternationalPublishing

bull Shahbaba Babak 2011 Biostatistics with R 1 izdaja New York Sprin-ger

Analiza ogromnih podatkov in spleta postaja vse bolj pomembno podrocje rdquoBigdatardquo (oz ogromni podatki) je tako imenovani rdquobuzzwordrdquo ki pridobiva na po-menu Gre za analizo podatkov ki jih ne moremo shraniti v delovni spominracunalnika zato so za analizo potrebni posebni pristopi Pogosto se podatkipridobijo neposredno na svetovnem spletu Tudi sicer narasca zanimanje zaanalizo podatkov ki so dostopni na spletu se posebej na socialnih omrez-jih Tudi za ta namen se lahko uporabi R Po eno delo z vsakega podrocja vpovezavi z R-jem navajam spodaj

bull Danneman Nathan in Richard Heimann 2014 Social Media Mining withR Packt Publishing

bull Prajapati Vignesh 2013 Big Data Analytics with R and Hadoop PacktPublishing

To seveda niso vsa podrocja kjer se Ruporablja vendar pa se iz navedenega vidi daje R res uporaben na zelo razlicnih podrocjih lahko bi rekli da je uporaben povsodkjer se uporablja analiza podatkov Ucenje R-ja je torej koristno za vsakega ki senamerava resno ukvarjati z analizo podatkov ne glede na sicersnje podrocje delaUpam da bo pricujoc ucbenik v pomoc vsaj pri zacetnem spoznavanju tega resrdquomocnegardquo programskega okolja

191

Literatura

Arratia Argimiro 2014 Computational Finance An Introductory Course with RAtlantis Press

Brostrom Goran 2012 Event History Analysis with R Boca Raton CRC Press

Buuren Stef in Karin Groothuis-Oudshoorn 2011 MICE Multivariate imputationby chained equations in R Journal of Statistical Software 45 (3) URL http

docutwentenl78938

Buuren Stef van 2012 Flexible imputation of missing data Boca Raton FL CRCPress

Carmona Rene 2013 Statistical Analysis of Financial Data in R 2 izdaja SpringerNew York

Dalgaard Peter 2002 Introductory statistics with R New York Springer

Danneman Nathan in Richard Heimann 2014 Social Media Mining with R PacktPublishing

Daroczi Gergely Edina Berlinger Peter Csoka Daniel Havran Marton MichaletzkyZsolt Tulassay Kata Varadi in Agnes Vidovics-Dancs 2013 Introduction to Rfor Quantitative Finance Packt Publishing

Everitt Brian 2005 An R and S-PLUS companion to multivariate analysis LondonSpringer

Everitt Brian in Torsten Hothorn 2011 An introduction to applied multivariateanalysis with R New York Springer

Faraway Julian James 2005 Linear models with R Boca Raton Chapman ampHallCRC

mdashmdashmdash 2006 Extending the linear model with R generalized linear mixed effectsand nonparametric regression models Boca Raton Chapman amp HallCRC

Ferligoj Anuska 1994 Osnove statistike na prosojnicah Ljubljana samozalozbaZenel Batagelj

192 Literatura

Ferligoj Anuska Tina Kogovsek Willem E Saris Germa Coenders in ValentinaHlebec 2000 Kakovost merjenja egocentricnih socialnih omrezij [datoteka po-datkov] Ljubljana Univerza v Ljubljani Fakulteta za druzbene vede Centerza metodologijo in informatiko [izdelava] 2000 Slovenija Ljubljana Univerza vLjubljani Arhiv druzboslovnih podatkov [distribucija] 2012

Fox John 2008 Applied regression analysis and generalized linear models LosAngeles Sage

Gandrud Christopher 2013 Reproducible research with R and RStudio BocaRaton Chapman amp HallCRC

Gelman Andrew in Jennifer Hill 2006 Data Analysis Using Regression and Multi-levelHierarchical Models Cambridge New York Cambridge University Press

Good Phillip I 2011 Practitioners Guide to Resampling for Data Analysis DataMining and Modeling Zany Books

mdashmdashmdash 2012 Introduction to Statistics Through Resampling Methods and R 2izdaja Wiley

mdashmdashmdash 2013 Resampling Methods 3 izdaja Birkhauser

Holm Sture 1979 A Simple Sequentially Rejective Multiple Test Procedure Scandi-navian Journal of Statistics 6 (2) 65ndash70 URL httpwwwjstororgstable

4615733

IBM 2011 Sum of Squares (IBM SPSS help) URL httppicdheibmcom

infocenterspssstatv20r0m0topiccomibmibmcomdocbannerhtm

Iversen Gudmund R in Helmut Norpoth 2002 Analysis of variance NewburyPark London New Delhi Sage

Jesenko Joze in Manca Jesenko 2007 Multivariatne statisticne metode KranjModerna organizacija

Johnson Richard A in Dean W Wichern 2007 Applied multivariate statisticalanalysis Upper Saddle River Pearson Prentice Hall Pearson Education Interna-tional

Kastelec Damijana in Katarina Kosmelj 2009 Statisticna analiza po-datkov s programoma Excel 2003 in R Ljubljana Biotehniska fa-kulteta URL httpwwwbfuni-ljsifileadmingroups2763C5

A1tudijsko_gradivoSAP_2003pdf

Kosmelj Blazenka 2005 Analiza odvisnosti za vzorcne podatke Ljubljana Eko-nomska fakulteta

Kosmelj Blazenka in Joze Rovan 2007 Statisticno sklepanje Ljubljana Ekonomskafakulteta

Literatura 193

Lantz Brett 2013 Machine Learning with R Packt Publishing

Leisch Friedrich 2002 Sweave Dynamic Generation of Statistical Reports UsingLiterate Data Analysis V Compstat ur Professor Dr Wolfgang Hardle in Profes-sor Dr Bernd Ronz 575ndash580 Physica-Verlag HD URL httplinkspringer

comchapter101007978-3-642-57489-4_89 DOI 101007978-3-642-57489-4 89

Levin Jack James Alan Fox in David R Forde 2013 Elementary Statistics inSocial Research (12th Edition) Pearson

MacFarland Thomas W 2013 Introduction to Data Analysis and Graphical Pre-sentation in Biostatistics with R 1 izdaja Springer International Publishing

Matloff Norman 2011 The Art of R Programming A Tour of Statistical SoftwareDesign San Francisco No Starch Press

Minium Edward W Robert C Clarke in Theodore Coladarci 1999 Elements ofstatistical reasoning New York Wiley

Muenchen Robert A 2011 R for SAS and SPSS users New York Springer

Murrell Paul 2011 R graphics Boca Raton CRC Press

Prajapati Vignesh 2013 Big Data Analytics with R and Hadoop Packt Publishing

Rubin Donald B 1987 Multiple imputation for nonresponse in surveys New YorkWiley

mdashmdashmdash 1996 Multiple Imputation After 18+ Years Journal of the AmericanStatistical Association 91 (434) 473ndash489 doi 1023072291635 URL http

wwwjstororgstable2291635

Shahbaba Babak 2011 Biostatistics with R 1 izdaja New York Springer

Snijders Tom A B in Roel J Bosker 2012 Multilevel analysis an introduction tobasic and advanced multilevel modeling Los Angeles Sage

Tabachnick Barbara G in Linda S Fidell 2007 Using multivariate statisticsBoston PearsonAllyn amp Bacon

Tos Niko Brina Malnar in skupina 2004 Slovensko javno mnenje 20042 Evropskadruzboslovna raziskava [datoteka podatkov] Slovenija Ljubljana Fakulteta zadruzbene vede Center za raziskovanje javnega mnenja in mnozicnih komunikacij[izdelava] 2004 Slovenija Ljubljana Univerza v Ljubljani Arhiv druzboslovnihpodatkov [distribucija] 2009

Venables William N in Brian D Ripley 2000 S programming New York Springer

Verzani John 2005 Using R for introductory statistics Boca Raton Chapman ampHallCRC

194 Literatura

Welch B L 1951 On the Comparison of Several Mean Values An AlternativeApproach Biometrika 38 (34) 330ndash336 doi 1023072332579 URL http

wwwjstororgstable2332579

Wickham Hadley 2009 ggplot2 Elegant Graphics for Data Analysis DordrechtNew York Springer URL httppubliceblibcomEBLPublicPublicView

doptiID=511468

Wilkinson Leland in Graham Wills 2005 The grammar of graphics New YorkSpringer

Williams Graham J 2011 Data mining with Rattle and R the art of excavatingdata for knowledge discovery New York Springer

Wonnacott Thomas H in Ronald J Wonnacott 1990 Introductory statistics NewYork Wiley

Wooldridge Jeffrey M 2002 Econometric analysis of cross section and panel dataCambridge Massachusetts MIT Press

Xie Yihui 2013 Dynamic report generation with r and knitr Boca Raton Cha-pman amp Hall Crc

Zhao Yanchang 2012 R and Data Mining Examples and Case Studies 1 izdajaAmsterdam Academic Press

Zhao Yanchang in Yonghua Cen 2013 Data Mining Applications with R 1 izdajaAmsterdam Boston Academic Press

Zuur Alain F Elena N Ieno in Erik HWG Meesters 2009 A Beginnerrsquos Guideto R New York Springer

  • Predgovor
  • Kazalo
  • Slike
  • Tabele
  • Uvod v R
    • Uvodni primer
    • Osnovne informacije
      • Osnovne racunske operacije
      • Spremenljivke
      • Uporaba funkcij in pomoci
      • Paketki
      • Drugi osnovni podatki
        • Podatkovne strukture
          • Osnovni podatkovni tipi
          • Vektor
          • Nominalne in ordinalne spremenljivke
          • Seznam
          • Matrika
          • Polje ndash Array
          • Podatkovni okvir ndash Data frame
          • Vaje
            • Funkcije in programiranje
              • Nekaj koristnih funkcij
              • Definiranje funkcij
              • Programski tok
              • Vaje
                • Delo z datotekami
                  • Tekstovne datoteke
                  • Shranjevanje in branje objektov
                  • Branje in pisanje datotek drugih programov
                  • Vaje
                    • Risanje
                      • Visokonivojske funkcije za risanje
                      • Nizkonivojske funkcije za risanje
                      • Shranjevanje slik
                      • Vaje
                        • Priprava dokumentov z rezultati iz R-ja
                        • Rešitve vaj
                          • Podatkovne strukture
                          • Funkcije in programiranje
                          • Risanje
                            • Viri za poglabljanje znanja
                              • Spletni viri
                              • Knjižni viri
                                • Vprašanja za ponavljanje
                                  • Univariatna in bivariatna statistika
                                    • Uporabljeni podatki
                                    • Osnovne statistike
                                    • Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja
                                      • Preverjanje domneve o srednji vrednosti in pripadajoci interval zaupanja
                                      • Preverjanje domneve o razliki med srednjima vrednostma na odvisnih vzorcih in pripadajoci interval zaupanja
                                      • Preverjanje domneve o razliki med srednjima vrednostma na neodvisnih vzorcih in pripadajoci interval zaupanja
                                        • Preverjanje domnev o deležih in pripadajoci intervali zaupanja
                                          • Preverjanje domneve o vrednosti deleža in pripadajoci interval zaupanja
                                          • Preverjanje domnev o razliki med deležema na neodvisnih vzorcih in pripadajoci intervali zaupanja
                                            • Frekvencne in kontingencne tabele
                                              • Frekvencne tabele
                                              • Kontingencne tabele
                                              • Povezanost spremenljivk
                                                • Korelacija
                                                • Viri za poglabljanje znanja
                                                • Vprašanja za ponavljanje
                                                  • Analiza variance in linearna regresija
                                                    • Uporabljeni podatki
                                                    • Analiza variance (ANOVA)
                                                      • Enofaktorska analiza variance za neodvisne vzorce
                                                      • Vecfaktorska analiza variance za neodvisne vzorce
                                                      • Enofaktorska analiza variance za odvisne vzorce
                                                        • Linearna regresija
                                                          • Dodatne spremenljivke
                                                          • Bivariatna regresija
                                                          • Nelinearna regresija
                                                          • Multipla regresija
                                                          • Vkljucevanje nominalnihordinalnih spremenljivk
                                                          • Interakcije med spremenljivkami
                                                          • Preverjanje predpostavk
                                                          • V razmislek
                                                          • Izracun na roke
                                                            • Viri za poglabljanje znanja
                                                            • Vprašanja za ponavljanje
                                                              • Za konec
                                                              • Literatura
Page 6: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji

ii Predgovor

bull podpira vecino statisticnih metod (preko paketkov)

bull se veliko uporablja v raziskovanju (instituti univerze )

bull deluje na vecini operacijskih sistemov (Windows Mac OSOS X Linux )

bull omogoca programiranje

bull je zelo primeren za simulacije in generiranje slucajnih spremenljivk

Medtem ko vecina studentov ceni predvsem prvo izmed nastetih lastnosti (brezplac-nost) pa je njegov razcvet v veliki meri povezan s preostalimi

Predvsem za zacetnike pa ima R tudi nekaj slabosti Glavna slabost je da v osnovnirazlicici nima graficnega vmesnika (vsaj ne v klasicnem smislu kjer bi preko meni-jev in oken zahtevali izvedbo analiz) zato vsaj na zacetku ucenje poteka pocasnejekot pri programih z graficnim vmesnikom (na primer SPSS PSPP Stata ) Tuje sicer treba omeniti da obstaja tudi nekaj graficnih vmesnikov za R med ka-terimi bi izpostavil predvsem Rcommander (httpwwwrcommandercom) sajje najobseznejsi in omogoca izvajanje najvecjega nabora analiz se posebej s po-mocjo velikega stevila paketkov ki razsirjajo njegovo funkcionalnost Tega vme-snika kot receno v tem ucbeniku ne obravnavam je pa vsaj za osnovno stati-sticno analizo ta opisan v ucbeniku Kastelec Damijana in Katarina Kosmelj 2009Statisticna analiza podatkov s programoma Excel 2003 in R Ljubljana Bioteh-niska fakulteta URL httpwwwbfuni-ljsifileadmingroups2763C5

A1tudijsko_gradivoSAP_2003pdf

V ucbeniku se omejim na uporabo preko ukazne vrstice Glavni razlog za to je dalahko le s tako uporabo izkoristimo vse prednosti R-ja taka uporaba pa je tudi nujnamed drugim za analize meri simulacije avtomatsko izdelavo porocil ter mnogo dru-gih opravil

Ucbenik je razdeljen na tri osnovna poglavja Prvo je Uvod v R in je namenjenospoznavanju R-ja Zacne se z uvodnim primerom statisticnih analiz nadaljuje pase z razmeroma sistematicnim pregledom podrocij ki so pomembna za uporabotega programskega okolja Podrocja vsebujejo tako osnovne podatkovne strukturein osnove programiranja kot tudi delo z datotekami risanje in pripravo porocil napodlagi opravljenih analiz Pravzaprav to poglavje vsebuje tiste rdquonestatisticnerdquo vse-bine ki so potrebne za osnovno uporabo R-ja Poznavanje vecine izmed teh vsebin(z izjemo programiranja v R-ju ndash podpodpoglavji 142 in 143) je kljucno za ucin-kovito izvajanje in porocanje o takorekoc vseh statisticnih analizah in torej tudi zarazumevanje preostalih dveh poglavij Pri tem se prvo poglavje v veliki meri lahkobere rdquopo potrebirdquo se pravi kot prirocnik kjer se prebere doloceno poglavje ko sepokaze potreba po posameznih znanjih Z vidika uporabe R-ja je to pravzapravnajzahtevnejse poglavje zato vsebuje tudi vrsto vaj z resitvami (resitve so na koncupoglavja)

Predgovor iii

Drugo poglavje je vsebinsko najsirse saj v njem obravnavamo kar veliko tako univari-atnih kot bivariatnih metod Pod bivariatne metode sicer spadata tudi enofaktorskaanaliza variance in bivariatna regresija vendar pa ju skupaj z njunima multivari-atnima razlicicama obravnavamo loceno v naslednjem poglavju V tem poglavjuobravnavamo tako osnovne opisne statistike kot tudi inferencno statistiko Znotrajinferencne statistike obravnavamo pri srednjih vrednostih tako izracune intervalovzaupanja kot preverjanje domnev pri bivariatni povezanosti pa le preverjanje do-mnev Pri vecini metod in statistik predstavljena le uporaba v R-ju in podaniprimeri izjema so neparametricni testi kjer so obravnavane metode tudi teoreticnopredstavljene

V tretjem poglavju sta predstavljeni analiza variance in linearna regresija Pri obehzacnemo z najenostavnejsim (bivariatnim) primerom nato pa dodajamo dodatneelemente (vec neodvisnih spremenljivk interakcije med ucinki ) Pri analizi variancpredstavimo tudi njeno neparametericno razlicico Pri obeh metodah je posebnapozornost namenjena tudi preverjanju predpostavk obeh metod

Vsako od treh glavnih poglavji se zakljuci z viri za poglabljanje in vprasanji zaponavljanje Na koncu ucbenika sledi se sklepno poglavje v katerem povzamemokaj vse je bilo v ucbeniku obdelano Nekaj podpoglavij vsebuje tudi zahtevnejsosnov ki za enostavno uporabo ni potrebna Naslovi takih podpoglavij so oznaceniz zvezdico ()

Velik del ucbenika predstavlja tudi prikaz dela v R-ju s pomocjo izpisov iz rdquokonzolerdquooziroma ukazne vrstice Izpisi iz ukazne vrstice so vizualno loceni z zaobljenimiokvirji s sivim ozadjem in z uporabo drugacne pisave in sicer posevne pisave

s fiksno sirino crk (Curier)1 za ukaze in obicajne pisave s fiksno sirino

crk za izpise Vsaka vrstica kjer nastopa ukaz se zacne z znakom gt Ukaz se lahkonadaljuje cez vec vrstic V tem primeru se naslednja vrstica zacne z dvema presled-koma Vrstice ki se ne zacnejo z znakom gt in niso nadaljevanje ukaza iz prejsnjevrstice vsebujejo izpise R-jevih funkcij V R-ju je komentar vse kar sledi znaku pojavlja pa se lahko na zacetku vrstice ali kasneje Vsa R-jeva koda uporabljena vtem ucbeniku je na voljo na spletnem naslovu www2arnessi~aziber4R

Primer izpisa iz R-ja s komentarjem je videti takole

gt 2 + 1 tole je ukaz za sestevanje dveh stevil

[1] 3

V ucbeniku uporabljam se dve posebni graficni obliki Prva je opozorilo

1 Enaka pisava se sicer uporablja tudi znotraj besedila za R-jevo kodo

iv Predgovor

Opozorilo

V opozorilih opozarjam na se posebej pomembne stvari katerih neupostevanjelahko vodi do resnih in pogosto nepricakovanih posledic

Druga oblika so dodatna pojasnila

Dodatna pojasnila so pojasnila ki jih lahko vecina bralcev brez hujsih posledic izpustivseeno pa lahko pripomorejo k boljsem razumevanju snovi

Pri pripravi ucbenika je bil uporabljen R razlicice 322 Razlicico R-ja lahko pre-verite med drugim z izpisom spremenljivke Rversionstring

gt Rversionstring

[1] R version 322 (2015-08-14)

v

Kazalo

Predgovor i

Kazalo v

Slike viii

Tabele x

1 Uvod v R 111 Uvodni primer 112 Osnovne informacije 14

121 Osnovne racunske operacije 14122 Spremenljivke 15123 Uporaba funkcij in pomoci 16124 Paketki 18125 Drugi osnovni podatki 19

13 Podatkovne strukture 20131 Osnovni podatkovni tipi 20132 Vektor 22133 Nominalne in ordinalne spremenljivke 26134 Seznam 27135 Matrika 30136 Polje ndash Array 35137 Podatkovni okvir ndash Data frame 35138 Vaje 38

14 Funkcije in programiranje 38141 Nekaj koristnih funkcij 39142 Definiranje funkcij 43143 Programski tok 44144 Vaje 47

15 Delo z datotekami 47151 Tekstovne datoteke 48152 Shranjevanje in branje objektov 50153 Branje in pisanje datotek drugih programov 51

vi Kazalo

154 Vaje 5516 Risanje 56

161 Visokonivojske funkcije za risanje 56162 Nizkonivojske funkcije za risanje 58163 Shranjevanje slik 60164 Vaje 62

17 Priprava dokumentov z rezultati iz R-ja 6318 Resitve vaj 66

181 Podatkovne strukture 66182 Funkcije in programiranje 67183 Risanje 70

19 Viri za poglabljanje znanja 71191 Spletni viri 71192 Knjizni viri 73

110 Vprasanja za ponavljanje 75

2 Univariatna in bivariatna statistika 7721 Uporabljeni podatki 7722 Osnovne statistike 7823 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali za-

upanja 86231 Preverjanje domneve o srednji vrednosti in pripadajoci inter-

val zaupanja 88232 Preverjanje domneve o razliki med srednjima vrednostma na

odvisnih vzorcih in pripadajoci interval zaupanja 91233 Preverjanje domneve o razliki med srednjima vrednostma na

neodvisnih vzorcih in pripadajoci interval zaupanja 9524 Preverjanje domnev o delezih in pripadajoci intervali zaupanja 98

241 Preverjanje domneve o vrednosti deleza in pripadajoci intervalzaupanja 99

242 Preverjanje domnev o razliki med delezema na neodvisnihvzorcih in pripadajoci intervali zaupanja 101

25 Frekvencne in kontingencne tabele 103251 Frekvencne tabele 103252 Kontingencne tabele 105253 Povezanost spremenljivk 109

26 Korelacija 11227 Viri za poglabljanje znanja 11828 Vprasanja za ponavljanje 119

3 Analiza variance in linearna regresija 12131 Uporabljeni podatki 12132 Analiza variance (ANOVA) 122

321 Enofaktorska analiza variance za neodvisne vzorce 123

Kazalo vii

322 Vecfaktorska analiza variance za neodvisne vzorce 131323 Enofaktorska analiza variance za odvisne vzorce 138

33 Linearna regresija 141331 Dodatne spremenljivke 141332 Bivariatna regresija 143333 Nelinearna regresija 147334 Multipla regresija 150335 Vkljucevanje nominalnihordinalnih spremenljivk 155336 Interakcije med spremenljivkami 160337 Preverjanje predpostavk 163338 V razmislek 174339 Izracun rdquona rokerdquo 176

34 Viri za poglabljanje znanja 18335 Vprasanja za ponavljanje 184

4 Za konec 187

Literatura 191

viii

Slike

11 Strukturni stolpci in krog za spol 312 Strukturni stolpci za povezanost dveh nominalnih spremenljivk 413 Histograma za ekstravertiranost in emocionalno stabilnost 514 Razsevni grafikon za ekstravertiranost in emocionalno stabilnost 815 Dendrogram ndash Wardovo razvrscanje s kvadrirano evklidsko razdaljo

na podlagi spremenljivk emocionalne stabilnosti 1016 Graf povprecij po skupinah dobljenih z metodo voditeljev 1217 Resitev razvrscanja v prostoru glavnih komponent 1418 Stirje obrazi 1919 Strutkutna stolpca in krog na eni sliki 58110 Slika z veliko dodanimi elementi 60111 Resitev vaje 1 (Risanje) 70112 Resitev vaje 2 (Risanje) 72113 Resitev vaje 3 (Risanje) 73

21 Porazdelitev bruto place 8922 Porazdelitev zaupanja v Drzavni zbor in Evropski parlament 9223 Porazdelitev razlike med zaupanjem v Drzavni zbor in zaupanjem v

Evropski parlament 9324 Porazdelitev bruto place pri moskih in zenskah 9625 Razsevni grafikon ndash izobrazba in bruto placa 11326 Razsevni grafikoni med vsemi spremenljivkami ki merijo zaupanje v

institucije 115

31 Porazdelitve uporabljenih spremenljivk 12532 Porazdelitev bruto place po krajih bivanja 12733 Porazdelitve uporabljenih spremenljivk 13234 Porazdelitev bruto place po krajih bivanja in spolu 13435 Porazdelitve dodatnih spremenljivk 14336 Odnos med bruto placo in stevilom let solanja 14437 Porazdelitev rezidualov 14638 Diagnosticni grafikoni za linearno regresijo 14739 Exponentna zveza ndash transformacija 149310 Ocenjevanje nelinearne zveze 151

Slike ix

311 Odnos med bruto placo in tipicnim stevilom delovnih ur na teden 151312 Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk 154313 Porazdelitev rezidualov 155314 Diagnosticni grafikoni za linearno regresijo 156315 Diagnosticni grafikoni za linearno regresijo ndash model z interakcijo 164316 Histogram rezidualov 165317 Grafikon za ocenjevanje heteroskedasticnosti 165318 Grafikoni delnih ostankov 172319 Ceres grafikoni 173320 Diagnosticni grafikoni za linearno regresijo 175321 Odnos med izobrazbo in bruto placo po spolu 177

x

Tabele

11 Frekvencna tabela za spol 212 Hierarhicno razvrscanje - povprecja po skupinah 1113 Metoda voditeljev ndash povprecja po skupinah 1214 Primerjava koncnih razvrstitev po enotah 13

1

1 poglavje

Uvod v R

Prvo poglavje je namenjeno spoznavanju R-ja Zacne se z uvodnim primerom sta-tisticnih analiz nato pa se nadaljuje z razmeroma sistematicnim pregledom podro-cij ki so pomembna za uporabo tega programskega okolja Sistematicni pregledse zacne z osnovnimi informacijami kjer velja se posebej izpostaviti navodila zauporabo funkcij in pomoci ter paketkov Tem sledi pregled podatkovnih strukturtorej osnovnih nacinov na katere lahko v R-ju shranjujemo podatke in rezultate (injih nato nadalje obdelujemo) Nadaljuje se s pregledom nekaterih (s statisticnegavidika) najkoristnejsih funkcij za napredne uporabnike pa tudi pravila za pisanjenovih funkcij in napotki za programiranje Zelo pomembno podpoglavje je tudi pod-poglavje o delu z datotekami saj preko le teh rdquoberemordquo in shranjujemo podatke terpogosto tudi rezultate statisticnih obdelav R je znan tudi po zelo kvalitetnih grafihin prav risanje ter shranjevanje grafov in drugih slik je opisano v naslednjem podpo-glavju Vsebinsko se poglavje zakljuci s pregledom nacinov za pripravo dokumentovz rezultati analiz iz R-ja kjer se osredotocimo na izvoz tabel v dokumente kompa-tibilne z urejevalniki besedila Ker je to poglavje z vidika uporabe R-ja pravzapravnajzahtevnejse poglavje vsebuje tudi vrsto vaj z resitvami (po podpoglavjih) ki sopodane na koncu poglavja

11 Uvodni primer

Za predstavitev nacina analize z R-jem zacnimo z realnim primerom Primer pri-kazuje uporabo metod predstavljenih v tem ucbeniku poleg tega pa prikazuje tudiuporabo multivariatnih metod z R-jem

Podatki na katerih temelji primer so bili zbrani v okviru raziskave Kakovost mer-jenja egocentricnih socialnih omrezij (Ferligoj in drugi 2000) Podroben opis raz-iskave je na voljo na spletni strani Arhiva druzboslovnih podatkov (ADP) (httpwwwadpfdvuni-ljsiopisiegoomr00) s katere je (po predhodni registra-

2 11 Uvodni primer

ciji) mogoce tudi prenesti podatke Za ta primer sem prenesel podatke v SPSS-ovemformatu (obicajnem ne rdquoportablerdquo (prenosljivem) torej datoteka s koncnico rdquosavrdquo)saj ga R dobro bere Kot sicer natancneje obravnavamo v podpodpoglavju 153lahko R bere in zapisuje tudi podatke izv mnogih-o drugih formatov med kate-rimi posebej izpostavim Statin format (predvsem zaradi prirocnosti pri pisanju) Vpodpodpoglavju 153 so opisani tudi razlogi za uporabo SPSS-ovega formata v temucbeniku in napotki v primeru da bralec bere podatke iz kaksnega drugega formata

Pred zacetka dela v R-ju preberemo funkcije (prej pripravljene iz datoteke rdquoUcbenikR-funkcijeRrdquo) in podatke Ker zelimo analizo izvesti samo na posameznikih ki so biliosebno anketirani opravimo se izbor enot

gt nalozimo datoteko s posebej pripravljenimi funkcijami

gt source(UcbenikR-funkcijeR)

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign)

gt preberemo podatke

gt ego1lt-readspss(egoomr00_f2savtodataframe=TRUE

usevaluelabels = FALSEusemissings=TRUE)

gt izbor samo tistih ki so bili osebno anketirani

gt egolt-ego1[ego1$MODE==1]

gt kopiranje atributov (zaradi prejsne izbire enot)

gt for(i in names(ego1))attributes(ego[i])lt-attributes(ego1[i])

Naredimo se frekvencno tabelo (lepo izpisana z LATEX-om je v tabeli 11) in grafa(slika 11) Najprej frekvencno tabelo

gt ego$E_SPOLlt-makeFactorLabels(ego$E_SPOL)

gt table(ego$E_SPOL)

moski zenski

267 364

gt frekTab(ego$E_SPOLdec=1)

Frekvenca Kum frek Kumulativni

moski 267 267 423 423

zenski 364 631 577 1000

Tabela 11 Frekvencna tabela za spol

Frekvenca Kum frek Kumulativni moski 267 267 423 423zenski 364 631 577 1000

Sedaj pa narisimo se strukturna stolpca in krog

1 poglavje ndash Uvod v R 3

Slika 11 Strukturni stolpci in krog za spol

moški ženski

Strukturna stolpca

050

150

250

350

moški

ženski

Strukturni krog

gt par(mfrow=c(12)) dva grafa na eno stran

gt barplot(table(ego$E_SPOL)main=Strukturna stolpca)

gt pie(table(ego$E_SPOL)main=Strukturni krog)

gt par(mfrow=c(11))

Delamo lahko tudi dvodimenzionalne tabele in jih na enostaven nacin narisemo (slika12)

gt ego$IZOBlt-makeFactorLabels(ego$IZOB)

gt tbllt-table(spol=ego$E_SPOLizobrazba=ego$IZOB)

gt tbl

izobrazba

spol nedokoncana osnovna sola osnovna sola

moski 1 18

zenski 5 36

izobrazba

spol poklicna sola stiriletna srednja sola visja sola

moski 44 110 28

zenski 44 157 40

izobrazba

spol visoka sola magisterij doktorat

moski 55 3 8

zenski 75 5 2

gt plot(tbllas=1 main=)

4 11 Uvodni primer

Slika 12 Strukturni stolpci za povezanost dveh nominalnih spremenljivk

spol

izob

razb

a

moški ženskinedokončana osnovna šolaosnovna šola

poklicna šola

štiriletna srednja šola

višja šola

visoka šola

magisterijdoktorat

Sledi transformacija spremenljivk ndash rdquoobracanjerdquo lestvice in izracun Likertovih lestvicza ekstravertiranost in emocionalno stabilnost

gt seznam spremenljivk ki jim je treba obrniti lestvico

gt spremZaRekodlt-c(O4 O7 O9 O10 O11 O12

O13 O14 O15 O17 O18 O19 O20)

gt imena za nove spremenljivke

gt rekodiraneSpremlt-paste(spremZaRekodRsep=)

gt obracanje vrednosti

gt ego[rekodiraneSprem]lt- 6 - ego[spremZaRekod]

gt spremEkstlt-c(O1 O2 O5 O8 O9R O12R O14R

O15R O16 O18R)

gt spremEmoclt-c(O3 O4R O6 O7R O10R O11R

O13R O17R O19R O20R)

gt uvedemo novi spremenljivki

gt ego$ekst_sco lt- apply(ego[spremEkst]1sum)

gt ego$emoc_sco lt- apply(ego[spremEmoc]1sum)

1 poglavje ndash Uvod v R 5

Porazdelitev teh dveh spremenljivk je prikazana na sliki 13 Porazdelitev obehspremenljivk je priblizno normalna se pa nakazuje rahla asimetrija v levo

gt par(mfrow=c(12)) dva grafa na eno stran

gt hist(ego$ekst_sco xlab=ekstravertiranost main=

freq=FALSEylab=gostota)

gt dodamo normalno krivuljo

gt curve(dnorm(xmean=mean(ego$ekst_sconarm=TRUE)

sd=sd(ego$ekst_sconarm=TRUE))add=TRUExpd=NA)

gt raje z gostoto

gt hist(ego$emoc_sco xlab=emocionalna stabilnost main=

freq=FALSEylab=gostota)

gt dodamo normalno krivuljo

gt curve(dnorm(xmean=mean(ego$emoc_sconarm=TRUE)

sd=sd(ego$emoc_sconarm=TRUE))add=TRUExpd=NA)

gt xpd=NA uporabimo da se vidi tudi vrh krivulje

gt par(mfrow=c(11))

Slika 13 Histograma za ekstravertiranost in emocionalno stabilnost

ekstravertiranost

gost

ota

10 20 30 40 50

000

002

004

emocionalna stabilnost

gost

ota

10 20 30 40 50

000

001

002

003

004

Izracunajmo se opisne statistike po skupinah glede na spol

gt opisne statistike po skupinah

gt ekstravertiranost

gt by(ego$ekst_sco INDICES=ego$E_SPOL

6 11 Uvodni primer

FUN = function(x)c(povprecje=mean(xnarm=TRUE)

sd=sd(xnarm=TRUE)n=sum(isna(x))))

ego$E_SPOL moski

povprecje sd n

34159696 7711717 263000000

---------------------------------------------

ego$E_SPOL zenski

povprecje sd n

34659091 8031826 352000000

gt emocionalna stabilnost

gt by(ego$emoc_sco INDICES=ego$E_SPOL

FUN = function(x)c(povprecje=mean(xnarm=TRUE)

sd=sd(xnarm=TRUE)n=sum(isna(x))))

ego$E_SPOL moski

povprecje sd n

36306818 8223621 264000000

---------------------------------------------

ego$E_SPOL zenski

povprecje sd n

33986111 9184723 360000000

Pri ekstravertiranosti (prvi izpis) imajo zenske malce vecje povprecje vendar pa stasi povprecji precej podobni Pri emocionalni stabilnosti imajo moski vecje povprecjePri obeh spremenljivkah pa je variabilnost med zenskami vecja kot med moskimiV nadaljevanju za emocionalno stabilnost preverimo domnevo da sta aritmeticnisredini v obeh skupinah (pri obeh spolih) enaki

gt EMOCIONALNA STABILNOST

gt testiramo enakost varianc (vec razlicnih testov)

gt vartest(emoc_sco~E_SPOLdata=ego)

F test to compare two variances

data emoc_sco by E_SPOL

F = 080167 num df = 263 denom df = 359 p-value =

005669

alternative hypothesis true ratio of variances is not equal to 1

95 percent confidence interval

06411573 10063491

sample estimates

ratio of variances

0801667

gt ce zelimo klasicen t-test (predpostavka enakih varianc)

gt ttest(emoc_sco~E_SPOL data=egovarequal = TRUE)

1 poglavje ndash Uvod v R 7

Two Sample t-test

data emoc_sco by E_SPOL

t = 32579 df = 622 p-value = 0001184

alternative hypothesis true difference in means is not equal to 0

95 percent confidence interval

09218292 37195850

sample estimates

mean in group moski mean in group zenski

3630682 3398611

Ker je ena izmed predpostavk klasicnega t-testa tudi enakost varianc po skupinahsmo najprej preverili to domnevo Domneve pri 5-odstotnem tveganju ne moremozavrniti zato izvedemo klasicno razlicico t-testa Ta nam pove da lahko pri tveganjupriblizno 01 trdimo da so moski (v Ljubljani) bolj emocionalno stabilni kotzenske

Izracunajmo se korelacijo med ekstravertiranostjo in emocionalno stabilnostjo pre-verimo domnevo da je ta korelacija enaka 0 ter prikazimo odnos z njima na razsev-nem grafikonu Ta je prikazan na sliki 14 kjer smo z razlicnimi barvami in znakioznacili tudi spol

gt plot(jitter(emoc_sco)~jitter(ekst_sco)

pch=asnumeric(E_SPOL)col=asnumeric(E_SPOL)data=ego

ylab=emocionalna stabilnostxlab=ekstravertiranost)

gt jitter malce razprsi tocke da se ne prekrivajo

gt legend(x=30y=525xjust=05yjust=0legend=c(moski

zenski)pch=12col=12horiz = TRUEtitle=Spol

xpd=TRUE)

Izracunamo se korelacijo med novima spremenljivkama in preverimo domnevo daje korelacija enaka 0

gt Pearsonov koeficient korelacije

gt cor(ego[c(emoc_scoekst_sco)]method = pearson

use=pairwisecompleteobs)

emoc_sco ekst_sco

emoc_sco 10000000 02278617

ekst_sco 02278617 10000000

gt cortest(y=ego$emoc_scox=ego$ekst_sco)

Pearsons product-moment correlation

data ego$ekst_sco and ego$emoc_sco

t = 57703 df = 608 p-value = 1261e-08

8 11 Uvodni primer

Slika 14 Razsevni grafikon za ekstravertiranost in emocionalno stabilnost

10 20 30 40 50

1020

3040

50

ekstravertiranost

emoc

iona

lna

stab

ilnos

t

Spol

moški ženski

alternative hypothesis true correlation is not equal to 0

95 percent confidence interval

01512119 03017878

sample estimates

cor

02278617

gt pravzarav bi bil dovolj samo ta drugi ukaz

gt prednost prvega je da bi lahko izracunali tudi korelacijo

gt med vec spremenljivkami

Korelacija je sicer razmeroma sibka in pozitivna a mocno statisticno znacilna (p lt0001)2 V povprecju imajo osebe z visjo ekstravertiranostjo tudi visjo emocionalnostabilnost in obratno a ta povezanost je kot receno sibka

2 Tako nizka stopnja tveganja (rdquomocnardquo statisticna znacilnost) je predvsem posledica velikegavzorca

1 poglavje ndash Uvod v R 9

Nadaljujemo z multivariatno analizo ndash razvrscanjem v skupine Multivariatne ana-lize sicer v ucbeniku ne obravnavam3 V uvodni primer sem jo vkljucil da bi vsajnakazal da R omogoca se bistveno vec kot je predstavljeno v tem ucbeniku

Zaceli bomo z razvrscanje v skupine Najprej izlocimo enote z manjkajocimi vre-dnostmi nato izracunamo kvadrirano evklidsko razdaljo in jo uporabimo za hierar-hicno razvrscanje z Wardovo metodo Na podlagi dobljenega dendrograma na sliki15 ocenimo da v podatkih nastopata 2 skupini

gt Hierarhicno razvrscanje v skupine

gt odstranimo enote z manjkajocimi vrednostmi

gt emoclt-naomit(ego[spremEmoc])

gt standardiziramo podatke s funkcijo scale

gt Zemoclt-scale(emoc)

gt izracunamo evklidsko razdaljo na standardiziranih podatkih

gt dlt-dist(Zemoc)

gt za kvadrirano evklidsko razdaljo jo kvadriramo

gt d2lt-d^2

gt uporabimo Wardovo metodo

gt wardlt-hclust(d=d2method=wardD)

gt narisemo dendrogram

gt plot(ward)

gt abline(h=1500 col=red)

Ti dve skupini shranimo in na nestandardiziranih spremenljivkah izracunamo pov-precja po skupinah Povprecja so prikazana v tabeli 12

gt izberemo 2 skupini (in shranimo pripadnost)

gt wardCluK2lt-cutree(wardk=2)

gt stevilo enot po skupinah

gt table(wardCluK2)

wardCluK2

1 2

352 272

gt izracunamo povprecja po skupinah

gt aggregate(x=emoc by=list(wardCluK2) FUN=mean)

Group1 O3 O4R O6 O7R O10R

1 1 3022727 2428977 3892045 2650568 2448864

2 2 4000000 4485294 4621324 4139706 4117647

3 Obstaja veliko splosnih ucbenikov za multivariatno analizo (na primer Johnson in Wichern 2007Tabachnick in Fidell 2007 Jesenko in Jesenko 2007) uporaba multivariatne analize v R-ju pa jepredstavljena predvsem v Everitt (2005) Everitt in Hothorn (2011)

10 11 Uvodni primer

Slika 15 Dendrogram ndash Wardovo razvrscanje s kvadrirano evklidsko razdaljo napodlagi spremenljivk emocionalne stabilnosti

543

627

590

880

755

1010 43

279

810

15 754

905

892

999

13 842

454

480

476

909

706

746

776

793

894

579

854

491

559

984

533

716

525

977

536

481

873

441

783

884

1025

857

572

478

938

692

861

968

841

663

1012

927

900

790

722

687

531

563

805

777

903

895

542

682

761

887

464

492

465

988

530

571

958

562

736

983

473

631

726

752

908 2

615

956

1003

442

498

742

788 15 815

494

768

643

851

775

493

767

883 7

753

450

637

890

518

630

676

803

636

665

824

526

506

923

1027

639

975

845

1017 70

272

943

783

643

457

3 980

774

354

654

914 51

067

786

752

746

710 49

661

172

453

755

365

874

196

984

773

177

8 564

269

884

910

01 656

634

930

797

598

673

732

564

834

468

647

1002

1028

462

769

757

813

850

539

906

858

863

779

978

709

575

548

955

689

1013

1009 99

796

293

791

591

491

088

187

184

378

169

368

368

067

164

963

560

460

358

643

052

042

656

192

845

846

395

298

682

696

010

07 678 6

532

691

951

648

1032

727

902

932

581

852

904

699

965

874

998

982

684

972

650

891

948

552

594

1033 63

878

292

189

743

985

976

584

499

570

092

460

176

056

066

495

496

386

252

391

244

471

250

559

712 57

897

997

199

651

964

586

088

953

574

862

193

582

859

266

869

561

651

292

052

987

642

210

16 427

547

515

591

738

947

580

582

632

893

882

608

720

555

772

1030

557

654

740

538

655

925

870

934

607

808

756

1000 56

870

463

375

999

173

551

754

159

577

452

879

688

546

910

08 605

714

945

585

830

451

600

501

846 1

503

715

1019

589

879

1024

721

919

521

1022 71

193

698

550

487

557

076

642

174

479

169

450

280

189

845

276

469

097

098

042

558

778

579

573

396

160

281

451

196

610

04 475

747

435

822

449

474

990

792

438

701

644

869

551

820

878

703

718

868

810

939

457

943

460

576

544

812

508

827

610

669

967

922

1011 70

793

180

056

969

762

086

583

244

654

079

981

751

376

349

794

191

692

967

944

062

666

675

157

780

948

688

893

383

188

680

657

410

20 609

588

661

524

696

829

428 8

821 16

447

949

907

1018 67

064

666

073

094

447

772

870

577

194

653

471

759

383

562

981

687

2 390

1 461

848

997

489

982

595

975

087

791

194

210

21 472

993

479

653

973

786

819

856

839

1029 54

562

878

499

455

081

1 1110

2342

494

0 1770

886

645

943

362

564

168

866

745

386

444

396

446

661

473

751

691

767

471

351

483

378

948

771

950

099

268

591

883

882

310

06 509

484

651

495

981

606

675

499

483

749

420

624

802

583

662

686

987

456

596

436

762

773

840

855

565

848

913

926

976

558

853

950

471

710

681

780

490

739

455

989

461

584

725

522

612

448

507

1031

1026

770

1005 64

065

265

944

548

874

562

379

465

762

280

461

978

755

473

455

695

748

275

842

948

543

161

767

256

759

983

795

310

14

050

010

0015

0020

0025

00

Cluster Dendrogram

hclust ( wardD)d2

Hei

ght

O11R O13R O17R O19R O20R

1 2306818 3301136 2974432 3536932 2758523

2 3746324 3786765 4220588 4639706 4518382

Dobili smo eno skupino s srednjo in eno z visoko emocionalno stabilnostjo Posku-simo se ali lahko z metodo voditeljev dobimo boljsi rezultat Povprecja po skupinahna nestandardiziranih spremenljivkah so prikazana v tabeli 13 in na sliki 16

gt Razvrscanje v skupine z metodo voditeljev

gt kMeansR10lt-kmeans(Zemoc centers=2 itermax = 50 nstart = 10)

gt ponovimo kar 10-krat (da se izognemo lokalnim minimumom)

gt koncni voditelji na standardiziranih spremenljivkah

gt (te smo uporabili za razvrscanje)

gt kMeansR10$centers

O3 O4R O6 O7R O10R

1 02807587 05873913 02360699 05311423 06126683

1 poglavje ndash Uvod v R 11

Tabela 12 Hierarhicno razvrscanje - povprecja po skupinah

1 2O3 302 400

O4R 243 449O6 389 462

O7R 265 414O10R 245 412O11R 231 375O13R 330 379O17R 297 422O19R 354 464O20R 276 452

2 -03449321 -07216522 -02900287 -06525462 -07527067

O11R O13R O17R O19R O20R

1 03711498 02967399 05099416 04663205 05518454

2 -04559841 -03645662 -06264997 -05729081 -06779815

gt velikosti skupin

gt kMeansR10$size

[1] 344 280

gt vrednost Wardove kriterijske funkcije

gt kMeansR10$totwithinss

[1] 4585664

gt povprecja na nestandardiziranih spremenljivkah po skupinah

gt aggregate(x=emoc by=list(kMeansR10$cluster) FUN=mean)

Group1 O3 O4R O6 O7R O10R

1 1 3854651 4261628 4470930 4104651 4098837

2 2 2950000 2175000 3889286 2310714 2042857

O11R O13R O17R O19R O20R

1 3526163 3947674 4290698 4613372 4322674

2 2207143 2978571 2567857 3285714 2546429

gt graf

gt meanslt-aggregate(x=emocby=list(kMeansR10$cluster)FUN=mean)

gt matplot(t(means[-1])type=oxaxt=nylab=povprecje)

gt axis(side=1at=1dim(means[-1])[2]

labels=colnames(means)[-1]las=2)

Primerjajmo se obe razbitji (dobljeni z razlicnima metodama) Vrednost kriterijskefunkcije za razbitje izracunano z Wardovo metodo je 491353 za tisto z metodovoditeljev pa 458566 Razbitje dobljeno z metodo voditeljev je torej boljse Kako

12 11 Uvodni primer

Tabela 13 Metoda voditeljev ndash povprecja po skupinah

1 2O3 385 295

O4R 426 217O6 447 389

O7R 410 231O10R 410 204O11R 353 221O13R 395 298O17R 429 257O19R 461 329O20R 432 255

Slika 16 Graf povprecij po skupinah dobljenih z metodo voditeljev

1

1

1

1 1

1

1

1

1

1

20

25

30

35

40

45

povprečje

2

2

2

2

2

2

2

2

2

2

O3

O4R O6

O7R

O10R

O11R

O13R

O17R

O19R

O20R

se razporeditvi prekrivata je prikazano v tabeli 14 Prekrivanje je zelo veliko sajse razbitji pri vecini enot ujemata (ne ujemata se le pri manjsem stevilu enot)4

4 Vecina enot ki je v prvi skupini po Wardovi metodi je v drugi po metodi voditeljev medtemko je vecina tistih ki so z Wardovo metodo razporejene v drugo skupino z metodo voditeljev

1 poglavje ndash Uvod v R 13

gt Primerjava kriterijskih funkcij

gt wardKF(ZemocwardCluK2) Wardova metoda

[1] 4913525

gt kMeansR10$totwithinss metoda voditeljev

[1] 4585664

gt Primerjava koncnih razvrstitev po enotah

gt table(Wardova metoda=wardCluK2

Metoda voditeljev=kMeansR10$cluster)

Metoda voditeljev

Wardova metoda 1 2

1 85 267

2 259 13

Tabela 14 Primerjava koncnih razvrstitev po enotah

1 21 85 2672 259 13

Razbitje prikazano v prostoru prvih dveh glavnih komponent je prikazano na sliki17 Vidi se da prva glavna komponenta zelo dobro loci med skupinama dobljenimaz metodo voditeljev

gt metoda glavnih komponent

gt PClt-princomp(Zemoc)

gt plot(PC$scores[12]ylab=2 komponentaxlab=1 komponenta

pch=kMeansR10$clustercol=kMeansR10$cluster)

gt legend(x=mean(range(PC$scores[1])) y=max(PC$scores[2])+05

legend = c(1 skupina 2 skupina)

title=Metoda voditeljevxjust=05 yjust=0xpd=TRUE

pch=kMeansR10$clustercol=kMeansR10$clusterhoriz=TRUE)

S tem zakljucujemo uvodni primer V nadaljevanju sledi pregled osnovnih informacijo delu s programskim paketom R

razporejena v prvo skupino Pri teh enotah se razvrstitvi ujemata saj oznake skupin (prvadruga) pri razvrscanju v skupine niso pomembne

14 12 Osnovne informacije

Slika 17 Resitev razvrscanja v prostoru glavnih komponent

-2 0 2 4 6

-20

24

1 komponenta

2 k

ompo

nent

a

Metoda voditeljev

1 skupina 2 skupina

12 Osnovne informacije

121 Osnovne racunske operacije

Najprej spoznajmo osnovne racunske operacije V R-ju se zanje uporabljajo stan-dardni simboli Morda omenimo le da je ˆ(stresica) znak za potenco sqrt pafunkcija kvadratnega korena

gt 2+2

[1] 4

gt 6-2

[1] 4

gt 35

[1] 15

gt 25

[1] 04

gt 52 vrne ostanek pri deljenju

1 poglavje ndash Uvod v R 15

[1] 1

gt 5^2 potenca

[1] 25

gt sqrt(25) kvadratni koren preko funkcije

[1] 5

gt 25^(12) in drugace (bolj splosno)

[1] 5

gt zgoraj upostevamo da je koren le posebna razlicica

gt potence in sicer oblike 1(stopnja korena)

122 Spremenljivke

Vrednost shranimo tako da jo priredimo spremenljivki (objektu) Za prirejanje upo-rabimo znak rdquolt-rdquo(uporabljamo lahko tudi znak rdquo=rdquo a se njegova uporaba odsvetuje)Spremenljivkeobjekte nato uporabljamo namesto vrednosti ki so shranjene v njih

V imenih spremenljivk lahko nastopajo

bull crke (velike in male ndash velikost crk je pomembna)

bull stevilke

bull znak rdquo rdquo ndash do verzije 180 R-ja bil uporabljan kot znak za prirejanje na karje treba biti pozoren ce naletite na kaksno zelo staro kodo

bull znak rdquordquo ndash predvsem pri funkcijah ima znak rdquordquo v imenu funkcije tudi posebenpomen (uporablja se za prilagoditev funkcije za dolocen razred objekta) zatose uporaba rdquordquo v drugih primerih odsvetuje (ni pa prepovedana)

Ime spremenljivke se mora nujno zaceti s crko ali piko (rdquordquo) Spremenljivke ki sezacenjajo s piko (rdquordquo) so skrite se pravi da se ne izpisejo s funkcijo ls() (ta funkcijaizpise vse vidne objekte v okolju)

Primer uporabe spremenljivk

gt a lt- 5 priredimo vrednost spremenljivki

gt a izpisemo vrednost spremenljivke

[1] 5

gt a + 4

[1] 9

gt b lt- a2 nekaj izracunamo in rezultat priredimo

gt b

[1] 10

gt (c lt- a + b) Kaj se zgodi zaradi oklepajev

[1] 15

16 12 Osnovne informacije

Zaradi oklepajev se najprej izvede izraz znotraj oklepaja torej se rezultat sesteva-nja shrani v spremenljivko c Nato pa se se rdquopoklicerdquo oklepaj kar izpise vrednostspremenljivke c

123 Uporaba funkcij in pomoci

Funkcija ls je prva R-jeva funkcija ki smo jo spoznali Za pomoc o katerikoli R-jevifunkciji napisemo v R eno od spodnjih moznostiime_funkcije

help(ime_funkcije)

Za iskanje po pomoci lahko uporabitehelpsearch(iskalni pogoj)

iskalni pogoj

Dodatno pomoc pa najdete tudi v meniju Help

Za iskanje funkcije katere ime ustreza dolocenemu vzorcu pa uporabite funkcijoapropos

Vsaka spremenljivka je pravzaprav objekt (objekti so tudi funkcije) Objekte lahkobrisemo s funkcijo rm

Funkcijo klicemo tako da navedemo njeno ime in potem v oklepajih () njene ar-gumente locene z vejico Nujno moramo navesti vse argumente ki nimajo privzetevrednosti ostale pa le ce nam privzeta vrednost ne ustreza Tudi ce ne navedemonobenega argumenta moramo nujno navesti oklepaje () kamor v tem primeru nenapisemo nic Za primer glejte podpodpoglavje 135 (Matrika)

Pri navajanju argumentov imamo dve moznosti

bull Argumente navajamo v takem vrstnem redu kot so navedeni v funkciji Tanacin lahko uporabimo samo pri argumentih ki so na zacetku oziroma prikaterih smo navedli tudi vse argumente pred njimi

bull Argumente navajamo v poljubnem vrstnem redu skupaj z njihovimi imeni kotdvojice ime=vrednost

V vsakem primeru argumente locimo z vejicami Drugi nacin je dosti varnejsi Prvise ponavadi uporablja le za prvi argument ali pri zelo pogosto uporabljenih funkcijahceprav tudi takrat ni priporocljiv

gt ls() Klicemo funkcijo ls ne da bi navedli kak argument

[1] a b

[3] c colinEigen

1 poglavje ndash Uvod v R 17

[5] corTestDf d

[7] d2 ego

[9] ego1 emoc

[11] frekTab i

[13] insert kMeansR10

[15] makeFactorLabels means

[17] PC plotMeans

[19] printCorTestDf razsiriPodatke

[21] rekodiraneSprem spremEkst

[23] spremEmoc spremZaRekod

[25] ss ssAllVar

[27] tbl ward

[29] wardCluK2 wardKF

[31] Zemoc

gt Argumenti niso potrebni ker je pri vseh argumentih

gt privzeta vrednost ustrezna

gt Z njo izpisemo vse vidne objekte - med njimi je tudi a

gt

gt alt-1 kreiramo a

gt rm(a) izbrisemo a - argument funkcije je

gt Pozor argument funkcije je objekt (ne njegovo ime)

gt ls() a-ja ni vec med objekti

[1] b c

[3] colinEigen corTestDf

[5] d d2

[7] ego ego1

[9] emoc frekTab

[11] i insert

[13] kMeansR10 makeFactorLabels

[15] means PC

[17] plotMeans printCorTestDf

[19] razsiriPodatke rekodiraneSprem

[21] spremEkst spremEmoc

[23] spremZaRekod ss

[25] ssAllVar tbl

[27] ward wardCluK2

[29] wardKF Zemoc

gt ls pomoc za funkcijo ls

gt help(ls) enako

gt List Objects isce po pomoci

gt ls(allnames = TRUE) izpisemo vse objekte tudi skrite

[1] cairo Randomseed

[3] b c

18 12 Osnovne informacije

[5] colinEigen corTestDf

[7] d d2

[9] ego ego1

[11] emoc frekTab

[13] i insert

[15] kMeansR10 makeFactorLabels

[17] means PC

[19] plotMeans printCorTestDf

[21] razsiriPodatke rekodiraneSprem

[23] spremEkst spremEmoc

[25] spremZaRekod ss

[27] ssAllVar tbl

[29] ward wardCluK2

[31] wardKF Zemoc

gt torej tudi tiste ki se zacnejo s piko ()

gt

gt rm(list=ls()) izbrisemo vse vidne objekte

gt ta ukaz uporabljajte zelo pazljivo

gt

gt ustvarimo nekaj spremenljivk

gt alt-1blt-2aalt-3aaaabblt-4daalt-5

gt V R-ju lahko v eno vrstico napisemo tudi vec ukazov

gt ki jih locimo s podpicji

gt ponavadi to sicer ni priporocljivo

gt

gt ls(pattern = aa) vsi objekti ki imajo v imenu aa

[1] aa aaaabb daa

gt uporabimo lahko sicer tudi regularne izraze

gt za vec informacij vtipkajte regexp

124 Paketki

Vse funkcije (ki jih nismo napisali sami) in tudi veliko podatkov je v R-ju shra-njeno v paketkih Paketke nalozimo preko menija Packages|Load package alienostavneje s funkcijama library ali require Edina razlika med njima je v temda prva ob neuspehu (ce na primer paketek ni namescen oziroma instaliran) javinapako druga pa vrednost FALSE Da pa paketke lahko nalozimo morajo biti prejnamesceni

Na voljo je veliko paketkov 30 osnovnih paketkov je vkljucenih ze v osnovno distri-bucijo R-ja (in jih imate tako po namestitvi R-ja ze namescene) veliko vec (trenutno8551) pa jih je na voljo na CRAN-u (Comprehensive R Archive Network)

1 poglavje ndash Uvod v R 19

Slika 18 Stirje obrazi

1 2

3 4

Paketke najlazje namestimo neposredno iz CRAN-a in sicer preko menija Packa-ges|Install package(s) ali preko funkcije installpackages

gt installpackages(TeachingDemos)

package TeachingDemos successfully unpacked and MD5 sums checked

The downloaded binary packages are in

CUsersAlesAppDataLocalTempRtmpcFnMNjdownloaded_packages

gt namestimo paketek s CRAN-a

gt library(TeachingDemos) nalozimo paketek

gt funkcija faces ni na voljo ce prej ne nalozimo paketka

gt faces() uporabimo funkcijo iz paketka - narisemo 4 obraze

Rezultat funkcije je na sliki 18

125 Drugi osnovni podatki

Prostor kamor v R-ju pisemo ukaze se imenuje ukazna vrstica oziroma konzolaVanjo lahko ukaze tipkamo lepimo ali posljemo iz urejevalnika besedil (ce le-ta toomogoca)

Zelo prirocno je tudi pomikanje po ze uporabljenih ukazih (za ponavljanje ali manjsespremembe) s smernimi tipkami za gor uarr in dol darr Po posameznem ukazu pa sepremikamo s smernimi tipkami za levo larr in desno rarr

20 13 Podatkovne strukture

R zapremo preko menija File|Exit ali s funkcijama q oziroma quit (funkciji staidenticni) Ko ga ugasnemo nas R tudi vprasa (ce nismo tega rdquopovedalirdquo ze zargumenti prej omenjenih funkcij) ali zelimo shraniti delovno okolje (workspace) inzgodovino

Stanje delovnega okolja (workspace) lahko kadarkoli shranimo s funkcijo saveimageali preko menija File|Save Workspace zgodovino ukazov pa s savehistory ozi-roma preko menija File|Save History Vse datoteke se (ce ne izberemo drugace)shranijo v delovno mapo (working directory) Delovno mapo lahko spremenimopreko funkcije setwd ali preko menija File|Change dir Nacin spreminjanjamape preko menija lahko uporabimo tudi le za to da najdemo trenutno delovnomapo lahko pa to ugotovimo tudi s funkcijo getwd

Shranjeno okolje lahko potem nalozimo na vec nacinov Ce nismo spreminjali imen(privzeto ime je rdquoRDatardquo za delovno okolje in rdquoRHistoryrdquo za zgodovino) potemse oboje samodejno nalozi ce bodisi zazenemo R v isti mapi bodisi zazenemo R zdvoklikom na shranjeno okolje rdquoRDatardquo Delovno okolje lahko nalozimo tudi takoda datoteko rdquoprenesemordquo v R-jevo okno s pomocjo funkcije loadimage ali prekomenija File|Load Workspace Podobno velja tudi za zgodovino

Zgodovino lahko kadarkoli izpisemo tudi s funkcijo history

R kot decimalno locilo uporaba piko () na primer 12

zapisemo kot 05 Pri ukazih setega ne da spreminjati (kar je nujno za konsistentno delovanje kateregakoli program-skega jezika) pri izpisih pa to lahko nastavimo preko funkcije optios Ce zelimokot decimalno locilo nastaviti vejico () torej decimalno locilo ki ga uporabljamo vslovenscini uporabimo ukaz options(OutDec = )

V tem ucbeniku uporabljam kot decimalno locilo piko () kjub temu da se zavedamda je to v nasprotju s slovenskim pravopisom Razloga za to sta dva oba pa izhajataiz narave ucbenika torej ucenje R-ja Prvi je v tem da menim da bi uporaba enegadecimalnega locila (pike) pri ukazih in drugega (vejice) pri izpisih lahko zmedlabralca Drugi je v tem da zelim da lahko uporabniki z uporabo ukazov iz ucbenikadobijo enak izpis kot ga podajam v ucbeniku Zato raje (kjer ni potrebno) nespreminjam zacetnih nastavitev S pomocjo funkcije options je mogoce nastavljatitudi veliko drugih nastavitev na primer sirino izpisa (tekstovnega) nacin izpisastevil (stevilo decimalnih mest znanstven ali obicajen zapis ) Za pregled in opisnastavitev ki jih je mogoce spreminjati uporabite options

13 Podatkovne strukture

131 Osnovni podatkovni tipi

R pozna naslednje osnovne podatkovne tipe

1 poglavje ndash Uvod v R 21

logical logicni vektor ndash vrednosti TRUE in FALSE

integer cela stevila

numeric realna stevila ndash to je privzeta vrednost za vsa stevila v R-ju tudi cela naprimer 2

complex kompleksna stevila

character znaki (poljubno stevilo) ndash vedno jih moramo pisati v narekovajih saj sedrugace upostevajo kot imena spremenljivk ali drugih objektov (funkcij)

raw shranjuje surove bajte (ang byte) ndash tega ne rabite

Podatkovne tipe spreminjamo s funkcijami asnekaj kjer je rdquonekajrdquo ime tipa Sfunkcijo isnekaj preverimo ali je nek podatek tipa rdquonekajrdquo (torej nekega doloce-nega tipa) Kaksnega tipa je nek podatek (objekt) pa preverimo s funkcijo mode

Obstajajo pa se sledece posebne vrednosti

NA Not available ndash ni na voljo oziroma R-jeva koda za manjkajoco vrednost

NaN Not a Number ndash ni stevilo Relevantno samo pri stevilskih tipih uporablja sekadar rezultat nekega izracuna ni definiran na primer 00

NULL Absoluten nic v R-ju prazen element

Pri prvih dveh (NA NaN) je rezultat izracuna kjer nastopa katera od teh vrednostiprakticno vedno kar ta vrednost tretji pa ima podobno vlogo kot prazen element

gt 4 realno stevilo

[1] 4

gt isnumeric(4)

[1] TRUE

gt isinteger(4) ni celo stevilo

[1] FALSE

gt a lt- asinteger(4) smo naredili celo stevilo

gt isinteger(a)

[1] TRUE

gt alt-to je znakovna spremenljivka

gt alt-4 se vedno znakovna spremenljivka

gt a cetudi je znak stevilka - ne moremo racunati

[1] 4

gt asnumeric(a)+3 po spremembi lahko racunamo

[1] 7

gt 00

[1] NaN

gt 1 + NA

[1] NA

Pri realnih podatkih prav pridejo spodaj prikazane funkcije za zaokrozevanje

22 13 Podatkovne strukture

gt floor(26) navzdol

[1] 2

gt ceiling(21) navzgor

[1] 3

gt round(21) na najblizjo vrednost

[1] 2

gt round(26)

[1] 3

gt round(15) pozor - uporablja standard IEC 60559

[1] 2

gt vrednosti na meji (5 na koncu) se zaokrozujejo na najblizje

gt sodo stevilo

gt round(25)

[1] 2

gt round(pidigits=3) lahko nastavimo tudi stevilo decimalk

[1] 3142

132 Vektor

Vektor je najosnovnejsa podatkovna struktura Vsebuje lahko samo podatke enegatipa Ce zelimo ustvariti vektor iz podatkov razlicnih tipov jih R sam pretvori vtip ki je najsplosnejsi (ce ns primer zdruzujemo stevilke in znake v tip rdquocharacterrdquo)Vektor ustvarimo tako da zdruzimo (combine) vrednosti s pomocjo funkcije c

R (oziroma njegov predhodnik S) je vektorski jezik kar pomeni da se ce ne izberemole posameznega dela operacije izvajajo na vseh elementih vektorja

Opozorilo

R dovoli tudi mnozenje dveh vektorjev razlicnih dolzin V primeru da dolzinadaljsega ni mnogokratnik dolzine krajsega izpise opozorilo sicer pa le izracunarezultat

Elemente vektorja izbiramo tako da njihove indekse navedemo v oglatih oklepajih [

] (glejte primer spodaj) Izbrane dele lahko tudi spreminjamo Negativna vrednostv oglatih oklepajih pomeni da izberemo vse razen tistega kar sledi rdquo-rdquo

gt alt-c(467312) ustvarimo vektor

gt a izpisemo vektor

[1] 4 6 7 3 1 2

gt a + 3

[1] 7 9 10 6 4 5

1 poglavje ndash Uvod v R 23

gt vsem elementom vektorja a pristejemo 3 (a se seveda ne

gt spremeni)

gt

gt blt-c(123456)

gt a+b elementi se sestejejo

[1] 5 8 10 7 6 8

gt ab oziroma zmnozijo

[1] 4 12 21 12 5 12

gt blt- c(12)

gt a+b b se 3x ponovi da doseze dolzino a-ja

[1] 5 8 8 5 2 4

gt pri tem R ne izpise kakrsnegakoli opozorila

gt ab

[1] 4 12 7 6 1 4

gt length(a) izpisemo dolzino vektorja a

[1] 6

gt length(b)

[1] 2

gt length(ab) dolzina rezultata je enaka dolzini daljsega

[1] 6

gt blt-c(1234)

gt ab b se ponovi 15-krat Izpise se opozorilo

[1] 4 12 21 12 1 4

gt a[3] izberemo 3 element vektorja a (stetje se zacne z 1)

[1] 7

gt clt-c(36d) ce zdruzimo razlicne elemente

gt c dobimo najsplosnejsi tip (znakovni)

[1] 3 6 d

gt c[2]lt-bla bla spremenimo 2 element v vektorju b

gt c

[1] 3 bla bla d

gt c[-2] izpisemo vse elemente razen drugega

[1] 3 d

Vektorzaporedje celih stevil od a do b tvorimo tako da napisemo ab kjer a

in b zamenjamo z ustreznima steviloma oziroma kjer sta to dve spremenljivki zustreznima vrednostma To lahko s pridom uporabljamo tudi pri izbiranju delavektorja saj lahko izberemo tudi vec kot en element vektorja tako da kot indekspodamo vektor stevil

Namesto indeksov lahko uporabimo tudi enako (kot originalni) dolg logicni vektor(ta ima samo vrednosti TRUE in FALSE) Izbrani so elementi kjer je vrednost TRUE

24 13 Podatkovne strukture

gt 15 vektor od 1 do 5

[1] 1 2 3 4 5

gt alt- -1010 kreiramo vektor od -10 do 10 in ga shranimo v a

gt a izpisemo vektor

[1] -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3

[15] 4 5 6 7 8 9 10

gt a[510] izpisemo stevilke na mestih od 5 do 10 (vkljucno)

[1] -6 -5 -4 -3 -2 -1

gt a[510][13]

[1] -6 -5 -4

gt izmed stevilk na mestih od 5 do 10 izberemo prve 3

gt

gt agt0 dobimo logicni vektor ki ga lahko uporabimo za izbor

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

[10] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

[19] TRUE TRUE TRUE

gt a[agt0] izberemo samo pozitivna stevila

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

gt a[c(11121)] izberemo stevilke na mestih 1 11 in 21

[1] -10 0 10

gt a[-c(11121)]

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

gt izberemo vse razen tistih na mestih 1 11 in 21

gt a[-(15)] izberemo vse razen tistih na mestih od 1 do 5

[1] -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10

Opozorilo

Ce pri zadnjem izrazu spustimo oklepaj to ni veljavno ker imajo potem indeksivrednosti od minus1 do 5 kar pa ni dovoljeno Pri indeksih ne smemo mesatinegativnih in pozitivnih stevil

Splosnejsa zaporedja dobimo s funkcijo seq Pri pisanju zank je se posebej uporabnafunkcija seq_len ki ima samo en argument in sicer dolzino zaporedja Njenaprednost je v tem da ce je dolzina 0 dejansko ustvari vektor dolzine 0

gt seq(from=1 to = 11 by= 2)

[1] 1 3 5 7 9 11

gt seq(from=1 to = 12 by= 2)

[1] 1 3 5 7 9 11

gt enako ker pri koraku 2 stevilo 12 tako ali tako izpustimo

gt seq(from=10 to = 0 by= -1) v obratnem vrstnem redu

1 poglavje ndash Uvod v R 25

[1] 10 9 8 7 6 5 4 3 2 1 0

gt nlt-5

gt 1n

[1] 1 2 3 4 5

gt seq_len(n) enako kot zgoraj

[1] 1 2 3 4 5

gt nlt-0

gt 1n morda ne ravno tisto kar smo pricakovali

[1] 1 0

gt seq_len(n) vektor dolzine 0 - bistveno bolj varno pri zankah

integer(0)

gt seq(lengthout=n) enako kot prej

integer(0)

Elementom vektorja (in tudi drugih struktur ki jih bomo spoznali kasneje) lahkodamo tudi imena To lahko storimo ko jih ustvarimo ali kasneje s funkcijo namesS to funkcijo jih tudi priklicemo Imena lahko uporabimo namesto indeksov zadostopanje do posameznih elementov

gt alt-13 ustvarimo vektor brez imen (za elemente)

gt a elementi nimajo imen

[1] 1 2 3

gt names(a)lt-c(abc)

gt a cleni imajo sedaj imena ki se izpisejo nad njimi

a b c

1 2 3

gt a[b] izberemo 2 element - b

b

2

gt ce zelimo izbrati vec kot en element moramo uporabiti

gt vektor imen

gt a[c(ac)]

a c

1 3

gt names(a)lt-NULL imena izbrisemo

gt blt-c(1a=1b=23 element=3) imena podamo ob nastanku

gt ce imamo v imenih presledke ali ce se zacnejo s stevilko

gt jih moramo dati v narekovaje sicer ni nujno

gt b

1a b 3 element

1 2 3

gt names(b)[2]lt-bbb spremenimo ime 2 clena

gt b

26 13 Podatkovne strukture

1a bbb 3 element

1 2 3

133 Nominalne in ordinalne spremenljivke

Ceprav bi nominalne spremenljivke lahko predstavili z znakovno spremenljivko (cha-racter) je priporocljivo da za njih uporabljamo tip factor Tak pristop je varnejsi(definiramo lahko kategorije) in ucinkovitejsi Ustvarimo jih s funkcijo factor ozi-roma spremenimo iz znakovnih spremenljivk s funkcijo asfactor

Zelo pomembni argumenti funkcije factor so

levels Vrednosti ki jih spremenljivka lahko zavzame Vrednosti morajo torej bititake kot vrednosti originalne spremenljivke Ce je argument podan se vse vre-dnosti spremenljivke ki niso tu navedene izlocijo Ce je vrednost argumentaordered=TRUE argument poda tudi vrstni red vrednosti Privzeta vrednostso vse vrednosti spremenljivke v takem vrstnem redu kot se prvic pojavijo(kar je zelo pomembno za pravilno uporabo argumenta labels)

labels Imena za posamezne vrednosti Prvo ime je ime vrednosti ki je kot prvapodana v levels drugo ime za vrednost ki je podana kot druga v levels

Uporaba labels brez levels ni priporocljiva Ce pa ze uporabljamolabels brez levels se moramo zavedati kaksna je privzeta vrednost zalevels (glejte zgoraj)

ordered Ta pove ali naj bo faktor rdquourejenrdquo torej ordinalna spremenljivka

Opozorilo

Pravilen tip spremenljivke je pri R-ju zelo pomemben ker se uposteva tudi pristatisticnih modelih Pri linearni regresiji na primer R iz spremenljivke tipafactor (nominalne) samodejno tvori umetne spremenljivke

Nekaj primerov

gt factor(rep(13times=3))

[1] 1 2 3 1 2 3 1 2 3

Levels 1 2 3

gt nominalna spremenljivka z vrednostmi 1 2 in 3

gt factor(rep(13times=3)levels=13 labels=c(abc))

[1] a b c a b c a b c

Levels a b c

gt nominalna spremenljivka z vrednostmi a b in c

gt factor(rep(13times=3)levels=c(abc))

1 poglavje ndash Uvod v R 27

[1] ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt ltNAgt

Levels a b c

gt vse vrednosti so NA - ce je levels specificiran

gt se kot veljavne vrednosti v originalni spremenljivki

gt upostevajo samo vrednosti v levels

gt factor(rep(13times=3)labels=c(abc))

[1] a b c a b c a b c

Levels a b c

gt sicer kot prej z levels a bolj nevarno

gt npr ce bi bila prva vrednost 3 bi a predstavljal 3

gt factor(rep(13times=3)labels=c(abc)levels=c(312))

[1] b c a b c a b c a

Levels a b c

gt ker je podal levels v drugacnem vrstnem redu

gt sedaj a predstavlja 3

gt

gt factor(rep(13times=3)ordered=TRUE)

[1] 1 2 3 1 2 3 1 2 3

Levels 1 lt 2 lt 3

gt ordinalna spremenljivka

gt factor(rep(13times=3)ordered=TRUElevels=c(312))

[1] 1 2 3 1 2 3 1 2 3

Levels 3 lt 1 lt 2

gt drugacen vrstni red kategorij

gt factor(rep(13times=3)ordered=TRUElevels=c(312)

labels=c(cab))

[1] a b c a b c a b c

Levels c lt a lt b

gt drugacen vrstni red kategorij z imeni

gt imena smo nastavili tako da a predstavlja 1

gt f1lt-factor(rep(13times=3)levels=13labels=c(abc))

gt factor(f1ordered=TRUElevels=c(cab))

[1] a b c a b c a b c

Levels c lt a lt b

gt v 2 korakih a morda bolj razumljivo

134 Seznam

Seznam (ang oziroma v R-ju list) je posebna oblika vektorja kjer so elementilahko karkoli (katerikoli elementi se pravi posamezna stevila vektorji matrike po-datkovni okvirji seznami celo funkcije)

28 13 Podatkovne strukture

Ustvarimo jih s funkcijo list ali tako da s funkcijo c skupaj zlepimo sezname Doposameznih elementov dostopamo tako da njihove indekse ali imena navedemo meddvojne oglate oklepaje ndash [[]] Ce navedemo imena ali indekse v enojnih oglatihoklepajih [] potem je rezultat nov seznam z izbranimi elementi (tudi ce izberemosamo enega)

Ce imajo elementi imena lahko do njih dostopamo tudi tako da za imenom seznamanapisemo znak za dolar $ ki mu sledi ime elementa

Na seznamih sta zelo uporabni sestrski funkciji lapply in sapply Obe funkcijiposkusata neko funkcijo (ki jo podamo kot argument) uporabiti na vseh elementihseznama Razlika je v tem da poskusa sapply poenostaviti rezultat (v vektor alimatriko) lapply pa vedno vrne seznam

gt llt-list(a=c(upsabc)b=15c=list(aa=abb=57)d=list)

gt zdruzili smo razlicne elemente - zadnji je funkcija list

gt

gt l[[a]] izberemo 1 element - vektor

[1] ups abc

gt l[[1]] enako

[1] ups abc

gt l[a] naredimo seznam ki ima samo 1 element starega

$a

[1] ups abc

gt l[1] enako

$a

[1] ups abc

gt l[13] izberemo prve 3 elemente

$a

[1] ups abc

$b

[1] 1 2 3 4 5

$c

$c$aa

[1] a

$c$bb

[1] 5 6 7

gt l[[13]] ne deluje - oziroma ima drugacno funkcijo

gt

gt

gt l[[c]][[2]][1]

1 poglavje ndash Uvod v R 29

[1] 5

gt izbrali smo 3 element (c) osnovnega seznama

gt ki pa je tudi seznam

gt v tem seznamu smo izbrali 2 element ki je vektor

gt v vektorju smo izbrali 1 element (stevilko 5)

gt l[[3]][[2]][1] enako

[1] 5

gt l[[3]][[2]] izberemo 2 element v 3 elementu

[1] 5 6 7

gt l[[32]] tokrat deluje in je enako kot zgoraj

[1] 5 6 7

gt mocno odsvetujem

gt

gt l$a ce imamo imena lahko uporabimo tudi ta nacin

[1] ups abc

gt l$c$aa deluje tudi v vec stopnjah

[1] a

gt xlt-l$d(346) ce je element seznama funkcija jo

gt lahko tudi uporabimo

gt x

[[1]]

[1] 3

[[2]]

[1] 4

[[3]]

[1] 6

gt l da se spomnimo kaj je l

$a

[1] ups abc

$b

[1] 1 2 3 4 5

$c

$c$aa

[1] a

$c$bb

[1] 5 6 7

30 13 Podatkovne strukture

$d

function () Primitive(list)

gt lapply(lFUN=length) izracunamo dolzino vseh elementov

$a

[1] 2

$b

[1] 5

$c

[1] 2

$d

[1] 1

gt zdaj smo dobili seznam

gt

gt sapply(lFUN=length) sapply vrne vektor

a b c d

2 5 2 1

gt to je mogoce ker so bili vsi elementi posamezna stevila

gt paziti je treba da je funkcija taka da se jo da

gt uporabiti na vseh elementih

135 Matrika

Matrika je pravzaprav vektor (katerekoli oblike razen seznama) ki ima dve dimenziji(stolpce in vrstice) Do elementov dostopamo tako da v oglatih oklepajih navedemoindekse ali imena celic v obeh dimenzijah (locene z vejicami ndash [ab]) ki jih zelimoizbrati Ce zelimo v kateri dimenziji izbrati vse celice lahko indekseimena za todimenzijo izpustimo (vseeno moramo pisati vejico)

Ustvarimo jo s funkcijo matrix Spodaj je prikazan klic funkcije in v njem tudi vsiargumenti Vrednosti ki so tu pripisane argumentom so privzete vrednosti Vec opomenu argumentov lahko preberemo v pomocimatrix(data = NA nrow = 1 ncol = 1 byrow = FALSE dimnames = NULL)

Matriko lahko ustvarimo tudi tako da vektorje rdquozlepimordquoskupaj kot stolpce (funkcijacbind) ali vrstice (funkcija rbind)

gt matrix dostop do pomoci za razlago argumentov

gt Alt-matrix(data=124nrow=6) ustvarimo matriko s 6 vrsticami

gt in 4 stolpci -gt ker je 24

gt elementov v data

1 poglavje ndash Uvod v R 31

gt

gt A ustvarjena matrika

[1] [2] [3] [4]

[1] 1 7 13 19

[2] 2 8 14 20

[3] 3 9 15 21

[4] 4 10 16 22

[5] 5 11 17 23

[6] 6 12 18 24

gt A[32] izberemo 2 element v 3 vrstici

[1] 9

gt oziroma vse elemente ki so v 3 vrstici in 2 stolpcu

gt

gt A[3] izberemo 3 vrstico

[1] 3 9 15 21

gt A[2] izberemo 2 stolpec

[1] 7 8 9 10 11 12

gt A[13] izberemo prve 3 vrstice

[1] [2] [3] [4]

[1] 1 7 13 19

[2] 2 8 14 20

[3] 3 9 15 21

gt izberemo elemente ki so v 2 ali 3 vrstici in

gt v 1 ali 4 stolpcu

gt A[c(24)c(14)]

[1] [2]

[1] 2 20

[2] 4 22

gt alt-14

gt blt-25

gt Blt-cbind(ab) matrika z dvema stolpcema

gt B

a b

[1] 1 2

[2] 2 3

[3] 3 4

[4] 4 5

gt Clt-rbind(ab) matrika z dvema vrsticama

gt C

[1] [2] [3] [4]

a 1 2 3 4

b 2 3 4 5

32 13 Podatkovne strukture

R vsebuje tudi jezik za matricno racunanje Pri tem sta najpomembnejsa operatorza matricno mnozenje in funkcija solve ki omogoca izracun inverzne matrikeNekaj primerov

gt Alt-matrix(data=124nrow=6)

gt klasicno se operacije pri matriki izvajajo tako kot pri

gt vektorjih torej po elementih

gt A+2

[1] [2] [3] [4]

[1] 3 9 15 21

[2] 4 10 16 22

[3] 5 11 17 23

[4] 6 12 18 24

[5] 7 13 19 25

[6] 8 14 20 26

gt A2

[1] [2] [3] [4]

[1] 05 35 65 95

[2] 10 40 70 100

[3] 15 45 75 105

[4] 20 50 80 110

[5] 25 55 85 115

[6] 30 60 90 120

gt A2

[1] [2] [3] [4]

[1] 2 14 26 38

[2] 4 16 28 40

[3] 6 18 30 42

[4] 8 20 32 44

[5] 10 22 34 46

[6] 12 24 36 48

gt A+A

[1] [2] [3] [4]

[1] 2 14 26 38

[2] 4 16 28 40

[3] 6 18 30 42

[4] 8 20 32 44

[5] 10 22 34 46

[6] 12 24 36 48

gt AA tudi ce je operacija mnozenje

[1] [2] [3] [4]

[1] 1 49 169 361

[2] 4 64 196 400

1 poglavje ndash Uvod v R 33

[3] 9 81 225 441

[4] 16 100 256 484

[5] 25 121 289 529

[6] 36 144 324 576

gt to ni matricno mnozenje

gt

gt A(14)

[1] [2] [3] [4]

[1] 1 21 13 57

[2] 4 32 28 80

[3] 9 9 45 21

[4] 16 20 64 44

[5] 5 33 17 69

[6] 12 48 36 96

gt tako kot pri racunanju z vektorji se krajsi reciklira

gt torej se tolikokrat ponovi da doseze dolzino daljsega

gt

gt t(A) transponiramo matriko - zamenjamo vrstice in stolpce

[1] [2] [3] [4] [5] [6]

[1] 1 2 3 4 5 6

[2] 7 8 9 10 11 12

[3] 13 14 15 16 17 18

[4] 19 20 21 22 23 24

gt dim(A) ugotovimo dimenziji matrike

[1] 6 4

gt dim(t(A)) pri transponirani matriki sta ravno obrnjeni

[1] 4 6

gt A t(A) matricno mnozenje

[1] [2] [3] [4] [5] [6]

[1] 580 620 660 700 740 780

[2] 620 664 708 752 796 840

[3] 660 708 756 804 852 900

[4] 700 752 804 856 908 960

[5] 740 796 852 908 964 1020

[6] 780 840 900 960 1020 1080

gt A (14) matricno mnozenje z vektorjem

[1]

[1] 130

[2] 140

[3] 150

[4] 160

[5] 170

[6] 180

34 13 Podatkovne strukture

gt R samodejno poskrbi da je vektor ustrezen

gt (stolpicni ali vrsticni)

gt bolje je sicer ce za to poskrbimo sami

gt alt-matrix(14ncol=1) stolpicni vektor

gt A a

[1]

[1] 130

[2] 140

[3] 150

[4] 160

[5] 170

[6] 180

gt izracunamo lahko tudi inverz matrike

gt seveda samo kvadratne in take z nenicelno determinanto

gt AA lt- A t(A) naredimo kvadratno matriko

gt det(AA) izracunamo determinanto

[1] 5494284e-59

gt determinanta je prakticno nic zato te matrike ne moremo

gt uporabiti

gt

gt Blt-matrix(c(163737379)ncol=3)

gt naredimo kvadratno matriko katere determinanta ni 0

gt det(B) izracunamo determinanto

[1] -154

gt invBlt-solve(B) izracunamo inverz matrike B

gt shranili smo ga v invB

gt invB izpisemo

[1] [2] [3]

[1] 01428571 2727273e-01 -025974026

[2] 02142857 4205453e-18 -007142857

[3] -02142857 -9090909e-02 025324675

gt B invB dokaz da smo izracunali inverz

[1] [2] [3]

[1] 1000000e+00 8326673e-17 0

[2] -3053113e-16 1000000e+00 0

[3] -1387779e-16 1387779e-16 1

gt rezultat je enotska matrika

gt na diagonali so samo enice drugod povsod nicle

gt nekatere vrednosti niso 0 ampak skoraj 0 zaradi

gt nenatancnosti izracuna -gt nekaterih vrednosti v racunalniku

gt ne moremo predstaviti natancno

gt zapsmall(BinvB)

1 poglavje ndash Uvod v R 35

[1] [2] [3]

[1] 1 0 0

[2] 0 1 0

[3] 0 0 1

gt funkcija zapsmall vrednosti ki so skoraj 0 spremeni v 0

Podobno kot lahko na seznamih uporabljamo funkciji lapply in sapply lahko namatrikah uporabimo funkcijo apply Tej moramo poleg matrike in funkcije podatitudi dimenzijo (vrstice ali stolpce) na kateri zelimo funkcijo uporabiti

gt Alt-matrix(data=124nrow=6)

gt apply(X=AMARGIN=1FUN=sum) vsota po vrsticah

[1] 40 44 48 52 56 60

gt apply(X=AMARGIN=2FUN=sum) vsota po stolpcih

[1] 21 57 93 129

136 Polje ndash Array

Nadgradnja matrike je polje (ang array) Od matrike se razlikuje po tem daima poljubno stevilo dimenzij Za vec poglejte array Tudi na poljih je mogoceuporabiti funkcijo apply

137 Podatkovni okvir ndash Data frame

Podatkovni okvir je podatkovna struktura ki je obicajno najprimernejsa za shra-njevanje podatkovij Ima podobno vlogo in strukturo kot podatkovne datoteke priostalih statisticnih programih na primer SPSS-u V vrsticah so enote v stolpcih paspremenljivke oziroma rdquovektorjirdquo

Podatkovni okvirji imajo tako nekatere lastnosti matrik pa tudi nekatere lastnostiseznamov Po eni strani so podobni matrikam vendar pa lahko pri podatkovnihokvirjih stolpci hranijo razlicne tipe podatkov Se bolj so podobni seznamom sajpravzaprav so seznami kjer so vsi elementi vektorji enake dolzine Se pravi soseznami kjer je vsak element (v statisticnem smislu) neka spremenljivka

Tudi do elementov lahko dostopamo tako kot pri seznamih ali tako kot pri matrikah

Podatkovni okvir ustvarimo s funkcijo dataframe ali tako da vanj preoblikujemomatriko ali seznam (ki mora biti ustrezne oblike) s funkcijo asdataframe

gt ustvarimo nekaj vektorjev

gt generiramo vrednosti slucajno iz normalne porazdelitve

36 13 Podatkovne strukture

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt ustvarimo slucajen vektor z nestevilskimi elementi

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt izberemo vzorec s ponavljanjem velikosti 10

gt podatkilt-dataframe(x1x2x3)

gt podatki

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 c

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 10202235 a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt names(podatki) imena kot pri seznamu

[1] x1 x2 x3

gt dim(podatki) preverimo dimenzije kot pri matriki

[1] 10 3

gt colnames(podatki) preverimo imena stolpcev kot pri matriki

[1] x1 x2 x3

gt dimnames(podatki) kot pri matriki - imena stolpcev in vrstic

[[1]]

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

[[2]]

[1] x1 x2 x3

gt izbiramo stolpce

gt podatki[x1] kot pri matriki (stolpci so 2 dimenzija)

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt podatki$x1 kot pri seznamu

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt podatki[x1]

x1

1 1772191

2 1685902

3 1820382

4 1800462

1 poglavje ndash Uvod v R 37

5 1788490

6 1768851

7 1741618

8 1835689

9 1724907

10 1726332

gt kot pri seznamu - to je se vedno podatkovni okvir

gt

gt podatki[c(x1x3)]

x1 x3

1 1772191 c

2 1685902 c

3 1820382 b

4 1800462 b

5 1788490 b

6 1768851 a

7 1741618 b

8 1835689 c

9 1724907 c

10 1726332 a

gt kot pri seznamu - to je se vedno podatkovni okvir

gt podatki[[x1]] kot pri seznamu - to je zdaj vektor

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt vektor dobimo (eno samo spremenljivko ker smo uporabili

gt dvojne oglate oklepaje)

gt

gt vrstice

gt podatki[13] kot pri matriki (vrstice so 2 dimenzija)

x1 x2 x3

1 1772191 1169315 c

2 1685902 1009201 c

3 1820382 1206257 b

gt elemente

gt podatki[2x1] kot pri matriki

[1] 1685902

gt tako lahko tudi vec naenkrat

gt podatki[24c(x1x3)] kot pri matriki

x1 x3

2 1685902 c

3 1820382 b

4 1800462 b

gt podatki$x1[13] kot pri seznamu - samo v enem stolpcu naenkrat

38 14 Funkcije in programiranje

[1] 1772191 1685902 1820382

gt podatki[[x1]][13] enako na drug nacin

[1] 1772191 1685902 1820382

138 Vaje

Vaja 1

Recimo da imate sledece vrednosti 10 23 43 43 32 12

Izracunajte povprecje varianco in standardni odklon Za izracun vsote lahko upo-rabite funkcijo sum naprednejsih vgrajenih funkcij pa ne uporabljajte (za variancostandardni odklon )

Vaja 2

Recimo da imamo tri spremenljivke ndash y x1 in x2 ki imajo sledece vrednostiy 10 23 43 43 32 12x1 15 23 54 45 42 10x2 210 183 186 164 175 200

Recimo da je y odvisna spremenljivka ter da sta x1 in x2 neodvisni spremenljivkiS pomocjo matricnega racunanja izracunajte vrednosti regresijskih koeficientov na-povedanih vrednosti in vrednosti rezidualov Poskrbite da bodo vsi trije rezultativektorji (rezultat matricnega racunanja je matrika)

Vse tri rezultate shranite v seznam

Namig Matricna formula za izracun regresijskih koeficientov je

β = (XprimeX)minus1Xprimey

Matrika X mora biti sestavljena iz stolpca enic in po enega stolpca za vsako neod-visno spremenljivko Formula za izracun napovedi pa je

yprime = Xβ

14 Funkcije in programiranje

Zaporedje ukazov ki jih pogosto uporabljamo skupaj je smiselno zdruziti skupaj vfunkcijo To omogoca da jih zelo enostavno veckrat uporabimo na razlicnih podat-kih

1 poglavje ndash Uvod v R 39

141 Nekaj koristnih funkcij

Poleg statisticnih funkcij R vsebuje tudi veliko funkcij za manipulacijo s podatkiNavedimo le nekaj najpomembnejsih

sort Uredi enote (v stevilskem vektorju po velikosti)

order Vrne zaporedno stevilko vsake enote ce jih uredimo glede na dolocenvektor Zelo uporabno za rdquosortiranjerdquo podatkovnih okvirjev

naomit Iz podatkovnega okvirja izbrise vse enote (vrstice) kjer nastopajomanjkajoce vrednosti To nam omogoca da pri vseh spremenljivkah uposte-vajo iste enote

attributes Vrne lastnosti (ang rdquoattributesrdquo) nekega objekta

sample Vrne slucajen vzorec izbrane velikosti iz izbranega vektorja ali se-znama Privzeto je vzorcenje brez ponavljanja lahko pa tudi nastavimo vzor-cenje s ponavljanjem Ce zelimo lahko tudi nastavimo verjetnosti za posame-zne elemente

which Vrne indekse (zaporedne stevilke) pri katerih je vrednost izraza TRUE

(nek pogoj je izpolnjen)

Poleg funkcij so pomembni tudi operatorji ki so sicer tudi sami neke vrste funkcija

Operatorji primerjav == (je enako ndash dva enacaja) gt= lt= gt lt =(ni enako)

Operator negacije Uporablja se z logicnimi vrednostmi ndash TRUE spremeniv FALSE in obratno

in Operator vsebovanja Pove ali so elementi 1 vektorja vsebovani v 2elementu

gt x1 lt- podatki$x1

gt x1 prvotna razporeditev

[1] 1772191 1685902 1820382 1800462 1788490 1768851

[7] 1741618 1835689 1724907 1726332

gt sort(x1) vrednosti urejene po velikosti narascajoce

[1] 1685902 1724907 1726332 1741618 1768851 1772191

[7] 1788490 1800462 1820382 1835689

gt sort(x1 decreasing = TRUE) urejene po velikosti padajoce

[1] 1835689 1820382 1800462 1788490 1772191 1768851

[7] 1741618 1726332 1724907 1685902

gt order(x1) zaporedne st v takem vrstnem redu

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

gt da bi bile vrednosti urejene po velikosti

gt x1[order(x1)] enak rezultat kot sort(x1)

40 14 Funkcije in programiranje

[1] 1685902 1724907 1726332 1741618 1768851 1772191

[7] 1788490 1800462 1820382 1835689

gt podatki originalni vrstni red

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 c

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 10202235 a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt podatki[order(podatki$x3)]

x1 x2 x3

6 1768851 10202235 a

10 1726332 11636876 a

3 1820382 12062572 b

4 1800462 10295941 b

5 1788490 9900317 b

7 1741618 8816272 b

1 1772191 11693152 c

2 1685902 10092010 c

8 1835689 8434124 c

9 1724907 9802423 c

gt podatki urejeni po velikosti x3 (abc)

gt podatki[order(podatki$x3podatki$x1)]

x1 x2 x3

10 1726332 11636876 a

6 1768851 10202235 a

7 1741618 8816272 b

5 1788490 9900317 b

4 1800462 10295941 b

3 1820382 12062572 b

2 1685902 10092010 c

9 1724907 9802423 c

1 1772191 11693152 c

8 1835689 8434124 c

gt podatki urejeni najprej glede na x3

gt znotraj kategorij x3 pa glede na x1

gt

gt podatkiNAlt-podatki skopiramo podatke

1 poglavje ndash Uvod v R 41

gt dodajmo v podatke manjkajoce vrednosti NA

gt podatkiNA[3x1]lt-NA

gt podatkiNA[6x2]lt-NA

gt podatkiNA[2x3]lt-NA

gt podatkiNA[3x2]lt-NA

gt podatkiNA podatki z manjkajocimi vrednostmi

x1 x2 x3

1 1772191 11693152 c

2 1685902 10092010 ltNAgt

3 NA NA b

4 1800462 10295941 b

5 1788490 9900317 b

6 1768851 NA a

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt podatkiNAomitlt-naomit(podatkiNA)

gt odstranimo podatke z manjkajocimi enotami

gt podatkiNAomit

x1 x2 x3

1 1772191 11693152 c

4 1800462 10295941 b

5 1788490 9900317 b

7 1741618 8816272 b

8 1835689 8434124 c

9 1724907 9802423 c

10 1726332 11636876 a

gt attributes(podatkiNAomit)$naaction

2 3 6

2 3 6

attr(class)

[1] omit

gt informacija o tem katere vrstice smo odstranili

gt

gt sample(x=1100size=5)

[1] 94 55 41 83 23

gt slucajni vzorec 5 enot iz vektorja 1100 brez ponavljanja

gt sample(x=15size=5) permutacija (ker porabimo vse enote)

[1] 4 3 1 5 2

gt abclt-c(abc)

gt sample(x=abcsize=10replace=TRUE) vzorec s ponavljanjem

[1] c b c b a a b a b c

42 14 Funkcije in programiranje

gt sample(x=abcsize=10replace=TRUE prob=c(060202))

[1] a a b c b a c a c c

gt vzorec s ponavljanjem - razlicne verjetnosti izbora

gt

gt abclt-c(abc)

gt rep(abctimes=3) vektor ponovimo 3-krat

[1] a b c a b c a b c

gt rep(abceach=3) vsak element ponovimo 3-krat

[1] a a a b b b c c c

gt rep(abceach=3times=2)

[1] a a a b b b c c c a a a b b

[15] b c c c

gt vsak element ponovimo 3-krat vektor 2-krat

gt

gt

gt xlt-sample(x=abcsize=10replace=TRUE prob=c(060202))

gt x

[1] b b c a a a c c a a

gt which(x==a) na katerih mestih so a-ji

[1] 4 5 6 9 10

gt x[which(x==a)]

[1] a a a a a

gt x in c(bc)

[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

[10] FALSE

gt (x==a) enako

[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE

[10] FALSE

Poleg zgornjih je treba omeniti se funkcije za generiranje psevdoslucajnih stevil Rvsebuje mnogo funkcij za generiranje slucajnih vrednosti iz razlicnih porazdelitevNaj omenimo samo najpomembnejse

rnorm normalna porazdelitev

runif enakomerna porazdelitev

rbinom binomska porazdelitev

rbeta beta porazdelitev (zelo fleksibilna)

rexp eksponentna porazdelitev

rf F porazdelitev

rt t porazdelitev

r Se kar nekaj drugih porazdelitev Ime funkcije se vedno zacne z rdquorrdquo sledioznaka (ime ali okrajsava) za porazdelitev

1 poglavje ndash Uvod v R 43

Vse zgoraj navedene funkcije kot prvi argument sprejmejo n ki pove koliko stevilzelimo generirati Poleg tega kot dodatne argumente sprejmejo parametre porazde-litve Pozor Porazdelitvene funkcije so lahko definirane drugace kot ste navajeni

Vse zgoraj navedene funkcije imajo tudi rdquosestrerdquo ki se namesto z rdquorrdquo zacnejo z

d funkcija gostote

p (kumulativna) porazdelitvena funkcija

q kvantilna funkcija ndash vrne vrednost ki pripada dolocnem kvantilnem rangu

Pomembna je tudi funkcija setseed kjer lahko nastavimo seme (koristno ce bi sekdaj zeleli generirati enake vrednosti)

Spodaj je nekaj primerov za generiranje slucajnih stevil iz razlicnih porazdelitev

gt setseed(1)

gt rnorm(n=5)

[1] -06264538 01836433 -08356286 15952808 03295078

gt 5 slucajnih stevil iz standardizirane normalne porazdelitve

gt rnorm(n=5 mean=10sd=2) drugacno povprecje in sd

[1] 8359063 10974858 11476649 11151563 9389223

gt rexp(n=10rate=05) 10 stevil iz eksponentne porazdelitve

[1] 0294092 2781470 1524060 2475207 8847868 2109086

[7] 2070488 3752070 1309493 0673867

gt rbeta(n=5 shape1=1shape2=1)

[1] 02057601 02762891 01790537 02170672 04702804

gt kovanec vrzemo 100-krat

gt predvidevamo da je posten (prob=05)

gt kolikokrat pade cifra

gt poskus ponovimo 10-krat

gt rbinom(n=10 size=100 prob=05)

[1] 46 56 50 52 42 44 49 54 39 52

142 Definiranje funkcij

Funkcija je zaporedje ukazov ki se izvrsi na vhodnih parametrih (ce jih funkcijaima) Funkcija lahko kaj vrne ni pa nujno Osnovna sintaksa funkcije jeime_funkcije lt-function(argumenti)

izraz1izraz2izraz3return(nek_objekt)

44 14 Funkcije in programiranje

Izrazi so lahko katerikoli veljavni R izrazi Ukaz return ni nujen Ce ukaza return

ni funkcija vrne rezultat zadnjega izracuna Ce zelimo da funkcija ne vrne nicesar(ce jo uporabljamo zaradi rdquostranskih ucinkovrdquo kot je na primer risanje pisanje vdatoteko ) potem moramo eksplicitno napisati return(NULL) Funkcija se vednozakljuci pri ukazu return (ce ta obstaja) Karkoli za njim se ne izvede

Argumente navedemo tako da navedemo njihova imena Ce jim zelimo pripisati tudiprivzete vrednosti (le-te se uporabijo ce ob klicu ne navedemo drugih) navedemoargumente kot

ime1=privzeta_vrednost1 ime2=privzeta_vrednost2 itd

Poseben argument je tudi argument rdquordquo Ce vsebuje funkcija ta argument sprejmetudi katerikoli argument ki ni eksplicitno naveden v definiciji funkcije uporablja pase predvsem za posredovanje argumentov funkcijam znotraj funkcije

V funkciji seveda lahko uporabimo tudi druge funkcije in tudi funkcijo ki jo pisemoSlednje je lahko zelo mocno orodje a tudi zelo nevarno (nujna je uporaba pogojev)

gt funkcija ki izracuna ploscino kroga

gt plKrogalt-function(r)

Funkcija ima samo en argument in sicer polmer kroga

Zamiki niso potrebni je pa koda tako preglednejsa

pllt-pir^2 pi je vrednost konstante pi

return(pl) Ta vrstica pravzaprav ni nujna

saj funkcija tudi sicer vrne pl

ker je to rezultat zadnjega izracuna

je pa to dobra praksa

gt plKroga(10) poklicemo funkcijo

[1] 3141593

gt rezultat lahko tudi shranimo

gt plR10lt-plKroga(10)

gt plR10

[1] 3141593

143 Programski tok

Pri kateremkoli programu je zelo pomembno usmerjanje programskega toka

V ta namen so v R-ju na voljo sledeci ukazi

if Pogojni stavek Telo stavka se izvrsi ce je pogoj izpolnjen oziroma ce je vrednostpogoja TRUE Ukaz ima oblikoif(pogoj)izraz1 else izraz2

1 poglavje ndash Uvod v R 45

pogoj je nekaj kar ima kot rezultat TRUE ali FALSE Ce je vrednost pogojaTRUE se izvede izraz1 sicer pa izraz2 Pozor R smatra 0 kot FALSE vseostale stevilke pa kot TRUEelse del ni obvezen Ce ga ni se v primeru da je vrednost pogoja FALSE neizvede nic

while Pogojno ponavljanjezanka Telo stavka se ponavlja dokler je pogoj izpol-njen oziroma dokler je vrednost pogoja TRUE Ukaz ima oblikowhile(pogoj)izraz

repeat Neskoncno ponavljanje oziroma neskoncna zanka Telo stavka se ponovidokler znotraj ne naleti na ukaz break (glejte naprej) Ukaz ima oblikorepeatizraz

Opozorilo

Ukaz repeat je zelo nevaren Nujno moramo v izraz zapisati ukaz breaksicer dobimo neskoncno zanko (smrt vsakega programa)

for Ponavljanjezanka preko zaporedja Telo stavka se ponavlja tolikokrat dazanka rdquoobdelardquo vse elemente zaporedja Ukaz ima oblikofor(spremenljivka in zaporedje) izrazizraz se ponavlja dokler spremenljivka ne pride cez vse elemente zaporedjaZanka se torej ponovi tolikokrat kolikor je elementov zaporedjaspremenljivka ima v vsaki ponovitvi drugacno vrednost vrednost naslednjegaelementa iz zaporedjazaporedje je ponavadi nek vektor (lahko tudi seznam) zelo pogosto kar rezultatfunkcije seq oziroma izraza ab

break Prekinitev zanke Ukaz se uporablja le znotraj zank in sprozi takojsnjo pre-kinitev zanke

next Naslednji Ukaz se uporablja le znotraj zank in sprozi zacetek naslednje po-novitve (trenutna ponovitev se na mestu ukaza konca)

Uporaba ukazov break in next je smiselna le znotraj if stavka (ko se ukaza izvedetale pod dolocenim pogojem) saj zanka sicer nima smisla

gt xlt-1

gt if(x==1)print(ok)elseprint(ups)

[1] ok

gt pogoj je bil izpolnjen zato se izpise ok

gt

gt xlt-2

gt if(x==1)print(ok)elseprint(ups)

[1] ups

46 14 Funkcije in programiranje

gt pogoj ni bil izpolnjen zato se izpise ups

gt

gt for(i in 15)

print(i)

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt xlt-1

gt while(xlt=5)

print(x)

xlt-x+1

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt xlt-1

gt repeat

print(x)

xlt-x+1

if(xgt5) break

[1] 1

[1] 2

[1] 3

[1] 4

[1] 5

gt for(i in 15)

if(i2==0) next

print(i)

[1] 1

[1] 3

[1] 5

1 poglavje ndash Uvod v R 47

144 Vaje

Vaja 1

Za probleme iz vaj v prejsnjem podpoglavju (podpoglavje Podatkovne strukturepodpodpoglavje 138 na strani 38) napisite funkcije tako da jih bo moc uporabitina poljubnem stevilu enot Prikazite uporabo

Vaja 2

Z uporabo zank napisite funkcijo za izracun vsote vseh elementov vektorja

Vaja 3

Napisite funkcijo ki izracuna fakulteto poljubnega naravnega stevila Poskusitenapisati funkcijo z zankami in z uporabo rekurzivne funkcije (funkcije v funkciji)

Namig Fakulteto stevila izracunamo po naslednji funkciji

n = n middot (nminus 1) middot (nminus 2) middot middot middot 2 middot 1 =nprodk=1

k = n middot (nminus 1)

Pozor Fakulteta hitro postane zelo veliko stevilo zato funkcije preizkusajte namanjsih stevilih (recimo do 10)

Vaja 4

Napisite funkcijo za izracun mediane

Namig 1 Za ureditev enot po vrsti lahko uporabite funkcijo sort

Namig 2 Za ugotovitev ali je stevilo enot sodo ali liho pride prav operator kivam vrne ostanek pri deljenju

15 Delo z datotekami

Nekaj dela z datotekami (shranjevanje in nalaganje delovnega okolja in zgodovine)smo ze obdelali v podpodpoglavju 125 Tu pa si bomo pogledali predvsem funkcijeza branje in pisanje podatkov

48 15 Delo z datotekami

151 Tekstovne datoteke

Tekstovne datoteke so datoteke ki jih lahko beremo z urejevalniki besedila (naprimer TextPad Notepad Notepad++ ) in ne z urejevalniki dokumentov kotso Microsoft (Office) Word ali OpenOfficeorg Writer Ponavadi so podatki urejenitako da so v stolpcih spremenljivke v vrsticah pa enote Stolpci so loceni z nekimznakom ki je lahko tabulator (t) podpicje () vejica () presledek ( )

Za branje tekstovnih datotek se najpogosteje uporablja funkcija readtable innjene izpeljanke Izpeljanke so identicne originalni funkciji le da imajo drugacneprivzete vrednosti ki so primerne za branje dolocenih formatov tekstovnih dato-tek Predvsem se pogosto uporabljata funkciji (za ostale glejte pomoc za funkcijoreadtable)

readcsv2 Za branje datotek rdquocsvrdquo Na koncu imena je rdquo2rdquo ker je to verzija zadatoteke rdquocsvrdquo ki za locilo uporabljajo podpicje () vejico () pa za decimalnolocilo kot je standard pri nas Obstaja tudi verzija brez koncnice rdquo2rdquo kisledi ameriskemu standardu Take datoteke znajo brati in pisati programi zadelo s preglednicami na primer Excel Tak program je obicajno tudi privzetiprogram za odpiranje takih datotek

readdelim2 Za branje datotek ki so locene z tabulatorjem (t) Na koncu imenaje rdquo2rdquo ker je to verzija za datoteke ki za decimalno locilo uporabljajo vejico() kot je standard pri nas Obstaja tudi verzija brez rdquo2rdquo ki sledi ameri-skemu standardu Tudi take datoteke znajo brati in pisati programi za delo spreglednicami na primer Excel

Funkcija readtable in njene izvedenke kot glavni argument sprejmejo ime datoteke(s potjo ce je potrebno) vrnejo pa podatkovni okvir Imajo se vrsto argumentov skaterimi je mogoce dolocati kako se obravnavajo znakovne spremenljivke kodiranje

Sedaj bomo prebrali tekstovno datoteko rdquoizborESSn30txtrdquo Njenih prvih nekaj vr-stic je videti takole

spol izobrazba kraj placa

1 zenski 12 kmetija 170

2 moski 12 manjse mesto 140

3 moski 11 manjse mesto 130

4 zenski 14 predmestje 150

V 1 vrstici so imena spremenljivk v 1 stolpcu pa rdquoimenardquo vrstic Prva vrstica(imena spremenljivk) se zacne kar s prvo spremenljivko (in ne z imenom stolpca zaimena vrstic) kar funkcija readdelim (obe verziji saj se razlikujeta le v decimal-nem locilu) tudi pricakuje Stolpci so loceni s tabulatorjem ceprav to iz zgornjegazapisa ni vidno v boljsih urejevalnikih besedila pa je mogoce nastaviti da so vidni

1 poglavje ndash Uvod v R 49

Narekovaji okoli nenumericnih spremenljivk sicer niso nujni (kadar so vrednosti locenes tabulatorji) so pa priporocljivi

gt izborlt-readdelim(file=izborESSn30txt)

gt izbor[14] izpisemo samo zgornje vrstice

spol izobrazba kraj placa

1 zenski 12 kmetija 170

2 moski 12 manjse mesto 140

3 moski 11 manjse mesto 130

4 zenski 14 predmestje 150

gt sapply(izborclass) pogledamo tipe spremenljivk

spol izobrazba kraj placa

factor integer factor integer

Ko smo prebrali podatke smo izpisali tipe spremenljivk Nenumericne spremenljivkeso v R-ju postale spremenljivke tipa factor Ce tega ne zelimo ce zelimo daso tipa character lahko to spremenimo z argumentom stringsAsFactors ki ganastavimo na FALSE

Za pisanje tekstovnih datotek se najpogosteje uporablja funkcija writetable innjene izpeljanke (writecsv in writecsv2)

Podatki ki jih zelimo zapisati s funkcijo writetable morajo biti v obliki matrikeali podatkovnega okvirja

Za bolj splosno branje tekstovnih datotek (v obliki tabel) se uporablja funkcija scanza pisanje takih datotek pa funkcija cat Za vec informacij glejte njuno pomoc

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt in se eno nenumericno

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt izberemo vzorec s ponavljanjem velikosti 10

gt podatkilt-dataframe(x1x2x3)

gt writetable(x=podatki file=podatkitxt sep = t

dec = rownames = FALSE)

gt sep = t - locilo stolpcev je tabulator

gt dec = - decimalno locilo je vejica

gt rownames = FALSE - imena vrstic ne shranimo

gt tako datoteko lahko preberemo z readdelim2

50 15 Delo z datotekami

152 Shranjevanje in branje objektov

Za shranjevanje R-jevih objektov je najprimernejsa funkcija save Je zelo podobnafunkciji saveimage ki smo jo spoznali v podpodpoglavju 125 Razlika je le v temda funkcija save shrani le izbrane objekte saveimage pa vse objekte v delovnemokolju

Objekte ki jih shranimo s funkcijo save lahko preberemo s funkcijo load niso paprimerni za branje z drugimi programi ali z urejevalniki besedila Obicajno damodatotekam koncnico RData

gt save(podatki file=podatkiRdata)

gt rm(podatki)

gt ls() objekta podatki ni vec

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] l n plKroga

[19] plR10 podatkiNA podatkiNAomit

[22] x x1 x2

[25] x3

gt load(file=podatkiRdata)

gt podatki so spet na voljo

x1 x2 x3

1 1742265 9081960 b

2 1808787 10511680 a

3 1798966 8305955 c

4 1711787 12149536 b

5 1710475 12970600 b

6 1785521 9449168 a

7 1813797 8433798 a

8 1752136 10854579 b

9 1821678 9797418 b

10 1787867 13602427 a

Drug nacin ki pa ne deluje dobro pri cisto vseh objektih je uporaba funkcije dump zapisanje in source za branje Funkcija dump poskusa predstaviti objekt z besedilomin to besedilo zapisati v tekstovno datoteko Deluje vedno kadar je mogoce objektpredstaviti z besedilom Ta nacin je posebej primeren za shranjevanjenalaganjefunkcij funkcija source pa tudi za nalaganje kode ki smo jo na primer napisali vurejevalniku besedila Obicajno damo datotekam koncnico R

Funkcija dump je uporabna tudi ko zelimo videti predstavitev objekta z besedilom

1 poglavje ndash Uvod v R 51

gt kvadratlt-function(x)x^2

gt ls()

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] kvadrat l n

[19] plKroga plR10 podatki

[22] podatkiNA podatkiNAomit x

[25] x1 x2 x3

gt dump(list=c(podatkikvadrat) file=raznoR)

gt rm(list=c(podatkikvadrat))

gt ls() objektov podatki in kvadrat ni vec

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] l n plKroga

[19] plR10 podatkiNA podatkiNAomit

[22] x x1 x2

[25] x3

gt source(file=raznoR)

gt ls() pa sta nazaj

[1] a A aa

[4] AA aaaabb abc

[7] b B c

[10] C daa f1

[13] i invB izbor

[16] kvadrat l n

[19] plKroga plR10 podatki

[22] podatkiNA podatkiNAomit x

[25] x1 x2 x3

153 Branje in pisanje datotek drugih programov

R vsebuje tudi paketek ( foreign) ki omogoca branje in pisanje datotek drugih sta-tisticnih programov Tako med drugim bere podatke iz formata sledecih programov

bull SPSS

bull Stata

52 15 Delo z datotekami

bull SAS

bull Weka

bull Octave

bull Minitab

Zaradi razsirjenosti SPSS-a v druzboslovju v tem ucbeniku najveckrat uporabljamfunkcijo readspss ki omogoca branje SPSS-ovih datotek obstajajo pa tudi po-dobne funkcije za ostale popularne statisticne programe (glejte zgoraj)

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign)

gt preberemo podatke

gt egolt-readspss(egoomr00_f2savtodataframe=TRUE

usevaluelabels = FALSEusemissings=TRUE)

gt ego[1319] izpisemo prve tri enote in prvih 9 spremenljivk

EGOID Q1A Q2A Q3A Q4A DQ1A DQ2A DQ3A DQ4A

1 1001 5 NA 5 NA 4 NA 4 NA

2 1003 5 6 6 6 5 6 6 6

3 1004 6 3 5 5 6 NA 5 5

Najpomembnejsi argumenti funkcije readspss so

todataframe Ce ga nastavimo na TRUE bo rezultat funkcije podatkovni okvir(kar ponavadi zelimo) sicer pa seznam (privzeta vrednost)

usevaluelabels Ali naj R uposteva opise vrednosti (rdquovalue labelsrdquo) iz SPSS-ove datoteke Ce ga nastavimo na TRUE potem bodo vse spremenljivke kiimajo nastavljene opise vrednosti obravnavane kot faktorji torej kot nomi-nalne spremenljivke Ne glede na vrednost argumenta se opisi vrednosti shra-nijo v rdquoattributerdquo z imenom rdquovalue labelsrdquo Do njih lahko dostopamo prekoukaza attr(xvaluelabels) kjer je x spremenljivka (npr ego$E_SPOL)za katero zelimo prebrati opise Ce smo uporabili usevaluelabels=FALSEje za spremembo spremenljivke v faktor uporabna funkcija makeFactorLabels

iz datoteke rdquoUcbenikR-funkcijeRrdquo

maxvaluelabels Argument je uporaben le kadar je usevaluelabels=TRUEV tem primeru lahko tudi nastavimo koliko razlicnih vrednosti ima lahkospremenljivka (v podatkih) da se se uporabijo opisi ndash da se spremenljivkaobravnava kot nominalna spremenljivka

usemissings Ali naj se upostevajo kode za manjkajoce vrednosti Ce je TRUE sevse SPSS-ove rdquouporabniske manjkajoce vrednostirdquopretvorijo v NA OpozoriloTa pretvorba ne deluje vedno v redu zato je dosti varneje ce uporabniskemanjkajoce vrednosti pretvorimo v sistemske manjkajoce vrednost v SPSS-u

1 poglavje ndash Uvod v R 53

V tem ucbeniku beremo vse podatke iz SPSS-ovega formata Razlog za izbor tegaformata je predvsem v razsirjenosti uporabe tega formata in tudi samega programaSPSS na Fakulteti za druzbene vede Univerze v Ljubljani pa tudi v obstoju odpr-tokodnega programa PSPP (httpwwwgnuorgsoftwarepspp) ki omogocabranje in pisanje podatkov v tem formatu Seveda pa je moc podatke iz ADP pre-nesti tudi v drugih formatih in jih prebrati v R Vecina ukazov v primerih v temucbeniku bo delovala neodvisno od izvornega zapisa vendar pa mora uporabnik vtem primeru sam poskrbeti za dostop do dolgih imen spremenljivk ter imen vredno-sti spremenljivk Funkcija makeFactorLabels denimo ne bo vec delovala Vendarpa njena uporaba v nekaterih primerih niti ni potrebna na primer pri branju izStatinega (dta) formata

V nadaljevanju sledi se primer branja podatkov is Statinega formata (dta) Pre-brali bomo enake podatke kot so uporabljeni v uvodnem primeru oziroma zgornjemprimeru za branje s funkcijo readspss le da smo te podatke iz ADP-ja prenesliv Statinem formatu Tokrat bomo uporabili funkcijo readdta ki je za uporabose preprostejsa saj obicajno zelen rezultat dobimo ze s privzetimi vrednostmi ar-gumentov Tako izpostavimo le argument convertfactors ki nadzoruje ali najse stevilske spremenljivke z opisi vrednosti shranijo kot faktorji Privzeta vrednostTRUE kot faktorje shrani tiste spremenljivke ki imajo definirane opise za vse vre-dnosti Pri vrednost FALSE se nobena spremenljivka ne shrani kot faktor (kot prireadspss pri vrednosti usevaluelabes=FALSE) pri vrednosti NA pa se vse spre-menljivke ki imajo za vsaj kaksno vrednost definiran opis shranijo kot faktorji (kotpri readspss pri vrednosti usevaluelabes=TRUE) Funkcija readdta vrnepodatkovni okvir Dolga imena spremenljivk so shranjena v atributu varlabels

vrnjenega podatkovnega okvirja opisi vrednosti spremenljivk pa v atributu la-

beltable

gt nalozimo paketek za branje podatkov iz tujih zapisov

gt library(foreign) ni potrebno ker bi moral biti ze nalozen

gt preberemo podatke s privzetimi nastavitvami

gt ki so obicajno primerne

gt egoStatalt-readdta(egoomr00_f2dta)

gt egoStata[1319]

EGOID Q1A Q2A

1 1001 precej zadovoljen-a ltNAgt

2 1003 precej zadovoljen-a zelo zadovoljen-a

3 1004 zelo zadovoljen-a malo nezadovoljen-a

Q3A Q4A

1 precej zadovoljen-a ltNAgt

2 zelo zadovoljen-a zelo zadovoljen-a

3 precej zadovoljen-a precej zadovoljen-a

DQ1A DQ2A DQ3A

54 15 Delo z datotekami

1 malo zadovoljen-a ltNAgt malo zadovoljen-a

2 precej zadovoljen-a zelo zadovoljen-a zelo zadovoljen-a

3 zelo zadovoljen-a ltNAgt precej zadovoljen-a

DQ4A

1 ltNAgt

2 zelo zadovoljen-a

3 precej zadovoljen-a

gt izpisemo prve enote in prvih 9 spremenljivk

gt

gt preberemo ponovno - tokrat brez pretvorbe v faktorje

gt egoStata2lt-readdta(egoomr00_f2dta convertfactors=FALSE)

gt egoStata2[1319]

EGOID Q1A Q2A Q3A Q4A DQ1A DQ2A DQ3A DQ4A

1 1001 5 NA 5 NA 4 NA 4 NA

2 1003 5 6 6 6 5 6 6 6

3 1004 6 3 5 5 6 NA 5 5

gt zopet izpisemo prve tri enote in prvih 9 spremenljivk

gt

gt attributes(egoStata2)$varlabels[13]

[1] ID ega

[2] zadovoljstvo z materialno oporo-1merjenje

[3] zadovoljstvo z informacijsko oporo-1merjenje

gt attributes(egoStata2)$labeltable[13]

$Q1A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

$Q2A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

$Q3A

zelo nezadovoljen-a precej nezadovoljen-a

1 2

malo nezadovoljen-a malo zadovoljen-a

1 poglavje ndash Uvod v R 55

3 4

precej zadovoljen-a zelo zadovoljen-a

5 6

Za pisanje datotek ki jih zelimo uvoziti v SPSS bi sicer glede na opis funkcije lahkouporabili funkcijo writeforeign z argumentom package = rsquoSPSSrsquo Ta funkcijagenerira dve tekstovni datoteki podatkovno in datoteko s sintakso Vendar paSPSS pri branju zal javi napako Tudi ce bi postopek deloval je lazje zapisatidatoteko v formatu programa Stata s funkcijo writedta saj lahko ta format uvozitudi SPSS

gt x1lt-rnorm(n=10mean=176sd=7)

gt x2lt-rnorm(n=10mean=100sd=15)

gt x3lt-sample(c(abc)size=10replace=TRUE)

gt podatkilt-dataframe(x1x2x3)

gt library(foreign) ni potrebno ker bi moral biti ze nalozen

gt writedta(dataframe=podatki file=podatkidta)

154 Vaje

Vaja 1

Ustvarite podatkovno datoteko rdquocsvrdquo (recimo v Excel-u) V datoteko vpisite vsaj10 enot in vsaj 4 spremenljivke (vsaj eno numericno in eno nominalno opisno)Datoteko si oglejte tudi z urejevalnikom besedila Datoteko preberite z R-jem

Vaja 2

Poljubne podatke shranite v tekstovno datoteko in jo potem poglejte v urejevalnikubesedila in programu za delo s preglednicami Lahko izberete tudi podatke ki sodostopni v R-ju preko funkcije data (napisite data() za seznam podatkovij)

Vaja 3

Uvozite podatke iz poljubne SPSS-ove datoteke Poskrbite da boste dobili podat-kovni okvir in da bodo uporabniske manjkajoce vrednosti opredeljene kot manjka-joce

56 16 Risanje

Vaja 4

Podatke iz Vaje 2 (ali kaksne druge) izvozite tako da jih boste lahko odprli z SPSS-om Med podatki naj bo vsaj ena spremenljivka tipa factor Podatke odprite zSPSS-om So pri spremenljivki tipa factor (v R-ju) vidni opisi vrednosti v SPSS-u

16 Risanje

R ima zelo dobro podprto grafiko oziroma risanje grafov Za vpogled v to kaj vse jemogoce narisati z R-jem in tudi za ideje kako kaj narediti sta zelo koristni stranirdquoR Graphical Manualrdquo (httpbm2genesnigacjpRGM2 in rdquoR graph galleryrdquohttpaddictedtorfreefrgraphiques

161 Visokonivojske funkcije za risanje

Visokonivojske funkcije za risanje so tiste ki ustvarijo nov graf Kasneje bomospoznali tudi nizkonivojske ki le dodajo elemente na obstojeci graf Locnica medvisoko- in nizko-nivojskimi funkcijami sicer ni ostra saj se nekatere funkcije lahkouporabljajo v obeh vlogah

Osnovna funkcija za risanje v R-ju je plot Delovanje funkcije se razlikuje glede natip objekta ki ji ga posredujemo kot argument Funkcija namrec poskusa pripra-viti graf ki je primeren vhodnemu argumentu Tu ne bomo mogli pregledati vsehmoznosti zato navajam le nekaj primerov

gt uporabimo podatke iz izborESSn30txt

gt izborlt-readdelim(file=izborESSn30txt)

gt sapply(izborclass) ponovimo kaksne tipe podatkov imamo

spol izobrazba kraj placa

factor integer factor integer

gt plot(izbor$placa)

gt na y osi je placa na x pa indeksi (zaporedne stevilke enot)

gt plot(izbor$placatype=o)

gt plot(izbor$spol) strukturni stolpci ker je spol nominalka

gt plot(placa~spoldata=izbor) skatlasti grafikon (z zavihki)

gt plot(spol~placadata=izbor) porazdelitev po razredih

gt plot(kraj~spoldata=izbor)

gt plot(placa~izobrazbadata=izbor)

gt pod data navedemo podatkovni okvir kjer se nahajajo sprem

gt razsevni grafikon - odvisnost place od izobrazbe

gt plot(placa~izobrazbadata=izbor)

1 poglavje ndash Uvod v R 57

gt plot(izbor) razsevni grafikon za vsak par spremenljivk

gt lmFitlt-lm(placa~izobrazba data=izbor) linearna regresija

gt plot(lmFit)

gt plot(placa~izobrazbadata=izborpch=asnumeric(spol)

col=spol cex=2 main = Razsevni grafion

xlab=Izobrazba v letih ylab = Placa v 1000 sit)

Kot smo videli funkcija plot vedno skusa narisati nekaj primernega tudi takrat kosmo kot argument uporabili rezultat linearne regresije Ta funkcija in vecina funk-cij za risanje sprejme vec argumentov s katerimi lahko prilagajamo risanje (glejtepredvsem daljsi primer na strani 59) Nekaj najpogostejsih

type Tip grafikona Relevantno pri razsevnih grafikonih ndash tocke crta tocke pove-zane s crto

data Iz katerega podatkovnega okvirja (ali seznama) naj uporabi podatke Pred-vsem se uporablja kadar je osnovni argument formula

main Glavni naslov

xlab ylab Ime osi x in y

pch Simbol ki naj se uporablja za risanje tock Lahko ima samo eno vrednost alipa je vrednost vektor ki za vsako tocko poda simbol

col Barva (ponavadi tocke) Podobno kot zgoraj

cex Velikost tocke Podobno kot zgoraj

xlim ylim Meje risanja na osi x in y (se nismo uporabili bomo kasneje)

Obstaja se veliko dodatnih argumentov s katerimi je mogoce po zelji prilagoditiprikaz Za pregled teh argumentov si poglejte pomoc za funkciji plotdefault inpar

Predvsem argumente slednje je treba pogosto nastaviti s klicem funkcije par predklicem izbrane funkcije Tak zelo uporaben argument je na primer argument mfrowoziroma mfcol ki nam omogoca da na eno sliko narisemo vec grafov Primer je nasliki 19 (koda sledi v naslednjem primeru)

Vseeno pa privzeti graf ni vedno tisti ki ga zelimo Poglejmo si se dodatne funkcijeza risanje grafov

hist Histogram

barplot Stoplci Pozor Za klasicne strukturne stolpce mora biti argument tabela(le-to dobimo s funkcijo table)

pie Strukturni krog Enako kot zgoraj

boxplot Skatlasti grafikon (z zavihki)

curve Risanje krivulj

58 16 Risanje

Slika 19 Strutkutna stolpca in krog na eni sliki

moski zenski

05

1015 moski

zenski

gt curve(dnorm(x)xlim=c(-44))

gt standardna normalna porazdelitev

gt

gt hist(izbor$placa) histogram - frekvence

gt hist(izbor$placa freq=FALSE) frekvence - gostota

gt boxplot(izbor$placa) ena skupina

gt boxplot(placa~spol data=izbor) dve skupini

gt par(mfrow=c(21)) spodnja 2 grafa zelimo imeti na eni sliki

gt barplot(table(izbor$spol))

gt pie(table(izbor$spol))

gt par(mfrow=c(11)) povrnemo originalne nastavitve

162 Nizkonivojske funkcije za risanje

Nizkonivojske funkcije za risanje ne ustvarijo novega grafa ampak le dodajo elementena obstojeci graf Nekaj najpomembnejsih

points lines Dodata tocke crte ali tocke povezane s crto

text Doda tekst

mtext Doda tekst na obrobeosi

axis Doda osi

title Doda naslov

legend Doda legendo

1 poglavje ndash Uvod v R 59

expression Uporabljamo ga za vnasanje matematicnih formul ali simbolov na slike5

bquote Uporablja se za vnasanje matematicnih formul ki vkljucujejo izracunanekolicine na slike (podobno kot expression)

Posebej je treba razloziti uporabo expression Vcasih zelimo na sliki izpisati tudimatematicne formule ali znake Le-te lahko uporabimo takorekoc povsod kjer lahkopisemo besedilo (na primer naslovi legende oznake osi oznake na oseh ) V temprimeru namesto besedila dolocenemu argumentu (na primer main text labels kot vrednost podamo expression Slabost tega nacina pa je da ne omogocardquomesanjardquo izracunih kolicin (recimo izracunano vrednost R2 v naslednjem primeru)in matematicnih oznak Nacin pisanja za obe moznosti je opisan v pomoci podgeslom plotmath (za dostop do pomoci torej uporabimo plotmath) je pa precejpodoben LATEX-u Primer slike z veliko dodatnimi elementi je na sliki 110

gt lmFitlt-lm(placa~izobrazba data=izbor) linearna regresija

gt maroldlt-par(mar)

gt par(mar=c(5444)+01)

gt plot(placa~izobrazbadata=izborpch=asnumeric(spol)

col=spol cex=1 main = Razsevni grafikon

xlab=Izobrazba v letih ylab = Placa v 1000 sit)

gt abline(lmFit)

gt axis(side=4 at=(28)2100239641000

labels = (28)2100)

gt mtext(text=Placa v EUR side=4line=25)

gt par(mar=marold) graficne parametre nastavimo nazaj

gt na staro vrednost

gt legend(x=5 y = 400 legend = c(moski zenski)

title=Spolpch=12col=12 xjust=0 yjust=1)

gt text(x=5 y = 300 adj=0labels=

paste(R kvadrat =round(summary(lmFit)$rsquared3)))

gt text(x=5 y = 280 adj=0

labels=expression(paste(R^2 = 0536)))

gt text(x=5 y = 260 adj=0

labels=bquote(R^2 == (round(summary(lmFit)$rsquared3))))

Poleg tega je mogoce veliko visokonivojskih funkcij uporabljati tudi za dodajanje naobstojeci graf (na primer curve hist ) tako da jim dodamo argument add=TRUE

5 Glavni rezultat funkcije je sicer da ustvari R-jev izraz ki pa se ne izvede (oziroma evalviraizracuna)

60 16 Risanje

Slika 110 Slika z veliko dodanimi elementi

5 10 15 20

100

150

200

250

300

350

400

Razsevni grafikon

Izobrazba v letih

Pla

ča v

100

0 si

t

400

600

800

1000

1200

1400

1600

Pla

ča v

EU

R

Spol

moškiženski

R kvadrat = 0536

R2 = 0536

R2 = 0536

gt hist(izbor$placa freq=FALSE) frekvence - gostota

gt curve(dnorm(xmean=mean(izbor$placa) sd=sd(izbor$placa))

add=TRUE) vrisemo normalno krivuljo

163 Shranjevanje slik

Slike narisane z R-jem je zelo enostavno shraniti v vec formatih To je moznostoriti na vec nacinov

1 Preko menija ki se odpre s klikom desnega miskinega gumba kjerkoli na slikiPreko tega menija je mogoce

(a) Shraniti slike v datoteko formata Windows metafile (WMFEMF) aliPostScript (PSEPS)

1 poglavje ndash Uvod v R 61

(b) Kopirati sliko v odlozisce v obliki bitne slike (rdquobitmaprdquo) ali v formatuWindows metafile To lahko potem s rdquoprilepirdquo oziroma rdquopasterdquo prilepite vvecino programov (na primer Word )

2 Preko funkcije savePlot je mogoce shraniti sliko iz trenutno aktivnega grafic-nega okna v enem izmed naslednjih formatov Windows metafile PNG JPEGBMP (Windows bitmap format) TIFF PostScript in PDF Tudi s pomocjote funkcije je mogoce shraniti sliko v odlozisce

3 Tako da rdquorisemordquo neposredno v datoteko oziroma na rdquonapravordquo (device) kipredstavlja datoteko Postopek je sestavljen iz sledecih korakov

(a) Odpremo izbrano napravo Za seznam razlicnih naprav (tipov dato-tek) uporabite ukaz Devices Moznosti in argumenti ki so dovoljenipri klicu funkcij ki odpirajo naprave se razlikujejo glede na vrsto na-pravedatoteke

(b) Risemo na enak nacin kot ce bi risali v odprto okno

(c) Napravo zapremo s funkcijo devoff()

Ta (tretji) nacin omogoca najvecjo fleksibilnost pri dolocanju lastnosti koncneslike (na primer kvalitete pri slikah jpg)

Recimo da zelimo narisati porazdelitve vseh spremenljivk v podatkih izbor vsakona svoj graf Te grafe zelimo shraniti v datoteke tipa png To lahko naredimo sspodnjo kodo

gt plotnumericlt-hist

gt S tem nastavimo histogram za privzeti prikaz numericnih

gt spremenljivk Tako pocetje je NEVARNO ker spreminjamo

gt privzeto obanasanje funkcije plot

gt png(filename = Slikadpngwidth = 1200 height = 1200

res=200) namesto d se bo v ime datoteke zapisala

gt zaporedna stevilka slike

gt nekaj parametrov smo nastavili po svoje

gt for(i in names(izbor)) plot(izbor[[i]]main=ixlab=i)

gt devoff()

pdf

2

gt rm(plotnumeric) Odstranimo nevarno nastavitev

Pojasnila

bull V imenu slike smo uporabili rdquodrdquo To nam omogoca da naredimo vec slik neda bi za vsako posebej klicali funkcij png in devoff Png namrec omogocale eno sliko na datoteko

62 16 Risanje

bull Ker je png nevektorski format sirino in visino podamo v tockah (pikslih)Velikost slike dolocimo z argumentom res kjer dolocimo stevilo tock na incPri vektorskih formatih (na primer pdf) sirino in visino podamo v incih

bull Na zacetku smo uporabili ukaz plotnumericlt-hist S tem smo nastavilihistogram za privzeti prikaz numericnih spremenljivk Tako pocetje je NE-VARNO saj bi nam povzrocalo probleme pri risanju razsevnih grafikonovZato smo na koncu tudi uporabili rm(plotnumeric) Ker ta funkcija prej niobstajala smo s tem povrnili prejsnje stanje

Narisimo se isto v datoteko pdf Ker pdf podpira vec strani lahko vse 4 grafenarisemo v eno datoteko

gt plotnumericlt-hist

gt pdf(file = StiriSlikepdf width = 6 height = 6)

gt nekaj parametrov smo nastavili po svoje

gt for(i in names(izbor)) plot(izbor[[i]]main=ixlab=i)

gt devoff()

pdf

2

gt rm(plotnumeric)

Opomba Pri formatih pdf eps in ps lahko velikost rdquopapirjardquo dolocamo neodvisno odvelikosti slike z argumentom papersize Privzeta vrednost je sicer da je velikostpapirja enaka velikosti slike

164 Vaje

Vaja 1

Narisite histogram za poljubno spremenljivko Vrisite tudi normalno krivuljo Glavninaslov in imena osi nastavite rocno (ne uporabite privzetih) Stolpci naj bodo modrebarve

Namig Normalno krivuljo je veliko lazje vrisati ce pri histogramu risete gostoto inne frekvenc

Vaja 2

Na eno sliko narisite 4 histograme (v 2 vrstici s po 2 stolpcema) za poljubno spre-menljivko Na vsakem histogramu uporabite drugo stevilo razredov

1 poglavje ndash Uvod v R 63

Vaja 3

Narisite razsevni grafikon za poljubni dve intervalni spremenljivki Izberite vsaj enoizmed sledecih moznosti

bull Velikost tocke naj se razlikuje glede na vrednost neke tretje razmernostnespremenljivke

bull Oblika tocke naj se razlikuje glede na vrednost neke nominalne spremenljivke

17 Priprava dokumentov z rezultati iz R-ja

R podpira vec nacinov za pripravo dokumentov z rezultati analiz Najzmogljivejsitemeljijo na konceptu ponovljive znanosti (ang rdquoreproducible researchrdquo) Pri pri-pravi tega ucbenika je uporabljen sistem Sweave (Leisch 2002) (httpwwwstatuni-muenchende~leischSweave) ki je del osnovne R-jeve distribucije Sistemomogoca da v enem dokumentu zdruzimo tekst in R-jevo kodo ter rezultate iz R-ja(izpis tabele grafi ) Osnovni sistem je bil razvit za LATEX preko paketka R2HTML

pa omogoca tudi uporabo HTML-ja Zelo podoben sistem podpira tudi paketekknitr (httpyihuinameknitr) ki ima dodatno prednost da lahko za ure-janje besedila uporablja tudi druge sisteme (ne samo LATEX) na primer HTML inMarkdown Predvsem Markdown je zelo enostaven za uporabo omogoca pa tudiizdelavo koncnega dokumenta v razlicnih formatih (Word PDF ali HTML)

Sweave sistem je mogoce uporabiti tudi preko dokumentov formata rdquoOpen Do-cument Formatrdquo oziroma rdquoODFrdquo ki jih na primer uporabljata OpenOfficeorg inLibre Office To omogoca paketek odfWeave(httpcranr-projectorgwebpackagesodfWeaveindexhtml) Prednost tega je da ne zahteva znanja LATEX-aali HTML-ja

Za uporabnike Microsoft (Office) Worda pa sta najbolj zanimiva paketeka R2wd

in rtf Prednost prvega je da omogoca vstavljanje neposredno v odprt Wordovdokument drugega pa da ne potrebuje dodatnih programov (npr Worda) in nimaz njimi povezanih omejitev sej neposredno ustvari RTF (rich text format) dokumentTako je mogoce neposredno ustvariti porocilo ali pa vanj le izvoziti tabele ki jihpotem lahko zelo enostavno prenesemo v Word

Poglejmo najprej paketek R2wd ki deluje le v povezavi z 32-bitnim Wordom Vprimeru da je namen dodajati rezultate iz R-ja v Word in ne avtomatsko generi-ranje porocil je verjetno najuporabnejsa funkcija wdTable Najbolj problematicnopri izvozu rezultatov v Word je namrec dodajanje tabel saj je osnovni R-jev izpistekstovni kar v porocilih ni videti lepo Ravno funkcija wdTable pa omogoca vsta-vljanje lepo oblikovanih tabel v Word zal pa je precej pocasna Preden pa lahkokarkoli pisemo v dokument ga moramo najprej odpreti s funkcijo wdGet

64 17 Priprava dokumentov z rezultati iz R-ja

S spodnjo kodo bomo v Word nalepili tri tabele

gt library(R2wd)

gt wdGet() odpremo nov ali obstojeci (kot argument podamo ime

gt in po potrebi pot do njega) dokument

gt vmes moramo pocakati da se dokument odpre

gt najbolj varno je da prej nimamo odprtega nobenega dokumenta

gt

gt wdTable(izbor) izvozimo tabelo (podatke) v dokument

gt tabela se pojavi na mestu kjer je kazalnik (oz kurzor)

gt

gt wdTable(table(Kraj=izbor$krajSpol=izbor$spol))

gt kontingencna tabela

gt

gt regKoeflt-summary(lm(placa~izobrazba+spoldata=izbor))$coef

gt regKoeflt-format(asdataframe(regKoef)digits=c(4441)

scien=FALSE) da bo lepsi format

gt wdTable(format(regKoef))

gt izvozimo tabelo regresijskih koeficientov

gt

gt Xlt-matrix(115ncol=3)

gt wdTable(X)

gt tole bi javilo napako

gt tabela ali matrika mora imeti definirana imena stolpcev in

gt vrstic

gt colnames(X)lt-c(abc)

gt rownames(X)lt-15

gt wdTable(X)

gt R2wd-package

gt vec pomoci o paketku

Kot lahko vidite na podlagi pomoci za paketek (R2wd-package) paketek omo-goca generiranje celotnih Wordovih dokumentov av tem ucbeniku je predstavljenle najbolj problematicen del Za vstavljanje slik sicer lahko uporabimo funkcijo wd-

Plot lahko pa tudi sliko iz R-ja enostavno skopiramo v odlozisce ali shranimo vdatoteko (glejte podpodpoglavje 163) in od tam prilepimo v Word

Poglejmo sedaj se uporabo paketka rtf Tudi tu je najbolj kljucna funkcija za iz-voz tabel funkcija addTable predstavljena pa je se uporaba funkcij addHeader zaustvarjanje naslovov in addText za vstavljanje navadnega besedila Pred obliko-vanjem dokumenta ga moramo najprej ustvariti s funkcijo RTF (ki kot argumentsprejme ime datoteke) in na koncu zapreti s funkcijo done

1 poglavje ndash Uvod v R 65

gt library(rtf)

gt rtfDoclt-RTF(testrtf) kreiramo novo datoteko in shranimo

gt dobljeni objekt

gt

gt dodamo naslov in podnaslov

gt addHeader(rtfDoctitle=Testsubtitle=Osnovni podatki)

gt addTable(rtfDocizbor)

gt addText(rtfDocTole so osnovni podatkin) dodamo tekst

gt addHeader(rtfDoctitle=NULLsubtitle=Kontingencna tabela)

gt addTable(rtfDoctable(Kraj=izbor$krajSpol=izbor$spol))

gt kontingencna tabela

gt

gt

gt regKoeflt-summary(lm(placa~izobrazba+spoldata=izbor))$coef

gt regKoeflt-format(asdataframe(regKoef)digits=c(4441)

scien=FALSE) da bo lepsi format

gt addHeader(rtfDoctitle=NULLsubtitle=Regresijski koeficienti)

gt addTable(rtfDocformat(regKoef))

gt izvozimo tabelo regresijskih koeficientov

gt

gt

gt Xlt-matrix(115ncol=3)

gt addHeader(rtfDoctitle=NULL

subtitle=Matrika brez imen stolpcev in vrstic)

gt dodajo se privzeta imena stolpcev

gt addTable(rtfDocX)

gt addText(rtfDocDodana so bila privzeta imena stolpcevn)

gt dodamo tekst

gt

gt colnames(X)lt-c(abc)

gt rownames(X)lt-15

gt addHeader(rtfDoctitle=NULL

subtitle=Matrika z imeni stolpcev in vrstic)

gt addTable(rtfDocX rownames=TRUE)

gt ce zelimo izpisati imena vrstic

gt done(rtfDoc) zapremo datoteko

gt rtf-package

gt vec pomoci o paketku

66 18 Resitve vaj

18 Resitve vaj

181 Podatkovne strukture

Vaja 1

gt xlt-c(10 23 43 43 32 12)

gt povXlt-sum(x)length(x)

gt povX

[1] 2716667

gt varXlt-sum((x - povX)^2)length(x)

gt varX

[1] 1778056

gt sdXlt-varX^(12) ali sqrt(varX)

gt sdX

[1] 1333437

gt reslt-c(povprecje=povXvarianca=varXsd=sdX)

gt res

povprecje varianca sd

2716667 17780556 1333437

Vaja 2

gt ylt-c(10 23 43 43 32 12)

gt x1lt-c(15 23 54 45 42 10)

gt x2lt-c(210 183 186 164 175 200)

gt Xlt-cbind(1x1x2)

gt blt-asvector(solve(t(X) X) t(X) y)

gt b

[1] 52819111 6240474 -0243166

gt names(b)lt-colnames(X)

gt b

x1 x2

52819111 6240474 -0243166

gt yNap lt- asvector(X b)

gt e lt- y - yNap

gt cbind(y=ynapoved=yNaprezidual=e)

y napoved rezidual

[1] 10 1111496 -11149560

[2] 23 2267282 03271824

[3] 43 4128879 17112125

1 poglavje ndash Uvod v R 67

[4] 43 4102201 19779861

[5] 32 3647505 -44750455

[6] 12 1042638 15736205

gt reslt-list(b=b napovedi=yNap rezidual=e)

gt res

$b

x1 x2

52819111 6240474 -0243166

$napovedi

[1] 1111496 2267282 4128879 4102201 3647505 1042638

$rezidual

[1] -11149560 03271824 17112125 19779861 -44750455

[6] 15736205

182 Funkcije in programiranje

Vaja 1

Resitev Vaje 1 iz podpodpoglavja 138 (podpoglavje Podatkovne struk-ture) v obliki funkcije

gt definicija funkcije

gt opisStatlt-function(x)

povXlt-sum(x)length(x)

varXlt-sum((x - povX)^2)length(x)

sdXlt-varX^(12) ali sqrt(varX)

reslt-c(povprecje=povXvarianca=varXsd=sdX)

return(res)

gt xlt-c(10 23 43 43 32 12)

gt opisStat(x)

povprecje varianca sd

2716667 17780556 1333437

Resitev Vaje 2 iz podpodpoglavja 138 (podpoglavje Podatkovne struk-ture) v obliki funkcije

gt regresijalt-function(yX)

Xlt-cbind(1X)

68 18 Resitve vaj

blt-asvector(solve(t(X) X) t(X) y)

names(b)lt-colnames(X)

yNap lt- asvector(X b)

e lt- y - yNap

reslt-list(b=b napovedi=yNap rezidual=e)

return(res)

gt ylt-c(10 23 43 43 32 12)

gt x1lt-c(15 23 54 45 42 10)

gt x2lt-c(210 183 186 164 175 200)

gt Xlt-cbind(x1x2)

gt regresija(yX)

$b

x1 x2

52819111 6240474 -0243166

$napovedi

[1] 1111496 2267282 4128879 4102201 3647505 1042638

$rezidual

[1] -11149560 03271824 17112125 19779861 -44750455

[6] 15736205

Vaja 2

gt vsotalt-function(x)

vsotalt-0

for(i in x)

vsota lt- vsota + i

return(vsota)

gt xlt-c(10 23 43 43 32 12)

gt vsota(x)

[1] 163

gt sum(x) enak rezultat

[1] 163

Vaja 3

1 poglavje ndash Uvod v R 69

gt funkcija s for zanko

gt fakForlt-function(n)

reslt-1

for(i in seq_len(n))

reslt-resi

return(res)

gt funkcija z while zanko

gt fakWhilelt-function(n)

reslt-1

while(ngt1)

reslt-resn

nlt-n-1

return(res)

gt funkcija z rekurzivno funkcijo

gt fakReklt-function(n)

if(nlt=1)

return(1)

else

return(nfakRek(n-1))

gt vse funkcije dajo seveda enak rezultat

gt fakFor(10)

[1] 3628800

gt fakWhile(10)

[1] 3628800

gt fakRek(10)

[1] 3628800

gt factorial(10) tudi R-jeva vgrajena funkcija

[1] 3628800

Vaja 4

gt medlt-function(x)

xlt-sort(x)

nlt-length(x)

if(n 2 ==0)

70 18 Resitve vaj

Slika 111 Resitev vaje 1 (Risanje)

Lep histogram

Moja spremenljivka

Gos

tota

6 8 10 12 14

000

005

010

015

return((x[n2]+x[n2+1])2)

else

return(x[ceiling(n2)])

gt xlt-c(10 23 43 43 32 12)

gt med(x)

[1] 275

183 Risanje

Vaja 1

gt setseed(2010)

gt xlt-rnorm(100mean=10sd=2)

gt hist(xcol=lightbluemain=Lep histogram

xlab=Moja spremenljivkafreq=FALSEylab=Gostota)

gt curve(dnorm(xmean=10sd=2)add=TRUExpd=NA)

Rezultat je prikazan na sliki 111

1 poglavje ndash Uvod v R 71

Vaja 2

gt setseed(2010)

gt xlt-rnorm(1000mean=10sd=2)

gt par(mfrow=c(22))

gt hist(xmain=priblizno 5 razredovfreq=FALSE

ylab=Gostota br=5)

gt hist(xmain=priblizno 10 razredovfreq=FALSE

ylab=Gostotabr=10)

gt hist(xmain=priblizno 30 razredovfreq=FALSE

ylab=Gostotabr=30)

gt hist(xmain=priblizno 50 razredovfreq=FALSE

ylab=Gostotabr=50)

gt par(mfrow=c(11))

Rezultat je prikazan na sliki 112

Vaja 3

gt setseed(2010)

gt xlt- rnorm(100mean=0sd=2)

gt ylt- x^2 +rnorm(100sd=3)

gt zlt-abs(abs(yx)^(14)+rnorm(100sd=05))

gt klt-asnumeric(cut(x+rnorm(100sd=1)breaks=5))

gt plot(y~xpch=kcex=z)

Rezultat je prikazan na sliki 113

19 Viri za poglabljanje znanja

191 Spletni viri

R je odprtokodni program zato je veliko virov na voljo tudi na spletu Tukajnastevamo nekaj najpomembnejsih

R-project Glavna spletna stran za R ki vsebuje veliko uporabnih vsebin pred-vsem pa omogoca tudi prenos programskega paketa RURL httpwww

r-projectorg

R-project ndash rdquouradnirdquo prirocniki Uradni prirocniki za R - precej tehnicno inosnovno URL httpcranr-projectorgmanualshtml

72 19 Viri za poglabljanje znanja

Slika 112 Resitev vaje 2 (Risanje)

približno 5 razredov

x

Gostota

5 10 15

000

005

010

015

približno 10 razredov

x

Gostota

4 6 8 10 12 14 16000

005

010

015

približno 30 razredov

x

Gostota

4 6 8 10 12 14 16

000

005

010

015

020

približno 50 razredov

x

Gostota

4 6 8 10 12 14 16

000

005

010

015

020

R-project ndash ostali prirocniki Poleg uradnih prirocnikov je na voljo tudi mnogodrugih prirocnikov in podobnega gradiva ki so ga prispevali uporabniki R-jaURL httpcranr-projectorgother-docshtml

Rseek Spletni iskalnik po vsebinah povezanih z R-jem vkljucno s seznami zaelektronsko posto za pomoc uporabnikom URL httpwwwrseekorg

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

R Graph Gallery Galerija grafov narejenih z R-jem vkljucno z uporabljeno kodoURL httpaddictedtorfreefrgraphiques

1 poglavje ndash Uvod v R 73

Slika 113 Resitev vaje 3 (Risanje)

-4 -2 0 2 4

-50

510

1520

x

y

RStudio Integrirano razvojno okolje za R Zdruzuje urejevalnik besedila z oznace-vanjem in samodokoncanjem R-jeve kode konzolo pomoc okno za graficneprikaze in se veliko vec URL httprstudioorg

Spletna stran prof dr Andreja Blejca o R-ju Vsebuje veliko koristnih vse-bin povezanih z R-jem vkljucno s prirocnikom Introduction to R URL httpablejecnibsiR

192 Knjizni viri

Splosne knjige o R-ju

Knjige v tem poglavju so splosni prirocniki za programski paket R Pokrivajo vsaali vecino podpoglavij tega poglavja vecinoma pa tudi podrocja iz ostalih dvehpoglavjih

74 19 Viri za poglabljanje znanja

bull Zuur Alain F Elena N Ieno in Erik HWG Meesters 2009 A BeginnerrsquosGuide to R New York Springer6

Zelo nezahtevna samo osnove R-ja (skoraj) brez statistike

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer7

Se posebej primerna za tiste ki ze poznajo SPSS ali SAS

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC8

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer9

Knjige o programiranju

bull Matloff Norman 2011 The Art of R Programming A Tour of StatisticalSoftware Design San Francisco No Starch PressManj zahtevna

bull Venables William N in Brian D Ripley 2000 S programming New YorkSpringerBolj zahtevna

Knjige o risanju

Prakticno vse splosne knjige o R-ju vsebujejo tudi poglavje o risanju ki ponavadizadostuje za osnovne grafe Spodaj nasteti knjigi pa bolj poglobljeno predstavljatarazlicne sisteme za risanje v R-ju (prva) ali se posebej podrobno dolocen nacinrisanja (druga)

bull Murrell Paul 2011 R graphics Boca Raton CRC PressRazlicni sistemi za risanje

bull Wickham Hadley 2009 ggplot2 Elegant Graphics for Data Analysis Do-rdrecht New York Springer URL httppubliceblibcomEBLPublic

PublicViewdoptiID=51146810

Sistem za risanje ki temelji na Wilsonovi (2005) graficni slovnici

6 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani7 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani8 Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf9 Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani10Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani

1 poglavje ndash Uvod v R 75

Priprava dokumentovporocil

bull Xie Yihui 2013 Dynamic report generation with r and knitr Boca RatonChapman amp Hall Crc

bull Gandrud Christopher 2013 Reproducible research with R and RStudio BocaRaton Chapman amp HallCRC

110 Vprasanja za ponavljanje

1 R je vektorski jezik Kaj to pomeni

2 Katera podatkovna struktura v R-ju je najprimernejsa za shranjevanje podat-kovij ndash podatkov o vec spremenljivkah na vec enotah

3 Kako v R-ju priklicemo pomoc za neko funkcijo in kako iscemo po pomoci

4 Kateri izmed sledecih znakov so dovoljeni v imenih objektov v R-ju |- +

5 Na kaksen nacin v R-ju predstavimo nominalne spremenljivke

6 Ali R omogoca matricno racunanje

7 Kako R razsirimo z dodatnimi funkcijami

8 Katere vrste zank poznamo v R-ju in v cem se razlikujejo

9 Ali lahko z R-jem beremo podatkovne datoteke iz ostalih popularnih statistic-nih paketov (SPSS Stata ) Ce da kateri paketek potrebujemo za to

10 Katere funkcije lahko uporabimo za branje in pisanje tekstovnih podatkovnihdatotek

11 Od cesa je odvisno kaksne vrste graf narise funkcija plot

12 Kaksna je razlika med visokonivojskimi in nizkonivojskimi funkcijami za risa-nje

13 Kaj pomeni notacija y x in zakaj se uporablja v funkcijah za risanje

14 Kaksen graf narise funkcija plot ce kot argument podamo nominalno spre-menljivko in kaksen ce kot argumenta podamo dve intervalni spremenljivki

15 Na kaksne nacine lahko shranjujemo slike

16 Kako za neko funkcijo poiscemo njene argumente

17 V katerih formatih (vrstah datotek) lahko izdelujemo porocila z R-jem

77

2 poglavje

Univariatna in bivariatna statistika

Drugo poglavje obravnava kar veliko univariatnih in bivariatnih statisticnih metodtako s podrocja osnovne opisne statistike kot tudi inferencne statistike Na zacetkupoglavja so najprej predstavljeni podatki ki jih uporabljamo v tem poglavju skupajz navodili za njihovo pridobitev iz Arhiva druzboslovnih podatkov in branje z R-jem Sledi predstavitev osnovnih opisnih statistik predvsem mer srednjih vrednostiin variabilnosti ter mer za obliko porazdelitve (asimetrija sploscenost) Od tu naprejucbenik obravnava tudi metode inferencne statistike najprej pri pregledu metod zapreverjanje domnev o srednjih vrednostih (o eni srednji vrednosti in o razliki medsrednjimi vrednostmi za neodvisne in odvisne vzorce) in racunanje ustreznih inter-valov zaupanja kjer poleg parametricnih metod obravnavamo tudi neparametricneTo je tudi skoraj edini del ucbenika kjer tudi teoreticno predstavimo obravnavanemetode Sledi preverjanje domnev o delezih ter racunanje ustreznih intervalov zau-panja Na koncu poglavja obravnavamo se metode za merjenje o povezanosti dvehspremenljivk glede na merske lestvice spremenljivk ter za preverjanje domnev o po-vezanosti

21 Uporabljeni podatki

Za prikaz predstavljenih metod bomo uporabili podatke iz Evropske druzboslovneraziskave (httpwwweuropeansocialsurveyorg) za Slovenijo za leto 2004Uporabljena datoteka je bila pridobljena iz Arhiva druzboslovnih podatkov (Tosin drugi 2004) Opis raziskave in povezave do datoteke so dostopni na tem spletnemnaslovu httpwwwadpfdvuni-ljsiopisisjm042

Iz Arhiva druzboslovnih podatkov sem prenesel podatke v SPSS-formatu (rdquosavrdquo)Najprej preberemo podatke iz SPSS-ove datoteke ter uvozimo funkcije iz datotekerdquoUcbenikR-funkcijeRrdquo

78 22 Osnovne statistike

gt nalozimo podatke

gt library(foreign)

gt datalt-readspss(file=sjm042_f1sav

todataframe = TRUE usevaluelabels = TRUE

maxvaluelabels=5 usemissings=TRUE)

gt nalozimo tudi dodatne funkcije

gt source(UcbenikR-funkcijeR)

Nato preverimo stevilo enot in spremenljivk ter katere spremenljivke so v podatkih zuporabo funkcije names Dolga imena spremenljivk iz SPSS-a (labels) so shranjenav atributu variablelabels

gt dim(data) stevilo enot in spremenljivk

gt names(data)

gt attributes(data)$variablelabels

Zaradi dolzine izpisa ga tu ne navajamo

22 Osnovne statistike

R ze v osnovni razlicici (brez dodatnih paketkov) vsebuje funkcije za prakticno vseosnovne statistike Navedimo nekaj najosnovnejsih

mean aritmeticna sredina

median mediana

sd in var standardni odklon in varianca (vzorcna ndash (n - 1) v imenovalcu)

min in max minimum in maksimum

range razpon (vrne minimum in maksimum kot vektor)

quantile kvantili

Vse zgoraj nastete funkcije kot argument sprejmejo vektor (spremenljivko) V pri-vzeti obliki ne dovoljujejo manjkajocih vrednosti (NA) saj v tem primeru tudi vrnejoNA Vendar pa je mogoce nastaviti da manjkajoce vrednosti ignorirajo s parametromnarm=TRUE

Recimo da nas se posebej zanima spremenljivka G91 ndash Bruto placa Tako bomo nanjej izracunali osnovne statistike

gt G91 - bruto placa

gt izracunajmo osnovne statistike zanjo

gt sum(isna(data$G91))

2 poglavje ndash Univariatna in bivariatna statistika 79

[1] 325

gt prestejemo stevilo enot z veljavnimi vrednostmi pri G91

gt imamo jih samo 325

gt

gt hist(data$G91)narisemo histogram

gt pri vseh sledecih funkcijah dodamo argument narm=TRUE

gt brez njega bi zaradi manjkajocih vrednosti dobili

gt rezultat NA

gt range(data$G91 narm=TRUE) preverimo razpon

[1] 53 760

gt mean(data$G91 narm=TRUE) aritmeticna sredina

[1] 2257108

gt sd(data$G91 narm=TRUE) standardni odklon

[1] 120953

gt median(data$G91 narm=TRUE) mediana

[1] 200

gt quantile(data$G91 probs=c(02505075) narm=TRUE)

25 50 75

140 200 280

gt izracunamo kvartile

Zelo koristna je tudi funkcija summary ki izracuna povzetek ki je primeren gledena tip objektaspremenljivke Funkcija se lahko uporabi na razlicnih podatkovnihstrukturah (tudi na primer na celotnem podatkovnem okvirju)

Funkcija summary sicer naredi kar dober povzetek vendar pa pri stevilskih spre-menljivkah pogresam vsaj izracun standardnega odklona Lahko bi sicer naredilisvojo funkcijo lahko pa uporabimo funkcijo describe iz paketka psych ki polegtega izracuna tudi mere asimetrije in sploscenosti Tudi funkcijo describe lahkouporabimo le na eni spremenljivki ali na celotnem podatkovnem okvirju Je pa tafunkcija primerna le za intervalne in razmernostne spremenljivke Izracun naredisicer tudi za ostale a ni smiseln in zato jih v rezultatih oznaci z rdquordquo

V paketku psych najdemo tudi funkciji za koeficient asimetrije skew in splosce-nosti kurtosi in se veliko drugih uporabnih funkcij (ki se uporabljajo predvsem vpsihologiji in druzboslovju)

Poglejmo torej najprej uporabo summary na eni sami spremenljivki

gt povzetek za stevilsko spremenljivko

gt summary(data$G91)

Min 1st Qu Median Mean 3rd Qu Max NAs

530 1400 2000 2257 2800 7600 1117

gt in se za nominalno - spol

gt summary(data$O1F2)

80 22 Osnovne statistike

moski zenski NAs

648 762 32

gt summary uposteva tip podatka

gt

gt uporabili bomo tudi spremenljivko F6

gt ki jo moramo prej spremeniti nazaj v faktor

gt data$F6lt-makeFactorLabels(data$F6)

gt summary(data$F6)

nedokoncana OS dokoncana OS

69 368

2-3 letna poklicna gimnazija

347 434

2-letna visja visoka sola ali fakulteta

72 138

magisterij doktorat NAs

11 3

Funkcijo summary lahko uporabimo tudi na vec spremenljivkah ali celo na celotnempodatkovju (podatkovnem okvirju) a jo bomo tu zaradi varcevanja s prostoromuporabili le na nekaj izbranih spremenljivkah

gt izbraneSpremlt-c(O1F3O1F2F5F6F7G91G92)

gt izbor shranimo ker ga bomo uporabljal veckrat

gt da se lazje spomnimo kaj merijo

gt attributes(data)$variablelabels[izbraneSprem]

O1F3

leto rojstva

O1F2

spol

F5

Kje zivite

F6

izobrazba

F7

leta solanja

G91

Koliksna je obicajno vasa bruto placa

G92

Koliksna je obicajno vasa neto placa

gt summary(data[izbraneSprem])

O1F3 O1F2 F5

Min 1909 moski 648 veliko mesto132

1st Qu1944 zenski762 predmestje 204

2 poglavje ndash Univariatna in bivariatna statistika 81

Median 1960 NAs 32 manjse mesto326

Mean 1959 vas 626

3rd Qu1975 kmetija 148

Max 1989 NAs 6

NAs 16

F6 F7

gimnazija 434 Min 100

dokoncana OS 368 1st Qu 800

2-3 letna poklicna 347 Median 1100

visoka sola ali fakulteta138 Mean 1127

2-letna visja 72 3rd Qu1300

(Other) 80 Max 2300

NAs 3 NAs 11

G91 G92

Min 530 Min 70

1st Qu1400 1st Qu 725

Median 2000 Median 1200

Mean 2257 Mean 1248

3rd Qu2800 3rd Qu1700

Max 7600 Max 6000

NAs 1117 NAs 1046

Je s temi podatki kaj narobe

Minimum za spremenljivko G92 je rdquo7rdquo To mora biti napaka saj nihce ne moreimeti bruto place samo 7000 sit Verjetno gre za napako pri vnosu rdquo7rdquo je pogo-sta koda za manjkajoco vrednost pri tej spremenljivki pa bi se morala uporabljatikoda rdquo7777777rdquo Preglejmo ali je takih vrednosti vec Recimo tako da izpisemofrekvencno tabelo za to spremenljivko Nato popravimo podatke tako da vrednostiki niso mogoce (se posebej ce predvidevamo da gre za kode manjkajocih vrednosti)spremenimo v NA Nato ponovno izpisemo povzetek in se prepricamo da je sedajvse v redu

gt table(data$G92)

7 8 40 60 70 71 73 75 78 80 82 85 86 87 88

76 13 1 4 4 1 1 5 2 8 2 8 1 1 1

89 90 92 95 100 104 105 107 108 110 112 114 115 117 120

1 11 1 5 19 1 2 1 1 10 1 1 4 2 19

122 125 130 132 135 137 138 140 145 150 153 154 155 160 165

2 3 13 1 1 1 1 12 1 26 1 1 1 12 2

170 180 185 186 190 191 200 205 210 215 220 230 232 240 250

13 8 2 1 4 1 19 1 5 2 6 6 1 2 11

260 270 280 300 320 336 360 370 380 400 480 600

2 6 2 10 1 1 1 1 1 2 1 1

82 22 Osnovne statistike

gt data$G92[data$G92 in c(78)]lt-NA

gt vrednosti 7 in 8 spremenimo v NA

gt summary(data$G92)

Min 1st Qu Median Mean 3rd Qu Max NAs

400 1045 1500 1589 2000 6000 1135

Opozorilo

Kot kaze zgornji primer moramo vedno pred analizo opraviti osnovni pregledpodatkov da ugotovimo ali so v njih prisotne kaksne napake

Za racunanje opisnih statistik za stevilske spremenljivke pa je kot receno bolj pri-merna funkcija describe iz paketka psych Uporabimo se to

gt ce paketek psych ni namescen ga je treba namestiti z

gt installpackages(psych)

gt library(psych)

gt describe(data$G91)

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

range skew kurtosis se

1 707 146 252 671

gt lahko jo izracunamo tudi za vse podatke a tu jo zaradi

gt varcevanja s prostorom le za nekaj izbranih spremenljivk

gt describe(data[izbraneSprem])

vars n mean sd median trimmed mad min

O1F3 1 1426 195864 1896 1960 195917 2372 1909

O1F2 2 1410 154 050 2 155 000 1

F5 3 1436 332 112 4 339 148 1

F6 4 1439 337 134 3 326 148 1

F7 5 1431 1127 341 11 1120 297 1

G91 6 325 22571 12095 200 20885 10378 53

G92 7 307 15893 7413 150 14975 7413 40

max range skew kurtosis se

O1F3 1989 80 -020 -097 050

O1F2 2 1 -016 -198 001

F5 5 4 -060 -048 003

F6 7 6 046 -030 004

F7 23 22 013 026 009

G91 760 707 146 252 671

G92 600 560 165 481 423

gt skew(data$G91)

[1] 1455042

2 poglavje ndash Univariatna in bivariatna statistika 83

gt kurtosi(data$G91)

[1] 2516902

Spremenljivka rdquoBruto placardquo (G91) ima aritmeticno sredino 226 tisoc sit (enote so1000 sit) standardni odklon pa 121 tisoc sit Njena porazdelitev je precej asimetricnav desno in konicasta kar je pri porazdelitvi place sicer pricakovano

Funkciji summary in describe smo ze lahko neposredno uporabili na vec spremen-ljivkah naenkrat Pri funkcijah ki se uporabljajo na vektorjih pa upostevamo dalahko neko funkcijo uporabimo tudi na vec spremenljivkah s pomocjo funkcij applylapply in sapply

gt naredimo nov izbor s samo vsaj intervalnimi spremenljivkami

gt torej s samo intervalnimi in razmernostnimi spremenljivkami

gt izbraneIntSpremlt-c(O1F3F7G91G92)

gt izracunajmo aritmeticno sredino

gt apply(data[izbraneIntSprem]2mean narm=TRUE)

O1F3 F7 G91 G92

195863534 1126625 22571077 15893485

gt sapply(data[izbraneIntSprem]mean narm=TRUE) enako

O1F3 F7 G91 G92

195863534 1126625 22571077 15893485

gt lapply(data[izbraneIntSprem]mean narm=TRUE) drugacen izpis

$O1F3

[1] 1958635

$F7

[1] 1126625

$G91

[1] 2257108

$G92

[1] 1589349

gt standardni odklon

gt sapply(data[izbraneIntSprem]sd narm=TRUE)

O1F3 F7 G91 G92

18961464 3412601 120952965 74128283

gt razpon - funkcija lahko vrne tudi vec vrednosti

gt sapply(data[izbraneIntSprem]range narm=TRUE)

O1F3 F7 G91 G92

[1] 1909 1 53 40

[2] 1989 23 760 600

84 22 Osnovne statistike

gt za vecjo prilagodljivost lahko napisemo svojo funkcijo

gt mojPovzeteklt-function(x)c(

arit sredina = mean(xnarm=TRUE)

std odklon = sd(xnarm=TRUE)

st veljavnih vrednosti = sum(isna(x)))

gt sapply(data[izbraneIntSprem]mojPovzetek)

O1F3 F7 G91

arit sredina 195863534 11266247 2257108

std odklon 1896146 3412601 1209530

st veljavnih vrednosti 142600000 1431000000 3250000

G92

arit sredina 15893485

std odklon 7412828

st veljavnih vrednosti 30700000

Ce zelimo statistike izracunati po skupinah dolocenih z neko drugo spremenljivkoso koristne splosne funkcije kot je denimo aggregate ki omogocajo uporabo funkcijna skupinah Natancna uporaba je razvidna iz primera (in pomoci) Funkcija kotenega od argumentov sprejme funkcijo ki jo uporabi na vsaki skupini

V paketku psych pa obstaja tudi funkcija describeBy ki to omogoca neposredno

gt data$O1F2lt-factor(data$O1F2) odstranimo prazne kategorije

gt glede na eno spremenljivko

gt aggregate(x=data[c(G91G92)] by = list(data$O1F2)

FUN=mean narm=TRUE) rezultat je ena stevilka

Group1 G91 G92

1 moski 2375896 1689868

2 zenski 2099103 1472517

gt aggregate(x=data[c(G91G92)] by = list(data$O1F2)

FUN=mojPovzetek) vec stevilk

Group1 G91arit sredina G91std odklon

1 moski 2375896 1263618

2 zenski 2099103 1127086

G91st veljavnih vrednosti G92arit sredina

1 1730000 16898675

2 1450000 14725170

G92std odklon G92st veljavnih vrednosti

1 8153142 15100000

2 6430224 14700000

gt funkcija aggregate dela le na R 211 in novejsih

gt na starejsih verzijah R-ja javi napako

gt

2 poglavje ndash Univariatna in bivariatna statistika 85

gt glede na dve spremenljivki

gt aggregate(x=data[c(G91G92)]

by = list(data$O1F2 data$F5)

FUN=mean narm=TRUE) rezultat je ena stevilka

Group1 Group2 G91 G92

1 moski veliko mesto 2520000 1887059

2 zenski veliko mesto 2523333 1830000

3 moski predmestje 2311250 1593810

4 zenski predmestje 2092381 1472000

5 moski manjse mesto 2886923 1894186

6 zenski manjse mesto 2101143 1612353

7 moski vas 2270870 1574615

8 zenski vas 2028060 1335000

9 moski kmetija 1888889 1460556

10 zenski kmetija 1880000 1042857

gt aggregate(x=data[c(G91G92)]

by = list(data$O1F2 data$F5)

FUN=mojPovzetek) vec stevilk

Group1 Group2 G91arit sredina G91std odklon

1 moski veliko mesto 25200000 12794650

2 zenski veliko mesto 25233333 14355172

3 moski predmestje 23112500 9543917

4 zenski predmestje 20923810 9989640

5 moski manjse mesto 28869231 14734656

6 zenski manjse mesto 21011429 9263679

7 moski vas 22708696 12535992

8 zenski vas 20280597 12044064

9 moski kmetija 18888889 9864713

10 zenski kmetija 18800000 9854441

G91st veljavnih vrednosti G92arit sredina

1 1400000 18870588

2 1500000 18300000

3 2400000 15938095

4 2100000 14720000

5 3900000 18941860

6 3500000 16123529

7 6900000 15746154

8 6700000 13350000

9 2700000 14605556

10 700000 10428571

G92std odklon G92st veljavnih vrednosti

1 8084148 1700000

2 8344260 1900000

86 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

3 5339052 2100000

4 5679202 2500000

5 7964362 4300000

6 6177675 3400000

7 9427670 5200000

8 5901313 6200000

9 6550929 1800000

10 3413070 700000

Za funkcijo describeBy je koda spodaj izpis pa je zaradi varcevanja s prostoromizpuscen (seveda lahko kodo preizkusite sami)

gt z describeBy

gt glede na eno spremenljivko

gt describeBy(x=data[c(G91G92)]

group = data$O1F2)

gt glede na dve spremenljivki

gt describeBy(x=data[c(G91G92)]

group = list(data$O1F2 data$F5))

23 Preverjanje domnev o srednjih vrednostih in

pripadajoci intervali zaupanja

V tem podpodpoglavju so obravnavane le metode za preverjanje domnev o srednjivrednosti in o razliki dveh srednjih vrednosti (na odvisnih in neodvisnih vzorcih)Metode za preverjanje domnev o vec srednjih vrednostih so obravnavane v podpo-glavju 32 (Analiza variance (ANOVA)) Poleg tega bomo pri parametricnih pristopih(t-testih) omenili tudi pripadajoci interval zaupanja

Poleg parametricnega tukaj obravnavamo tudi neparametricni pristop Nekaj besedo razliki med obema

parametricni testi So rdquomocnejsirdquo11 a imajo obicajno strozje predpostavke

neparametricni testi Imajo manj predpostavk a so rdquosibkejsirdquo Ce predpo-stavke parametricnih testov (priblizno) drzijo izberemo parametricne testesicer neparametricne (ce njihove predpostavke drzijo)

Neparametricne teste pogosteje uporabljamo na manjsih vzorcih saj ima tam krsenjepredpostavk parametricnih testov hujse posledice

11Mocnejsi test je tisti ki pri izbrani stopnji tveganja zazna (statisticno znacilne) razlike pri manjsirazliki med vzorcno statistiko in vrednostjo iz nicelne domneve

2 poglavje ndash Univariatna in bivariatna statistika 87

Opozorilo

Neparametricni testi niso samo rdquorobustnejsa verzijardquo parametricnih ampak pre-verjajo drugacne domneve Za primere za katere tu ne podamo testa aliintervala zaupanja je ponavadi priporocljivo uporabiti metode ponovnega vzor-cenja

V ta namen so uporabne predvsem sledece funkcije

ttest Za vse vrste t-testov

vartest Test enakosti varianc Za preverjanje predpostavk t-testa

flignertest Se en test enakosti varianc Manj obcutljiv na odstopanje odnormalnosti Za preverjanje predpostavk t-testa

leveneTest Se en test enakosti varianc iz paketka car Tudi ta je manj ob-cutljiv na odstopanje od normalnosti Z argumentom center=mean (kar niprivzeta moznost) je to test ki ga uporablja SPSS Za preverjanje predpo-stavk t-testa

wilcoxtest Wilcoxonovi testi za en ali dva vzorca Test za dva neodvisnavzorca je znan tudi kot Mann-Whitneyjev test ali Wilcoxon-Mann-Whitneyjevtest

binomtest Uporaben za izvedbo testa predznaka (ang sign test) ki se upo-rablja kot test mediane

Preverjanje domnev uporabimo ce imamo oblikovano nicelno domnevo ki jo zelimo(obicajno) zavrniti Postopek temelji na tem da preverimo kako verjetno bi biloda bi na vzorcu dane velikosti dobili tako rdquoekstremnordquo vrednost testne statistike kotsmo jo dobili na nasem vzorcu

Intervale zaupanja podamo kadar zelimo podati oceno nekega parametra Ker ocenoracunamo na podlagi vzorca tockovna ocena (skoraj) zagotovo ni pravilna Takozelimo izracunati nek interval za katerega lahko z danim tveganjem (gotovostjo)trdimo da vsebuje populacijski parameter Ce se na primer vzorcne ocene g pa-rametra γ porazdeljujejo normalno s standardnim odklonom SE(g) potem lahkointerval zaupanja pri tveganju α izracunamo kot

P (g minus zα2SE(g) le γ ge g + zα2SE(g)) = 1minus α

Bolj splosno (tudi ce se vzorcne ocene ne porazdeljujejo normalno) vedno velja

P (Fminus1(p = α2 g ) le γ ge Fminus1(p = 1minus α2 g )) = 1minus α

Fminus1 je kvantilna funkcija za porazdelitev vzorcnih ocen g oziroma inverzna funkcijaporazdelitveni funkciji F Tu velja omeniti da R vsebuje kvantilne funkcija zavecino v statistiki uporabljenih porazdelitev Naj omenim samo najpomembnejse

qnorm Normalna porazdelitev

88 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

qt t porazdelitev

qf F porazdelitev

qbinom Binomska porazdelitev

qchisq χ2 porazdelitev

qunif Enakomerna porazdelitev

qexp Eksponentna porazdelitev

q Se kar nekaj drugih porazdelitev Ime funkcije se vedno zacne s rdquoqrdquosledi oznaka (ime ali okrajsava) za porazdelitev

Izracun intervala zaupanja bomo podrobneje prikazali samo za aritmeticno sredinoceprav bi lahko na zelo podoben nacin izracunali tudi intervala za razliko dveh arit-meticnih sredin na neodvisnih in odvisnih vzorcih (razlika je predvsem pri izracunustandardne napake vzorcne ocene

231 Preverjanje domneve o srednji vrednosti in pripada-joci interval zaupanja

Kaj je to srednja vrednost je odvisno od testa Pri parametricnih testih je to pravi-loma aritmeticna sredina drugje pa ni nujno To velja tudi pri problemih in testihki jih obravnavamo v sledecih podpodpoglavjih

T-test za en vzorec verjetno ze dobro poznate tako si poglejmo malce podrobnejele neparametricna testa za preverjanje domneve o srednji vrednosti

Wilcoxonov test oziroma Wilcoxonov test oznacenih rangov

bull Predpostavlja vsaj intervalno mersko lestvico

bull Naceloma predpostavlja simetricno porazdelitev rArr potem se lahko upo-rablja kot test mediane

bull V splosnem to torej ni test mediane in vsekakor ne rdquorobustenrdquotest o vrednosti aritmeticne sredine

bull Pogosto navajajo tudi da testira ali je porazdelitev simetricna glede natestno vrednost

bull Tehnicno gledano preverja ali je vsota rangov negativnih odklonov vecjaod pozitivnih

bull Uporablja se predvsem na majhnih vzorcih ko je porazdelitev simetricnaa ne normalna

Test predznaka Pogosto se uporablja tudi ime test mediane

bull Predpostavlja vsaj ordinalno mersko lestvico Zanima nas samopredznak odklona od testne vrednosti torej katera vrednost je vecja

2 poglavje ndash Univariatna in bivariatna statistika 89

Slika 21 Porazdelitev bruto place

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

020

4060

80

bull Testira domnevo o vrednosti mediane oziroma natancneje domnevoda je stevilo pozitivnih in negativnih odklonov enako

Najprej preverimo domnevo o srednji vrednosti V splosnem naj bo domneva H0Srednja vrednost bruto place je enaka 220 tisoc sit

Poleg tega izracunajmo tudi 90- interval zaupanja za povprecno placo

Porazdelitev bruto place je prikazana na sliki 21

gt najprej si oglejmo porazdelitev

gt hlt-hist(data$G91br=(016)50xlab=Bruto placa v 1000 sit

main=ylab=Frekvenca)

gt curve(dnorm(xmean=mean(data$G91narm=TRUE)

sd=sd(data$G91narm=TRUE))diff(h$breaks)[1]

sum(isna(data$G91)) add=TRUE)

gt describe(data$G91)

90 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

range skew kurtosis se

1 707 146 252 671

Iz slike 21 in opisnih statistik je razvidno da porazdelitev ni niti priblizno nor-malna Sedaj preverimo ali lahko zavrnemo domnevo da je povprecna placa enaka220000 sit prav tako pa izracunajmo tudi 90- interval zaupanja za povprecnobruto placo

gt ttest(data$G91mu=220conflevel = 090)

One Sample t-test

data data$G91

t = 085118 df = 324 p-value = 03953

alternative hypothesis true mean is not equal to 220

90 percent confidence interval

2146434 2367782

sample estimates

mean of x

2257108

Niti pri 10- tveganju ne moremo trditi da je povprecna bruto placa razlicna od220 tisoc sit Z 10- tveganjem lahko trdimo da je povprecna bruto placa med21464 in 23678 tisoc sit

gt interval zaupanja bi lahko izracunali tudi takole

gt nlt- sum(isna(data$G91)) stevilo veljavnih vrednosti

gt alfa lt- 01

gt mean(data$G91narm=TRUE) +

qt(c(alfa21-alfa2)df=n-1)sd(data$G91narm=TRUE)sqrt(n)

[1] 2146434 2367782

Wilcoxonov test se lahko uporablja za preverjanje domneve ali je porazdelitev brutoplace simetricna okoli 220000 sit Vendar pa ta domneva nima ravno smisla saj smovideli da je porazdelitev izrazito nesimetricna Tehnicno gledano preverja domnevoda je vsota rangov negativnih odklonov enaka vsoti rangov pozitivnih odklonov (priracunanju rangov se predznak ne uposteva)

gt wilcoxtest(data$G91mu=220)

Wilcoxon signed rank test with continuity correction

data data$G91

2 poglavje ndash Univariatna in bivariatna statistika 91

V = 21965 p-value = 01245

alternative hypothesis true location is not equal to 220

Tudi z Wilcoxonovim testom nicelne domneve pri 10- tveganju ne moremo za-vrniti Opravimo sedaj se test predznaka oziroma test medianePreverimo torejali je negativnih odklonov vec kot pozitivnih (pri tem odklonov z vrednostjo 0 neupostevamo)

gt nPozlt-sum(data$G91gt220 narm = TRUE)

gt manjkajoce vrednosti ignoriramo

gt nNeglt-sum(data$G91lt220 narm = TRUE)

gt binomtest(x=nPozn=nPoz+nNegp=05)

Exact binomial test

data nPoz and nPoz + nNeg

number of successes = 124 number of trials = 312

p-value = 00003462

alternative hypothesis true probability of success is not equal

to 05

95 percent confidence interval

03427360 04541027

sample estimates

probability of success

03974359

gt median(data$G92narm=TRUE)

[1] 150

Nicelno domnevo da je mediana place enaka 220 lahko zavrnemo pri 003- tve-ganju kar niti ni presenetljivo saj je vrednost mediane 200 binomtest lahkoklicemo tudi takole

gt binomtest(x=c(nPoznNeg)p=05)

232 Preverjanje domneve o razliki med srednjima vrednostmana odvisnih vzorcih in pripadajoci interval zaupanja

Vsi obravnavani testi za odvisne vzorce so enakovredni testom za en vzorec (o vre-dnosti srednje vrednosti) ki se izvedejo na razliki dveh spremenljivk To velja upo-stevati tudi pri interpretaciji rezultatov Pri t-testu to sicer ni problematicno sajvelja da je aritmeticna sredina razlike enaka razliki aritmeticnih sredin Enako pane velja za mediano ndash mediana razlike ni enaka razliki median

92 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

Slika 22 Porazdelitev zaupanja v Drzavni zbor in Evropski parlament

Zaupanje v Državni zbor

Fre

kven

ca

0 2 4 6 8 10

050

150

250

Zaupanje v Evropski parlament

Fre

kven

ca0 2 4 6 8 10

050

150

250

Opozorilo

Test predznaka torej preverja domnevo o vrednosti mediane razlike inne o vrednosti razlike median

Primer domneve je lahko H0 Zaupanje v drzavni zbor je v rdquopovprecjurdquo enakozaupanju v evropski parlament

Poleg tega izracunajmo tudi 90- interval zaupanja za razliko v zaupanju v obaparlamenta

Poglejmo si najprej porazdelitve obeh spremenljivk (slika 22) Kot vemo je kljucnaporazdelitev razlike obeh spremenljivk12 (slika 23) saj so testi za odvisne vzorceenakovredni testom za en vzorec na razliki spremenljivk

gt Pregledamo porazdelitve in opisne statistike

gt originalnih spremenljivk

gt par(mfrow=c(12))

gt hist(data$B4xlab=Zaupanje v Drzavni zbormain=

ylab=Frekvenca)

gt hist(data$B9xlab=Zaupanje v Evropski parlamentmain=

ylab=Frekvenca)

gt par(mfrow=c(11))

gt describe(data[c(B4B9)])

12Razliko izracunamo kot prva spremenljivka ndash druga spremenljivka

2 poglavje ndash Univariatna in bivariatna statistika 93

Slika 23 Porazdelitev razlike med zaupanjem v Drzavni zbor in zaupanjem v Evrop-ski parlament

Razlika v zaupanju (Državni zbor ndash Evropski parlament)

Fre

kven

ca

-10 -5 0 5

010

020

030

040

0

vars n mean sd median trimmed mad min max range

B4 1 1387 413 238 4 410 148 0 10 10

B9 2 1247 453 241 5 457 297 0 10 10

skew kurtosis se

B4 011 -054 006

B9 -009 -070 007

gt razlike

gt hlt-hist(data$B4-data$B9main=ylab=Frekvencabr=-107

xlab=Razlika v zaupanju (Drzavni zbor - Evropski parlament))

gt curve(dnorm(xmean=mean(data$B4-data$B9narm=TRUE)

sd=sd(data$B4-data$B9narm=TRUE))diff(h$breaks)[1]

sum(isna(data$B4-data$B9)) add=TRUE)

gt describe(data$B4-data$B9)

vars n mean sd median trimmed mad min max range

1 1 1231 -041 21 0 -037 148 -10 7 17

94 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

skew kurtosis se

1 -031 182 006

Na slikah 22 in 23 ter zgornjem izpisu vidimo da je porazdelitev obeh spremenljivkpodobna porazdelitev razlike pa sicer priblizno normalna z rahlo asimetrijo v levoin znatno konicavostjo

Sedaj preverimo se (nicelno) domnevo da je povprecno zaupanje v oba parlamentaenako ter izracunajmo 90- interval zaupanja

gt ttest(x=data$B4y=data$B9 paired=TRUE conflevel = 090)

Paired t-test

data data$B4 and data$B9

t = -6883 df = 1230 p-value = 9317e-12

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

-05093517 -03127442

sample estimates

mean of the differences

-04110479

Ugotovimo lahko da je razlika med obema povprecjema statisticno znacilna prizanemarljivem tveganju Z 10- tveganjem lahko trdimo da smo Slovenci leta 2004v povprecju med minus051 in minus031 tocke bolj zaupali Evropskemu parlamentu kotdrzavnemu zboru

Sedaj opravimo se neparametricne teste Pri Wilcoxonovem testu je formalna do-mneva da je vsota rangov negativnih vrednosti enaka vsoti rangov pozitivnih vre-dnosti (pri racunanju rangov se predznak ne uposteva) Pri testu predznakamedianepreverimo ali je negativnih odklonov vec kot pozitivnih (odklonov z vrednostjo 0ne upostevamo)

gt wilcoxtest(x=data$B4y=data$B9 paired=TRUE)

Wilcoxon signed rank test with continuity correction

data data$B4 and data$B9

V = 112990 p-value = 9524e-12

alternative hypothesis true location shift is not equal to 0

gt nPozlt-sum((data$B4-data$B9)gt0 narm = TRUE)

gt manjkajoce vrednosti ignoriramo

gt nNeglt-sum((data$B4-data$B9)lt0 narm = TRUE)

gt binomtest(x=nPozn=nPoz+nNegp=05)

2 poglavje ndash Univariatna in bivariatna statistika 95

Exact binomial test

data nPoz and nPoz + nNeg

number of successes = 308 number of trials = 790

p-value = 6433e-10

alternative hypothesis true probability of success is not equal

to 05

95 percent confidence interval

03556961 04248759

sample estimates

probability of success

03898734

Na podlagi obeh testov lahko ugotovimo da je razlika med povprecjema statisticnoznacilno razlicna od 0 pri zanemarljivem tveganju oziroma da srednji vrednosti nistaenaki

233 Preverjanje domneve o razliki med srednjima vrednostmana neodvisnih vzorcih in pripadajoci interval zaupanja

Edini neparametricni test ki ga bomo obravnavali tu je Mann-Whitneyjev test(oziroma Wilcoxonov test za neodvisna vzorca ali Wilcoxon-Mann-Whitneyjev test)

bull Predpostavlja vsaj ordinalno mersko lestvico

bull Testira ali sta povprecna ranga enaka oziroma ali je verjetnost da imaenota iz 1 skupine vecjo vrednost kot enota iz 2 skupine enaka 05

bull Ce sta obliki porazdelitev v obeh skupinah podobni se lahko uporablja za testenakosti srednjih vrednosti

Primer domneve je lahko H0 rdquoSrednja vrednostrdquo za bruto placo je enaka pri moskihin zenskah

Poleg tega izracunajmo tudi 90- interval zaupanja za razliko v bruto placi moskihin zensk

Poglejmo si najprej opisne statistike in porazdelitvi spremenljivke na obeh vzorcih(slika 24)

gt opisne statistike

gt describeBy(x=data$G91group=data$O1F2mat=TRUE)

item group1 vars n mean sd median trimmed

11 1 moski 1 173 2375896 1263618 200 2184460

12 2 zenski 1 145 2099103 1127086 184 1951026

mad min max range skew kurtosis se

96 23 Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja

Slika 24 Porazdelitev bruto place pri moskih in zenskah

Moški

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

010

2030

40

Ženske

Bruto plača v 1000 sit

Fre

kven

ca0 200 400 600 800

010

2030

40

11 889560 61 760 699 1573864 2777364 9607112

12 978516 53 700 647 1263913 1745150 9359942

gt poglejmo porazdelitev

gt par(mfrow=c(12))

gt hist(data$G91[data$O1F2==moski]br=(016)50

xlab=Bruto placa v 1000 sitmain=Moskiylab=Frekvenca)

gt hist(data$G91[data$O1F2==zenski]br=(016)50

xlab=Bruto placa v 1000 sitmain=Zenskeylab=Frekvenca)

gt par(mfrow=c(11))

Predpostavka klasicne razlicice t-testa za neodvisne vzorce je tudi enakost variancZato izvedemo tudi test enakosti varianc a se nanj ni dobro prevec opirati Privelikih vzorcih je namrec precej obcutljiv in zazna razlike v variancah veliko prejkot le-te zacnejo vplivati na veljavnost klasicnega t-testa

gt vartest(G91~O1F2data=data)

F test to compare two variances

data G91 by O1F2

F = 12569 num df = 172 denom df = 144 p-value =

01561

alternative hypothesis true ratio of variances is not equal to 1

95 percent confidence interval

09159805 17172157

sample estimates

2 poglavje ndash Univariatna in bivariatna statistika 97

ratio of variances

1256949

gt flignertest(G91~O1F2data=data)

Fligner-Killeen test of homogeneity of variances

data G91 by O1F2

Fligner-Killeenmed chi-squared = 013014 df = 1

p-value = 07183

gt neobcutljiv na odstopanja od normalnosti

gt library(car)

gt leveneTest(G91~O1F2data=data)

Levenes Test for Homogeneity of Variance (center = median)

Df F value Pr(gtF)

group 1 00538 08167

316

gt neobcutljiv na odstopanja od normalnosti

gt leveneTest(G91~O1F2data=data center=mean)

Levenes Test for Homogeneity of Variance (center = mean)

Df F value Pr(gtF)

group 1 0369 0544

316

gt razlicica kot jo uporablja SPSS

gt malce manj robustna

Glede na to da so vsi testi enakosti varianc pokazali da domneve o enakih variancahne moremo zavrniti lahko (brez zadrzkov kar se tice enakosti varianc) izvedemo t-test s predpostavko enakih varianc Poleg tega bomo izracunali tudi 90- intervalzaupanja za razliko aritmeticnih sredin

gt ttest(G91~O1F2data=datavarequal=TRUE conflevel = 090)

Two Sample t-test

data G91 by O1F2

t = 2043 df = 316 p-value = 004188

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

5328537 50029964

sample estimates

mean in group moski mean in group zenski

2375896 2099103

Pri 5- tveganju so razlike statisticno znacilne torej lahko s takim tveganje trdimoda imajo moski v povprecju visjo placo tudi na populaciji Z 10- tveganjem lahkotrdimo da imajo moski v povprecju od 533 do 5003 tisoc sit visjo placo kot zenske

98 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

Ce ne bi zeleli predpostaviti enakih varianc bi bila koda kot sledi Testa ne bomoopravili ker v tem primeru ni potrebe

gt ttest(G91~O1F2data=datavarequal=FALSE conflevel = 090)

gt ali

gt ttest(G91~O1F2data=data conflevel = 090)

gt argumenta varequal=FALSE ni treba navajati

gt ker je to privzeta vrednost

Sedaj pa opravimo se ustrezen neparametricen test torej Mann-Whitneyjev test

gt wilcoxtest(G91~O1F2data=data)

Wilcoxon rank sum test with continuity correction

data G91 by O1F2

W = 14496 p-value = 00167

alternative hypothesis true location shift is not equal to 0

Tudi tu ugotovimo da so razlike med srednjimi vrednostmi statisticno znacilne pri5- tveganju oz natancneje v tem primeru pri 17- tveganju

24 Preverjanje domnev o delezih in pripadajoci

intervali zaupanja

Domneve o delezih lahko preverjamo na vec nacinov V primeru velikih vzorcevobicajno predpostavljamo da se delezi ali razlike med delezi porazdeljujejo pribli-zno normalno Alternativni nacin za preverjanje domnev o delezih je s pomocjokontingencnih tabel in χ2 porazdelitve vendar je tudi ta le priblizen Za posamezneprobleme bomo obravnavali tudi natancne teste ki pa se od problema do problemarazlikujejo

V praksi se pogosto uporablja tudi pristop pri katerem se deleze obravnava kotpovprecja spremenljivk ki imajo vrednosti 0 in 1 V primeru dovolj velikih vzorcevin neekstremnih delezev (ki niso blizu 0 ali 1) je ta pristop primeren

2 poglavje ndash Univariatna in bivariatna statistika 99

241 Preverjanje domneve o vrednosti deleza in pripadajociinterval zaupanja

Nekih volitev se jih je udelezilo 687 anketirancev Preverili bomo domnevo dase je volitev udelezilo 70 volilnih upravicencev Ker je vzorec velik in delez niekstremen uporaba priblizkov ni problematicna

gt pogledamo frekvencno tabelo odgovorov (vec o tem kasneje)

gt tbllt-table(data$B11)

gt tbl

da ne

940 432

gt izracunamo deleze

gt proptable(tbl)

da ne

06851312 03148688

gt stevilo tistih ki so odgovorili z da ali ne

gt nlt-sum(tbl)

gt n

[1] 1372

gt delez tistih ki so glasovali

gt plt-tbl[1]n

gt p

da

06851312

gt preverjanje domneve s pomocjo klasicnega z-testa

gt H0 pi=piH=070

gt piHlt-070

gt izracun standardne napake

gt sePlt-sqrt(p(1-p)n)

gt izracun z statistike

gt zlt-(p-piH)seP

gt izracunamo p-vrednost (dvostranska)

gt 2pnorm(-abs(z))

da

02357121

Domnevo bi lahko zavrnili sele pri 236- tveganju in je zato ne zavrnemo Torej nemoremo trditi da se volitev ni udelezilo 70 volilnih upravicencev (ampak vec alimanj)

Namesto normalne bi bilo sicer bolje uporabiti t-porazdelitev (ker smo standardnonapako ocenili na vzorcu) a pri tako velikih vzorcih v obeh primerih dobimo enakrezultat

100 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

gt 2pt(-abs(z)df=n-1)

da

02359176

Izracunajmo sedaj se klasicna intervala zaupanja (z uporabo normalne in t poraz-delitve)

gt alfa lt- 01

gt (intZlt-p + qnorm(c(alfa21-alfa2))seP)

[1] 06645058 07057566

gt (intTlt-p + qt(c(alfa21-alfa2)df=n-1)seP)

[1] 06644919 07057705

S 10- tveganjem torej lahko trdimo da se je volitev udelezilo med 066 (066 pri t-porazdelitvi) in 071 volilnih upravicencev

Sedaj bomo preverili domnevo se s χ2-testom in natancnim testom (preko binomskeporazdelitve) Test preko binomske porazdelitve je pravzaprav najnatancnejsi Obefunkciji zraven izracunata tudi interval zaupanja

gt preko hi-kvadrat testa

gt proptest(x=tbl[1]n=np=piH conflevel=1-alfa)

1-sample proportions test with continuity correction

data tbl[1] out of n null probability piH

X-squared = 13745 df = 1 p-value = 0241

alternative hypothesis true p is not equal to 07

90 percent confidence interval

06637884 07057324

sample estimates

p

06851312

gt dobimo tudi interval zaupanja

gt

gt se natancen test

gt binomtest(x=tbl[1]n=np=piH conflevel=1-alfa)

Exact binomial test

data tbl[1] and n

number of successes = 940 number of trials = 1372

p-value = 02273

alternative hypothesis true probability of success is not equal

to 07

2 poglavje ndash Univariatna in bivariatna statistika 101

90 percent confidence interval

06638601 07058132

sample estimates

probability of success

06851312

Rezultatov zaradi podobnosti s prejsnjimi ne bom interpretiral

Za konec naredimo se test preko povprecij torej t-test Tu upostevamo da je pov-precje spremenljivke ki ima vrednosti le 0 in 1 pravzaprav delez enic Ta test jezaradi popolne krsitve predpostavke o normalnosti manj primeren ceprav priblizekpri velikih vzorcih ni slab

gt xlt-data$B11

gt xlt-(x==da)1

gt ttest(xmu=piH conflevel=1-alfa)

One Sample t-test

data x

t = -11853 df = 1371 p-value = 02361

alternative hypothesis true mean is not equal to 07

90 percent confidence interval

06644843 07057780

sample estimates

mean of x

06851312

Kot vidimo so rezultati v tem primeru (zaradi velikega vzorca) res skoraj identicni

242 Preverjanje domnev o razliki med delezema na neod-visnih vzorcih in pripadajoci intervali zaupanja

Tudi tu lahko uporabimo podobne pristope kot pri prejsnjem primeru Preverimodomnevo da je delez volivcev enak pri zenskah in moskih Najprej izracunamokontingencno tabelo (vec o tem v podpodpoglavju 252)

gt izracunamo kontingencno tabelo

gt tbllt-table(data$O1F2data$B11)

gt tbl

da ne

moski 427 188

zenski 492 235

102 24 Preverjanje domnev o delezih in pripadajoci intervali zaupanja

gt izracunamo deleze

gt proptable(tblmargin=1)

da ne

moski 06943089 03056911

zenski 06767538 03232462

gt stevilo enot

gt nlt-apply(tbl1sum)

gt n

moski zenski

615 727

gt delez tistih ki so glasovali

gt plt-tbl[1]n

gt p

moski zenski

06943089 06767538

Najprej zopet s pomocjo klasicnega z-testa preverimo domnevo

gt H0 piM=piZ

gt izracun standardne napake

gt pSkuplt-sum(tbl[1])sum(n)

gt sePlt-sqrt(sum(pSkup(1-pSkup)n))

gt izracun z statistike

gt zlt-(p[1]-p[2])seP

gt izracunamo p-vrednost (dvostranska)

gt 2pnorm(-abs(z))

moski

04903852

Domnevo o enakosti delezev bi lahko zavrnili sele pri 49- tveganju in je zato nezavrnemo Tako ne moremo trditi da se delez volivcev na populaciji med spolomarazlikuje Sledijo se ostali testi torej χ2-test in test preko povprecij Pri obehdobimo tudi interval zaupanja za razliko delezev

gt preko hi-kvadrat testa

gt proptest(x=tbl conflevel=1-alfa)

2-sample test for equality of proportions with

continuity correction

data tbl

X-squared = 039783 df = 1 p-value = 05282

alternative hypothesis twosided

90 percent confidence interval

2 poglavje ndash Univariatna in bivariatna statistika 103

-002575264 006086296

sample estimates

prop 1 prop 2

06943089 06767538

gt dobimo tudi interval zaupanja

gt

gt preko povprecij

gt xlt-data$B11

gt xlt-(x==da)1

gt spollt-data$O1F2

gt ttest(x~spol varequal=TRUE conflevel=1-alfa)

Two Sample t-test

data x by spol

t = 06893 df = 1340 p-value = 04908

alternative hypothesis true difference in means is not equal to 0

90 percent confidence interval

-002436485 005947517

sample estimates

mean in group moski mean in group zenski

06943089 06767538

Tu ugotovimo da ne moremo trditi da se delez volivcev na populaciji med spolomarazlikuje Kot receno dobimo tudi intervala zaupanja Ce upostevamo prvega kije zanesljivejsi lahko pri 10- tveganju trdimo da je razlika v delezu volivcev medmoskimi in zenskami med minus002575 in 006086

25 Frekvencne in kontingencne tabele

251 Frekvencne tabele

Frekvencne in kontingencne tabele v R-ju dobimo z ukazom table ki izracunasamo frekvence Za dodajanje vsote (rdquoSkupajrdquo) lahko potem uporabimo funkcijoaddmargins za izracun odstotkov pa proptable

Funkcija table s privzetimi vrednostmi ne uposteva manjkajocih vrednosti Cezelimo imeti v tabeli tudi manjkajoce vrednosti (NA) moramo pri klicu funkcijetable nastaviti exclude=NULL

Malce bogatejso frekvencno tabelo je moc dobiti tudi s funkcijo frekTab ki senahaja v datoteki rdquoUcbenikR-funkcijeRrdquo

Za risanje frekvencnih tabel sta primerni predvsem funkciji barplot in pie

104 25 Frekvencne in kontingencne tabele

Zacnimo s frekvencno tabelo

gt tbllt-table(data$F5)

gt tbl

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija

148

gt addmargins(tbl) a skupaj

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija Sum

148 1436

gt addmargins(proptable(tbl)) + skupaj

veliko mesto predmestje manjse mesto vas

009192201 014206128 022701950 043593315

kmetija Sum

010306407 100000000

gt barplot(tbl)

gt pie(tbl)

Z argumentom exclude=NULL zahtevamo naj se izpisejo tudi manjkajoce vrednosti(oz natancneje naj se iz tabele nicesar ne izpusti)

gt z NA

gt table(data$F5exclude=NULL)

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija ltNAgt

148 6

Se primer malce bogatejse frekvencne tabele s funkcijo frekTab (iz datoteke rdquoUcbenikR-funkcijeRrdquo)

gt s funkcijo frekTab

gt frekTab(data$F5)

Frekvenca Kum frek Kumulativni

veliko mesto 132 132 9192201 9192201

predmestje 204 336 14206128 23398329

manjse mesto 326 662 22701950 46100279

vas 626 1288 43593315 89693593

kmetija 148 1436 10306407 100000000

2 poglavje ndash Univariatna in bivariatna statistika 105

252 Kontingencne tabele

Za kontingecne tabele lahko uporabimo iste funkcije kot za frekvencne tabele Ce ze-limo na primer na podlagi dveh spremenljivk oblikovati osnovno kontingencno tabelouporabimo funkcijo table in ji kot argumente podamo spremenljivke na podlagikaterih zelimo oblikovati tabelo (najprej spremenljivka v vrsticah nato v stolpcih)Ce pri podajanju spremenljivk (argumentov) podamo tudi imena argumentov (nprKraj=data$F5 spodaj) postanejo imena argumentov imena posameznih dimenzijtabele

Najprej izracunajmo kontingencno tabelo za kraj bivanja in spol skupaj z vsotamiVrednosti v tabeli tudi pretvorimo v deleze in zopet dodamo vsote

gt tbl2Dlt-table(Kraj=data$F5Spol=data$O1F2)

gt tbl2D

Spol

Kraj moski zenski

veliko mesto 56 72

predmestje 94 110

manjse mesto 151 160

vas 264 351

kmetija 78 69

gt skupaj z vsotami

gt addmargins(tbl2D)

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

Sum 643 762 1405

gt preracun v skupne deleze

gt proptable(tbl2D)

Spol

Kraj moski zenski

veliko mesto 003985765 005124555

predmestje 006690391 007829181

manjse mesto 010747331 011387900

vas 018790036 024982206

kmetija 005551601 004911032

gt ptbllt-proptable(tbl2D)

gt addmargins(tbl2D)

106 25 Frekvencne in kontingencne tabele

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

Sum 643 762 1405

gt preracun v deleze po stolpcih

gt proptable(tbl2Dmargin=2)

Spol

Kraj moski zenski

veliko mesto 008709176 009448819

predmestje 014618974 014435696

manjse mesto 023483670 020997375

vas 041057543 046062992

kmetija 012130638 009055118

gt addmargins(tbl2Dmargin=2)

Spol

Kraj moski zenski Sum

veliko mesto 56 72 128

predmestje 94 110 204

manjse mesto 151 160 311

vas 264 351 615

kmetija 78 69 147

gt ptbllt-addmargins(proptable(addmargins(tbl2Dmargin=2)

margin=2)margin=1)

gt ptbl

Spol

Kraj moski zenski Sum

veliko mesto 008709176 009448819 009110320

predmestje 014618974 014435696 014519573

manjse mesto 023483670 020997375 022135231

vas 041057543 046062992 043772242

kmetija 012130638 009055118 010462633

Sum 100000000 100000000 100000000

gt v na 2 decimalki

gt round(ptbl1002)

Spol

Kraj moski zenski Sum

veliko mesto 871 945 911

predmestje 1462 1444 1452

manjse mesto 2348 2100 2214

2 poglavje ndash Univariatna in bivariatna statistika 107

vas 4106 4606 4377

kmetija 1213 906 1046

Sum 10000 10000 10000

Za dvodimenzionalne tabele pa lahko za bogatejsi izpis (tipa SPSS) uporabimo tudifunkcijo CrossTable iz paketka gmodels

gt enostavneje s paketkom gmodels

gt installpackages(gmodels)

gt library(gmodels)

gt CrossTable(data$F5data$O1F2)

Cell Contents

|-------------------------|

| N |

| Chi-square contribution |

| N Row Total |

| N Col Total |

| N Table Total |

|-------------------------|

Total Observations in Table 1405

| data$O1F2

data$F5 | moski | zenski | Row Total |

-------------|-----------|-----------|-----------|

veliko mesto | 56 | 72 | 128 |

| 0114 | 0096 | |

| 0438 | 0562 | 0091 |

| 0087 | 0094 | |

| 0040 | 0051 | |

-------------|-----------|-----------|-----------|

predmestje | 94 | 110 | 204 |

| 0004 | 0004 | |

| 0461 | 0539 | 0145 |

| 0146 | 0144 | |

| 0067 | 0078 | |

-------------|-----------|-----------|-----------|

manjse mesto | 151 | 160 | 311 |

| 0528 | 0446 | |

| 0486 | 0514 | 0221 |

| 0235 | 0210 | |

108 25 Frekvencne in kontingencne tabele

| 0107 | 0114 | |

-------------|-----------|-----------|-----------|

vas | 264 | 351 | 615 |

| 1083 | 0914 | |

| 0429 | 0571 | 0438 |

| 0411 | 0461 | |

| 0188 | 0250 | |

-------------|-----------|-----------|-----------|

kmetija | 78 | 69 | 147 |

| 1710 | 1443 | |

| 0531 | 0469 | 0105 |

| 0121 | 0091 | |

| 0056 | 0049 | |

-------------|-----------|-----------|-----------|

Column Total | 643 | 762 | 1405 |

| 0458 | 0542 | |

-------------|-----------|-----------|-----------|

gt zelimo samo po stolpcih + hi-kvadrat test - SPSS format

gt CrossTable(data$F5data$O1F2 propr=FALSE propc=TRUE

propt=FALSE propchisq=FALSE chisq = TRUE format=c(SPSS))

Cell Contents

|-------------------------|

| Count |

| Column Percent |

|-------------------------|

Total Observations in Table 1405

| data$O1F2

data$F5 | moski | zenski | Row Total |

-------------|-----------|-----------|-----------|

veliko mesto | 56 | 72 | 128 |

| 8709 | 9449 | |

-------------|-----------|-----------|-----------|

predmestje | 94 | 110 | 204 |

| 14619 | 14436 | |

-------------|-----------|-----------|-----------|

manjse mesto | 151 | 160 | 311 |

| 23484 | 20997 | |

-------------|-----------|-----------|-----------|

vas | 264 | 351 | 615 |

| 41058 | 46063 | |

-------------|-----------|-----------|-----------|

2 poglavje ndash Univariatna in bivariatna statistika 109

kmetija | 78 | 69 | 147 |

| 12131 | 9055 | |

-------------|-----------|-----------|-----------|

Column Total | 643 | 762 | 1405 |

| 45765 | 54235 | |

-------------|-----------|-----------|-----------|

Statistics for All Table Factors

Pearsons Chi-squared test

------------------------------------------------------------

Chi^2 = 6340168 df = 4 p = 01751438

Minimum expected frequency 5857936

Frekvencne tabele z vec kot dvema dimenzijama lahko ustvarimo na enak nacin kotdvodimenzionalne tabele s funkcijo table a je izpis pogosto zelo nepregleden Zapreglednejsi izpis lahko uporabimo funkcijo ftable ali tabelo pred izpisom pretvo-rimo v podatkovni okvir z asdataframe Kljub temu je izpis zelo dolg in ga zatoizpuscam

gt 3 in vec dimenzionalne tabele

gt tbl3Dlt-table(data$O1F2data$F5data$F6)

gt tbl3D

gt izpis postane zelo nepregleden

gt

gt ftable(tbl3D)

gt asdataframe(tbl3D)

253 Povezanost spremenljivk

S pomocjo kontingencnih tabel in na njih osnovanih mer lahko merimo in preverjamopovezanost med nominalnimi spremenljivkami

Za preverjanje domneve o neodvisnosti med dvema spremenljivkama lahko upora-bimo χ2-test Na voljo je v funkciji chisqtest ki kot argument sprejme vektormatriko ali dvodimenzionalno kontingencno tabelo Kot smo ze videli pa χ2-testvrne (ce tako izberemo) tudi funkcija CrossTable iz paketka gmodels

110 25 Frekvencne in kontingencne tabele

Funkcija chisqtest s privzetimi vrednostmi argumentov pri 2x2 tabelah uporabitudi Yatesov popravek omogoca pa tudi izracun (bolj) natancnih p vrednosti spomocjo simulacij (preko permutacijskega testa)

Statistiki si glede uporabe Yatesovega popravka niso enotni χ2-test ni natancen testampak le priblizek Uporaba Yatesovega popravka lahko v nekaterih primerih tapriblizek izboljsa lahko pa naredi χ2-test tudi prevec konzervativen

Za 2x2 tabele je na voljo tudi Fisherjev natancni test preko funkcije fishertest

Naredimo najprej obicajni χ2-test za povezanost tipa kraja bivanja in spola Prica-kujemo da nicelne domneve ne bomo mogli zavrniti

gt tblF5O1F2lt-table(data$F5data$O1F2)

gt tblF5O1F2

moski zenski

veliko mesto 56 72

predmestje 94 110

manjse mesto 151 160

vas 264 351

kmetija 78 69

gt chisqtest(tblF5O1F2)

Pearsons Chi-squared test

data tblF5O1F2

X-squared = 63402 df = 4 p-value = 01751

Domnevo bi lahko zavrnili sele pri 1751- tveganju in je zato ne zavrnemo

Poglejmo se primer tabele 2x2 kjer bomo preverjali domnevo o povezanosti (nicelnadomneva seveda predpostavlja neodvisnost) spremenljivk spol in rdquoclanstvo v politicnistrankirdquo Ker gre za tabelo 2x2 lahko uporabimo Yatesov popravek Izracunali bomoobe moznosti (s popravkom in brez njega)

gt attributes(data)$variablelabels[B21]

B21

Ali ste clan kaksne politicne stranke

gt data$B21lt-factor(data$B21)

gt (tblGndrBlt-table(data$B21data$O1F2)) 2x2 tabela

moski zenski

da 29 21

ne 618 738

2 poglavje ndash Univariatna in bivariatna statistika 111

gt hi-kvadrat test z Yatesovim popravkom (privzeta moznost)

gt chisqtest(tblGndrB)

Pearsons Chi-squared test with Yates continuity

correction

data tblGndrB

X-squared = 25174 df = 1 p-value = 01126

gt hi-kvadrat test brez Yatesovega popravka

gt chisqtest(tblGndrBcorrect = FALSE)

Pearsons Chi-squared test

data tblGndrB

X-squared = 29967 df = 1 p-value = 008343

Ce uporabimo privzeto moznost ce torej uporabimo Yatesov popravek lahko tuditu ugotovimo da niti pri 10- tveganju ne moremo trditi da sta spremenljivki spolin rdquoclanstvo v politicni strankirdquo povezani

Ce pa tega popravka ne bi uporabili bi pri 10- tveganju ze lahko trdili da staspremenljivki povezani

Ker je χ2-test pravzaprav le priblizek tukaj pa imamo celo dve razlicici pravilnostizracuna preverimo preko simulacij in Fisherjevega natancnega testa

gt chisqtest(tblGndrBsim=TRUE) p-vrednost preko simulacij

Pearsons Chi-squared test with simulated p-value

(based on 2000 replicates)

data tblGndrB

X-squared = 29967 df = NA p-value = 01134

gt fishertest(tblGndrB)

Fishers Exact Test for Count Data

data tblGndrB

p-value = 01112

alternative hypothesis true odds ratio is not equal to 1

95 percent confidence interval

08979363 30744330

sample estimates

odds ratio

1648488

Oba izracuna potrdita pravilnost izracuna χ2 z Yatesovim popravkom V primeruda bi izbrali χ2-test brez Yatesovega popravka bi dobili precej manjso stopnjo tve-ganja (priblizno 8-) ki pa bi bila glede na rezultate simulacij in Fisherjevega

112 26 Korelacija

natancnega testa napacna Uporaba popravka je torej v tem primeru primerna nipa vedno tako saj lahko popravek naredi test prevec konzervativen

Povezanost spremenljivk merimo s kontingencnimi koeficienti Ti so med drugim navoljo v funkciji assocstats v paketku vcd Razlaga vrnjenih koeficientov (glede naFerligoj 1994 166)

Phi-Coefficien Koren Pearsonovega koeficienta ndash pravzaprav gre v primeru binar-nih spremenljivk za Pearsonov korelacijski koeficient in ima tudi enako inter-pretacijo

Contingency Coeff Kontingencni koeficient (brez popravka)

Cramerrsquos V Kramerjev koeficient

gt installpackages(vcd)

gt library(vcd)

gt tblF5O1F2lt-table(data$F5data$O1F2)

gt assocstats(tblF5O1F2)

X^2 df P(gt X^2)

Likelihood Ratio 63309 4 017576

Pearson 63402 4 017514

Phi-Coefficient NA

Contingency Coeff 0067

Cramers V 0067

Vsi koeficienti imajo vrednost 0067 kar kaze da spremenljivki pravzaprav nistapovezani (oz sta zelo zelo sibko povezani)

26 Korelacija

Povezanost med ordinalnimi spremenljivkami in intervalnimi ali ordinalnimi spre-menljivkami merimo s pomocjo korelacijskih koeficientov

V R-ju lahko korelacijsko matriko izracunamo s pomocjo funkcije cor domneve okorelaciji pa lahko preverjamo s funkcijo cortest Prva (cor) izracuna korelacijomed vsemi spremenljivkami v podatkovnem okvirju ali matriki druga (cortest)izracuna in testira le eno korelacijo naenkrat Obe funkciji poznata naslednje kore-lacijske koeficiente

pearson Pearsonov koeficient (linearne) korelacije (privzeta moznost)

spearman Spearmanov koeficient korelacije

kendall Kendallov (τ) koeficient korelacijekonkordance

2 poglavje ndash Univariatna in bivariatna statistika 113

Slika 25 Razsevni grafikon ndash izobrazba in bruto placa

5 10 15 20

100

200

300

400

500

600

700

Izobrazba

Bru

to p

lača

Od teh treh je morda le Kendallov manj znan Tako kot Spearmanov koeficient ko-relacije je tudi Kendallov uporaben na ordinalnih spremenljivkah njegova vrednostpa se izracuna kot

(stevilo parov ki se ujemajo) ndash (stevilo parov ki se ne ujemajo)

stevilo vseh moznih parov

Pari ki se ujemajo so pari kjer je vrstni red enot (v paru) glede na obe spremenljivkienak tisti ki se ne ujemajo pa tisti kjer imata enoti drugacen vrstni red prispremenljivkah Stevilo vseh parov je n(nminus1)

2

Za primer vzemimo korelacijo med stevilom let solanja (F7) in bruto placo (G91)Odnos je prikazan tudi na sliki 25 Ocitno je zveza med spremenljivkama pozitivnaa nelinearna Izracunajmo in testirajmo vse tri koeficiente

gt narisemo razsevni grafikon

gt plot(G91~F7data=dataxlab=Izobrazbaylab=Bruto placa)

114 26 Korelacija

gt izracunamo Pearsonov koeficient korelacije

gt cor(x=data$F7y=data$G91use=completeobsmethod=pearson)

[1] 0550864

gt in preverimo domnevo (ki tudi izracuna korelacijo)

gt cortest(x=data$F7y=data$G91 method=pearson)

Pearsons product-moment correlation

data data$F7 and data$G91

t = 11862 df = 323 p-value lt 22e-16

alternative hypothesis true correlation is not equal to 0

95 percent confidence interval

04702540 06223585

sample estimates

cor

0550864

gt Spearmanov

gt cortest(x=data$F7y=data$G91 method=spearman)

Spearmans rank correlation rho

data data$F7 and data$G91

S = 2392800 p-value lt 22e-16

alternative hypothesis true rho is not equal to 0

sample estimates

rho

05817806

gt Kendallov

gt cortest(x=data$F7y=data$G91 method=kendall)

Kendalls rank correlation tau

data data$F7 and data$G91

z = 11146 p-value lt 22e-16

alternative hypothesis true tau is not equal to 0

sample estimates

tau

04474194

Vsi trije koeficienti kazejo na srednje mocno povezanost a vseeno je vrednost Ken-dallovega koeficienta bistveno nizja vrednost Spearmanovega pa najvisja

Kot smo ze omenili funkcija cor izracuna korelacijo med vsemi spremenljivkamiv podatkovnem okvirju funkcija cortest pa izracuna in testira le eno korelacijonaenkrat V ta namen je v datoteki rdquoUcbenikR-funkcijeRrdquo funkcija corTestDf kiomogoca da funkcijo cortest uporabimo na vec spremenljivkah Lepsi izpis sedobi z uporabo funkcije printCorTestDf

2 poglavje ndash Univariatna in bivariatna statistika 115

Slika 26 Razsevni grafikoni med vsemi spremenljivkami ki merijo zaupanje v in-stitucije

B4

0 4 8 0 4 8 0 4 8

04

8

04

8

B5

B6

04

8

04

8

B7

B8

04

8

04

8

B9

0 4 8 0 4 8 0 4 8 0 4 8

04

8

B10

Poglejmo si torej korelacije in statisticne znacilnosti na primeru sklopa spremenljivkB4-B10 (zaupanje v institucije) Izracunali bomo Pearsonove in Kendallove koefi-ciente Hiter pregled povezanosti med njimi je na sliki 26 (tocke so zaradi boljsepreglednosti rdquozatresenerdquo)

gt izbor shranimo

gt izborlt-c(B4 B5 B6 B7 B8 B9 B10)

gt izpisemo imena

gt attributes(data)$variablelabels[izbor]

B4 B5

drzavnemu zboru pravnemu sistemu

116 26 Korelacija

B6 B7

policiji politikom

B8 B9

politicnim strankam Evropskemu parlamentu

B10

Zdruzenim narodom

gt narisemo grafe

gt pairs(apply(data[izbor]2jitter)cex=03)

gt izracunamo Pearsonove korelacije

gt cor(data[izbor]use=pairwisecompleteobsmethod=pearson)

B4 B5 B6 B7 B8

B4 10000000 05946718 04616891 06415600 06311402

B5 05946718 10000000 05633582 05902897 05644650

B6 04616891 05633582 10000000 04800425 04414586

B7 06415600 05902897 04800425 10000000 08322464

B8 06311402 05644650 04414586 08322464 10000000

B9 06179115 05648233 04733737 05792044 05935754

B10 05188249 04824849 04596825 04667185 04893612

B9 B10

B4 06179115 05188249

B5 05648233 04824849

B6 04733737 04596825

B7 05792044 04667185

B8 05935754 04893612

B9 10000000 07889287

B10 07889287 10000000

gt tmplt-corTestDf(data[izbor]method=pearson)

gt printCorTestDf(tmp)

B4 B5 B6 B7 B8 B9 B10

B4 cor 0595 0462 0642 0631 0618 0519

p 0000 0000 0000 0000 0000 0000

n 1387 1358 1368 1374 1373 1231 1276

B5 cor 0595 0563 0590 0564 0565 0482

p 0000 0000 0000 0000 0000 0000

n 1358 1376 1365 1365 1364 1228 1274

B6 cor 0462 0563 0480 0441 0473 0460

p 0000 0000 0000 0000 0000 0000

n 1368 1365 1401 1380 1372 1238 1287

B7 cor 0642 0590 0480 0832 0579 0467

p 0000 0000 0000 0000 0000 0000

n 1374 1365 1380 1398 1380 1236 1283

B8 cor 0631 0564 0441 0832 0594 0489

2 poglavje ndash Univariatna in bivariatna statistika 117

p 0000 0000 0000 0000 0000 0000

n 1373 1364 1372 1380 1392 1236 1285

B9 cor 0618 0565 0473 0579 0594 0789

p 0000 0000 0000 0000 0000 0000

n 1231 1228 1238 1236 1236 1247 1227

B10 cor 0519 0482 0460 0467 0489 0789

p 0000 0000 0000 0000 0000 0000

n 1276 1274 1287 1283 1285 1227 1295

gt se Kendallove

gt cor(data[izbor]use=pairwisecompleteobsmethod=kendall)

B4 B5 B6 B7 B8

B4 10000000 04909485 03667314 05291117 05160148

B5 04909485 10000000 04606602 04794322 04546308

B6 03667314 04606602 10000000 03844481 03523638

B7 05291117 04794322 03844481 10000000 07607492

B8 05160148 04546308 03523638 07607492 10000000

B9 05049790 04485398 03736321 04639373 04807420

B10 04279313 03891029 03600516 03761712 03943594

B9 B10

B4 05049790 04279313

B5 04485398 03891029

B6 03736321 03600516

B7 04639373 03761712

B8 04807420 03943594

B9 10000000 06927734

B10 06927734 10000000

gt tmplt-corTestDf(data[izbor]method=kendall)

gt printCorTestDf(tmp)

B4 B5 B6 B7 B8 B9 B10

B4 cor 0491 0367 0529 0516 0505 0428

p 0000 0000 0000 0000 0000 0000

n 1387 1358 1368 1374 1373 1231 1276

B5 cor 0491 0461 0479 0455 0449 0389

p 0000 0000 0000 0000 0000 0000

n 1358 1376 1365 1365 1364 1228 1274

B6 cor 0367 0461 0384 0352 0374 0360

p 0000 0000 0000 0000 0000 0000

n 1368 1365 1401 1380 1372 1238 1287

B7 cor 0529 0479 0384 0761 0464 0376

p 0000 0000 0000 0000 0000 0000

n 1374 1365 1380 1398 1380 1236 1283

B8 cor 0516 0455 0352 0761 0481 0394

118 27 Viri za poglabljanje znanja

p 0000 0000 0000 0000 0000 0000

n 1373 1364 1372 1380 1392 1236 1285

B9 cor 0505 0449 0374 0464 0481 0693

p 0000 0000 0000 0000 0000 0000

n 1231 1228 1238 1236 1236 1247 1227

B10 cor 0428 0389 0360 0376 0394 0693

p 0000 0000 0000 0000 0000 0000

n 1276 1274 1287 1283 1285 1227 1295

Pri zanemarljivi stopnji tveganja lahko pri obeh koeficientih ugotovimo da so vsespremenljivke na populaciji povezane kar bi glede na to da merijo sorodne stvari inglede na velikost vzorca tudi pricakovali Tudi tu se pokaze da je linearna poveza-nost izmerjena s Pearsonovim koeficientom vecja od tiste izmerjene s Kendallovim

27 Viri za poglabljanje znanja

Za poglabljanje snovi iz tega poglavja so uporabni tudi spletni viri navedeni vpodpodpoglavju 191 (Spletni viri) a jih ju tu ponovno ne navajam Izpostavljamsamo enega s pomocjo katerega je mogoce zelo enostavno in hitro najti ustrezneukaze za izvedbo zelenih analiz

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

Za poglabljanje znanja iz statistike so primerni prakticno vsi splosni statisticni uc-beniki na primer

bull Minium Edward W Robert C Clarke in Theodore Coladarci 1999 Elementsof statistical reasoning New York Wiley

bull Levin Jack James Alan Fox in David R Forde 2013 Elementary Statisticsin Social Research (12th Edition) Pearson

bull Wonnacott Thomas H in Ronald J Wonnacott 1990 Introductory statisticsNew York Wiley

bull Kosmelj Blazenka in Joze Rovan 2007 Statisticno sklepanje Ljubljana Eko-nomska fakultetaSlovenski ucbenik ki ga uporabljajo na Ekonomski fakulteti Univerze v Lju-bljani

Osnovne statisticne analize v R-ju pa pokrivajo sledeci ucbeniki ki so bili sicervecinoma navedeni tudi pri virih v prvem poglavju

2 poglavje ndash Univariatna in bivariatna statistika 119

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer13

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer14

Se posebej primeren za tiste ki ze poznajo SPSS ali SAS sicer pa zelo zgoscenaobravnava

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC15

28 Vprasanja za ponavljanje

1 Kaj moramo narediti da nam funkcije kot so na primer mean in min vrnejoveljavno vrednost tudi ce imamo v podatkih manjkajoce vrednosti (NA) Ena-kovredno vprasanje je kaj moramo storiti da izracunajo statistiko samo napodlagi veljavnih (nemanjkajocih) vrednosti

2 Kateri paketek vsebuje veliko funkcij ki so zelo uporabne v druzboslovju in seposebej v psihologiji

3 S katerim argumentov vecini statisticnih funkcij povemo iz katerega podat-kovja (oziroma podatkovnega okvirja) naj crpa podatke (isce spremenljivke)

4 Kaksna je razlika med parametricnimi in neparametricnimi testi

5 Katero funkcijo ali funkcije moramo izbrati ce zelimo izvesti t-test za en vzo-rec za dva odvisna vzorca in za dva neodvisna vzorca Na podlagi cesa seodlocimo katerega izmed teh testov je treba izvesti

6 Kateri test za preverjanje domneve o srednji vrednosti ne zahteva vsaj inter-valne merske lestvice

7 Ali funkcija ttest s privzetimi argumenti pri izvedbi t-testa za neodvisnavzorca predpostavlja enako ali razlicno velike variance po skupinah

8 Kako funkcija table s privzetimi vrednostmi argumentov v kontingencnihtabelah izpisuje manjkajoce vrednosti (NA)

9 Kdaj lahko uporabimo Fisherjev natancni test za preverjanje domneve o po-vezanosti dveh nominalnih spremenljivk

10 Katere korelacijske koeficiente lahko izracuna funkcija cor

13Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani14Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani15Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf

120 28 Vprasanja za ponavljanje

11 Kako funkcija cor s privzetimi argumenti obravnava manjkajoce vrednosti ceracunamo korelacijsko matriko med vec spremenljivkami Kaksne so ostalemoznosti

12 Ali lahko na podlagi izpisa funkcije cor povemo ali lahko nicelno domnevo onepovezanosti dveh spremenljivk zavrnemo

121

3 poglavje

Analiza variance in linearna regre-sija

V zadnjem poglavju sta predstavljeni analiza variance in linearna regresija Pri obehzacnemo z najenostavnejsim (bivariatnim) primerom nato pa dodajamo dodatne ele-mente Poglavje kot obicajno zacnemo s predstavitvijo podatkov Sledi podpoglavjeo analizi variance kjer zacnemo z enofaktorsko analizo variance ki jo potem nad-gradimo v vecfaktorsko analizo variance kjer so mozne tudi interakcije med ucinkineodvisnih spremenljivk Prav tako obravnavamo tudi enofaktorsko analizo varianceza odvisne vzorce in Kruskal-Wallisov test vsote rangov neparametricno razlicicoklasicne enofaktorske analize variance za neodvisne vzorce

Analizi variance sledi podpoglavje o linearni regresiji kjer ponovno zacnemo z eno-stavno bivariatno linearno regresijo V nadaljevanju linearno regresijo najprej nad-gradimo z nelinearno regresijo vecina poglavja pa je namenjena multipli linearniregresiji torej linearni regresiji z vec neodvisnimi spremenljivkami Pri tem prika-zemo tudi kako lahko kot neodvisne spremenljivke vkljucimo nominalne in ordinalnespremenljivke ter kako v model vkljucimo interakcije med vplivi neodvisnih spremen-ljivk Proti koncu poglavja posebno pozornost namenimo preverjanju predpostavkZa bolj zagnane studente pa sta dodana podpodpoglavje o moznosti nadgrajevanjaoziroma izpopolnjevanja predstavljenega empiricnega primera (338) in podpodpo-glavje s prikazom izracuna ocen parametrov linearne regresije brez uporabe vgrajenihfunkcij za linearno regresijo (339) predvsem z uporabo linearne algebre (matric-nega racunanja)

31 Uporabljeni podatki

Za prikaz predstavljenih metod bomo tudi tu uporabili podatke iz Evropske druz-boslovne raziskave (httpwwweuropeansocialsurveyorg) za Slovenijo za leto

122 32 Analiza variance (ANOVA)

2004 Uporabljena datoteka je bila pridobljena iz Arhiva druzboslovnih podatkov(Tos in drugi 2004) Opis raziskave in povezave do datoteke so dostopne na tem sple-tnem naslovu httpwwwadpfdvuni-ljsiopisisjm042 Iz Arhiva druz-boslovnih podatkov sem prenesel podatke v SPSS-ovem formatu (rdquosavrdquo)

Uporabili bomo predvsem sledece spremenljivke

G91 bruto placa v 1000 sit

F5 kraj bivanja (5 kategorij)

O1F2 spol

Preberemo podatke iz SPSS-ove datotke

gt nalozimo podatke

gt library(foreign)

gt datalt-readspss(file=sjm042_f1sav

todataframe = TRUE usevaluelabels = TRUE

maxvaluelabels=5 usemissings=TRUE)

gt nalozimo tudi dodatne funkcije

gt source(UcbenikR-funkcijeR)

32 Analiza variance (ANOVA)

Analiza variance (ANOVA) je splosno ime za metode ki primerjajo pojasnjeno va-riabilnost (obicajno merjeno z vsoto kvadratov odklonov) z nepojasnjeno Ce jepojasnjena variabilnost dovolj velika v primerjavi z nepojasnjeno potem lahko za-kljucimo da ima tisto kar jo pojasnjuje nek vpliv na obravnavano odvisno spre-menljivko16

Omejili se bomo na probleme pri katerih preverjamo ali se aritmeticne sredinerazlikujejo med vzorci oziroma skupinami Pri takih primerih je pojasnjena varia-bilnost variabilnost med aritmeticnimi sredinami teh vzorcevskupin (variabilnostmed vzorci) nepojasnjena pa variabilnost znotraj vzorcev (variabilnost posameznihvrednosti okoli aritmeticnih sredin posameznih vzorcevskupin) Pojasnjena varia-bilnost je obicajno pojasnjena z eno ali vec nominalnimi17 spremenljivkami

16V splosnem je sicer odvisnih spremenljivk lahko tudi vec a tega ne bomo obravnavali17Oziroma spremenljivkami ki jih obravnavamo kot nominalne

3 poglavje ndash Analiza variance in linearna regresija 123

321 Enofaktorska analiza variance za neodvisne vzorce

Ta verzija analize variance je najbolj znana in najpogosteje uporabljena tako davecina ljudi ob izrazu rdquoanaliza variancerdquo pomisli ravno nanjo

Klasicna enofaktorska analiza variance za neodvisne vzorce ima sledece predpo-stavke

Normalnost (angl normality) Odvisna spremenljivka se znotraj vsake popula-cije porazdeljuje normalno

Enakost varianc (angl homogeneity of variance) Variabilnost je enaka v vseh(pod)populacijah (skupinah)

Ce je zadosceno tema dvema predpostavkama lahko uporabimo F-test (analizo va-riance) za testiranje domnev o razliki aritmeticnih sredin

Ce imamo velik vzorec (na primer kot 30 enot v vsakem vzorcu) lahko uporabimoF-test tudi ce predpostavki o normalnosti ni popolnoma zadosceno Pomembno jeda je porazdelitev v vseh populacijah priblizno enaka (na primer povsod podobnoasimetricna v desno) Pri majhnih vzorcih pa v primeru razlicnih varianc ne moremouporabiti obicajnega F-testa

V primeru da je krsena predpostavka o enakosti varianc pa lahko uporabimo Wel-chevo analizo variance (Welch 1951)

Predpostavko o normalnosti obicajno preverjamo graficno (histogram po skupinah)predpostavko o enakosti varianc pa preko opisnih statistik in formalnih testov Nekajmoznih testov

bartletttest Primeren ce je predpostavka o normalnosti izpolnjena

flignertest Neobcutljiv na odstopanja od normalnosti Temelji na rangih

leveneTest Tudi ta je neobcutljiv na odstopanja od normalnosti Z argumentomcenter=mean (kar ni privzeta moznost) je to test ki ga uporablja SPSS Navoljo je v paketku car

Enofaktorsko analizo variance in njeno neparametricno razlicico lahko izvedemo ssledecimi funkcijami

onewaytest Izvede klasicno in Welchevo enofaktorsko analizo variance

aov Bolj splosna funkcija za analizo variance (tudi vecfaktorsko) ki pa ne omogocamoznosti za razlicne variance (vsaj ne na enostaven nacin)

kruskaltest Kruskal-Wallisov test vsote rangov ndash neparametricna razlicica ana-lize variance oziroma razlicica Mann-Whitneyjevega testa za vec kot 2 vzorca

124 32 Analiza variance (ANOVA)

Opozorilo

Funkcija aov tako kot veliko drugih statisticnih funkcij kot glavni argumentsprejme formulo ki pove vpliv katerih neodvisnih spremenljivk na katero odvi-sno spremenljivko preucujemo Ce zelimo da se neodvisne spremenljivke obrav-navajo kot nominalne spremenljivke (in ne kot intervalne) morajo biti obveznotipa faktor (ali kvecjemu character ki ga funkcija samodejno spremeni vfaktor) Sicer je tisto kar dobimo bolj podobno linearni regresiji

Za primerjave katera povprecja se statisticno znacilno razlikujejo izvedemo takoimenovane rdquopost hocrdquo teste Za ta namen lahko v splosnem uporabimo funkcijopairwisettest Parne primerjave namrec niso nic drugega kot t-testi kjer do-bljene p-vrednosti popravimo tako da je skupno tveganje enako izbrani stopnji αPri funkciji pairwisettest lahko izberemo tudi metodo popravka p-vrednostiPriporocena je Holmova metoda (Holm 1979) ki je tudi splosno veljavna18 in jeboljsa kot Bofferonijeva

Ko je izpolnjena predpostavka o enakih variancah in smo za analizo variance upora-bili funkcijo aov lahko za te primerjave uporabimo tudi Tukeyjev test preko funkcijeTukeyHSD

Najprej preglejmo podatke ki jih bomo uporabljali v nadaljevanju (ne le v tempodpodpoglavju)

gt popravimo faktorje

gt table(data$O1F2)

moski zenski

648 762

gt table(data$F5)

veliko mesto predmestje manjse mesto vas

132 204 326 626

kmetija

148

Spodaj je nekaj osnovnih izracunov Porazdelitve osnovnih spremenljivk so prika-zane na sliki 31

gt library(psych)

gt describe(data$G91)

vars n mean sd median trimmed mad min max

1 1 325 22571 12095 200 20885 10378 53 760

18Tudi ce na primer ne moremo predpostavljati neodvisnosti med testi

3 poglavje ndash Analiza variance in linearna regresija 125

Slika 31 Porazdelitve uporabljenih spremenljivk

moski zenski

Spol

010

020

030

040

050

060

070

0

veliko mesto

predmestje

manjse mesto

vas

kmetija

Kraj bivanja

0 100 200 300 400 500 600

Bruto plača

Bruto plača v 1000 sit

Fre

kven

ca

0 200 400 600 800

050

100

150

range skew kurtosis se

1 707 146 252 671

gt frekTab(data$F5dec=2)[c(13)]

Frekvenca

veliko mesto 132 919

predmestje 204 1421

manjse mesto 326 2270

vas 626 4359

kmetija 148 1031

gt frekTab(data$O1F2dec=2)[c(13)]

Frekvenca

moski 648 4596

zenski 762 5404

gt if(exists(mardef)) mardeflt-par(mar)

gt par(mfrow=c(13))

gt plot(data$O1F2 main=Spol)

gt par(mar=c(3731))

gt plot(data$F5horiz=TRUElas=1main=Kraj bivanja)

gt par(mar=mardef)

gt hlt-hist(data$G91main=Bruto placa

xlab=Bruto placa v 1000 sit ylab=Frekvenca)

gt curve(dnorm(xmean=mean(data$G91narm=TRUE)

sd=sd(data$G91narm=TRUE))diff(h$breaks)[1]

sum(isna(data$G91)) add=TRUE)

gt par(mfrow=c(11))

Sedaj izracunajmo se opisne statistike za bruto placo po posameznih tipih krajevbivanja in narisemo ustrezne grafikone

126 32 Analiza variance (ANOVA)

gt describeBy(data$G91group=data$F5mat=TRUE)

item group1 vars n mean sd median

11 1 veliko mesto 1 30 2561000 13322715 225

12 2 predmestje 1 45 2209111 9705313 200

13 3 manjse mesto 1 77 2544675 12983812 220

14 4 vas 1 139 2138273 12217005 188

15 5 kmetija 1 34 1887059 9712271 170

trimmed mad min max range skew kurtosis

11 2532500 1690164 75 450 375 02320304 -156727318

12 2118919 1008168 95 490 395 08192702 -003695316

13 2374286 1037820 100 750 650 13747886 180644481

14 1961593 919212 53 760 707 17963112 418899970

15 1728929 593040 80 528 448 17785525 318494875

se

11 2432384

12 1446783

13 1479643

14 1036233

15 1665641

gt par(mfrow=c(23))

gt for(i in levels(data$F5))

hist(data$G91[data$F5==i] xlab=Bruto placa main=i

ylab=Frekvenca)

gt par(mfrow=c(11))

Namesto histograma pa lahko s spodnjo kodo zelo enostavno narisemo tudi skatlastegrafikone po skupinah

gt plot(G91~F5data=data)

V posameznih kategorijah imamo razmeroma malo enot vendar pa se vedno v vsakinad 30 Morda bi bilo smiselno narediti manj kategorij a glede na opisne statistikese kaksno zelo smiselno rekodiranje ravno ne ponuja19

Iz opisnih statistik vidimo da so standardni odkloni (koreni varianc) po skupinahrazmeroma podobni Tako lahko tudi brez testa sklepamo da s predpostavko oenakosti varianc ne bi prevec zgresili Bolj pa je problematicno ker sta asimetrija in(se bolj) konicavost bistveno visji v zadnjih dveh kategorijah (vas in kmetija) To jerazvidno tudi iz slike 32 Kljub temu bomo za demonstracijo izvedli tudi vse teste

19Ce bi kategorije zdruzevali na podlagi opisnih statistik (predvsem aritmeticnih sredin) bi bilo tonarobe Test ki bi ga naredili na podlagi tako zdruzenih kategorij ne bi bil veljaven

3 poglavje ndash Analiza variance in linearna regresija 127

Slika 32 Porazdelitev bruto place po krajih bivanja

veliko mesto

Bruto plača

Fre

kven

ca

100 200 300 400

01

23

45

6

predmestje

Bruto plača

Fre

kven

ca

100 200 300 400 500

02

46

810

12

manjse mesto

Bruto plača

Fre

kven

ca

100 200 300 400 500 600 700 800

05

1015

2025

3035

vas

Bruto plača

Fre

kven

ca

0 200 400 600 800

010

2030

4050

6070

kmetija

Bruto plača

Fre

kven

ca

100 200 300 400 500

02

46

810

12

gt bartletttest(G91~F5data=data)

Bartlett test of homogeneity of variances

data G91 by F5

Bartletts K-squared = 77277 df = 4 p-value =

01021

gt flignertest(G91~F5data=data)

Fligner-Killeen test of homogeneity of variances

data G91 by F5

Fligner-Killeenmed chi-squared = 11456 df = 4

p-value = 002189

gt neobcutljiv na odstopanja od normalnosti

gt library(car)

gt leveneTest(G91~F5data=data)

Levenes Test for Homogeneity of Variance (center = median)

Df F value Pr(gtF)

group 4 1789 01307

320

128 32 Analiza variance (ANOVA)

gt neobcutljiv na odstopanja od normalnosti

gt leveneTest(G91~F5data=data center=mean)

Levenes Test for Homogeneity of Variance (center = mean)

Df F value Pr(gtF)

group 4 22227 006639

320

---

Signif codes

0 0001 001 005 01 1

gt razlicica kot jo uporablja SPSS

gt malce manj robustna

Barlettov in Levenov test pokazeta da bi lahko domnevo o enakosti varianc zavrnilisele pri vec kot 10- tveganju Nasprotno pa Fligner-Killeenjev test domnevo zavrneze pri 22- tveganju Glede na to da same razlike med standardnimi odkloni nisotako velike lahko predpostavko o enakosti varianc obdrzimo Kljub temu pa bomo(za demonstracijo) izvedli obe razlicici analize variance (klasicno in Welchevo) Polegtega bomo izvedli tudi neparametricni Kruskal-Wallisov test

gt predpostavljamo enake variance

gt onewaytest(G91~F5data=datavarequal=TRUE)

One-way analysis of means

data G91 and F5

F = 27695 num df = 4 denom df = 320 p-value =

002742

gt predpostavljamo razlicne variance

gt varequal=FALSE bi lahko tudi izpustili ker je to

gt privzeta moznost

gt onewaytest(G91~F5data=datavarequal=FALSE)

One-way analysis of means (not assuming equal

variances)

data G91 and F5

F = 27964 num df = 400 denom df = 10316 p-value

= 002988

gt se preko funkcije aov

gt fitlt-aov(G91~F5data=data)

gt summary(fit)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 158604 39651 277 00274

Residuals 320 4581392 14317

---

3 poglavje ndash Analiza variance in linearna regresija 129

Signif codes

0 0001 001 005 01 1

1117 observations deleted due to missingness

gt rezultat je identicen kot pri prejsnji funkciji

gt ko smo predpostavljali enake variance

gt

gt kruskaltest(G91~F5data=data)

Kruskal-Wallis rank sum test

data G91 by F5

Kruskal-Wallis chi-squared = 12557 df = 4 p-value

= 001365

Obe razlicici ANOVE nam vrneta zelo podoben rezultat Glede na oba lahko stveganjem manjsim kot 3 trdimo da se povprecna bruto placa razlikuje gledena kraj bivanja Glede na Kruskal-Wallisov test pa lahko predpostavko o enakostisrednjih vrednosti zavrnemo ze pri 14- tveganju

Opozorilo

Domneva ki jo preverjamo s Kurskal-Walisovim testom ni vec enakaa

a Kruskal-Wallisov test preverja podobno domnevo kot Mann-Whitneyjev test ki je podrob-neje razlozen v podpodpoglavju 233

Poglejmo se katera povprecja so razlicna V primeru enakih varianc je za ta namennajprimernejsa funkcija TukeyHSD (ki jo uporabimo na rezultatu funkcije aov) re-zultat katere lahko tudi lepo narisemo V primeru neenakih varianc pa uporabimofunkcijo pairwisettest

gt TukeyHSD(fit) fit mora biti rezultat funkcije aov

Tukey multiple comparisons of means

95 family-wise confidence level

Fit aov(formula = G91 ~ F5 data = data)

$F5

diff lwr upr

predmestje-veliko mesto -35188889 -11255949 42181712

manjse mesto-veliko mesto -1632468 -7228018 69015248

vas-veliko mesto -42272662 -10835533 23810003

kmetija-veliko mesto -67394118 -14961878 14830549

manjse mesto-predmestje 33556421 -2803788 95150721

vas-predmestje -7083773 -6338365 49216108

130 32 Analiza variance (ANOVA)

kmetija-predmestje -32205229 -10679513 42384676

vas-manjse mesto -40640194 -8727244 5992052

kmetija-manjse mesto -65761650 -13335265 1829353

kmetija-vas -25121456 -8792562 37682705

p adj

predmestje-veliko mesto 07232946

manjse mesto-veliko mesto 09999963

vas-veliko mesto 04019543

kmetija-veliko mesto 01647508

manjse mesto-predmestje 05667485

vas-predmestje 09969399

kmetija-predmestje 07603006

vas-manjse mesto 01204253

kmetija-manjse mesto 00608866

kmetija-vas 08078518

gt par(mar=mardef+c(0800))

gt plot(TukeyHSD(fit)las=1) se graficna predstavitev rezultatov

gt par(mar=mardef)

gt TukeyHSD je primeren le ob predpostavki enakih varianc

gt

gt pairwisettest(x=data$G91g=data$F5padjustmethod= holm

poolsd=TRUE)

Pairwise comparisons using t tests with pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 100 - - -

manjse mesto 100 082 - -

vas 056 100 016 -

kmetija 020 100 008 100

P value adjustment method holm

gt pairwisettest(x=data$G91g=data$F5padjustmethod= bonf

poolsd=TRUE)

Pairwise comparisons using t tests with pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 100 - - -

manjse mesto 100 100 - -

vas 080 100 017 -

3 poglavje ndash Analiza variance in linearna regresija 131

kmetija 025 100 008 100

P value adjustment method bonferroni

gt ce ne zelimo uporabiti predpostavke o enakosti varianc

gt nastavimo poolsd=FALSE

gt

gt pairwisettest(x=data$G91g=data$F5padjustmethod= holm

poolsd=FALSE)

Pairwise comparisons using t tests with non-pooled SD

data data$G91 and data$F5

veliko mesto predmestje manjse mesto vas

predmestje 0821 - - -

manjse mesto 1000 0754 - -

vas 0754 1000 0233 -

kmetija 0233 0754 0041 0821

P value adjustment method holm

Ce predpostavljamo enake variance lahko najdemo statisticno znacilne razlike selepri 10- tveganju (oziroma 6ndash8-) in se to le med manjsim mestom in kmetijoPodobno je tudi ce privzamemo da so variance razlicne le da lahko v tem primeruto trditev postavimo ze pri 41 tveganju

Za konec povprecja se graficno predstavimo na sliki 33

gt library(gplots)

gt plotmeans(G91~F5data=data)

322 Vecfaktorska analiza variance za neodvisne vzorce

Vecfaktorska analiza variance je analiza variance kjer so skupine dolocene z vec kotenim faktorjem Z njo torej preverjamo domnevo o vplivu dveh ali vec nominalnih(oziroma vsaj tako jih obravnavamo) neodvisnih spremenljivk na odvisno spremen-ljivko

Predpostavke vecfaktorske analize variance so podobne predpostavkam enofaktor-ske ndash porazdelitev v vseh skupinahcelicah (dolocenih s kombinacijo vseh faktorjevoziroma neodvisnih spremenljivk) je normalna z enako varianco

Analiza je bistveno enostavnejsa ce so neodvisne spremenljivke med seboj neodvi-snenepovezane kar pa se v druzboslovju (oziroma kjerkoli kjer podatke dobimo z

132 32 Analiza variance (ANOVA)

Slika 33 Porazdelitve uporabljenih spremenljivk

150

200

250

300

F5

G91

veliko mesto manjse mesto vas kmetija

n=30 n=45 n=77 n=139 n=34

opazovanjeanketiranjem in ne eksperimentom) redko zgodi V primeru da neod-visne spremenljivke med seboj niso neodvisne je pomemben vrstni red faktorjevModel namrec najprej poskusa pojasniti cim vec variabilnosti odvisne spremenljivkes 1 faktorjem nato z 2 3

Rezultati se torej spremenijo ce zamenjamo vrstni red faktorjev Od vrstnega redaje tudi odvisno kaj nek test sploh preverja Pri prvem faktorju test preverja ali le-ta pojasni vsaj nekaj variabilnosti odvisne spremenljivke (oziroma ali vpliva nanjo)Pri vseh ostalih pa preverja ali faktor pojasni kak del variabilnosti odvisne spre-menljivke ki se ni pojasnjen s faktorji ki so v modelu pred obravnavanim faktorjemVse to velja ce uporabimo rdquoklasicnordquo vsoto kvadratov oziroma vsoto kvadratov tipaI Obstajajo tudi druge vrste vsote kvadratov (tip II III IV za vec glejte Fox (2008159) Muenchen (2011 633ndash635) in IBM (2011)) vendar jih tu ne bomo obravnavaliVsote kvadratov tipa II in III lahko izracunate s pomocjo funkcije Anova iz paketkacar Pri tipu III vrstni red faktorjev ni pomemben

Preverjamo lahko tudi ali obstaja interakcija med vplivi posameznih faktorjev In-terakcija med vplivi faktorjev pomeni da se vpliv nekega faktorja razlikuje glede navrednosti nekega drugega faktorja

Na nasem primeru bomo preverjali ali lahko trdimo da kraj bivanja in spol vplivatana bruto placo Poleg tega bomo preverili tudi ali lahko trdimo da spol vpliva nabruto placo ce predhodno izlocimo vpliv kraja bivanja

3 poglavje ndash Analiza variance in linearna regresija 133

Pred izracunom bomo pripravili podatke in sicer tako da bomo v nov podatkovniokvir shranili samo za to analizo potrebne spremenljivke Tu bomo potem odstra-nili vse enote ki imajo manjkajoco vrednost pri katerikoli spremenljivki To bomonaredili tako da bomo v nadaljevanju pri vseh analizah upostevali iste enote (karnam bo omogocalo da bomo modele primerjali med seboj)

nnajprej torej pripravimo nov podatkovni okvir in odstranimo enote z manjkajocimivrednostmi Nato podobno kot pri enofaktorski ANOVI preverimo predpostavke(izracunamo opisne statistike po skupinah)

gt dataAovlt-data[c(G91O1F2F5)]

gt dataAovlt-naomit(dataAov)

gt odstranili smo enote z manjkajocimi vrednostmi

gt

gt describeBy(dataAov$G91group=dataAov[c(O1F2F5)]

mat=TRUE)

item group1 group2 vars n mean sd

11 1 moski veliko mesto 1 14 2520000 12794650

12 2 zenski veliko mesto 1 15 2523333 14355172

13 3 moski predmestje 1 24 2311250 9543917

14 4 zenski predmestje 1 21 2092381 9989640

15 5 moski manjse mesto 1 39 2886923 14734656

16 6 zenski manjse mesto 1 35 2101143 9263679

17 7 moski vas 1 69 2270870 12535992

18 8 zenski vas 1 67 2028060 12044064

19 9 moski kmetija 1 27 1888889 9864713

110 10 zenski kmetija 1 7 1880000 9854441

median trimmed mad min max range skew

11 226 2502500 1423296 75 450 375 03270494

12 200 2503846 1482600 80 450 370 02540330

13 200 2233500 1074885 120 490 370 07883115

14 184 1970000 948864 95 450 355 08518656

15 250 2741212 889560 110 750 640 11844391

16 170 1992759 770952 100 500 400 11385801

17 200 2089825 741300 61 760 699 19229792

18 180 1859091 1037820 53 700 647 15723492

19 170 1723913 593040 80 528 448 19727940

110 132 1880000 429954 103 350 247 06346745

kurtosis se

11 -142834380 3419514

12 -178216305 3706489

13 -002979449 1948144

14 -023542599 2179918

134 32 Analiza variance (ANOVA)

Slika 34 Porazdelitev bruto place po krajih bivanja in spolu

moski veliko mesto

Bruto plača

Fre

quen

cy

0 100 200 300 400 500

01

23

45

moski predmestje

Bruto plača

Fre

quen

cy

100 200 300 400 500

01

23

45

67

moski manjse mesto

Bruto plača

Fre

quen

cy

100 300 500 7000

510

15

moski vas

Bruto plača

Fre

quen

cy

0 200 400 600 800

05

1015

2025

3035

moski kmetija

Bruto plača

Fre

quen

cy

0 100 300 500

05

1015

zenski veliko mesto

Bruto plača

Fre

quen

cy

0 100 200 300 400 500

01

23

45

6

zenski predmestje

Bruto plača

Fre

quen

cy

100 200 300 400

01

23

45

6

zenski manjse mesto

Bruto plača

Fre

quen

cy

100 200 300 400 500

02

46

810

12

zenski vas

Bruto plača

Fre

quen

cy

0 200 400 600

05

1015

2025

30

zenski kmetija

Bruto plača

Fre

quen

cy

100 150 200 250 300 350

01

23

4

15 078377390 2359433

16 089652400 1565848

17 453230346 1509156

18 314171911 1471417

19 393661300 1898465

110 -156138214 3724628

gt par(mfrow=c(25))

gt for(iGndr in levels(dataAov$O1F2))

for(iF5 in levels(dataAov$F5))

hist(dataAov$G91[(dataAov$F5==iF5)ampdataAov$O1F2==iGndr]

xlab=Bruto placa main=paste(iGndriF5sep= ))

gt par(mfrow=c(11))

Sedaj je v nekaterih skupinah ze zelo malo enot Standardni odkloni med skupinaminiso pretirano razlicni se pa precej razlikujejo koeficienti asimetrije in sploscenostiVsekakor rezultati kazejo na to da porazdelitev v vseh skupinah ni (niti pribli-zno) normalna in tudi ne podobna med skupinami Predpostavke metode torej nisoizpolnjene zato moramo rezultate metode jemati z veliko rezervo

3 poglavje ndash Analiza variance in linearna regresija 135

Sedaj najprej ponovimo enofaktorsko ANOVO s funkcijo aov za vsak faktor po-sebej Poleg tega preverimo tudi ali sta neodvisni spremenljivki med seboj pove-zani

gt fitG91_F5lt-aov(G91~F5data=dataAov)

gt summary(fitG91_F5)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2298 00589

Residuals 313 4503794 14389

---

Signif codes

0 0001 001 005 01 1

gt fitG91_O1F2lt-aov(G91~O1F2data=dataAov)

gt summary(fitG91_O1F2)

Df Sum Sq Mean Sq F value Pr(gtF)

O1F2 1 60436 60436 4174 00419

Residuals 316 4575644 14480

---

Signif codes

0 0001 001 005 01 1

V primeru da bi bile predpostavke klasicne analize variance (normalnost enakevariance) izpolnjene (prej smo ugotovili da so krsene) bi lahko pri 59- tveganjutrdili da kraj bivanja vpliva na bruto placo in pri 42- tveganju da spol vplivana bruto placo

Kot smo omenili je pri vecfaktorski analizi variance pomembno ali sta neodvisnispremenljivki povezani Preverimo torej to predpostavko in izracunajmo moc pove-zanosti

gt tbllt-table(dataAov$O1F2dataAov$F5)

gt proptable(tblmargin=2)

veliko mesto predmestje manjse mesto vas

moski 04827586 05333333 05270270 05073529

zenski 05172414 04666667 04729730 04926471

kmetija

moski 07941176

zenski 02058824

gt lazje opazimo ali sta spremenljivki povazani

gt chisqtest(tbl)

Pearsons Chi-squared test

136 32 Analiza variance (ANOVA)

data tbl

X-squared = 98558 df = 4 p-value = 004293

gt installpackages(vcd)

gt library(vcd)

gt assocstats(tbl)

X^2 df P(gt X^2)

Likelihood Ratio 105712 4 0031830

Pearson 98558 4 0042928

Phi-Coefficient NA

Contingency Coeff 0173

Cramers V 0176

gt (pricakovana) zanimivost - na vseh podatkih povezanosti ni

gt chisqtest(table(data$O1F2data$F5))

Pearsons Chi-squared test

data table(data$O1F2 data$F5)

X-squared = 63402 df = 4 p-value = 01751

V nasih podatkih (tistih ki jih bomo uporabili pri analizi variance20) sta spremen-ljivki kraj bivanja in spol sibko povezani To je posledica tega da upostevamo samoenote z veljavnimi vrednostmi za bruto placo Na vseh enotah namrec povezanostini oziroma povezanost ni statisticno znacilna

Rekli smo da bomo preverjali ali lahko trdimo da kraj bivanja in spol vplivata nabruto placo Test celotnega modela je malce zahtevnejsi Standardne funkcije ga neizvedejo Lahko pa ga izvedemo zelo enostavno tako da model primerjamo z nicelnimmodelom Nicelni model je model kjer nimamo pojasnjevalnih spremenljivk V temmodelu so napovedi enake povprecju

Poleg tega bomo preverili tudi ali lahko trdimo da spol vpliva na bruto placo cepredhodno kontroliramo za vpliv kraja bivanja Tako bomo v model kot 1 spre-menljivko dali kraj bivanja kot 2 pa spol

gt izvedemo dvofaktorsko ANOVO

gt fitG91_F5O1F2lt-aov(G91~F5+O1F2data=dataAov)

gt summary(fitG91_F5O1F2)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2334 00556

O1F2 1 83242 83242 5875 00159

Residuals 312 4420552 14168

20Izlocili smo tiste enote ki vsaj pri eni spremenljivki niso imele veljavne vrednosti v veliki vecinipri bruto placi

3 poglavje ndash Analiza variance in linearna regresija 137

---

Signif codes

0 0001 001 005 01 1

gt rezultat pri spolu nam pove koliko ta model pojasni

gt vec kot model s samo krajem bivanja

gt anova(fitG91_F5fitG91_F5O1F2)

Analysis of Variance Table

Model 1 G91 ~ F5

Model 2 G91 ~ F5 + O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 313 4503794

2 312 4420552 1 83242 58752 001592

---

Signif codes

0 0001 001 005 01 1

gt ocenimo nicelni model

gt fitG91_1lt-update(fitG91_F5O1F2~1)

gt funkcija update popravi model glede na argumente

gt ali

gt fitG91_1lt-aov(G91~1data=dataAov)

gt

gt primerjamo model z nicelnim

gt da ocenimo statisticno znacilnost celotnega modela

gt anova(fitG91_1fitG91_F5O1F2)

Analysis of Variance Table

Model 1 G91 ~ 1

Model 2 G91 ~ F5 + O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 317 4636080

2 312 4420552 5 215527 30424 001069

---

Signif codes

0 0001 001 005 01 1

Iz rezultatov lahko razberemo

bull Pri 56- tveganju lahko trdimo da kraj bivanja vpliva na bruto placo Sto-pnja tveganja je manjsa kot pri enofaktorski ANOVI (kjer je bila 59-) kerje manjsa nepojasnjena varianca (del variance je sedaj pojasnjen s spolom)

bull Pri 16- tveganju lahko trdimo da spol vpliva na bruto placo ce izlocimovpliv kraja bivanja Ta stopnja tveganja je bistveno manjsa kot prej Pravza-prav je tudi pojasnjena vsota kvadratov (pri spolu) tu vecja To pomeni da

138 32 Analiza variance (ANOVA)

so razlike v bruto placi med spoloma vecje ce jih gledamo loceno po krajihbivanja kot ce jih gledamo skupaj

bull S priblizno 1- tveganjem lahko trdimo da spol ali kraj bivanja (vsaj enaizmed teh dveh spremenljivk) vplivata na bruto placo

Preverimo se ali obstaja tudi interakcija med vplivom spola in kraja bivanja Tardquoucinekrdquo moramo v model vedno vkljuciti oziroma navesti na koncu

gt izvedemo dvofaktorsko ANOVO

gt fitG91_F5O1F2Ilt-aov(G91~F5O1F2data=dataAov)

gt summary(fitG91_F5O1F2I)

Df Sum Sq Mean Sq F value Pr(gtF)

F5 4 132286 33071 2334 00557

O1F2 1 83242 83242 5874 00159

F5O1F2 4 56064 14016 0989 04136

Residuals 308 4364488 14170

---

Signif codes

0 0001 001 005 01 1

gt primerjamo model z nicelnim

gt da ocenimo statisticno znacilnost celotnega modela

gt anova(fitG91_1fitG91_F5O1F2I)

Analysis of Variance Table

Model 1 G91 ~ 1

Model 2 G91 ~ F5 O1F2

ResDf RSS Df Sum of Sq F Pr(gtF)

1 317 4636080

2 308 4364488 9 271591 21296 002692

---

Signif codes

0 0001 001 005 01 1

Interakcija med ucinkoma ni statisticno znacilna Ne moremo torej trditi da spoldrugace vpliva na bruto placo v razlicnih krajih bivanja Posledicno se tudi skupnaznacilnost modela zaradi vkljucitve interakcije zniza

323 Enofaktorska analiza variance za odvisne vzorce

Pogledali si bomo le najenostavnejsi primer analize variance za odvisne vzorce Ana-liza variance za odvisne vzorce je sorodna t-testu za odvisne vzorce le da je vzor-cevspremenljivk katerih povprecje preverjamo vec

3 poglavje ndash Analiza variance in linearna regresija 139

Analizo variance za odvisne vzorce lahko prav tako kot prejsnje tipe naredimopreko funkcije aov z ustreznimi argumenti vendar pa moramo pred uporabo po-datke prilagoditi Podatke je treba preurediti v podobno obliko kot jo imamo prineodvisnih vzorcih Potrebujemo torej eno odvisno spremenljivko in spremenljivkoki rdquodolocardquovzorce (oziroma originalne spremenljivke) Poleg tega pa moramo za vsakpodatek tudi vedeti kateri enoti pripada Za vsako enoto moramo imeti podatke zavse vzorcespremenljivke

Za to je uporabna tale funkcija21

gt razsiriPodatkelt-function(Xid=rownames(X)

varNames=colnames(X))

funkcija za pretvorbo podatkov v obliko

kot jo razumeta funkciji aov ali lm

n12lt-dim(X)

nlt-n12[1]

mlt-n12[2]

if(isnull(varNames)) varNameslt-1m

if(isnull(id)) idlt-1n

reslt-NULL

for(i in 1m)

reslt-rbind(resdataframe(id=idx=X[i]

var=varNames[i]))

return(res)

Funkcijo aov sicer uporabimo kot obicajno le da navedemo katera spremenljivkanam rdquodolocardquo enote oziroma natancneje povemo napake katerih rdquozapisovrdquo so kore-lirane Pozor Klic funkcije je casovno zahteven

Preverjali bomo domnevo ali Slovenci enako zaupamo Drzavnemu zboru (spremen-ljivka B4) Evropskemu parlamentu (B9) in Zdruzenim narodom (B10) Preglejmonajprej opisne statistike in pripravimo podatke

gt dataB4910lt-naomit(data[c(B4B9B10)])

gt za uporabo funkcije razsiriPodatke pripravimo

gt nov podatkovni okvir ki vsebuje le uporabljene

gt spremenljivke

gt describe(dataB4910)

21Funkcija se nahaja tudi v datoteki rdquoUcbenikR-funkcijeRrdquo

140 32 Analiza variance (ANOVA)

vars n mean sd median trimmed mad min max range

B4 1 1213 413 238 4 410 297 0 10 10

B9 2 1213 453 241 5 456 297 0 10 10

B10 3 1213 457 267 5 460 297 0 10 10

skew kurtosis se

B4 010 -057 007

B9 -008 -070 007

B10 -004 -082 008

gt dataB4910razlt-razsiriPodatke(dataB4910)

gt dataB4910raz[110] novi podatki izgledajo takole

id x var

1 1 2 B4

2 2 8 B4

3 4 4 B4

4 5 8 B4

5 6 3 B4

6 7 3 B4

7 8 7 B4

8 9 3 B4

9 11 2 B4

10 14 5 B4

Zaupanje v Evropski parlament in Zdruzene narode je bistveno visje kot v Drzavnizbor Preverimo ali je razlika statisticno znacilna

gt aovReplt-aov(x~var+Error(id)data=dataB4910raz)

gt summary(aovRep)

Error id

Df Sum Sq Mean Sq F value Pr(gtF)

Residuals 1212 17257 1424

Error Within

Df Sum Sq Mean Sq F value Pr(gtF)

var 2 148 7410 3404 264e-15

Residuals 2424 5277 218

---

Signif codes

0 0001 001 005 01 1

gt modeltables(aovReptype=means)

Tables of means

Grand mean

4409453

3 poglavje ndash Analiza variance in linearna regresija 141

var

var

B4 B9 B10

4125 4528 4575

Pri zanemarljivi stopnji tveganja lahko trdimo da Slovenci ne zaupamo vsem treminstitucijam enako

33 Linearna regresija

Z linearno regresijo ugotavljamo ce in ce kako ena ali vec neodvisnih spremenljivkvpliva(jo) na odvisno spremenljivko To vkljucuje tudi ugotavljanje moci vplivaocenjevanje prileganja modela oziroma pojasnjevalne moci modela preverjane pred-postavk in se kaj

Kot ze samo ime pove se omejimo na linearne vplive spremenljivk kar ce malcepoenostavimo pomeni da se vpliv posamezne spremenljivke ne spreminja v odvi-snosti od vrednosti odvisne spremenljivke Obstaja sicer tudi nelinearna regresija kijo lahko izvedemo na vec nacinov Pogosto tudi preko ustrezne transformacije spre-menljivk nelinearno regresijo prevedemo v linearno regresijo Na kratko se te temedotaknemo v podpodpoglavju 333 sicer pa tema ze presega obseg tega ucbenika

V ucbeniku tudi ne obravnavamo naprednejsih tem kot so na primer posploseni line-arni modeli in hierarhicni vecnivojski ali mesani modeli (glej Faraway 2006 Gelmanin Hill 2006 Snijders in Bosker 2012) Prav tako obravnavamo samo podatke zbranev eni casovni tocki ne pa na primer panelnih podatkov (glejte na primer Wooldridge2002)

Se vedno pa v tem podpoglavju obravnavamo precej siroko podrocje zato se tu sebolj kot v ostalih delih ucbenika omejimo na izvedbo analize (linearne regresije)v R-ju same teorije pa ne obravnavamo Za pridobitev znanja s tega podrocjapriporocam uporabo virov ki so navedeni v podpodpoglavju 34 se posebej Fox(2008)

331 Dodatne spremenljivke

Poleg spremenljivk ki smo jih ze uporabili pri analizi variance (glejte podpoglavje32) bomo od tu naprej uporabljali se spremenljivki F7 rdquoStevilo let solanjardquo in F21rdquoTipicno stevilo delovnih ur (vkljucno z nadurami) na tedenrdquo Graficni prikaz njunihporazdelitev je na sliki 35

Pri tem so upostevane samo enote ki imajo veljavne vrednosti pri vseh spremenljiv-kah ki jih bomo uporabili v regresiji (v kateremkoli modelu) ndash to so G91 O1F2 F5

142 33 Linearna regresija

F7 in F21 Na teh podatkih bomo opravili tudi vse linearne regresije Ta pristop smoizbrali zato da lahko rezultate razlicnih analiz med seboj primerjamo Funkcija lm 22

namrec izvede analizo na enotah ki imajo pri uporabljenih spremenljivkah veljavnevrednosti Posledica tega je da ce izvajamo vec razlicnih analiz z razlicnimi neod-visnimi spremenljivkami na originalnih podatkih niso v vseh analizah uporabljeneiste enote in zato rezultati niso primerljivi23

V praksi je v fazi izbire modela tak pristop (ce problem manjkajocih podatkov niprevelik) priporocljiv ko pa izberemo koncni model (predvsem dokoncno dolocimoneodvisne spremenljivke) pa je bolje ce upostevamo vse razpolozljive podatke (torejvse enote ki imajo veljavne vrednosti na spremenljivkah ki jih uporabimo v nekemmodelu)

V primeru manjkajocih vrednosti (torej takorekoc vedno) je najbolje da upostevamovse veljavne vrednosti (torej tudi veljavne vrednosti pri enotah ki imajo sicer tudikaksno manjkajoco vrednost) Izmed dobrih pristopov se najpogosteje uporabljajoveckratne imputacije oz multiple imputacije (Rubin 1987 1996) ki so tudi zelodobro podprte v paketku mice (Buuren in Groothuis-Oudshoorn 2011 Buuren 2012)Vendar pa to ze presega obseg tega ucbenika

Pripravimo torej najprej podatke ter preglejmo opisne statistike in porazdelitvi zadodatni spremenljivki

gt dataLRlt-naomit(data[c(G91O1F2F5F7F21)])

gt describe(dataLR[c(F7F21)])

vars n mean sd median trimmed mad min max range

F7 1 312 1236 308 12 1232 148 1 23 22

F21 2 312 4249 1240 42 4353 445 0 80 80

skew kurtosis se

F7 005 115 017

F21 -133 400 070

gt par(mfrow=c(12)mar=mardef)

gt hlt-hist(dataLR$F7main=Stevilo let solanja

xlab=Stevilo let solanja ylab=Frekvenca)

gt curve(dnorm(xmean=mean(dataLR$F7narm=TRUE)

sd=sd(dataLR$F7narm=TRUE))diff(h$breaks)[1]

sum(isna(dataLR$F7)) add=TRUE)

gt hlt-hist(dataLR$F21main=Tipicno stevilo delovnih ur na teden

xlab=Tipicno stevilo delovnih ur na teden ylab=Frekvenca)

22Enako velja za ostale R-jeve funkcije za regresijske metode (kar vkljucuje tudi analizo variance)23Se posebej je to problem ce zelimo modele formalno primerjati na primer s funkcijo anova ndash

glejte podpodpoglavje 335

3 poglavje ndash Analiza variance in linearna regresija 143

Slika 35 Porazdelitve dodatnih spremenljivk

Število let šolanja

Število let šolanja

Fre

kven

ca

0 5 10 15 20

050

100

150

Tipično število delovnih ur na teden

Tipično število delovnih ur na teden

Fre

kven

ca0 20 40 60 80

020

6010

0

gt curve(dnorm(xmean=mean(dataLR$F21narm=TRUE)

sd=sd(dataLR$F21narm=TRUE))diff(h$breaks)[1]

sum(isna(dataLR$F21)) add=TRUE)

gt par(mfrow=c(11))

Opazimo lahko da porazdelitev obeh spremenljivk ni normalna se posebej pa odnormalnosti odstopa porazdelitev spremenljivke rdquoTipicno stevilo delovnih ur na te-denrdquo ki je zelo konicasta in asimetricna v levo

332 Bivariatna regresija

Zacnimo z najenostavnejsim primerom bivariatne linearne regresije Preverimo kakostevilo let solanja vpliva na bruto placo

Odnos med spremenljivkama je graficno predstavljen na sliki 36 Za zdaj odmislimopolno crtopremico na tej sliki Rdeca crtkana crta pa prikazuje glajena povprecjaodvisne spremenljivke glede na vrednosti neodvisne

gt par(mar=mardef+c(00-30))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt lines(with(data=dataLRlowess(G91~F7))lwd=2lty=2col=red)

gt par(mar=mardef)

Iz slike lahko razberemo naslednje stvari

144 33 Linearna regresija

Slika 36 Odnos med bruto placo in stevilom let solanja

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

bull Ce stevilo let solanja narasca v povprecju narasca tudi bruto placa

bull Variabilnost bruto place narasca s stevilom let solanja kar je krsitev ene izmedpredpostavk linearne regresije

bull Videti je da s stevilom let solanja bruto placa najprej narasca pocasi (alisploh ne) kasneje pa narasca vse hitreje Torej je mogoce da linearna zvezani primerna

bull Videti je da zacne izobrazba vplivati na placo sele ko stevilo let solanja preseze12 let

Kljub pomislekom nadaljujmo najprej z enostavno linearno regresijo Za ocenjeva-nje linearne regresije uporabimo funkcijo lm za preverjanje domnev o koeficientih incelotnega modela za izracun determinacijskega ter nekaterih drugih statistih funk-cijo summary za izracun intervalov zaupanja pa funkcijo confint iz paketka carNarisemo tudi sliko ki prikazuje odvisnost bruto place od stevila let solanja

gt (fitG91_F7lt-lm(G91~F7data=dataLR))

Call

lm(formula = G91 ~ F7 data = dataLR)

Coefficients

(Intercept) F7

-3841 2139

3 poglavje ndash Analiza variance in linearna regresija 145

gt summary(fitG91_F7) za bolj bogat izpis

Call

lm(formula = G91 ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26809 -6502 -1833 4786 45609

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -3841 2407 -1596 0112

F7 2139 189 11320 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1025 on 310 degrees of freedom

Multiple R-squared 02925 Adjusted R-squared 02902

F-statistic 1281 on 1 and 310 DF p-value lt 22e-16

gt library(car)

gt confint(fitG91_F7level=09) 90 intervala zaupanja

5 95

(Intercept) -7812024 1296065

F7 1827676 24512959

gt par(mar=mardef+c(00-30))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt lines(with(data=dataLRlowess(G91~F7))lwd=2lty=2col=red)

gt abline(fitG91_F7lwd=2)

gt par(mar=mardef)

Z variabilnostjo v stevilu let solanja lahko pojasnimo 292 variabilnosti v brutoplaci Ce se stevilo let solanja poveca za eno leto se bo bruto placa v povprecjupovecala za 214 tisoc sit Vpliv stevila let solanja na bruto placo je staticno znacilenpri zanemarljivi stopnji tveganja

S pomocjo funkcije confint iz paketka car smo izracunali tudi 90- intervalazaupanja za regresijski koeficient in konstanto

Na podlagi rezultata smo na sliko 36 vrisali premico ki prikazuje ocenjeni odnosmed spremenljivkama Ocitno je da se premica pri velikih in majhnih vrednostihspremenljivke rdquoStevilo let solanjardquo ne prilega

To je morda se bolj ocitno ce si pogledamo graf kjer na y os nanasamo rezidualena x os pa vrednosti neodvisne spremenljivke (1 graf na sliki 37) Histogram na

146 33 Linearna regresija

Slika 37 Porazdelitev rezidualov

5 10 15 20

-200

020

040

0

Razsevni grafikon rezidualov gledena vrednosti neodvisne spremenljivke

Število let šolanja

Rez

idua

li

Histogram rezidualovz vrisano normalno krivuljo

Reziduali

Gos

tota

-200 0 200 4000

000

000

20

004

sliki 37 pa kaze da je krsena tudi predpostavka o normalni porazdelitvi rezidua-lovnapak Koda za sliko sledi

gt par(mfrow=c(12)xpd=NA)

gt plot(fitG91_F7$residuals~dataLR$F7

ylab=Reziduali xlab=Stevilo let solanja

main=Razsevni grafikon rezidualov glede

na vrednosti neodvisne spremenljivke)

gt hist(fitG91_F7$residuals freq=FALSE br=15

xlab=Reziduali ylab=Gostota

main=Histogram rezidualovnz vrisano normalno krivuljo)

gt curve(dnorm(xmean=0sd=sd(fitG91_F7$residuals))add=TRUE)

gt par(mfrow=c(11)xpd=FALSE)

Podobne zakljucke lahko izpeljemo tudi na podlagi grafikonov na sliki 38 ki so (vR-ju) standardni diagnosticni prikazi za linearno regresijo (tudi multiplo) zato jihdobimo zelo enostavno

gt par(mfrow=c(22)) zahtevamo 4 grafe na eno sliko

gt plot(fitG91_F7)

gt par(mfrow=c(11))

Graf levo zgoraj je podoben razsevnemu grafikonu na sliki 37 le da so na y osinapovedane vrednosti in ne neodvisna spremenljivka Pri bivariatni regresiji grepravzaprav le za linearno transformacijo skale (mnozenje in sestevanje) pri multipli

3 poglavje ndash Analiza variance in linearna regresija 147

Slika 38 Diagnosticni grafikoni za linearno regresijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641784 525

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641

784525

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641

784 525

000 001 002 003 004

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05

Residuals vs Leverage

199

784641

pa sluzijo napovedane vrednosti kot nek nadomestek za vse neodvisne spremenljivke(saj so napovedane vrednosti linearne kombinacije neodvisnih spremenljivk)

Graf desno zgoraj pa podaja podobno informacijo kot histogram Imenuje se Q-Qplot (Q je okrajsava za quantile) Ce so reziduali normalno porazdeljeni lezijo vsetocke na crtkani premici

333 Nelinearna regresija

Ugotovili smo da linearna zveza med spremenljivkama na danih podatkih morda ninajbolj optimalna Odnos je videti dosti bolj linearen ce bruto placo logaritmiramo

148 33 Linearna regresija

Na takih podatkih lahko ocenimo tudi linearno regresijo in sicer tako da znotrajformule bruto placo logaritmiramo Sicer se koda skorajda ne spremeni Rezultatlahko potem narisemo tudi na originalni lestvici Oboje je prikazano na sliki 39)

gt fitLnG91_F7lt-lm(log(G91)~F7data=dataLR)

gt summary(fitLnG91_F7) za bolj bogat izpis

Call

lm(formula = log(G91) ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-126487 -029420 002024 027755 145055

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 4224075 0098354 4295 lt2e-16

F7 0086630 0007723 1122 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 04189 on 310 degrees of freedom

Multiple R-squared 02887 Adjusted R-squared 02864

F-statistic 1258 on 1 and 310 DF p-value lt 22e-16

gt par(mfrow=c(12))

gt plot(log(G91)~F7data=dataLRxlab=Stevilo let solanja

ylab=Logaritem bruto place v 1000 sit

main=Pollogaritemski grafikon)

gt abline(fitLnG91_F7)

gt text(x=25y=65

labels=bquote(italic(G91)minute==

(round(coef(fitLnG91_F7)[1]3))

+(round(coef(fitLnG91_F7)[2]3))italic(F7)))

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja

main=Originalna skala)

gt curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]x)

add=TRUE)

gt text(x=25y=700

labels=bquote(italic(G91)minute==

italic(e)^((round(coef(fitLnG91_F7)[1]3))

+(round(coef(fitLnG91_F7)[2]3))italic(F7))))

gt par(mfrow=c(11))

3 poglavje ndash Analiza variance in linearna regresija 149

Slika 39 Exponentna zveza ndash transformacija

5 10 15 20

40

50

60

Pollogaritemski grafikon

Število let šolanja

Loga

ritem

bru

to p

lače

v 1

000

sit

4224 + 0087F7

5 10 15 2010

030

050

070

0

Originalna skala

Število let šolanja

Bru

to p

lača

v 1

000

sit = e(4224+0087F7)

Ob tem pa se je treba zavedati da kadarkoli transformiramo odvisno spremenljivkoizracuni niso vec pravilni oziroma optimalni V tem primeru namrec ne minimizi-ramo vec vsote kvadratov odklonov originalne ampak transformirane spremenljivke(linearna regresija za ocenjevanje uporablja metodo najmanjsih kvadratov) Zaradiistega razloga tudi statistike R2 in podobne niso pravilne Pravilen izracun za R2 bibil

gt resLoglt-dataLR$G91- exp(fitLnG91_F7$fitted)

gt odkloniPovlt-dataLR$G91- mean(dataLR$G91)

gt R2loglt-1-sum(resLog^2)sum(odkloniPov^2)

gt R2log

[1] 02825734

Dejanski R2 je torej se nizji Sedaj smo sicer pravilno izracunali R2 a se vedno jeocenjevanje parametrov neoptimalno Parametre bi namrec morali ocenjevati takoda bi minimizirali vsoto kvadratov odklonov originalne spremenljivke

To lahko naredimo takole

gt expZvezalt-function(byX)

Xlt-asmatrix(X)

sslt-sum((y - exp(cbind(1X)b))^2)

return(ss)

gt optExplt-optim(par=coef(fitLnG91_F7)

fn=expZvezay=dataLR$G91X=dataLR[c(F7)])

150 33 Linearna regresija

gt resOptimlt-dataLR$G91 -

exp(optExp$par[1] + optExp$par[2]dataLR$F7)

gt odkloniPovlt-dataLR$G91-mean(dataLR$G91)

gt R2optimlt-1-sum(resOptim^2)sum(odkloniPov^2)

gt R2optim

[1] 0316329

gt R2log

[1] 02825734

gt summary(fitG91_F7)$rsq

[1] 02924672

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanja)

gt curve(exp(optExp$par[1]+optExp$par[2]x)add=TRUEcol=blue)

gt curve(exp(coef(fitLnG91_F7)[1]+coef(fitLnG91_F7)[2]x)

add=TRUEcol=red)

gt abline(fitG91_F7col=green3)

gt text(x=19y=650

labels=bquote(italic(G91)minute==

italic(e)^((round(optExp$par[1]3)) +

(round(optExp$par[2]3))italic(F7)))col=blue)

gt legend(x=12y=790legend=c(linearna zveza

eksponentna zveza preko transformacije

eksponentna zveza preko optimizacije)

col=c(green3redblue)lty=1xjust=05yjust=0

xpd=TRUE)

Rezultat ocenjevanja je prikazan na sliki 310 R2 je sedaj znatno vecji kot prikateremkoli prejsnjem pristopu in znasa 0316

334 Multipla regresija

Sedaj razsirimo nas model tako da vkljucimo se eno intervalno neodvisno spremen-ljivko in sicer F21 rdquoTipicno stevilo delovnih ur (vkljucno z nadurami) na tedenrdquo

Tudi za to spremenljivko je pred vkljucitvijo dobro preveriti obliko njene povezanostiz odvisno spremenljivko Ustrezni prikaz je na sliki 311

gt par(mar=mardef+c(00-30))

gt plot(G91~F21data=dataLRylab=Bruto placa v 1000 sitxlab=

Tipicno stevilo delovnih ur (vkljucno z nadurami) na teden)

gt lines(with(data=dataLRlowess(G91~F21))lwd=2lty=2col=red)

gt par(mar=mardef)

3 poglavje ndash Analiza variance in linearna regresija 151

Slika 310 Ocenjevanje nelinearne zveze

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

G91 prime = e(4224+0093F7)

linearna zvezaeksponentna zveza preko transformacijeeksponentna zveza preko optimizacije

Slika 311 Odnos med bruto placo in tipicnim stevilom delovnih ur na teden

0 20 40 60 80

100

200

300

400

500

600

700

Tipično število delovnih ur (vključno z nadurami) na teden

Bru

to p

lača

v 1

000

sit

152 33 Linearna regresija

Kaksne posebne povezanosti med spremenljivkama ne vidimo Ker pa zelimo to tudiformalno preveriti bomo spremenljivko o stevilu delovnih ur vseeno vkljucili v line-arno regresijo Preverili bomo torej ali spremenljivka rdquoTipicno stevilo delovnih ur(vkljucno z nadurami) na tedenrdquo vpliva na bruto placo ce izlocimo vpliv izobrazbe(spremenljivka rdquoStevilo let solanjardquo) Zanima nas torej ali se bruto placa v pov-precju kaj spremeni ce se stevilo delovnih ur na teden poveca izobrazba pa ostanenespremenjena

Pri linearni regresiji vrstni red vkljucitve ni pomemben

Kljub temu da bi bila glede na nase podatke primernejsa nelinearna regresija bomo(iz pedagoskih razlogov) nadaljevali z linearno Enostaven popravek bi bil ce bisamo zamenjali G91 (bruto placo) z logaritmom te spremenljivke kar sicer (kot smovideli) ni optimalno

gt fitG91_F7F21lt-update(fitG91_F7~+F21)

gt prejsnjemu modelu dodamo dodatno neodvisno spremenljivko

gt ali daljse

gt fitG91_F7F21lt-lm(G91~F7+F21data=dataLR)

gt summary(fitG91_F7F21)

Call

lm(formula = G91 ~ F7 + F21 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26576 -6489 -1866 4783 45844

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -327354 311367 -1051 0294

F7 214004 18929 11306 lt2e-16

F21 -01352 04695 -0288 0774

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1027 on 309 degrees of freedom

Multiple R-squared 02927 Adjusted R-squared 02881

F-statistic 6392 on 2 and 309 DF p-value lt 22e-16

gt confint(fitG91_F7F21level=09)

5 95

(Intercept) -841046492 186338373

3 poglavje ndash Analiza variance in linearna regresija 153

F7 182775218 245233578

F21 -09098706 06394045

gt summary(fitG91_F7)

Call

lm(formula = G91 ~ F7 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-26809 -6502 -1833 4786 45609

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -3841 2407 -1596 0112

F7 2139 189 11320 lt2e-16

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1025 on 310 degrees of freedom

Multiple R-squared 02925 Adjusted R-squared 02902

F-statistic 1281 on 1 and 310 DF p-value lt 22e-16

Za primerjavo smo izpisali se rezultat modela brez spremenljivke F21 Vpliv spre-menljivke F21 (kot smo pricakovali glede na sliko 311) ni statisticno znacilen Po-sledicno tudi njena vkljucitev ne vpliva bistveno na rezultate (R2 se je sicer malcepovecal popravljeni R2 pa malce zmanjsal vpliv spremenljivke F7 na G91 pa jeostal skoraj nespremenjen) Vseeno pa je interpretacija regresijskih koeficientov primultipli regresiji malce drugacna kot pri bivariatni regresiji Regresijski koeficientza stevilo let solanja 214 na primer pomeni da se bruto placa poveca za 214 tisocsit ce se stevilo let solanja poveca za eno leto in ostane tipicno stevilo delovnihur na teden nespremenjeno oziroma ce ostanejo vrednosti vseh ostalih neodvisnihspremenljivk (tu imamo pac samo eno) nespremenjene

Pri multipli regresiji je pomemben rezultat tudi F statistika in pripadajoci F -testTa nam v nasem primeru pove da lahko pri zanemarljivi stopnji tveganja trdimoda vsaj ena izmed neodvisnih spremenljivk vpliva na odvisno spremenljivko

Tudi tu bi bilo dobro preveriti porazdelitev rezidualov To storimo podobno kotpri bivariatni regresiji Ker pa imamo sedaj dve neodvisni spremenljivki bi moralinarisati dva razsevna grafikona (vsakega za svojo neodvisno spremenljivko na x osi)Taka grafa sta prikazana na sliki 312 Tako kot pri bivariatni regresiji se na prvemgrafu vidi heteroskedasticnost (variabilnost napak ni povsod enaka) na drugem pabi tezko z gotovostjo prepoznali nek vzorec (na sredini osi je x sicer variabilnostvideti najvecja a je tam tudi najvec vrednosti)

154 33 Linearna regresija

Slika 312 Reziduali v odvisnosti od vrednosti neodvisnih spremenljivk

5 10 15 20

-200

020

040

0

Število let šolanja

Rez

idua

li

0 20 40 60 80-2

000

200

400

Število tipičnih delovnih ur

Rez

idua

li

gt par(mfrow=c(12)mar=mardef-c(0030))

gt plot(fitG91_F7F21$residuals~dataLR$F7

ylab=Reziduali xlab=Stevilo let solanja

main=)

gt plot(fitG91_F7F21$residuals~dataLR$F21

ylab=Reziduali xlab=Stevilo tipicnih delovnih ur

main=)

gt par(mfrow=c(11)mar=mardef)

Ker pa je takih grafov pri multipli regresiji lahko veliko je bolj prakticno da nari-semo samo en graf kjer na y os nanasamo napovedane vrednosti in ne neodvisnihspremenljivk Kot smo ze omenili tako napovedane vrednosti sluzijo kot nadomestekza vse neodvisne spremenljivke (saj so napovedane vrednosti linearne kombinacijeneodvisnih spremenljivk) Tak graf je skupaj s histogramom rezidualov prikazan nasliki 313

gt par(mfrow=c(12))

gt plot(fitG91_F7F21$residuals~fitG91_F7F21$fitted

ylab=Reziduali xlab=Napovedane vrednosti

main=Razsevni grafikon rezidualov glede

na napovedane vrednosti)

gt hist(fitG91_F7F21$residuals freq=FALSE br=15

xlab=Reziduali ylab=Gostota

main=Histogram rezidualovnz vrisano normalno krivuljo)

3 poglavje ndash Analiza variance in linearna regresija 155

Slika 313 Porazdelitev rezidualov

0 100 200 300 400

-200

020

040

0

Razsevni grafikon rezidualov gledena napovedane vrednosti

Napovedane vrednosti

Rez

idua

li

Histogram rezidualovz vrisano normalno krivuljo

Reziduali

Gos

tota

-200 0 200 4000

000

000

20

004

gt curve(dnorm(xmean=0sd=sd(fitG91_F7F21$residuals))add=TRUE)

gt par(mfrow=c(11))

R-jevi standardni diagnosticni prikazi za linearno regresijo so prikazani na sliki 314

gt par(mfrow=c(22))

gt plot(fitG91_F7)

gt par(mfrow=c(11))

335 Vkljucevanje nominalnihordinalnih spremenljivk

V linearno regresijo lahko kot neodvisne spremenljivke vkljucimo tudi nominalnespremenljivke in sicer preko umetnih spremenljivk Umetnih spremenljivk nam nitreba ustvariti saj jih samodejno ustvari funkcija lm Kot referencno kategorijoizbere tisto ki je pri faktorju navedena kot prva v levels

Funkcija lm kot nominalne spremenljivke obravnava le spremenljivke tipa factor incharacter ki pa jih pred uporabo spremeni v tip factor

156 33 Linearna regresija

Slika 314 Diagnosticni grafikoni za linearno regresijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641784 525

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641

784525

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641

784 525

000 001 002 003 004

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05

Residuals vs Leverage

199

784641

Opozorilo

Funkcija lm obravnava spremenljivke tipa ordered oziroma urejen factor takoda za njih na poseben nacin izracuna ndash rdquokontrasterdquo Tega nacina ne bomo obrav-navali saj je razmeroma zahteven za interpretacijo in razumevanje zato je pri-porocljivo da tudi za ordinalne spremenljivke uporabljate neurejen factor

Poglejmo najprej najenostavnejsi primer ko ima nominalna spremenljivka samo 2vrednosti V nas model torej vkljucimo se spol

3 poglavje ndash Analiza variance in linearna regresija 157

gt fitG91_F7F21O1F2lt-lm(G91~F7+F21+O1F2data=dataLR)

gt summary(fitG91_F7F21O1F2)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24770 -6939 -1786 5278 44416

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -170737 312701 -0546 058546

F7 216213 18731 11543 lt 2e-16

F21 -02170 04651 -0467 064108

O1F2zenski -330047 115776 -2851 000466

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1015 on 308 degrees of freedom

Multiple R-squared 03108 Adjusted R-squared 03041

F-statistic 4631 on 3 and 308 DF p-value lt 22e-16

Med rezultati je dodaten regresijski koeficient rdquoO1F2Zenskirdquo Iz njega vidimo daje bila kot referencna kategorija vzeta kategorija rdquoMoskirdquo saj te ni med koeficientiVrednost tega koeficienta (minus330) nam pove da imajo zenske v povprecju pri enakihvrednostih ostalih spremenljivk (izobrazba stevilo delovnih ur na teden) za 33 tisocsit nizjo placo kot moski Pri takem kodiranju je vrednost regresijskega koeficientavedno primerjava izbrane kategorije z referencno Vpliv spola je statisticno znacilenpri tveganju 047

Opozorilo

Klasicna interpretacija da se odvisna spremenljivka spremeni za bx ce se xpoveca za eno enoto in ostale spremenljivke ostanejo nespremenjene tu ni pri-merna ker se spol pri neki osebi naceloma ne spreminja

Dodajmo kot spremenljivko se kraj bivanja

gt fitG91_F7F21O1F2F5lt-lm(G91~F7+F21+O1F2+F5data=dataLR)

gt summary(fitG91_F7F21O1F2F5)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 data = dataLR)

158 33 Linearna regresija

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -105263 375909 -0280 077965

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5predmestje -158647 246244 -0644 051989

F5manjse mesto 114633 225129 0509 061099

F5vas -62163 212181 -0293 076974

F5kmetija -32327 268104 -0121 090411

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

Ker je bilo rdquoVeliko mestordquo izbrano kot referencna kategorija imamo v izpisu regre-sijske koeficiente za vse ostale kategorije Vsak izmed teh regresijskih koeficientovnam poda primerjavo med kategorijo in velikim mestom Tako nam vrednost koefi-cienta rdquoF5Vasrdquominus62 pove da imajo osebe ki zivijo na vasi v povprecju pri enakihvrednostih ostalih spremenljivk (izobrazba stevilo delovnih ur na teden spol) za 62tisoc sit nizjo bruto placo kot tisti ki zivijo v velikih mestih

Ce zelimo nastaviti kot referencno kaksno drugo kategorijo to najlazje storimo takoda zamenjamo vrstni red levels pri faktorju pred klicem funkcije lm Ce bi ze-leli da je na primer referencna kategorija rdquomanjse mestordquo lahko to dosezemo ta-kole

gt dataLR$F5alt-factor(dataLR$F5

levels=levels(dataLR$F5)[c(31245)])

gt lm(G91~F7+F21+O1F2+F5adata=dataLR)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5a data = dataLR)

Coefficients

(Intercept) F7 F21

09370 214129 -02492

3 poglavje ndash Analiza variance in linearna regresija 159

O1F2zenski F5aveliko mesto F5apredmestje

-331629 -114633 -273280

F5avas F5akmetija

-176796 -146960

gt sedaj je referencna kategorija manjse mesto

gt summary(lm(G91~F7+F21+O1F2+F5adata=dataLR))

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5a data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 09370 349314 0027 097862

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5aveliko mesto -114633 225129 -0509 061099

F5apredmestje -273280 199023 -1373 017073

F5avas -176796 149753 -1181 023869

F5akmetija -146960 220729 -0666 050605

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

Pri enakih vrednostih ostalih neodvisnih spremenljivk bi v vseh drugih krajih bivanjav povprecju pricakovali nizjo bruto placo kot v velikem mestu vendar pa ni nobedenod regresijskih koeficientov statisticno znacilen (niti pri 10- tveganju)

Vendar na podlagi tega izpisa ne sklepati o domnevi da kraj bivanja ne vpliva nabruto placo (oziroma ne moremo ugotoviti da tega ne moremo trditi na primer pri10- tveganju) Za preverjanje te domneve bi morali s pomocjo F -testa ta modelprimerjati z modelom brez kraja bivanja (torej s prejsnjim modelom) Medtem koizbor referencne kategorije vpliva na posamezne regresijske koeficiente in posledicnotudi na teste znacilnosti le-ta ne vpliva na rezultate F -testa kjer preverjamo vplivrdquocelotnerdquo nominalne spremenljivke (ali katerekoli druge posamezne spremenljivke alikombinacije vec spremenljivk)

160 33 Linearna regresija

gt anova(fitG91_F7F21O1F2fitG91_F7F21O1F2F5)

Analysis of Variance Table

Model 1 G91 ~ F7 + F21 + O1F2

Model 2 G91 ~ F7 + F21 + O1F2 + F5

ResDf RSS Df Sum of Sq F Pr(gtF)

1 308 3173025

2 304 3149602 4 23423 05652 06881

Sele ta primerjava nam pove da bi morali tvegati vec kot 70 ce bi zeleli trditida kraj bivanja vpliva na bruto placo ce izlocimo vplive stopnje izobrazbe steviladelovnih ur in spola

336 Interakcije med spremenljivkami

Interakcije med (ucinki) spremenljivk vkljucimo v model tako da kot dodatno ne-odvisno spremenljivko v model vkljucimo zmnozek spremenljivk V primeru nomi-nalnih spremenljivk morajo biti te ustrezno kodirane (na primer kot umetne spre-menljivke)

Opozorilo

Ko navajamo v R-ju rdquoformulordquo(npr y ~ x1 + x2) znak rdquordquopomeni da zelimov model vkljuciti izbrane spremenljivke in vse mozne interakcije med njimi in nedejanskega mnozenja (upostevajo se na primer tudi tipi spremenljivk) Ce zelimovkljuciti samo interakcijo potem damo med spremenljivki(ke) znak rdquordquo Takoje na primer y ~ x1x2x3 enako kot y ~ x1 + x2 + x3 + x1x2 + x1x3

+ x2x3 Ce zelimo da se nek operator (na primer ) interpretira dobesednodamo izraz kot argument funkciji I (na primer I(x1x2))

Ce torej zelimo vkljuciti interakcijo med spolom in izobrazbo (edini spremenljivki kista imeli statisticno znacilen vpliv) lahko to naredimo tako kot prikazuje naslednjiizpis

gt fitG91_F7F21O1F2F5int lt- lm(G91 ~ F7O1F2 + F21 + F5

data=dataLR)

gt ali takole

gt fitG91_F7F21O1F2F5int lt- lm(G91 ~ F7 + F21 + O1F2 + F5

gt + F7O1F2 data=dataLR)

gt summary(fitG91_F7F21O1F2F5int)

Call

lm(formula = G91 ~ F7 O1F2 + F21 + F5 data = dataLR)

3 poglavje ndash Analiza variance in linearna regresija 161

Residuals

Min 1Q Median 3Q Max

-23387 -6501 -2010 5017 43674

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -5052516 4638880 -1089 0277

F7 2455524 289956 8469 109e-15

O1F2zenski 3700699 4928161 0751 0453

F21 -020133 047672 -0422 0673

F5predmestje -1607825 2457842 -0654 0514

F5manjse mesto 829630 2257400 0368 0713

F5vas -701999 2118518 -0331 0741

F5kmetija -002075 2684935 -0001 0999

F7O1F2zenski -563564 384354 -1466 0144

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1016 on 303 degrees of freedom

Multiple R-squared 03207 Adjusted R-squared 03028

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

Vpliv interakcije ni statisticno znacilen Prav tako pa ni vec statisticno znacilenvpliv spola To je posledica multikolinearnosti ki jo bomo omenili v naslednjempodpodpoglavju Problem lahko zmanjsamo ce intervalne spremenljivke pred ra-cunanjem interakcije centriramo (od vsake vrednosti odstejemo povprecje) Zaradilepsega izpisa je bolje da to naredimo pred klicem funkcije lm

gt dataLR$F7centGndrZenskilt- (dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

gt fitG91_F7F21O1F2F5int2lt-lm(G91~F7+F21+O1F2+F5 +

F7centGndrZenskidata=dataLR)

gt summary(fitG91_F7F21O1F2F5int2)

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 + F7centGndrZenski

data = dataLR)

Residuals

Min 1Q Median 3Q Max

-23387 -6501 -2010 5017 43674

162 33 Linearna regresija

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -5052516 4638880 -1089 02769

F7 2455524 289956 8469 109e-15

F21 -020133 047672 -0422 06731

O1F2zenski -3264380 1177205 -2773 00059

F5predmestje -1607825 2457842 -0654 05135

F5manjse mesto 829630 2257400 0368 07135

F5vas -701999 2118518 -0331 07406

F5kmetija -002075 2684935 -0001 09994

F7centGndrZenski -563564 384354 -1466 01436

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1016 on 303 degrees of freedom

Multiple R-squared 03207 Adjusted R-squared 03028

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

Spremenil se je le koeficient za spol vsi ostali rezultati (vkljucno z R2 in F -statistiko)pa so ostali nespremenjeni Pravzaprav se je spremenilo samo rdquokodiranje spremen-ljivkrdquo Ce vpliv spremenljivk vkljucenih v interakcije preverjamo na pravilen nacintorej tako da preverjamo vpliv celotne spremenljivke se pravi rdquoglavnirdquo ucinek in vseinterakcije v katerih nastopa preko F -testa potem kodiranje ni pomembno Pravilnobi ucinek spola torej preverjali tako kot sledi v nadaljevanju kjer nacin kodiranja narezultat testa ne vpliva

gt ocenimo model brez spola

gt fitG91_F7F21F5int lt- lm(G91 ~ F7 + F21 + F5 data=dataLR)

gt preverimo skupni vpliv spola tako da primerjamo

gt model brez spola z modelom s spolom

gt anova(fitG91_F7F21F5int fitG91_F7F21O1F2F5int)

Analysis of Variance Table

Model 1 G91 ~ F7 + F21 + F5

Model 2 G91 ~ F7 O1F2 + F21 + F5

ResDf RSS Df Sum of Sq F Pr(gtF)

1 305 3231587

2 303 3127412 2 104176 50465 0006983

---

Signif codes

0 0001 001 005 01 1

3 poglavje ndash Analiza variance in linearna regresija 163

Ugotovimo lahko da je vpliv spola (kjer upostevamo tudi njegov vpliv preko inte-rakcije z izobrazbo) statisticno znacilen pri stopnji tveganja 07

337 Preverjanje predpostavk

Analiza rezidualov

Deloma smo preverjanje predpostavk ze obdelali ko smo si ogledali diagnosticnegrafikone za porazdelitev rezidualov Veliko predpostavk je namrec vezanih na po-razdelitev rezidualov Se na zadnjem modelu (z interakcijo 2) poglejmo standardnegrafikone za diagnostiko Grafi so prikazani na sliki 315

gt par(mfrow=c(22))

gt plot(fitG91_F7F21O1F2F5int2)

gt par(mfrow=c(11))

Iz grafov na sliki 315 lahko razberemo

bull Ze na 1 grafu (levo zgoraj) se vidi da je variabilnost rezidualov vecja privecjih placah kot pri manjsih To je se bolj razvidno iz 3 grafa (levo spodaj)Graf je podoben zgornjemu (1) le da sedaj namesto rdquosurovihrdquo rezidualovna y os nanasamo korenjene absolutne standardizirane reziduale Pri temje bistveno predvsem to da nanasamo absolutne vrednosti Rdeca crta kiprikazuje glajena povprecja bi morala biti v primeru homoskedasticnosti (ko jeta predpostavka izpolnjena) ravna pri nas pa je ocitno da od takrat ko imamoneko vecje stevilo enot vseskozi narasca Torej je prisotna heteroskedasticnost

bull Na 2 grafu (desno zgoraj) vse tocke ne lezijo na premici kar pomeni dase reziduali ne porazdeljujejo normalno Predvsem imamo prevec zelo velikihvrednosti Enako lahko razberemo tudi iz histograma rezidualov z vrisanonormalno krivuljo na sliki 316

gt par(mar=mardef-c(0030))

gt hist(fitG91_F7F21O1F2F5int2$resfreq=FALSExlab=Reziduali

ylab=Gostotamain=br=15)

gt curve(dnorm(xsd=sd(fitG91_F7F21O1F2F5int2$res))add=TRUE)

gt par(mar=mardef)

Za preverjanje heteroskedasticnosti obstaja v paketku car tudi formalni test (funk-cija ncvTest) Prav tako ta paketek ponuja se dodatni grafikon ki narise logaritmi-rane absolutne vrednosti studentiziranih rezidualov v odvisnosti od logaritmiranihnapovedanih vrednosti (funkcija spreadLevelPlot) Zaradi uporabe logaritmovizpusti vse negativne napovedane vrednosti (in v tem primeru izpise opozorilo)

164 33 Linearna regresija

Slika 315 Diagnosticni grafikoni za linearno regresijo ndash model z interakcijo

0 100 200 300 400

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641525784

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641525784

0 100 200 300 400

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641525784

000 002 004 006 008 010 012

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

Residuals vs Leverage

784

199

525

Funkcija predlaga tudi transformacijo odvisne spremenljivke za odpravljanje pro-blema heteroskedasticnosti Graf je prikazan na sliki 317

gt ncvTest(fitG91_F7F21O1F2F5int2)

Non-constant Variance Score Test

Variance formula ~ fittedvalues

Chisquare = 1484605 Df = 1 p = 00001166521

gt spreadLevelPlot(fitG91_F7F21O1F2F5int2)

Suggested power transformation 05373901

3 poglavje ndash Analiza variance in linearna regresija 165

Slika 316 Histogram rezidualov

Reziduali

Gostota

-200 -100 0 100 200 300 400

0000

0001

0002

0003

0004

0005

Slika 317 Grafikon za ocenjevanje heteroskedasticnosti

50 100 200 500

000

50

020

010

00

500

200

0

Spread-Level Plot for fitG91_F7F21O1F2F5int2

Fitted Values

Abs

olut

e S

tude

ntiz

ed R

esid

uals

166 33 Linearna regresija

Na podlagi testa lahko domnevo o homoskedasticnosti zavrnemo pri zanemarljivistopnji tveganja Iz grafa na sliki 317 pa zopet vidimo da variabilnost rezidualovz visanjem napovedanih vrednosti narasca Na podlagi regresijskega koeficientapremice na tem grafu funkcija predlaga tudi potenco na katero naj bi potenciraliodvisno spremenljivko za odpravo problema heteroskedasticnosti

Multikolinearnost

Multikolinearnost lahko ocenjujemo z vec statistikami Poglejmo si najprej izracunfaktorja povecanja variance (variance inflation factor ndash vif) in toleranc Vif lahko iz-racunamo s funkcijo vif iz paketka car tolerance pa so kar 1vif Ti dve statistikista priporocljivi ker sta razumljivi in pokazeta pri katerih spremenljivkah se pro-blem pojavlja Mere bomo izracunali za oba modela z interakcijo (ki se razlikujetav parametrizacji interakcije)

Opomnik Drugo parametrizacijo smo izbrali ravno zato ker zmanjsuje multikoline-arnost

gt prvi model

gt vif(fitG91_F7F21O1F2F5int) variance inflation factor

GVIF Df GVIF^(1(2Df))

F7 2396263 1 1547987

O1F2 18183935 1 4264263

F21 1052758 1 1026040

F5 1216437 4 1024793

F7O1F2 19529971 1 4419273

gt 1vif(fitG91_F7F21O1F2F5int)[1] tolerance

F7 O1F2 F21 F5 F7O1F2

041731645 005499360 094988557 082207330 005120335

gt drugi model

gt vif(fitG91_F7F21O1F2F5int2) variance inflation factor

GVIF Df GVIF^(1(2Df))

F7 2396263 1 1547987

F21 1052758 1 1026040

O1F2 1037582 1 1018618

F5 1216437 4 1024793

F7centGndrZenski 2259556 1 1503182

gt 1vif(fitG91_F7F21O1F2F5int2)[1] tolerance

F7 F21 O1F2

04173164 09498856 09637791

F5 F7centGndrZenski

08220733 04425648

3 poglavje ndash Analiza variance in linearna regresija 167

Tolerance so pri spolu in pri interakciji med spolom in izobrazbo veliko visje pridrugem modelu faktorji povecanja variance pa nizji

Dober pokazatelj multikolinearnosti je tudi korelacijska matrika med ocenami re-gresijskih koeficientov Ta kaze na problem ce so korelacije po absolutni vrednostiblizu 1 S funkcijo vcov dobimo variancnokovariancno matriko ki pa jo lahko sfunkcijo cov2cor pretvorimo v korelacijsko

gt prvi model

gt vcov(fitG91_F7F21O1F2F5int) kovariancna matrika

gt cov2cor(vcov(fitG91_F7F21O1F2F5int)) korelacijska matrika

(Intercept) F7 O1F2zenski

(Intercept) 10000000 -080916407 -060845623

F7 -08091641 100000000 071746753

O1F2zenski -06084562 071746753 100000000

F21 -04241575 002872814 008249693

F5predmestje -03471743 003199666 000178113

F5manjse mesto -02765647 -003856876 -008880756

F5vas -03666217 006890147 -002361653

F5kmetija -04616874 022093944 011067464

F7O1F2zenski 05880620 -073911673 -097107735

F21 F5predmestje F5manjse mesto

(Intercept) -0424157534 -0347174290 -027656470

F7 0028728137 0031996658 -003856876

O1F2zenski 0082496930 0001781130 -008880756

F21 1000000000 0008758751 -009876780

F5predmestje 0008758751 1000000000 064435236

F5manjse mesto -0098767796 0644352359 100000000

F5vas -0142169932 0689732959 076571906

F5kmetija -0057753038 0555335692 059905425

F7O1F2zenski -0068533086 0005924216 009568067

F5vas F5kmetija F7O1F2zenski

(Intercept) -036662171 -046168741 0588061950

F7 006890147 022093944 -0739116728

O1F2zenski -002361653 011067464 -0971077352

F21 -014216993 -005775304 -0068533086

F5predmestje 068973296 055533569 0005924216

F5manjse mesto 076571906 059905425 0095680667

F5vas 100000000 066452253 0025873515

F5kmetija 066452253 100000000 -0081587125

F7O1F2zenski 002587352 -008158713 1000000000

168 33 Linearna regresija

gt drugi model

gt vcov(fitG91_F7F21O1F2F5int2) kovariancna matrika

gt cov2cor(vcov(fitG91_F7F21O1F2F5int2)) korelacijska matrika

(Intercept) F7 F21

(Intercept) 10000000 -080916407 -0424157534

F7 -08091641 100000000 0028728137

F21 -04241575 002872814 1000000000

O1F2zenski -01742628 002108728 0068815958

F5predmestje -03471743 003199666 0008758751

F5manjse mesto -02765647 -003856876 -0098767796

F5vas -03666217 006890147 -0142169932

F5kmetija -04616874 022093944 -0057753038

F7centGndrZenski 05880620 -073911673 -0068533086

O1F2zenski F5predmestje F5manjse mesto

(Intercept) -0174262837 -0347174290 -027656470

F7 0021087276 0031996658 -003856876

F21 0068815958 0008758751 -009876780

O1F2zenski 1000000000 0031361616 001431086

F5predmestje 0031361616 1000000000 064435236

F5manjse mesto 0014310857 0644352359 100000000

F5vas 0005537691 0689732959 076571906

F5kmetija 0134101643 0555335692 059905425

F7centGndrZenski -0030070878 0005924216 009568067

F5vas F5kmetija F7centGndrZenski

(Intercept) -0366621708 -046168741 0588061950

F7 0068901467 022093944 -0739116728

F21 -0142169932 -005775304 -0068533086

O1F2zenski 0005537691 013410164 -0030070878

F5predmestje 0689732959 055533569 0005924216

F5manjse mesto 0765719055 059905425 0095680667

F5vas 1000000000 066452253 0025873515

F5kmetija 0664522533 100000000 -0081587125

F7centGndrZenski 0025873515 -008158713 1000000000

Ponovno je glavna razlika med obema modeloma povezana s spolom in interakcijomed spolom in izobrazbo Tokrat je dejanska razlika prav v korelaciji med ocenamateh dveh koeficientov Medtem ko je ta korelacija pri prvem modelu po absolutnivrednosti zelo blizu 1 (minus097) je ta korelacija pri drugem modelu skoraj 0 (minus003)Razmeroma visoka (minus075) je tudi korelacija med ocenama koeficientov za izobrazboin interakcijo med spolom in izobrazbo ki je minus075 Preostale razmeroma visokekorelacije so le se med sklopom spremenljivk ki merijo kraj bivanja (ker merijo istospremenljivko je to pricakovano) in med nekaterimi spremenljivkami in konstanto(kar pa ni tako pomembno)

3 poglavje ndash Analiza variance in linearna regresija 169

Multikolinearnost lahko ocenimo tudi s pomocjo indeksov pogojnosti in lastnih vre-dnosti matrike neodvisnih spremenljivk (v katero so namesto nominalnih spremen-ljivk vkljucene umetne spremenljivke) Obstaja vec nacinov kako izracunati indeksepogojnosti V nadaljevanju sta predstavljena dva Pri tem bomo uporabili funkcijocolinEigen ki je definirana spodaj sicer pa se nahaja tudi v datoteki rdquoUcbenikR-funkcijeRrdquo Funkcija temelji na izracunu lastnih vrednosti matrike kriznih produktovneodvisnih spremenljivk

gt colinEigenlt-function(fitSPSS=TRUE)

funkcija za racunanje lastnih vrednosti in indeksov

pogojnosti

Xlt-fit[x]

if(isnull(X))

stop(Fit must include x See lm for detailsn)

else

Xlt-fit$x

tXXlt-t(X)X

if(SPSS)

tXXlt-cov2cor(tXX)

e lt- eigen(tXX)

return(list(eigen=e$values

condIndex=sqrt(e$val[1]e$val)))

Izracunajmo torej indekse pogojnosti na oba nacina za oba modela

gt fitG91_F7F21O1F2F5int2lt-lm(G91~F7+F21+O1F2+F5 +

F7centGndrZenskidata=dataLRx=TRUE)

gt ponovno smo ocenili model s parametrom x=TRUE

gt da dobimo kot rezultat tudi matriko neodvisnih spremenljivk

gt fitG91_F7F21O1F2F5intlt-lm(G91~F7O1F2+F21+F5data=dataLR

x=TRUE)

gt prvi model

gt 1 nacin

gt colinEigen(fitG91_F7F21O1F2F5intSPSS=FALSE)

$eigen

[1] 6652435e+05 1558161e+04 4912678e+03 9900302e+01

[5] 5302790e+01 3528826e+01 1873120e+01 5532393e+00

[9] 2662550e+00

170 33 Linearna regresija

$condIndex

[1] 1000000 6534074 11636735 81972106 112005173

[6] 137301463 188454950 346763845 499851942

gt oziroma taki kot jih vrne SPSS

gt colinEigen(fitG91_F7F21O1F2F5intSPSS=TRUE)

$eigen

[1] 4943854688 1088057228 1002859625 1000235359

[5] 0766591055 0092809934 0066547583 0031866833

[9] 0007177695

$condIndex

[1] 1000000 2131606 2220306 2223216 2539516

[6] 7298534 8619195 12455564 26244625

gt drugi model

gt 1 nacin

gt colinEigen(fitG91_F7F21O1F2F5int2SPSS=FALSE)

$eigen

[1] 6558974e+05 6585408e+03 1173476e+03 1011405e+02

[5] 7781142e+01 5243155e+01 3498490e+01 9599113e+00

[9] 3705997e+00

$condIndex

[1] 1000000 9979909 23641818 80529554 91811327

[6] 111846291 136923385 261398078 420693096

gt oziroma taki kot jih vrne SPSS

gt colinEigen(fitG91_F7F21O1F2F5int2SPSS=TRUE)

$eigen

[1] 4340401831 1109346570 1012708187 1000586611

[5] 0923653402 0473392997 0076159218 0053759618

[9] 0009991567

$condIndex

[1] 1000000 1978023 2070250 2082752 2167756

[6] 3027987 7549249 8985389 20842421

Ne glede na izracun so indeksi pogojnosti pri prvem modelu bistveno vecji karnakazuje da je tam multikolinearnost vecji problem Kljub vsemu pa tudi tu indekspogojnosti na nacin kot ga izracuna SPSS ne preseze meje 30 kar bi bil jasen signalza multikolinearnost

Ocena oblike zveze

Povedali smo ze da je za vsako neodvisno spremenljivko vkljuceno v model dobropogledati razsevni grafikon z odvisno spremenljivko Vendar pa ta grafikon vca-

3 poglavje ndash Analiza variance in linearna regresija 171

sih ne razkrije prave zveze ker je prava zveza rdquozakritardquo z vplivi ostalih neodvisnihspremenljivk V tem primeru pride prav rdquocomponent + residual plotrdquo (oziroma grafdelnih ostankov) kjer na y os nanasamo vrednosti odvisne spremenljivke od katereprej odstejemo vplive ostalih spremenljivk Take grafe lahko narisemo s pomocjofunkcije crPlots iz paketka car Pogoj za uporabo funkcije je da v modelu ni in-terakcij zato jih bomo uporabili na zadnjem modelu kjer se nismo imeli interakcijeRezultat je prikazan na sliki 318

gt component + residual plot

gt crPlots(fitG91_F7F21O1F2F5)

Nadgradnja teh grafikonov so CERES grafi ki so na voljo v funkciji ceresPlots vistem paketku Za razliko od prejsnje le-ta ne narise grafov za nominalne spremen-ljivke Rezultat je na sliki 319

gt Ceres graf - naprednejsa verzija zgornjega

gt ceresPlots(fitG91_F7F21O1F2F5)

Najzanimivejsi zakljucek ki je bil opazen ze na navadnih razsevnih grafikonih jeda izobrazba vpliva na placo sele ko stevilo let solanja preseze 12 leta Kot resitevtega problema lahko v model vkljucimo se eno spremenljivko in sicer rdquostevilo letsolanja nad 12 letrdquo ki bo imela vrednost 0 za vse ki imajo 12 let solanja ali manj

gt dataLR$F7nad12 lt- dataLR$F7 - 12

gt dataLR$F7nad12[dataLR$F7nad12lt0]lt-0

gt fitG91_F7F21O1F2F5F7nad12lt-lm(G91~F7 +O1F2+F7nad12+F21+F5

data=dataLR)

gt summary(fitG91_F7F21O1F2F5F7nad12)

Call

lm(formula = G91 ~ F7 + O1F2 + F7nad12 + F21 + F5 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-28067 -5650 -1733 4223 42537

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 1307917 480829 2720 00069

F7 73834 36457 2025 00437

O1F2zenski -424936 116175 -3658 00003

F7nad12 240146 53287 4507 942e-06

F21 -02669 04621 -0578 05640

172 33 Linearna regresija

Slika 318 Grafikoni delnih ostankov

5 10 15 20

-200

010

020

030

040

050

0

F7

Com

pone

nt+

Res

idua

l(G91

)

0 20 40 60 80-2

000

100

200

300

400

F21

Com

pone

nt+

Res

idua

l(G91

)

moski zenski

-200

020

040

0

O1F2

Com

pone

nt+

Res

idua

l(G91

)

veliko mesto manjse mesto kmetija

-200

010

020

030

040

0

F5

Com

pone

nt+

Res

idua

l(G91

)

Component + Residual Plots

F5predmestje -94125 239206 -0393 06942

F5manjse mesto 193332 219000 0883 03780

F5vas 56539 207426 0273 07854

F5kmetija -105924 260487 -0407 06846

---

Signif codes

0 0001 001 005 01 1

Residual standard error 987 on 303 degrees of freedom

Multiple R-squared 03589 Adjusted R-squared 0342

F-statistic 212 on 8 and 303 DF p-value lt 22e-16

3 poglavje ndash Analiza variance in linearna regresija 173

Slika 319 Ceres grafikoni

5 10 15 20

-600

-400

-200

0

F7

CE

RE

S R

esid

ual(G

91)

0 20 40 60 80-3

00-1

0010

030

0F21

CE

RE

S R

esid

ual(G

91)

CERES Plots

gt summary(fitG91_F7F21O1F2F5) za primerjavo

Call

lm(formula = G91 ~ F7 + F21 + O1F2 + F5 data = dataLR)

Residuals

Min 1Q Median 3Q Max

-24820 -6653 -1792 4971 44909

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) -105263 375909 -0280 077965

F7 214129 19568 10943 lt 2e-16

F21 -02492 04765 -0523 060132

O1F2zenski -331629 117890 -2813 000523

F5predmestje -158647 246244 -0644 051989

F5manjse mesto 114633 225129 0509 061099

F5vas -62163 212181 -0293 076974

F5kmetija -32327 268104 -0121 090411

---

Signif codes

0 0001 001 005 01 1

Residual standard error 1018 on 304 degrees of freedom

Multiple R-squared 03159 Adjusted R-squared 03002

F-statistic 2006 on 7 and 304 DF p-value lt 22e-16

174 33 Linearna regresija

gt par(mfrow=c(22))

gt plot(fitG91_F7F21O1F2F5F7nad12)

gt par(mfrow=c(11))

Vpliv spremenljivke F7 je bistveno manjsi in sedaj komaj statisticno znacilen pri 5-tveganju kar nam pove da izobrazba do 12 let ne vpliva mocno na bruto placo Kerpa je koeficient spremenljivke F7nad12 bistveno vecji in mocno statisticno znacilenvidimo da zacne izobrazba mocneje vplivati na bruto placo sele ko stevilo let solanjapreseze 12 let oziroma po srednji soli O tem da je model sedaj bistveno boljsi pricatudi znatno vecji R2

Diagnosticni grafikoni so prikazani na sliki 320 Rezultati so sicer malce boljsi aproblem heteroskedasticnosti ostaja

338 V razmislek

Model bi se dalo se nadgrajevati Ze samo vpliv izobrazbe na placo za razlicneskupine je zelo kompleksna stvar Kaj se zgodi ce v novi model dodamo interakcijo

gt dataLR$F7centGndrZenskilt- (dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

gt dataLR$F7nad12centGndrZenski lt- (dataLR$F7nad12-

mean(dataLR$F7nad12))(dataLR$O1F2==zenski)

gt fitG91_F7F21O1F2F5F7nad12intlt-lm(G91~F7+F7nad12+O1F2+F21+F5+

F7centGndrZenski + F7nad12centGndrZenski data=dataLR)

gt summary(fitG91_F7F21O1F2F5F7nad12int)

Call

lm(formula = G91 ~ F7 + F7nad12 + O1F2 + F21 + F5 +

F7centGndrZenski + F7nad12centGndrZenski data = dataLR)

Residuals

Min 1Q Median 3Q Max

-25391 -5885 -1694 4557 42166

Coefficients

Estimate Std Error t value Pr(gt|t|)

(Intercept) 1701907 632377 2691 0007516

F7 28595 52133 0549 0583754

F7nad12 358691 73064 4909 15e-06

O1F2zenski -415327 115258 -3603 0000367

F21 -01829 04595 -0398 0690894

F5predmestje -86485 237140 -0365 0715590

3 poglavje ndash Analiza variance in linearna regresija 175

Slika 320 Diagnosticni grafikoni za linearno regresijo

100 200 300 400 500

-200

020

040

0

Fitted values

Res

idua

ls

Residuals vs Fitted

641525

1368

-3 -2 -1 0 1 2 3-2

02

4

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q-Q

641525

1368

100 200 300 400 500

00

05

10

15

20

Fitted values

Sta

ndar

dize

d re

sidu

als

Scale-Location641525

1368

000 002 004 006 008 010 012

-20

24

Leverage

Sta

ndar

dize

d re

sidu

als

Cooks distance

05Residuals vs Leverage

784

362

525

F5manjse mesto 173586 218196 0796 0426918

F5vas 59867 205770 0291 0771297

F5kmetija -91023 259186 -0351 0725693

F7centGndrZenski 100282 70140 1430 0153828

F7nad12centGndrZenski -251789 103129 -2441 0015203

(Intercept)

F7

F7nad12

O1F2zenski

F21

176 33 Linearna regresija

F5predmestje

F5manjse mesto

F5vas

F5kmetija

F7centGndrZenski

F7nad12centGndrZenski

---

Signif codes

0 0001 001 005 01 1

Residual standard error 9783 on 301 degrees of freedom

Multiple R-squared 03744 Adjusted R-squared 03536

F-statistic 1801 on 10 and 301 DF p-value lt 22e-16

Vidimo da se odstotek pojasnjene variance se malce poveca To nam pravzapravnakazuje da bi morda morali ze na zacetku gledati graf na sliki 321

gt plot(G91~F7data=dataLRylab=Bruto placa v 1000 sit

xlab=Stevilo let solanjapch=asnumeric(O1F2)

col=ifelse(O1F2==moskibluered))

gt dataLRzenlt-dataLR[dataLR$O1F2==zenski]

gt lines(with(data=dataLRzenlowess(G91~F7))lwd=2lty=2col=red)

gt dataLRmoslt-dataLR[dataLR$O1F2==moski]

gt lines(with(data=dataLRmoslowess(G91~F7))lwd=2lty=2

col=blue)

gt legend(x=1y=750legend=c(MoskiZenske)lty=2

col=c(bluered)pch=12yjust=1xjust=0

merge=FALSElwd=2)

339 Izracun rdquona rokerdquo

Za boljse razumevanje je koristno da naredimo izracune brez vgrajenih funkcij (ozi-roma s cim bolj enostavnimi) Ocenimo drugi model z interakcijo iz podpodpoglavja336 (ki smo ga shranili v objekt fitG91_F7F21O1F2F5int2) se na tak nacin

Najprej pripravimo podatke Pri tem je pomembno predvsem da naredimo umetnespremenljivke za nominalne spremenljivke

gt ylt-dataLR$G91 odvisna spremenljivka

gt Xlt-cbind(konstanta=1dataLR[c(F7F21)]

konstanta in intervalni neodvisni spremenljivki

O1F2Zenski=asnumeric(dataLR$O1F2==zenski)

3 poglavje ndash Analiza variance in linearna regresija 177

Slika 321 Odnos med izobrazbo in bruto placo po spolu

5 10 15 20

100

200

300

400

500

600

700

Število let šolanja

Bru

to p

lača

v 1

000

sit

MoškiŽenske

F5Predmestje=asnumeric(dataLR$F5==predmestje)

F5Manjse mesto=asnumeric(dataLR$F5==manjse mesto)

F5Vas=asnumeric(dataLR$F5==vas)

F5Kmetija=asnumeric(dataLR$F5==kmetija)

F7centGndrZenski=(dataLR$F7-mean(dataLR$F7))

(dataLR$O1F2==zenski)

)

gt Xlt-asmatrix(X)

gt preverimo rezultat

gt X[110]

konstanta F7 F21 O1F2Zenski F5Predmestje F5Manjse mesto

1 1 6 42 0 0 0

4 1 12 50 1 0 0

6 1 12 40 1 0 0

16 1 11 62 0 0 0

22 1 14 48 0 0 1

23 1 12 0 0 0 1

26 1 16 45 1 0 0

35 1 12 40 1 0 0

41 1 18 46 0 0 1

49 1 11 40 1 0 1

F5Vas F5Kmetija F7centGndrZenski

1 0 1 00000000

178 33 Linearna regresija

4 1 0 -03589744

6 1 0 -03589744

16 1 0 00000000

22 0 0 00000000

23 0 0 00000000

26 0 1 36410256

35 0 0 -03589744

41 0 0 00000000

49 0 0 -13589744

gt to je enako kot

gt fitG91_F7F21O1F2F5int2$x[110]

(Intercept) F7 F21 O1F2zenski F5predmestje

1 1 6 42 0 0

4 1 12 50 1 0

6 1 12 40 1 0

16 1 11 62 0 0

22 1 14 48 0 0

23 1 12 0 0 0

26 1 16 45 1 0

35 1 12 40 1 0

41 1 18 46 0 0

49 1 11 40 1 0

F5manjse mesto F5vas F5kmetija F7centGndrZenski

1 0 0 1 00000000

4 0 1 0 -03589744

6 0 1 0 -03589744

16 0 1 0 00000000

22 1 0 0 00000000

23 1 0 0 00000000

26 0 0 1 36410256

35 0 0 0 -03589744

41 1 0 0 00000000

49 1 0 0 -13589744

Spomnimo se da je matricna formula za izracun regresijskih koeficientov

b = (XprimeX)minus1Xprimey

Formuli za izracun napovedi in rezidualov pa

yprime = Xb

e = y minus yprime

3 poglavje ndash Analiza variance in linearna regresija 179

Na podlagi tega lahko izracunamo s[e] R2 popravljen R2pop in F -statistiko

se =

nsumi=1

e2

nminus k

R2 =var(yprime)

var(y)

R2pop = 1minus s2e

var(y)= 1minus (1minusR2)

nminus 1

nminus k

F =

nsumi=1

yprimei minus y

k minus 1nsumi=1

yi minus yprimei

nminus k

=

R2

k minus 11minusR2

nminus k

Izracunajmo

gt blt-solve(t(X) X) t(X) y

gt b

[1]

konstanta -5052516310

F7 2455524459

F21 -020132728

O1F2Zenski -3264379964

F5Predmestje -1607824506

F5Manjse mesto 829629531

F5Vas -701999244

F5Kmetija -002074509

F7centGndrZenski -563564466

gt kar je enako kot (do natancnosti racunalnika)

gt coef(fitG91_F7F21O1F2F5int2)

(Intercept) F7 F21

-5052516310 2455524459 -020132728

O1F2zenski F5predmestje F5manjse mesto

-3264379964 -1607824506 829629531

F5vas F5kmetija F7centGndrZenski

-701999244 -002074509 -563564466

gt yNap lt- X b

gt e lt- y - yNap

gt nlt-dim(X)[1]

gt klt-length(b)

180 33 Linearna regresija

gt sErrlt-sqrt(sum(e^2)(n-k))

gt sErr

[1] 1015947

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$sigma

[1] 1015947

gt R2=var(yNap)var(y)

gt R2

[1]

[1] 03207477

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$rsquared

[1] 03207477

gt R2poplt-1-sErr^2var(y)

gt R2pop

[1] 03028137

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$adjrsquared

[1] 03028137

gt F=(R2(k-1))((1-R2)(n-k))

gt F

[1]

[1] 1788484

gt (df1lt-k-1)

[1] 8

gt (df2lt-n-k)

[1] 303

gt pf(q=Fdf1=df1df2=df2lowertail =FALSE)

[1]

[1] 7405752e-22

gt cat(captureoutput(summary(fitG91_F7F21O1F2F5int2))[27]n)

F-statistic 1788 on 8 and 303 DF p-value lt 22e-16

gt p-vrednosti se malce razlikujeta a sta obe prakticno 0

gt verjetno gre za vprasanje racunske natancnosti

Izracunajmo se variancno-kovariancno matriko za ocene regresijskih koeficientov iniz nje se standardne napake za ocene regresijskih koeficientov Na podlagi variancno-kovariancne matrike lahko izracunamo se korelacijsko matriko ocen regresijskih ko-eficientov (za ocenjevanje multikolinearnosti)

Sb = s2e middot XprimeXminus1

se(bi) =radicSb[i i]

w = diag

(1radic

diag(Sb)

)

3 poglavje ndash Analiza variance in linearna regresija 181

Cb = w middot Sb middot w

Na podlagi ocen standardnih napak pa lahko izracunamo t-statistike kot t = bise(bi))

gt Sblt-sErr^2solve(t(X) X)

gt Sb

konstanta F7 F21

konstanta 2151921149 -10883837598 -938010552

F7 -108838376 840745537 003971066

F21 -9380106 003971066 022726613

O1F2Zenski -95163435 071978854 038619681

F5Predmestje -395835418 228029391 010262743

F5Manjse mesto -289613230 -252450622 -106289703

F5Vas -360299394 423246067 -143584413

F5Kmetija -575035961 1720043074 -073922389

F7centGndrZenski 104849908 -823715261 -012557392

O1F2Zenski F5Predmestje F5Manjse mesto

konstanta -951634352 -3958354175 -289613230

F7 07197885 22802939 -2524506

F21 03861968 01026274 -1062897

O1F2Zenski 1385811962 90741196 3802999

F5Predmestje 90741196 6040986074 357508039

F5Manjse mesto 38029995 3575080389 509585361

F5Vas 13810615 3591427268 366193057

F5Kmetija 423857670 3664741109 363085097

F7centGndrZenski -13605987 05596501 8301651

F5Vas F5Kmetija F7centGndrZenski

konstanta -360299394 -5750359613 1048499077

F7 4232461 172004307 -82371526

F21 -1435844 -07392239 -01255739

O1F2Zenski 1381062 423857670 -13605987

F5Predmestje 359142727 3664741109 05596501

F5Manjse mesto 366193057 3630850975 83016508

F5Vas 448811895 3779859757 21067811

F5Kmetija 377985976 7208876587 -84195178

F7centGndrZenski 2106781 -84195178 147728263

gt kar je enako kot

gt vcov(fitG91_F7F21O1F2F5int2)

gt max(abs(Sb-vcov(fitG91_F7F21O1F2F5int2)))

[1] 1364242e-12

gt seblt-sqrt(diag(Sb))

gt seb

182 33 Linearna regresija

konstanta F7 F21

463888041 28995612 04767244

O1F2Zenski F5Predmestje F5Manjse mesto

117720515 245784175 225739974

F5Vas F5Kmetija F7centGndrZenski

211851810 268493512 38435435

gt enakost z izracunom s funkcijo lm bomo preverili kasneje

gt

gt wlt-diag(1seb)

gt Cblt-w Sb w

gt kar je enako kot

gt cov2cor(vcov(fitG91_F7F21O1F2F5int2))

gt max(abs(Cb-cov2cor(vcov(fitG91_F7F21O1F2F5int2))))

[1] 144329e-15

gt t-statistika

gt tblt-bseb

gt pblt-2pt(-abs(tb)df=n-k)

gt tabela

gt cbind(b=asvector(b)Std napaka=asvector(seb)

t=asvector(tb)p-vrednost=asvector(pb))

b Std napaka t p-vrednost

[1] -5052516310 463888041 -10891671826 2769457e-01

[2] 2455524459 28995612 84686070004 1087724e-15

[3] -020132728 04767244 -04223137835 6730955e-01

[4] -3264379964 117720515 -27729915791 5898550e-03

[5] -1607824506 245784175 -06541611171 5135042e-01

[6] 829629531 225739974 03675155600 7134911e-01

[7] -701999244 211851810 -03313633444 7405991e-01

[8] -002074509 268493512 -00007726479 9993840e-01

[9] -563564466 38435435 -14662627672 1436137e-01

gt kar je enako kot

gt summary(fitG91_F7F21O1F2F5int2)$coef

Estimate Std Error t value

(Intercept) -5052516310 463888041 -10891671826

F7 2455524459 28995612 84686070004

F21 -020132728 04767244 -04223137835

O1F2zenski -3264379964 117720515 -27729915791

F5predmestje -1607824506 245784175 -06541611171

F5manjse mesto 829629531 225739974 03675155600

F5vas -701999244 211851810 -03313633444

F5kmetija -002074509 268493512 -00007726479

F7centGndrZenski -563564466 38435435 -14662627672

Pr(gt|t|)

3 poglavje ndash Analiza variance in linearna regresija 183

(Intercept) 2769457e-01

F7 1087724e-15

F21 6730955e-01

O1F2zenski 5898550e-03

F5predmestje 5135042e-01

F5manjse mesto 7134911e-01

F5vas 7405991e-01

F5kmetija 9993840e-01

F7centGndrZenski 1436137e-01

Seveda bi se na tak nacin dalo izracunati se marsikaj a bomo tu zakljucili

34 Viri za poglabljanje znanja

Za poglabljanje snovi iz tega poglavja so uporabni tudi spletni viri navedeni vpodpodpoglavju 191 (Spletni viri) a jih tu posebej ne navajam Tu izpostavljamsamo enega s pomocjo katerega je mogoce zelo enostavno in hitro najti ustrezneukaze za izvedbo zelenih analiz

Quick-R Odlicen hitri vodic po R-ju za uporabnike drugih statisticnih paketov(SPSS SAS Stata ) se pravi za tiste ki statistiko ze znajo URL httpwwwstatmethodsnet

Za poglabljanje znanja iz analize variance in linearne regresije je primerna vecinaucbenikov s teh podrocij na primer

bull Fox John 2008 Applied regression analysis and generalized linear modelsLos Angeles Sage

bull Kosmelj Blazenka 2005 Analiza odvisnosti za vzorcne podatke LjubljanaEkonomska fakultetaSlovenski ucbenik ki ga uporabljajo na Ekonomski fakulteti Univerze v Lju-bljani

bull Iversen Gudmund R in Helmut Norpoth 2002 Analysis of variance NewburyPark London New Delhi Sage

Vsebina tega poglavja je tudi vsaj deloma pokrita v nekaterih ucbenikih omenjenihv prejsnjem poglavju

Izvedbo analize variance in linearne regresije v R-ju pa pokrivajo sledeci ucbeniki

184 35 Vprasanja za ponavljanje

bull Faraway Julian James 2005 Linear models with R Boca Raton Chapmanamp HallCRC24

Najbolj priporocam prav ta vir

bull Dalgaard Peter 2002 Introductory statistics with R New York Springer25

bull Muenchen Robert A 2011 R for SAS and SPSS users New York Springer26

Se posebej primerna za tiste ki ze poznajo SPSS ali SAS sicer pa zelo zgoscenaobravnava

bull Verzani John 2005 Using R for introductory statistics Boca Raton Chapmanamp HallCRC27

V bolj omejenem obsegu

35 Vprasanja za ponavljanje

1 Katere so predpostavke klasicne enofaktorske analize variance in kako jih pre-verjamo

2 Analizo variance lahko izvedemo z vec funkcijami Katerimi Kaksne so razlikemed njimi oziroma katere so prednosti in slabosti posameznih funkcij

3 Ali je vrstni red faktorjev pri vecfaktorski analizi variance pomemben Poja-snite

4 V kaksni obliki morajo biti podatki ce zelimo (s funkcijo aov) izvesti enofak-torsko analizo variance za odvisne vzorce

5 Ali lahko ce na nekem podatkovju z manjkajocimi podatki veckrat zazenemolinearno regresijo z razlicnimi neodvisnimi spremenljivkami pricakujemo daso vse analize izvedene na istih enotah

6 Kako v linearno regresijo s funkcijo lm vkljucimo nominalne spremenljivkeAli jih moramo predhodno kaj transformirati Na kaj moramo biti pri vklju-cevanju pozorni

7 Kako lahko s funkcijami za linearno regresijo vsaj priblizno ocenimo tudi ne-linearne zveze Kaksne so pomanjkljivosti tega pristopa

8 Kako (s katero funkcijo in kaj uporabimo kot argument) narisemo standardnegrafe za diagnostiko oziroma preverjanje predpostavk linearne regresije

24Starejsa in manj obsezna razlicica knjige je prostodostopna tudi na httpcranr-project

orgdoccontribFaraway-PRApdf25Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani26Dostopna preko SpringerLink z racunalnikov Fakultete za druzbene vede Univerze v Ljubljani27Starejsa in manj obsezna razlicica knjige je dostopna tudi na httpwwwmathcsicunyedu

StatisticsRsimpleRprintablesimpleRpdf

3 poglavje ndash Analiza variance in linearna regresija 185

9 Kako preverimo ali neka nominalna spremenljivka z vec kot dvema razlic-nima vrednostma vpliva na odvisno spremenljivko ce izlocimo vplive ostalihneodvisnih spremenljivk

10 Ali lahko na podlagi standardnega izpisa ene analize ugotavljamo ali so pov-precne vrednosti katerihkoli dveh kategorij nominalne spremenljivke statisticnoznacilno razlicne (pri izbrani stopnji tveganja) ob enakih vrednostih ostalih ne-odvisnih spremenljivk

11 Kako v formuli (argumentu funkcije lm) oznacimo da zelimo vkljuciti inte-rakcijo

12 Navedite vsaj en nacin ocenjevanja multikolinearnosti ki pove tudi pri katerihspremenljivkah se multikolinearnost pojavlja

13 Kaj nam povedo grafikoni delnih ostankov (oziroma component + residualplot) oziroma za kaksen namen jih uporabljamo

187

4 poglavje

Za konec

V tem ucbeniku je precej natancno predstavljena uporaba R-ja tako za opravljanjesplosnih opravil ki se uporabljajo pri vecini analiz (priprava podatkov risanje gra-fov) kot tudi za izvedbo univariatnih in bivariatnih statisticnih analiz ter multipleregresije Sama statisticna teorija je obravnavana le toliko kolikor se mi je zdelonujno potrebno

Ucbenik je sicer prvenstveno namenjen tistim ki ze poznajo osnove statistike radipa bi se naucili le-to izvajati s pomocjo R-ja Poleg tega pa je namenjen tudi vsemki bi radi le spoznali osnovno delovanje R-ja ne glede na to na katerem podrocjuga nameravajo uporabljati Za te je predvsem koristno prvo najsplosnejse in tudinajobseznejse poglavje Naj ucbenik zakljucim s pregledom nekaterih podrocij kjerse R lahko uporablja ter navedbo nekaterih virov za uporabo R-ja na teh podrocjih

Multivariatna analiza je obicajno naslednja stopnja pri ucenju statistike ki sledispoznavanju multiple regresije 28 Kot ze samo ime pove gre pri multivaria-tni analizi predvsem za socasno obravnavo vec spremenljivk Najbolj znanemetode multivariatne analize so razvrscanje v skupine metoda glavnih kom-ponent in faktorska analiza Nekatere metode multivariatne analize so pred-stavljene tudi v Uvodnem primeru Tukaj navajam par relevantnih ucbenikov

bull Everitt Brian 2005 An R and S-PLUS companion to multivariate ana-lysis London Springer

bull Everitt Brian in Torsten Hothorn 2011 An introduction to applied mul-tivariate analysis with R New York Springer

Podatkovno rudarjenje je ime za metode katerih glavni cilj je odkrivanje upo-rabnega veljavnega nepricakovanega in razumljivega znanja iz podatkov Po-gosto se uporablja na ogromnih podatkih pogosto ne-strukturiranih in prido-bljenih iz razlicnih virov Kljub navidezno velikim razlikam se v veliki meri

28Multipla regresija pravzaprav ze sodi v podrocje Multivariatne analize

188

prekriva s statistiko se bolj pa s podrocjem strojnega ucenja (nekateri sma-trajo celo da sta to le dve razlicni imeni za isto podrocje) zato ti podrocjiomenjam skupaj Nekaj ucbenikov ki obravnavajo podatkovno rudarjenje alistrojno ucenje v R-ju

bull Williams Graham J 2011 Data mining with Rattle and R the art ofexcavating data for knowledge discovery New York SpringerTo se posebej priporocam za zacetnike

bull Zhao Yanchang in Yonghua Cen 2013 Data Mining Applications withR 1 izdaja Amsterdam Boston Academic Press

bull Zhao Yanchang 2012 R and Data Mining Examples and Case Studies1 izdaja Amsterdam Academic Press

bull Lantz Brett 2013 Machine Learning with R Packt Publishing

Metode ponovnega vzorcenja so metode ki na podlagi ponovnega vzorcenjaomogocajo preverjanje domnev ali izracun intervalov v primerih ko se spre-menljivke ne porazdeljujejo (niti priblizno) normalno kar obicajno predvide-vajo klasicne metode Spodaj navajam tri ucbenike Phillipa Gooda ki po-krivajo uporabo metod ponovnega vzorcenja se posebej v R-ju na razlicnihnivojih

bull Good Phillip I 2011 Practitioners Guide to Resampling for Data Ana-lysis Data Mining and Modeling Zany BooksZraven je koda tako za R kot za Stato

bull mdashmdashmdash 2012 Introduction to Statistics Through Resampling Methods andR 2 izdaja WileySe posebej primeren za zacetnike in zelo vezan na R

bull mdashmdashmdash 2013 Resampling Methods 3 izdaja BirkhauserR je le eden od obravnavanih programskih jezikovpaketov

Statisticna analiza financnih podatkov je tudi podrocje kjer se pogosto upo-rablja R Kot samo ime pove gre za uporabo statistike in financne matema-tike za analizo financnih podatkov za (med drugim) upravljanje s tveganjinapovedovanje vrednosti financnih kazalnikov upravljanje portfelja Nekajucbenikov ki obravnavajo uporabo R-ja na tem podrocju

bull Carmona Rene 2013 Statistical Analysis of Financial Data in R 2izdaja Springer New York

bull Daroczi Gergely Edina Berlinger Peter Csoka Daniel Havran MartonMichaletzky Zsolt Tulassay Kata Varadi in Agnes Vidovics-Dancs 2013Introduction to R for Quantitative Finance Packt Publishing

bull Arratia Argimiro 2014 Computational Finance An Introductory Coursewith R Atlantis Press

4 poglavje ndash Za konec 189

Biostatistika se ukvarja s statisticno analizo na podrocju biologije medicine in so-rodnih ved Ukvarja se na primer z ugotavljanjem vplivov razlicnih dejavnikovna rast in razvoj rastlin in zivali ter na njihove lastnosti vplivom zdravil innacinov zdravljenja na potek bolezni in se bi lahko nastevali Na tem podrocjusta R njemu soroden S-PLUS med najpogosteje uporabljenimi programskimipaketi Nekaj knjig ki obravnavajo metode s tega podrocja v R-ju

bull Brostrom Goran 2012 Event History Analysis with R Boca RatonCRC Press

bull MacFarland Thomas W 2013 Introduction to Data Analysis and Graphi-cal Presentation in Biostatistics with R 1 izdaja Springer InternationalPublishing

bull Shahbaba Babak 2011 Biostatistics with R 1 izdaja New York Sprin-ger

Analiza ogromnih podatkov in spleta postaja vse bolj pomembno podrocje rdquoBigdatardquo (oz ogromni podatki) je tako imenovani rdquobuzzwordrdquo ki pridobiva na po-menu Gre za analizo podatkov ki jih ne moremo shraniti v delovni spominracunalnika zato so za analizo potrebni posebni pristopi Pogosto se podatkipridobijo neposredno na svetovnem spletu Tudi sicer narasca zanimanje zaanalizo podatkov ki so dostopni na spletu se posebej na socialnih omrez-jih Tudi za ta namen se lahko uporabi R Po eno delo z vsakega podrocja vpovezavi z R-jem navajam spodaj

bull Danneman Nathan in Richard Heimann 2014 Social Media Mining withR Packt Publishing

bull Prajapati Vignesh 2013 Big Data Analytics with R and Hadoop PacktPublishing

To seveda niso vsa podrocja kjer se Ruporablja vendar pa se iz navedenega vidi daje R res uporaben na zelo razlicnih podrocjih lahko bi rekli da je uporaben povsodkjer se uporablja analiza podatkov Ucenje R-ja je torej koristno za vsakega ki senamerava resno ukvarjati z analizo podatkov ne glede na sicersnje podrocje delaUpam da bo pricujoc ucbenik v pomoc vsaj pri zacetnem spoznavanju tega resrdquomocnegardquo programskega okolja

191

Literatura

Arratia Argimiro 2014 Computational Finance An Introductory Course with RAtlantis Press

Brostrom Goran 2012 Event History Analysis with R Boca Raton CRC Press

Buuren Stef in Karin Groothuis-Oudshoorn 2011 MICE Multivariate imputationby chained equations in R Journal of Statistical Software 45 (3) URL http

docutwentenl78938

Buuren Stef van 2012 Flexible imputation of missing data Boca Raton FL CRCPress

Carmona Rene 2013 Statistical Analysis of Financial Data in R 2 izdaja SpringerNew York

Dalgaard Peter 2002 Introductory statistics with R New York Springer

Danneman Nathan in Richard Heimann 2014 Social Media Mining with R PacktPublishing

Daroczi Gergely Edina Berlinger Peter Csoka Daniel Havran Marton MichaletzkyZsolt Tulassay Kata Varadi in Agnes Vidovics-Dancs 2013 Introduction to Rfor Quantitative Finance Packt Publishing

Everitt Brian 2005 An R and S-PLUS companion to multivariate analysis LondonSpringer

Everitt Brian in Torsten Hothorn 2011 An introduction to applied multivariateanalysis with R New York Springer

Faraway Julian James 2005 Linear models with R Boca Raton Chapman ampHallCRC

mdashmdashmdash 2006 Extending the linear model with R generalized linear mixed effectsand nonparametric regression models Boca Raton Chapman amp HallCRC

Ferligoj Anuska 1994 Osnove statistike na prosojnicah Ljubljana samozalozbaZenel Batagelj

192 Literatura

Ferligoj Anuska Tina Kogovsek Willem E Saris Germa Coenders in ValentinaHlebec 2000 Kakovost merjenja egocentricnih socialnih omrezij [datoteka po-datkov] Ljubljana Univerza v Ljubljani Fakulteta za druzbene vede Centerza metodologijo in informatiko [izdelava] 2000 Slovenija Ljubljana Univerza vLjubljani Arhiv druzboslovnih podatkov [distribucija] 2012

Fox John 2008 Applied regression analysis and generalized linear models LosAngeles Sage

Gandrud Christopher 2013 Reproducible research with R and RStudio BocaRaton Chapman amp HallCRC

Gelman Andrew in Jennifer Hill 2006 Data Analysis Using Regression and Multi-levelHierarchical Models Cambridge New York Cambridge University Press

Good Phillip I 2011 Practitioners Guide to Resampling for Data Analysis DataMining and Modeling Zany Books

mdashmdashmdash 2012 Introduction to Statistics Through Resampling Methods and R 2izdaja Wiley

mdashmdashmdash 2013 Resampling Methods 3 izdaja Birkhauser

Holm Sture 1979 A Simple Sequentially Rejective Multiple Test Procedure Scandi-navian Journal of Statistics 6 (2) 65ndash70 URL httpwwwjstororgstable

4615733

IBM 2011 Sum of Squares (IBM SPSS help) URL httppicdheibmcom

infocenterspssstatv20r0m0topiccomibmibmcomdocbannerhtm

Iversen Gudmund R in Helmut Norpoth 2002 Analysis of variance NewburyPark London New Delhi Sage

Jesenko Joze in Manca Jesenko 2007 Multivariatne statisticne metode KranjModerna organizacija

Johnson Richard A in Dean W Wichern 2007 Applied multivariate statisticalanalysis Upper Saddle River Pearson Prentice Hall Pearson Education Interna-tional

Kastelec Damijana in Katarina Kosmelj 2009 Statisticna analiza po-datkov s programoma Excel 2003 in R Ljubljana Biotehniska fa-kulteta URL httpwwwbfuni-ljsifileadmingroups2763C5

A1tudijsko_gradivoSAP_2003pdf

Kosmelj Blazenka 2005 Analiza odvisnosti za vzorcne podatke Ljubljana Eko-nomska fakulteta

Kosmelj Blazenka in Joze Rovan 2007 Statisticno sklepanje Ljubljana Ekonomskafakulteta

Literatura 193

Lantz Brett 2013 Machine Learning with R Packt Publishing

Leisch Friedrich 2002 Sweave Dynamic Generation of Statistical Reports UsingLiterate Data Analysis V Compstat ur Professor Dr Wolfgang Hardle in Profes-sor Dr Bernd Ronz 575ndash580 Physica-Verlag HD URL httplinkspringer

comchapter101007978-3-642-57489-4_89 DOI 101007978-3-642-57489-4 89

Levin Jack James Alan Fox in David R Forde 2013 Elementary Statistics inSocial Research (12th Edition) Pearson

MacFarland Thomas W 2013 Introduction to Data Analysis and Graphical Pre-sentation in Biostatistics with R 1 izdaja Springer International Publishing

Matloff Norman 2011 The Art of R Programming A Tour of Statistical SoftwareDesign San Francisco No Starch Press

Minium Edward W Robert C Clarke in Theodore Coladarci 1999 Elements ofstatistical reasoning New York Wiley

Muenchen Robert A 2011 R for SAS and SPSS users New York Springer

Murrell Paul 2011 R graphics Boca Raton CRC Press

Prajapati Vignesh 2013 Big Data Analytics with R and Hadoop Packt Publishing

Rubin Donald B 1987 Multiple imputation for nonresponse in surveys New YorkWiley

mdashmdashmdash 1996 Multiple Imputation After 18+ Years Journal of the AmericanStatistical Association 91 (434) 473ndash489 doi 1023072291635 URL http

wwwjstororgstable2291635

Shahbaba Babak 2011 Biostatistics with R 1 izdaja New York Springer

Snijders Tom A B in Roel J Bosker 2012 Multilevel analysis an introduction tobasic and advanced multilevel modeling Los Angeles Sage

Tabachnick Barbara G in Linda S Fidell 2007 Using multivariate statisticsBoston PearsonAllyn amp Bacon

Tos Niko Brina Malnar in skupina 2004 Slovensko javno mnenje 20042 Evropskadruzboslovna raziskava [datoteka podatkov] Slovenija Ljubljana Fakulteta zadruzbene vede Center za raziskovanje javnega mnenja in mnozicnih komunikacij[izdelava] 2004 Slovenija Ljubljana Univerza v Ljubljani Arhiv druzboslovnihpodatkov [distribucija] 2009

Venables William N in Brian D Ripley 2000 S programming New York Springer

Verzani John 2005 Using R for introductory statistics Boca Raton Chapman ampHallCRC

194 Literatura

Welch B L 1951 On the Comparison of Several Mean Values An AlternativeApproach Biometrika 38 (34) 330ndash336 doi 1023072332579 URL http

wwwjstororgstable2332579

Wickham Hadley 2009 ggplot2 Elegant Graphics for Data Analysis DordrechtNew York Springer URL httppubliceblibcomEBLPublicPublicView

doptiID=511468

Wilkinson Leland in Graham Wills 2005 The grammar of graphics New YorkSpringer

Williams Graham J 2011 Data mining with Rattle and R the art of excavatingdata for knowledge discovery New York Springer

Wonnacott Thomas H in Ronald J Wonnacott 1990 Introductory statistics NewYork Wiley

Wooldridge Jeffrey M 2002 Econometric analysis of cross section and panel dataCambridge Massachusetts MIT Press

Xie Yihui 2013 Dynamic report generation with r and knitr Boca Raton Cha-pman amp Hall Crc

Zhao Yanchang 2012 R and Data Mining Examples and Case Studies 1 izdajaAmsterdam Academic Press

Zhao Yanchang in Yonghua Cen 2013 Data Mining Applications with R 1 izdajaAmsterdam Boston Academic Press

Zuur Alain F Elena N Ieno in Erik HWG Meesters 2009 A Beginnerrsquos Guideto R New York Springer

  • Predgovor
  • Kazalo
  • Slike
  • Tabele
  • Uvod v R
    • Uvodni primer
    • Osnovne informacije
      • Osnovne racunske operacije
      • Spremenljivke
      • Uporaba funkcij in pomoci
      • Paketki
      • Drugi osnovni podatki
        • Podatkovne strukture
          • Osnovni podatkovni tipi
          • Vektor
          • Nominalne in ordinalne spremenljivke
          • Seznam
          • Matrika
          • Polje ndash Array
          • Podatkovni okvir ndash Data frame
          • Vaje
            • Funkcije in programiranje
              • Nekaj koristnih funkcij
              • Definiranje funkcij
              • Programski tok
              • Vaje
                • Delo z datotekami
                  • Tekstovne datoteke
                  • Shranjevanje in branje objektov
                  • Branje in pisanje datotek drugih programov
                  • Vaje
                    • Risanje
                      • Visokonivojske funkcije za risanje
                      • Nizkonivojske funkcije za risanje
                      • Shranjevanje slik
                      • Vaje
                        • Priprava dokumentov z rezultati iz R-ja
                        • Rešitve vaj
                          • Podatkovne strukture
                          • Funkcije in programiranje
                          • Risanje
                            • Viri za poglabljanje znanja
                              • Spletni viri
                              • Knjižni viri
                                • Vprašanja za ponavljanje
                                  • Univariatna in bivariatna statistika
                                    • Uporabljeni podatki
                                    • Osnovne statistike
                                    • Preverjanje domnev o srednjih vrednostih in pripadajoci intervali zaupanja
                                      • Preverjanje domneve o srednji vrednosti in pripadajoci interval zaupanja
                                      • Preverjanje domneve o razliki med srednjima vrednostma na odvisnih vzorcih in pripadajoci interval zaupanja
                                      • Preverjanje domneve o razliki med srednjima vrednostma na neodvisnih vzorcih in pripadajoci interval zaupanja
                                        • Preverjanje domnev o deležih in pripadajoci intervali zaupanja
                                          • Preverjanje domneve o vrednosti deleža in pripadajoci interval zaupanja
                                          • Preverjanje domnev o razliki med deležema na neodvisnih vzorcih in pripadajoci intervali zaupanja
                                            • Frekvencne in kontingencne tabele
                                              • Frekvencne tabele
                                              • Kontingencne tabele
                                              • Povezanost spremenljivk
                                                • Korelacija
                                                • Viri za poglabljanje znanja
                                                • Vprašanja za ponavljanje
                                                  • Analiza variance in linearna regresija
                                                    • Uporabljeni podatki
                                                    • Analiza variance (ANOVA)
                                                      • Enofaktorska analiza variance za neodvisne vzorce
                                                      • Vecfaktorska analiza variance za neodvisne vzorce
                                                      • Enofaktorska analiza variance za odvisne vzorce
                                                        • Linearna regresija
                                                          • Dodatne spremenljivke
                                                          • Bivariatna regresija
                                                          • Nelinearna regresija
                                                          • Multipla regresija
                                                          • Vkljucevanje nominalnihordinalnih spremenljivk
                                                          • Interakcije med spremenljivkami
                                                          • Preverjanje predpostavk
                                                          • V razmislek
                                                          • Izracun na roke
                                                            • Viri za poglabljanje znanja
                                                            • Vprašanja za ponavljanje
                                                              • Za konec
                                                              • Literatura
Page 7: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 8: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 9: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 10: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 11: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 12: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 13: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 14: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 15: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 16: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 17: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 18: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 19: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 20: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 21: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 22: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 23: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 24: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 25: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 26: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 27: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 28: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 29: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 30: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 31: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 32: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 33: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 34: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 35: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 36: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 37: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 38: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 39: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 40: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 41: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 42: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 43: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 44: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 45: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 46: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 47: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 48: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 49: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 50: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 51: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 52: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 53: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 54: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 55: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 56: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 57: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 58: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 59: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 60: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 61: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 62: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 63: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 64: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 65: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 66: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 67: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 68: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 69: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 70: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 71: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 72: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 73: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 74: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 75: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 76: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 77: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 78: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 79: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 80: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 81: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 82: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 83: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 84: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 85: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 86: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 87: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 88: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 89: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 90: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 91: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 92: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 93: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 94: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 95: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 96: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 97: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 98: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 99: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 100: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 101: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 102: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 103: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 104: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 105: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 106: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 107: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 108: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 109: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 110: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 111: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 112: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 113: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 114: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 115: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 116: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 117: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 118: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 119: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 120: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 121: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 122: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 123: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 124: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 125: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 126: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 127: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 128: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 129: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 130: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 131: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 132: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 133: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 134: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 135: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 136: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 137: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 138: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 139: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 140: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 141: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 142: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 143: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 144: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 145: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 146: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 147: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 148: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 149: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 150: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 151: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 152: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 153: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 154: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 155: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 156: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 157: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 158: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 159: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 160: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 161: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 162: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 163: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 164: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 165: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 166: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 167: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 168: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 169: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 170: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 171: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 172: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 173: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 174: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 175: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 176: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 177: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 178: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 179: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 180: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 181: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 182: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 183: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 184: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 185: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 186: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 187: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 188: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 189: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 190: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 191: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 192: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 193: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 194: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 195: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 196: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 197: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 198: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 199: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 200: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 201: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 202: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 203: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 204: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji
Page 205: Osnovna statisticna analiza v R-ju...Ales Ziberna Osnovna statisti cna analiza v R-ju Ale s Ziberna 12. julij 2016 CIP - Katalo zni zapis o publikaciji Narodna in univerzitetna knji