Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
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()
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()
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