Lær deg R (9788245022131)

Page 1

S I L J E S Y N N Ø V E LY D E R H E R M A N S E N

Statistikk er et håndverk mer enn en vitenskap. Derfor er verktøyet viktig. Silje Synnøve Lyder Hermansen inviterer leseren med på et samarbeid: Gjennom boka jobber de sammen i RStudio og går gjennom analysestadiene skritt for skritt. De laster inn data, tilrettelegger disse, gjør foranalyser og regresjonsanalyser. Hermansen legger stor vekt på at leseren skal forstå hva som skjer i prosessen, og kunne kommunisere resultatene. Med Lær deg R følger datasett, øvelsesoppgaver og løsningsforslag, slik at det også er lett å prøve seg på egen hånd. Alt du trenger er en datamaskin, internett og denne boka.

ISBN 978-82-450-2213-1

,!7II2E5-accbdb!

SIL JE SYNNØ VE LYDER HERMANSEN L ÆR DEG R

Velkommen til R-universet! Lær deg R er introduksjonen for deg som ønsker et godt arbeidsverktøy for statistisk analyse. R har vokst enormt i popularitet de siste årene, og med god grunn. R er gratis og dekker analysebehovene til så vel nybegynnere som eksperter innenfor kvantitativ metode.

LÆR DEG R En innføring i statistikkprogrammets muligheter

Silje Synnøve Lyder Hermansen jobber som postdoktor ved PluriCourts – Senter for forskning om internasjonale domstolers legitimitet. Hun har bred erfaring som foreleser i forskningsmetode for studenter på både bachelor- og masternivå, og som kursholder for ulike yrkesgrupper. Det var også som underviser at hun så behovet for en lettfattelig introduksjonsbok til R. Hermansen har en doktorgrad i statsvitenskap fra Universitetet i Oslo, forsker på politisk og juridisk adferd og har publisert vitenskapelige artikler i tidsskrifter som Party Politics og The Journal of Legislative Studies.



LĂŚr deg R



Silje Synnøve Lyder Hermansen

Lær deg R En innføring i statistikkprogrammets muligheter


Copyright © 2019 by Vigmostad & Bjørke AS All Rights Reserved 1.utgave / 1. opplag ISBN: 9788245022131 Forsidebilde: Arne Malmedal, Uten tittel (1993), tempera på lerret og akryl på tre Foto: Morten Thorkildsen © Nasjonalmuseet for kunst, arktitektur og design/BONO 2019 Omslag ved forlaget Design og sats: Bøk Oslo A/S Spørsmål om denne boken kan rettes til: Fagbokforlaget Kanalveien 51 5068 Bergen Tlf.: 55 38 88 00 Faks: 55 38 88 01 e-post: fagbokforlaget@fagbokforlaget.no www.fagbokforlaget.no Materialet er vernet etter åndsverkloven. Uten uttrykkelig samtykke er eksemplarfremstilling bare tillatt når det er hjemlet i lov eller avtale med Kopinor.


Til Bjørn



FORORD Første gang jeg evnet å åpne et datasett i R, lå jeg på stuegulvet og spilte luftgitar til «We are the champions». Det var i 2008 – før RStudio revolusjonerte brukeropplevelsen – og han som hadde bedt meg om å lære R, hadde glemt å fortelle hvordan. Jeg har skrevet denne boka for at du skal slippe å sprenge høytalerne med Queen på en vanlig ukedag. Lær deg R leier deg gjennom dine første skritt i R-universet. Boka gir en praktisk innføring i dataanalyse ved hjelp av R. Det vil si at den beste måten å lese den på er ved tastaturet. Lek med eksemplene til du forstår hva som foregår! Boka kan også fint kryssleses med Simen Solbakkens Statistikk for nybegynnere. Jeg gir deg et enkelt R-vokabular som kan ta deg langt. Hensikten er å lære kjernen i R-språket og forstå svarene R gir. Derfor bruker vi også mye tid på å tegne. Kan du ikke tegne hva du har funnet, har du ikke forstått det! Boka er utstyrt med en tilleggsressurs i form av en «R-pakke» (laerdegR). Der finner du datasettene jeg bruker i eksemplene. Den inneholder også løsningsforslag med oppgavene som hører med hvert kapittel. Når du jobber med denne boka, anbefaler jeg deg å hente inn laerdegR fra det digitale biblioteket og skrive alle kommandoer sammen med meg. Det er den beste måten å forstå hva jeg forklarer, og det er en utmerket teknikk for å huske hva du har lært. Pakken finnes åpent tilgjengelig på min side: https://github.com/SiljeHermansen/laerdegR. Første del (kapittel 1-4) hjelper deg i gang. I første kapittel installerer vi R og RStudio, og i kapittel 2 går vi i dialog med R. Du behøver ikke lese hele den første delen, men installer programmene og arbeid deg fram til og med datamatriser i kapittel 2 før du går videre. Andre del av boka (kapittel 5 og 6) utforsker og tilrettelegger data for regresjonsanalyser. Du bør jobbe deg gjennom kapittel 5 om beskrivende statistikk, men omkodingene i kapittel 6 kan du spare til du ser behovet. På dette tidspunktet bør du også gjøre deg kjent med kapittel 3 og 4 før du går videre. Tredje del av boka (kapittel 7-10) går gjennom regresjonsanalyser. Om du skal prioritere, bør du lese kapittel 7. De andre kapitlene kan du lese ved behov. En hjertelig takk til Knut-Andreas Christophersen, Henrik Skaug Sætra og Stein Arne Brekke som har fungert som fagkonsulenter til boka. Tilsvarende har Fagbokforlagets redaktør, Kristin Eliassen, gjort en helteinnsats. Tilbakemeldingene deres


8

Forord

har vært uvurderlige. Alle feil og mangler er likevel mine. Store deler av boka ble skrevet på Bicks. Toril Syverstads utømmelige flyt av kaffe, crispy duck-salater og yoghurter har gjort livet verdt å leve. Til sist vil jeg takke Tatjana Stankovic. Uten hennes entusiasme hadde jeg ikke våget meg som fagbokforfatter. Oslo, juni 2019 Silje Synnøve Lyder Hermansen


INNHOLD

FORORD. . ...................................................................................................................... 7 DEL I

KOM I GANG............................................................................................................... 19 KAPITTEL 1

HVA ER R?................................................................................................................... 21 1.1 Et statistikkprogram.................................................................................................. 21 1.1.1 Installere programmet........................................................................................ 22 1.1.1.1 Installere R............................................................................................ 22 1.1.1.2 Installere og oppdatere RStudio. . ............................................................ 22 1.2 Et programmeringsspråk............................................................................................ 24 KAPITTEL 2

R SOM KALKULATOR. . ............................................................................................ 27 2.1 Åpne RStudio for første gang..................................................................................... 28 2.2 Datatyper i R.............................................................................................................. 32 2.2.1 Vektorer. . .......................................................................................................... 32 2.2.1.1 Indeksering........................................................................................... 33 2.2.1.2 Regneoperasjoner. . ................................................................................ 34 2.2.1.3 Funksjoner og argumenter..................................................................... 35 2.2.1.4 Sortere vektorer.................................................................................... 37 2.2.2 Matriser............................................................................................................ 38 2.2.2.1 Opprette en matrise. . ............................................................................. 38 2.2.2.2 Opprette et datasett.............................................................................. 39 2.2.2.3 Indeksering........................................................................................... 41 2.2.2.4 Målenivå............................................................................................... 42 2.2.3 Lister................................................................................................................ 45 2.2.3.1 Opprette en liste. . .................................................................................. 46 2.2.3.2 Indeksering........................................................................................... 46 Oppgaver.......................................................................................................................... 48


10

Innhold

KAPITTEL 3

R SOM TEGNEPROGRAM...................................................................................... 49 3.1 Plassere punkter i et koordinatsystem. . ...................................................................... 49 3.2 Opprette tegneark for så å legge inn informasjon.. ...................................................... 52 3.2.1 Opprette og tilrettelegge tegnearket. . ................................................................. 52 3.2.2 Legge til grafikk på eksisterende ark. . ................................................................. 53 3.2.2.1 Legge til punkter, linjer og tekst. . ............................................................ 53 3.2.2.2 Spesifisere farge og størrelse................................................................. 55 3.2.2.3 Gi tegnforklaringer.. ............................................................................... 56 Oppgaver.......................................................................................................................... 58 KAPITTEL 4

INN OG UT AV R........................................................................................................ 59 4.1 Arbeidsflyt. . ............................................................................................................... 60 4.1.1 Lagre eget arbeid.............................................................................................. 60 4.1.1.1 Organisere kodefiler.. ............................................................................. 60 4.1.1.2 Lagre kodefiler...................................................................................... 61 4.1.1.3 Organisere arbeid i mapper.................................................................... 61 4.1.2 Bruke andres arbeid: R-pakker............................................................................ 63 4.2 Import/eksport av datafiler. . ....................................................................................... 66 4.2.1 R på hjemmebane (.rda)..................................................................................... 67 4.2.2 Skrive data ut av R (.txt og .csv). . ........................................................................ 68 4.2.3 Åpne data i Excel/OpenOffice............................................................................. 69 4.2.4 Åpne data i R. . ................................................................................................... 70 4.2.4.1 Import fra tekstfiler (.txt og .csv). . ........................................................... 71 4.2.4.2 Import fra andre filformater.................................................................... 72 Oppgaver.......................................................................................................................... 73 DEL II

UTFORSKE OG TILRETTELEGGE DATA.......................................................... 75 KAPITTEL 5

BESKRIVENDE STATISTIKK. . ................................................................................ 77 5.1 Datastrukturen. . ......................................................................................................... 78 5.2 Univariate fordelinger.. ............................................................................................... 79 5.2.1 Kategoriske variabler......................................................................................... 80 5.2.1.1 Frekvenstabell....................................................................................... 80 5.2.1.2 Kake- og søylediagram. . ......................................................................... 81 5.2.2 Kontinuerlige variabler....................................................................................... 82 5.2.2.1 Numeriske beskrivelser.......................................................................... 82 5.2.2.2 Grafiske alternativer.............................................................................. 84 5.3 Bivariate sammenhenger............................................................................................ 88 5.3.1 To kategoriske variabler..................................................................................... 88 5.3.1.1 Bivariat sammenheng med tall................................................................ 88 5.3.1.2 Bivariat sammenheng i tegning. . ............................................................. 91


Innhold

5.3.2 Én kategorisk og én kontinuerlig variabel............................................................ 92 5.3.3 To kontinuerlige variabler. . ................................................................................. 95 5.3.3.1 Numeriske beskrivelser.......................................................................... 96 5.3.3.2 Grafiske alternativer.............................................................................. 98 Oppgaver.......................................................................................................................... 102

KAPITTEL 6

TILRETTELEGGE DATA.......................................................................................... 103 6.1 Omkode eksisterende variabler.................................................................................. 103 6.1.1 Kontinuerlige variabler....................................................................................... 104 6.1.1.1 Additive indekser. . ................................................................................. 104 6.1.1.2 Snu skalaretning. . .................................................................................. 107 6.1.1.3 Endre skalaenheter................................................................................ 108 6.1.2 Kategoriske variabler (betinget omkoding).......................................................... 108 6.1.2.1 Omkode ved hjelp av indeksering.. .......................................................... 109 6.1.2.2 Omkode med regelmessige uttrykk («regex»).......................................... 111 6.1.2.3 Automatiske varianter. . .......................................................................... 114 6.2 Slå sammen data og endre verdier.............................................................................. 115 6.2.1 Forprosessering – tilrettelegge for sammenslåing................................................ 116 6.2.1.1 Aggregere data når observasjonsnivåene er ulike.................................... 116 6.2.1.2 Nøkkelvariabler for observasjoner som hører sammen. . ............................ 117 6.2.2 Data fra andre kilder.......................................................................................... 118 6.2.2.1 Legge til enkeltvariabler («match»).. ........................................................ 119 6.2.2.2 Slå sammen hele datasett («merge»)....................................................... 119 Oppgaver.......................................................................................................................... 121 DEL III

REGRESJONS­ANALYSER...................................................................................... 123 KAPITTEL 7

ESTIMERE OG TOLKE EN LINEÆR MODELL (OLS).................................... 125 7.1 Introduksjon til OLS.. .................................................................................................. 126 7.1.1 Estimere en lineær modell.................................................................................. 127 7.1.2 Lese modellsammendraget. . ............................................................................... 129 7.2 Tolke resultatene.. ...................................................................................................... 130 7.2.1 Tolke marginaleffektene..................................................................................... 131 7.2.2 Tolke med konfidensintervall.............................................................................. 132 7.2.3 Tolke med predikerte verdier.............................................................................. 133 7.2.3.1 Beregne predikerte verdier..................................................................... 133 7.2.3.2 Tegne predikerte verdier........................................................................ 134 7.2.3.3 Beregne nøyaktighet. . ............................................................................ 135 7.2.3.4 Tegne usikkerhet................................................................................... 136 7.2.3.5 Legge til observerte verdier. . .................................................................. 137 Oppgaver.......................................................................................................................... 140

11


12

Innhold

KAPITTEL 8

MULTIPPEL REGRESJON: FLERE VARIABLER OG IKKE-LINEÆRE EFFEKTER............................................................................ 141 8.1 Effekten av å kontrollere for andre variabler............................................................... 142 8.1.1 Estimere en multippel lineær modell. . .................................................................. 143 8.1.2 Tolke kontrollerte effekter i lineær modell. . .......................................................... 145 8.1.3 Sammenlikne effekter........................................................................................ 146 8.1.3.1 Sammenlikning mellom modeller krever et likt utvalg............................... 147 8.1.3.2 Sammenlikning i samme modell krever standardiserte variabler. . .............. 147 8.1.4 Sammenlikne konfidensintervaller («coefplot»).................................................... 149 8.2 Ikke-lineære sammenhenger.. ..................................................................................... 150 8.2.1 Samspillsledd.................................................................................................... 150 8.2.1.1 Estimere samspill. . ................................................................................. 151 8.2.1.2 Tolke et samspill. . .................................................................................. 152 8.2.2 Kurvilineære sammenhenger.............................................................................. 157 8.2.2.1 Annengradsledd.................................................................................... 157 8.2.2.2 Eksponentielle sammenhenger............................................................... 161 Oppgaver.......................................................................................................................... 166

KAPITTEL 9

MODELLVURDERING. . ............................................................................................. 167 9.1 Hvor godt predikerer modellen?................................................................................. 168 9.1.1 Fordelingen til predikerte verdier........................................................................ 169 9.1.2 Korrelasjon mellom predikerte og observerte verdier. . .......................................... 170 9.1.3 Prediksjon for undergrupper av data................................................................... 171 9.2 Residualenes fordeling............................................................................................... 172 9.2.1 Er residualene normalfordelte?........................................................................... 172 9.2.1.1 Beregne residualene.............................................................................. 173 9.2.1.2 Kvantitative mål på skjevhet og kurtose.................................................. 174 9.2.1.3 Histogram med hjelpelinje...................................................................... 175 9.2.1.4 Kvantil – kvantilgrafikk. . ......................................................................... 176 9.2.1.5 Hva gjør vi hvis residualene ikke er normalfordelte?................................. 176 9.2.2 Er residualene likt fordelt over avhengig variabel?.. .............................................. 177 9.3 Uteliggere og innflytelsesrike observasjoner.............................................................. 179 9.3.1 Innflytelse – hatverdier. . ..................................................................................... 179 9.3.1.1 Beregne hatverdier................................................................................ 180 9.3.1.2 Identifisere kritiske hatverdier................................................................ 181 9.3.2 Uteliggere – t-standardiserte residualer.............................................................. 184 9.3.2.1 Estimere t-standardiserte residualer....................................................... 185 9.3.2.2 Identifisere kritiske verdier..................................................................... 186 9.3.3 Uteliggere med innflytelse – Cook’s D................................................................. 187 9.3.3.1 Beregne Cook’s D.................................................................................. 188 9.3.3.2 Identifisere kritiske verdier..................................................................... 188 9.3.4 Hva gjør vi med innflytelsesrike uteliggere?. . ....................................................... 192


Innhold

9.4 Kolinearitet................................................................................................................ 194 9.4.1 Tegn på kolinearitet........................................................................................... 194 9.4.2 Løsninger på kolinearitet. . .................................................................................. 195 Oppgaver.......................................................................................................................... 196

KAPITTEL 10

BINOMISK LOGISTISK REGRESJON. . ................................................................ 197 10.1 Estimere en binomisk logistisk modell........................................................................ 198 10.2 Tolke en binomisk logistisk modell.. ............................................................................ 200 10.2.1 Tolke marginaleffektene..................................................................................... 201 10.2.1.1 Retning og signifikans (endring i logodds). . ............................................. 201 10.2.1.2 Relativ endring (endring i odds, oddsratio).............................................. 201 10.2.2 Predikerte sannsynligheter. . ............................................................................... 203 10.2.2.1 Regne ut predikerte sannsynligheter. . ..................................................... 204 10.2.2.2 Regne ut konfidensintervallet til predikerte verdier.................................. 205 10.2.2.3 Tegne predikerte verdier........................................................................ 206 10.3 Vurdere en binomisk logistisk modell.. ........................................................................ 212 10.3.1 Hvor ofte predikerer modellen riktig?.................................................................. 212 10.3.1.1 Definere kuttpunkt og predikere utfall. . ................................................... 212 10.3.1.2 Sammenlikne predikerte og observerte utfall........................................... 213 10.3.2 Avansert modellstatistikk................................................................................... 216 10.3.2.1 ROC-kurve............................................................................................ 216 10.3.2.2 Hosmer-Lemeshows «Goodness-of-fit»................................................... 217 Oppgaver.......................................................................................................................... 218 BIBLIOGRAFI. . ............................................................................................................. 219 REGISTER FOR R-KOMMANDOER.. .................................................................... 221

13


TABELLER

Tabell 2.1:  R-kommandoer for kalkulator.............................................................................. 32 Tabell 2.2:  R-kommandoer for vektorer............................................................................... 38 Tabell 2.3:  En datamatrise ser ut som et ruteark.................................................................. 38 Tabell 2.4:  R-kommandoer for datamatriser......................................................................... 46 Tabell 3.1:  R-kommandoer for grafisk framstilling................................................................. 56 Tabell 4.1:  R-kommandoer for import og eksport av data .. .................................................... 70 Tabell 6.1:  R-kommandoer for regelmessige tekstuttrykk...................................................... 113 Tabell 7.1:  Beskrivende statistikk: Innvandringsskepsis og posisjon i arbeidsmarkedet............ 127 Tabell 8.1:  Hva kan forklare innvandringsskepsis? Resultat fra lineær regresjonsanalyse. . ....... 145 Tabell 10.1:  Resultatet fra en binomisk logistisk regresjon..................................................... 215 Tabell 10.2:  Hvilke verdier predikeres riktig?. . ...................................................................... 215 Tabell 10.3:  Hvordan tar vi feil? Hva predikeres korrekt?.. ..................................................... 216


FIGURER

Figur 1.1: ­Vi kommer ikke til å jobbe direkte i R. .................................................................... 22 Figur 2.1: Vi bruker RStudio for å kommunisere med R. ......................................................... 27 Figur 2.2: Slik åpner vi vår første notatblokk i RStudio. . . ....................................................... 29 Figur 3.1: Tegne punkter i et koordinat­system. ..................................................................... 51 Figur 3.2: Man kan opprette et blankt ark først, for så å legge inn informasjon. ...................... 54 Figur 5.1: Kake- og søylediagram er nyttig for å illustrere frekvens­fordelingen til en kategorisk variabel. Til venstre ser du standard­utseendet til R-funksjonen. Til høyre har jeg tilpasset utseendet. ...................................................................................................... 83 Figur 5.2: Histo­grammer og tetthets­grafikker kan illustrere fordelingen til den samme variabelen. ........................................................................................................................ 86 Figur 5.3: Søyle­diagram kan kontrastere og illustrere sammen­hengen mellom kategoriske variabler. ........................................................................................................................... 91 Figur 5.4: Mosaikk­diagram er en annen måte å illustrere sammen­hengen mellom kategoriske variabler. . . ....................................................................................................... 92 Figur 5.5: Søyle­diagram kan også illustrere sammen­hengen mellom en kategorisk og en kontinuerlig variabel. ......................................................................................................... 94 Figur 5.6: Boksplott kan illustrere fordelingen til en kontinuerlig variabel internt i en annen (kategorisk) variabel. Den øverste figuren (a) viser et enkelt boksplott, mens den nederste (b) også viser konfidens­intervallet til hver av fordelingene. .. ................................................. 95 Figur 5.7: Sprednings­diagram illustrerer korrelasjonen mellom to kontinuerlige variabler. ....... 98 Figur 5.8: Korrelasjons­matriser kan også illustreres grafisk, enten med en serie sprednings­diagram eller ved å illustrere hver korrelasjon ved et farge­kart. ............................ 100 Figur 5.9: Sprednings­diagram kan inkludere en linje som illustrerer en lokal gjennom­ snittlig sammen­heng, eller bruke farge­styrke for å vise hvor de fleste observa­sjonene befinner seg. ..................................................................................................................... 101 Figur 6.1: En additiv indeks gir oss en mer høyoppløselig variabel. Den har et høyere målenivå enn variablene vi tok utgangs­punkt i. . . .................................................................. 106 Figur 6.2: En variabel som er snudd, skal ha en perfekt negativ korrelasjon med originalen. .... 107


16

Figurer

Figur 7.1: En effekt­grafikk («effect plot») er nyttig for å illustrere den substansielle betydningen av et funn. Den kan også inkludere informasjon om predik­sjo­nenes konfidens­intervall (fig. b) og fordelingen av de reelle observa­sjonene langs x- og y-aksene (fig. c) eller kun langs x-aksen (fig. d). . . ............................................................................... 137 Figur 8.1: En koeffisient­grafikk («coefplot») er nyttig for å illustrere hvor nøyaktige effektene er antatt å være. ................................................................................................. 150 Figur 8.2: Samspill kan illustreres ved hjelp av to effekt­grafikker. Her viser vi effekten av Prekaritet blant hen­holds­vis res­pon­denter fra majoritets­befolkningen og innvand­rere. .. ......... 156 Figur 8.3: Kurv­ilineære sammen­henger kan med fordel illustreres ved hjelp av effekt­ grafikker. Her viser vi effekten av alder på innvandrings­skepsis. ........................................... 161 Figur 8.4: Ekspo­nent­ielle sammen­henger kan med fordel illustreres med effekt­grafikker. Her viser vi effekten av å se på politiske TV-programmer på inn­vandrings­skepsis. ................. 165 Figur 9.1: To histo­grammer kan sammen­likne fordelingene til predikerte og observerte verdier. ............................................................................................................................. 169 Figur 9.2: Et sprednings­diagram kan vise sammen­hengen mellom predikerte og observerte verdier. . . ........................................................................................................... 171 Figur 9.3: To måter å sammenlikne residualene med en normal­fordeling: Et histogram gir inntrykk av fordelingen til residualene. Hjelpelinjen illustrerer en standard normal­fordeling (fig. a). Kvantil-kvantil­grafikker sammenstiller de standard­iserte residualene med en standard normal­fordeling. Hjelpe­linjen illustrerer en perfekt korrelasjon (fig. b). . . ................... 175 Figur 9.4: Et sprednings­diagram kan utforske forut­setningen om homo­skedasti­sitet. Residualene skal være jevnt fordelt over hele spennet av den predikerte variabelen. Vi kan tegne denne grafikken selv (fig. a), eller bruke ferdig­funksjonen fra car-pakken (fig. b). ........ 177 Figur 9.5: Når en sentral variabel (avhengig eller uav­hengig) er kategorisk (eller binær), vil vi se dette i fordelingen til residualene. Dette er eksempe­lvis tilfellet når en uav­hengig variabel er delt i 10 kate­gorier (fig. a), men også når avhengig variabel er binær (fig. b). ......... 178 Figur 9.6: En indeks­grafikk med hat­verdier gir inntrykk av hvilke observasjoner som er innflytelses­rike. ................................................................................................................. 182 Figur 9.7: Vi kan illustrere alders­fordelingen i gruppen av respondenter med høy innflytelse på regresjons­resultatet (a) og sammenlikne denne med fordelingen blant resten av observ­asjonene (b). . . ........................................................................................... 184 Figur 9.8: En kvantil-kvantilgrafikk («qqplot») kan gi informasjon om uteliggere blant de t-standard­iserte residu­alene. .............................................................................................. 187 Figur 9.9: En indeks­grafikk med Cook’s D gir inntrykk av hvilke observasjoner som både er innflytelses­rike og utypiske (uteliggere). ......................................................................... 190 Figur 9.10: En boble­grafikk gir inntrykk av hvilke observasjoner som er inn­flyt­elses­rike, uteliggende og/eller en kombinasjon av disse. ..................................................................... 191


Figurer

Figur 10.1: En effekt­grafikk kan illustrere resultatet fra en binomisk logistisk modell både i logodds og sann­syn­ligheter. I kolonnen til høyre refereres effekten med 95 % konfidens­ intervall. Effekten av innvandrings­skepsis på partivalg kan uttrykkes i logodds (fig. a og b) eller i sannsynlig­heter (fig. c og d). Det er også mulig å kombinere de to slik at effekten er illustrert lineært (i logodds), mens y-aksen rapporterer sann­synlig­heter (fig. e og f). .............. 209 Figur 10.2: En ROC-kurve illustrerer hvordan forholdet mellom korrekte positive og ikkekorrekte positive observasjoner endres ved ulike kuttpunkt. .. ............................................... 217

17



DEL I

KOM I GANG



KAPITTEL 1

HVA ER R?

R er et eget programmeringsspråk og et statistikkprogram med åpen kildekode. Dette betyr at programmet er gratis og at alle som ønsker, kan bidra med egne funksjoner. Det store antallet forskere, studenter og analytikere som bruker og bidrar til R, har gjort at programmet i dag er svært allsidig og oppdatert innenfor nye forskningsmetoder. R kan brukes for enkle og avanserte statistiske analyser, men også som kalkulator og for å tegne. Dette er programmets kjerneoppgaver, og i denne boka skal vi ha fokus på disse. Dermed er R sammenliknbart med betal-programmer som Excel, SPSS og Stata. Bruksområdet til R er likevel bredere: Jeg bruker RStudio både til automatisert datainnsamling og tekstbehandling. I dette kapittelet introduserer jeg R-universet og viser hvordan man kan laste ned og oppdatere programmene vi skal bruke. I de neste kapitlene viser jeg den grunnleggende logikken rundt hvordan data håndteres, hvordan tegnefunksjonalitetene fungerer, og gir tips og triks for en god arbeidsflyt.

1.1

ET STATISTIKKPROGRAM

Det åpne rammeverket utgjør både den største fordelen og ulempen ved å bruke R framfor andre statistikkprogram. På den ene siden er R særdeles fleksibelt. Mange studenter og forskere har de samme behovene som oss og har allerede funnet løsninger som de har delt med andre brukere. For enkelte ligger det også en viss prestisje i å presentere nye analysemetoder og tilgjengeliggjøre disse via funksjoner i R. En «funksjon» er en ferdig kodesnutt som er laget for å utføre spesifikke oppgaver. Funksjoner og datasett kan pakkes sammen og deles som egne tilleggsmoduler. Disse kaller vi for «pakker». De er gratis og åpent tilgjenglig via R-prosjektets sider. Et eksempel på en slik pakke er laerdegR som hører med denne boka. Dermed er R svært oppdatert og et viktig instrument for allmenngjøring av nye statistiske metoder. På den andre siden har R mange ulike forfattere. Det betyr at løsningene varierer unødvendig mye. Det er spesielt tilfellet for tilleggsinformasjonen vi må oppgi når


22

KAPITTEL 1

vi bruker ulike funksjoner. Her er hjelpesidene gull verd! De leveres sammen med tilleggspakkene og er tilgjengelig i et eget vindu mens du jobber. Første gang du bruker en pakke, må du laste ned og installere den. Det kan du gjøre direkte i programmet. Hver gang du skal bruke pakken, må du så hente den inn i programmets kortidsminne. Da vil alle datasett og funksjoner være tilgjengelig fram til du lukker programmet. Når du slår på datamaskinen neste gang, må pakken lastes inn på nytt.

1.1.1

Installere programmet

I denne boka kommer vi til å bruke RStudio for å kommunisere med R. RStudio er et brukergrensesnitt (GUI – «graphical user interface») til R. Det vil si at RStudio fungerer som en «mellommann» mellom oss og basisprogrammet. Programspråket er det samme, men RStudio gjør brukeropplevelsen bedre. Vi har tilgang på flere vinduer med ulik informasjon og har en rekke nedtrekksmenyer som gjør RStudio praktisk å jobbe med. Etter å ha installert begge programmene vil vi i praksis ha veldig lite direkte kontakt med R. Når vi ønsker å åpne programmet, klikker vi på RStudio-ikonet og lar RStudio ta seg av all videre kommunikasjon med R. R og RStudio snakker best sammen når de har kompatible versjoner, så last ned og installer begge samtidig: R først, så RStudio. 1.1.1.1

INSTALLERE R

R kan lastes ned her: https://cran.r-project.org. Når du installerer R for første gang, klikker du på «download R» for ditt operativsystem (Linux, Mac, Windows). Om du får spørsmål om å velge speil («mirror»), velger du speilet i Norge/Bergen. Speilet oppgir hvor du ønsker å laste ned R og R-pakkene fra. Følg så instruksen. Når du har gjort dette, kan du gå direkte videre til å installere RStudio. Figur 1.1: Vi kommer ikke til å jobbe direkte i R.

1.1.1.2

INSTALLERE OG OPPDATERE RSTUDIO

RStudio kan lastes ned her: http://www.rstudio.com. For å installere RStudio på datamaskinen velger du «RStudio» og «Download». Det holder i lange baner med gratisversjonen, «RStudio Desktop». Betalvarianten er laget for bedrifter og


Hva er R?

tilbyr løsninger for flere brukere og bedre sikkerhetsrutiner. Det er unødvendig for oss individuelle brukere. Følg instruksjonene. Nå er du klar! Du kan oppdatere RStudio ved å åpne programmet og klikke på «Help» øverst i vinduet og «Check for updates». Gjør dette etter å ha oppdatert R. Oppdatere R: Når du senere skal oppdatere R til nyere versjoner, er den anbefalte løsningen å avinstallere den gamle versjonen. Dette kan du gjøre «for hånd» eller via funksjoner i R. Du laster ned og installerer R slik du gjorde første gang. Så avinstallerer du den tidligere R-versjonen slik du avinstallerer alle programmer via kontrollpanelet. Til sist sletter du alle spor etter din tidligere R-versjon via datamaskinens filutforsker. Årsaken til at du skal slette gamle versjoner, er at R av og til leter etter informasjon i gamle mapper og gir fra seg kryptiske feilmeldinger. Dette hender ikke minst når R leter etter tilleggspakker i gamle mapper. Vær derfor nøye med å slette alle spor av den gamle versjonen av R – inkludert det gamle biblioteket hvor pakkene befinner seg. Om du ikke ønsker å reinstallere alle pakkene dine, kan du flytte dem over til det nye R-biblioteket før du sletter den gamle mappen. Du finner alle R-versjonene med sine respektive biblioteker ved å gå inn i «Programfiler» via datamaskinens filutforsker. Der blar du opp «R»-mappen. Inni denne finnes en mappe for hver versjon du har installert. Ideelt sett skal du bare ha én mappe med siste versjon. I hver mappe finnes et bibliotek («library»). Her finnner du pakkene du har installert. Flytt pakker du ønsker å beholde, til den nyeste R-versjonen, og slett alle eldre mapper. Det finnes også en egen R-pakke (installr) som håndterer oppdateringer for deg. Det beste er å kjøre denne oppdateringen direkte via R og ikke i RStudio. Pakken må først installeres (install.packages(«installr»)), deretter lastes inn i R sitt kortidsminne (library(installr)). Nå kan du kjøre funksjonen som leter etter nye oppdateringer: updateR(). Du får fram et vindu som guider deg gjennom prosessen. Du får også valget mellom enten å flytte gamle R-pakker eller oppdatere disse pakkene og installere dem i ditt nye bibliotek. Det beste er stort sett å arbeide med oppdaterte pakker (som også er mest kompatible med din nye versjon av R). Et lite unntak kan være rett i forkant av en innlevering: Av og til endrer eller fjerner forfattere funksjoner fra den nye versjonen av en pakke. Hvis du er blitt vant til å bruke denne funksjonen, kan det være frustrerende å finne en ny løsning et par dager før innlevering!

23


24

Kapittel 1

1.2

ET PROGRAMMERINGSSPRÅK

R er et programmeringsspråk. Det betyr at vi skriver kommandoer direkte til programmet i stedet for å bruke nedtrekksmenyene vi er vant til fra Excel og SPSS. R har et vokabular og en syntaks. «Vokabularet» består av koder som forteller programmet hvilke operasjoner som skal gjøres. «Syntaksen» forteller hvordan kodene må henge sammen. Jeg pleier å tenke på R som et lego-sett. Hver kloss er svært enkel, men de kan settes sammen til komplekse konstruksjoner. I motsetning til andre språk behøver du ikke å pugge vokabularet. Det du trenger, er å anvende språket. Da vil du lære å se hvilke kodekombinasjoner som kan løse oppgavene dine. Derfor er det nyttig å skrive kodene sammen med meg når du leser denne boka. Målet er at når du står overfor en ukjent oppgave, vil du vite hvordan du slår opp på internett eller i ei bok. Etter hvert vil du finne din egen stil og se nye muligheter. Da blir språket ditt mer avansert. I likhet med andre språk er det hundre måter å si den samme tingen på: Det finnes synonymer og ulike måter å skru sammen setningen på, selv om man ender opp med å si akkurat det samme. For de fleste samfunnsvitere er det ikke et stort poeng med effektive og pene koder. Derimot er det viktig at du kan gå tilbake til kodene og se hva du selv har gjort. Det er mange fordeler ved å skrive koder framfor å bruke nedtrekksmenyer: For det første er det enkelt å få hjelp. Det er lett å utveksle informasjon mellom studenter og lærere om hvordan man kan løse problemer. Det finnes et utall blogger og nettfora hvor R-brukere utveksler informasjon, løser problemer og demonstrerer nyttige triks. Dette gjør de ved å vise hverandre kodene. Om du stiller et spørsmål uten å oppgi kodene dine, får du smekk på fingrene. Det kan av og til være vanskelig å lese andres koder, fordi de har sin egen «sjargong», men det er alltid lærerikt. Å dele koder er en presis måte å kommunisere på og åpner for færre misforståelser. For det andre sparer du tid ved å skrive kodene direkte. I SPSS og Excel vil du kunne klikke deg gjennom alle analyser. Det kan framstå som enkelt og effektivt, men om du har gjort en feil eller ønsker å gjøre ting annerledes, må du starte hele prosessen på nytt. Det er her stordriftsfordelene ved å skrive egne koder slår inn. Når du tar vare på koden din, går det fort å gjøre den samme og liknende ting om og om igjen. I praksis vil ethvert prosjekt bestå av prøving, feiling og monotone gjentakelser. For det tredje kan du ta vare på kodene dine. Da har du alltid en oversikt over hva du har gjort og hvordan du gjorde det. Det er en måte for deg å sikre deg mot feil. Et forskningsarbeid – enten det er en hjemmeoppgave eller en vitenskapelig artikkel – består av en serie med små avveielser og beslutninger. Det holder med en ferie (eller en lunsjpause) for å glemme alle disse. Har du tatt vare på kodene dine på et ryddig vis, vil du alltid kunne gå tilbake i tid og sjekke hva du egentlig gjorde.


Hva er R?

For det fjerde er programspråket første skritt mot en repliserbar studie. Alle som har forsøkt å gjenta andres resultater, har innsett hvor vanskelig dette er – selv når man har tilgang på de samme dataene. Forskere har foretatt en rekke valg underveis som de ikke redegjør for i selve analyseteksten. Selvsagt påvirker dette resultatet. Enkelte forskere deler data og koder på hjemmesidene sine. Det er flott for alle som ønsker å lære ved å imitere.1 Til sist behøver du heller ikke å skifte mellom programmer når du skal tolke resultatene dine. R fungerer også utmerket som kalkulator og tegneprogram. Når du endrer en kodesnutt, kan du oppdatere hele analysen – inkludert dine tolkninger – ved hjelp av et tastetrykk. I de neste kapitlene skal vi utforske disse to funksjonalitetene. I del 2 og 3 av boka viser jeg deg hvordan du kan gjøre mer komplekse analyser.

1 I tillegg er R kompatibelt med mer avanserte måter å lage repliserbar forskning på. I RStudio kan du generere pdf-dokumenter (via R Sweave/LaTeX) eller Word- og html-dokumenter (via R Markdown). Da «vever» du analyseteksten sammen med kodene du bruker og resultatene du får. Sistnevnte dukker opp i form av tall, tabeller og figurer som alltid er oppdaterte. Det er slik jeg har skrevet denne boka.

25



KAPITTEL 2

R SOM KALKULATOR

Vi jobber alltid direkte i RStudio. For å åpne programmet klikker vi på RStudiologoen. Den viser en R-bokstav i blå sirkel. Om skjermbildet ditt ikke likner på hva jeg beskriver, er sjansene gode for at du har åpnet R og ikke RStudio. Lukk i så fall programmet og gå inn i RStudio. Dette kapittelet legger grunnlaget for hva vi skal gjøre senere i boka, så vær nøye med å arbeide deg gjennom alle eksempler. Når du er ferdig med dette kapittelet, har du allerede lagt de essensielle byggesteinene for å bli en habil R-bruker. Målet med kapittelet er å lære • hvordan foreta enkle regneoperasjoner, • hvordan funksjoner og argumenter henger sammen, og • hvordan opprette, behandle og hente ut informasjon fra objekter. Objekter er virtuelle «bokser» hvor vi kan legge informasjon til senere bruk. I dette kapittelet skal vi legge data inn i R selv. I første seksjon anvender vi programmet som en enkel lommekalkulator. I den neste seksjonen vil vi lage våre egne datastrukturer og utforske hvordan vi behandler dem. Informasjonen har jeg fått fra Chapel Hill Expert Survey (Bakker et al., 2015). Det er en internasjonal spørreundersøkelse hvor eksperter blir bedt om å rangere nasjonale partier langs ulike politikkdimensjoner. Vi skal konsentrere oss om norske partier på en venstrehøyre-skala (fra lave til høye verdier). I siste seksjon utforsker vi hvordan vi kan hente ut informasjon fra datastrukturer ved hjelp av indeksering. Det betyr at vi indikerer hviken del av dataene vi er interessert i.

Fi ko Figur 2.1: Vi bruker RStudio for å kommunisere med R.


28

Kapittel 2

2.1

ÅPNE RSTUDIO FOR FØRSTE GANG

Når vi åpner RStudio for første gang, har vi tre vinduer å forholde oss til. Foreløpig skal vi kun bruke funksjonaliteter på den venstre delen av skjermen. Du vil oppdage nytten ved de andre vinduene etter hvert. Du kan endre utseende på RStudio ved å gå inn i menyen øverst på skjermen. Klikk på «Tools» -> «Global Options». Under «Appearance» kan du endre skriftstørrelse og farger. Under «Pane Layout» kan du velge hvilke vinduer som skal vises. Jeg er fornøyd med default-innstillingene. Dialogvinduet til R: Det store vinduet til venstre (med tittelen «Console») er vår åpning til R. Det er her vår dialog med programmet vil foregå. Hvis jeg skriver direkte i kommandofeltet, vil R svare. I dette eksempelet skriver jeg ’Hei’ i hermetegn. Da forstår R at vi leker hermeleken. Jeg avslutter kommandoen med å trykke på «Enter». Da er jeg ferdig med å snakke, og R vil forelegge sitt svar. > "Hei" [1] "Hei"

Det jeg skriver, blir alltid referert med >, mens R alltid indekserer svaret sitt med [1], [2], [3] osv. Dermed vet vi hvem som spør og hvem som svarer. Med mindre jeg skal foreta svært enkle operasjoner som jeg ikke ønsker å ta vare på, skriver jeg aldri direkte i dette vinduet. Notatblokka: Jeg skriver kodene mine på en notatblokk (et «skript»). For å åpne en notatblokk klikker du deg gjennom filmenyen i RStudio: «File»->«New file»->«R script». Nå har vi fire vinduer på skjermen vår. På notatblokken øverst til venstre (med tittelen «Untitled1») redigerer vi kodene våre i fred, uten at R foretar seg noe som helst. RStudio fargelegger avhengig av hva slags vokabular vi bruker, og legger til tabulatorer for å gjøre det lettere å se hvor vi er i kodeprosessen. Dette er nyttig!2 Når jeg er ferdig med en kodesnutt, sender jeg den ned til dialogvinduet («konsollen»). Det gjør jeg ved å markere koden og klikke på «run» eller trykke Ctrl+Enter. Da setter R i gang sine beregninger. Fordelen med en slik arbeidsprosess er at vi beholder koden slik at vi senere kan forbedre, dokumentere og – ikke minst – gjenta den. 2 Om koden likevel bir rotete, kan du markere teksten og trykke på «Ctrl+I». Da vil RStudio legge inn tabulatorer slik at du lett ser hvor du befinner deg i kodeprosessen.


29

R som kalkulator

Figur 2.2: Slik åpner vi vår første notatblokk i RStudio.

Du kan ta vare på blokken ved å lagre den via filmenyen. Bruk filbenevnelsen «.R» for å beholde et filformat hvor RStudio forstår at dette er koder. En samtale med R må foregå kronologisk. Du må si de første tingene først. Når du har sagt disse, husker R hva du gjorde. I neste samtale (når du har slått av og på programmet) må du si de samme tingene på nytt. Dermed kan det være lurt å strukturere notatblokken på samme vis. Personlig har jeg ofte to notatblokker oppe. Jeg har en hvor jeg strukturerer kommandoene kronologisk slik at jeg kan kjøre hele koden og havne på samme sted i arbeidsprosessen neste gang jeg jobber. I tillegg har jeg en «kladdeblokk» hvor jeg skribler hulter til bulter. Her prøver jeg ut kodesnutter som jeg eventuelt vil bruke senere. Vår første dialog: Man kan bruke R som kalkulator. Den utfører alle de vanlige regneoperasjonene. Skriv koden din på notatblokka og send den ned til R ved hjelp av ‘Ctrl+Enter, eller skriv direkte i R-vinduet og trykk på Enter. Nå får du svar fra R! > 2+2 [1] 4

R er objektbasert. Det betyr at vi kan lagre ting – utregninger og data – i objekter. Objekter er virtuelle «lagringsbokser» hvor vi kan ta vare på informasjon. Dette er meget praktisk. Når vi arbeider, vil for eksempel lagre dataene og modellene våre som objekter slik at vi har dem tilgjengelig for videre analyser. Fordelen er at vi kan oppdatere tallene som er lagret i ett objekt, for så å kjøre koden på nytt for å oppdatere alle andre objekter. Vi kan for eksempel analysere alle dataene våre, for så å


30

Kapittel 2

omkode dem, rette på feil eller samle inn mer, uten å behøve å redigere alle modeller enda en gang. Det holder å kjøre hele kodesekvensen for å oppdatere analysen. Vi lagrer informasjon i et objekt med en pil som peker fra de definerende elementene i retning mot objektet (<-), eller ved å bruke er lik-tegnet (=). Vi skriver navnet på objektet først (til venstre), så skriver vi elementene som skal lagres, til høyre. Valg av pil eller er lik-tegn er en smakssak. Du vil se at jeg bruker begge deler. Vi kan opprette et objekt kalt toplussto. > toplussto<-2+2

Når vi lagrer ting som objekter, vil ikke R svare oss med én gang, men objektet er opprettet og kan observeres i miljøvinduet øverst til høyre («Global Environment»/ miljøvinduet). Vi blir nødt til å spørre direkte for å få vite svaret R har lagret for oss. > toplussto [1] 4

Listen i miljøvinduet gjør det mulig å hente objektene opp og titte på dem når du måtte ønske. Dette vinduet har en annen funksjon enn kommandofeltet. Mens R gir deg et svar når du skriver inn navnet på objektet, har du muligheten til å se hvordan objektet er satt sammen når du klikker i miljøvinduet. Du kan også jobbe direkte med objekter. > to<-2 > tre<-3 > to+tre [1] 5

Du kan lagre svaret fra denne operasjonen i et tredje objekt. > fem<-to+tre > fem [1] 5

Vi oppdaterer ved å overskrive gamle objekter. Her endrer jeg definisjonen av objektet to fra to<-2 til to<-2+1. Så kjører jeg resten av koden for å oppdatere andre analyser. > to<–2+1 > to [1] 3


R som kalkulator

> fem<-to+tre > fem [1] 6

Du har også muligheten til å spørre R direkte om et uttrykk er sant, eller om et objekt/tall er større, mindre eller ulikt et annet objekt/tall: Er toplussto-objektet lik fire? > toplussto==4 [1] TRUE

Er toplussto-objektet lik fem? > toplussto==fem [1] FALSE

Er toplussto-objektet ulikt fem? > toplussto!=fem [1] TRUE

Er toplussto større enn fem? > toplussto>fem [1] FALSE

Er toplussto mindre enn fem? > toplussto<fem [1] TRUE

Disse spørsmålene er svært nyttige når du skal omkode variabler eller analysere et utvalg av enheter. Ta deg tid til å gå gjennom hva vi nettopp har lært, før du går videre til neste seksjon. Vil du fjerne objekter fra arbeidsområdet? Du kan fjerne objekter ved hjelp av remove-funksjonen. Vi kan for eksempelt fjerne toplussto-objektet på følgende vis: rm(toplussto). Om du ønsker å fjerne alle objekter i arbeidsområdet, skriver du rm(list=ls()).

31


32

Kapittel 2

2.2

DATATYPER I R

En fordel med R er at det kan gjøre regneoperasjoner på flere tall samtidig. Det er svært tidsbesparende når du bruker programmet som kalkulator eller tegnebrett. Behandling av mange tall er selve essensen i all kvantitativ analyse. I praksis kan data (informasjon) bli lagret i tre formater: som vektorer, som matriser og som lister. I denne seksjonen skal vi opprette dataobjektene selv. Da legger vi inn hvordan Chapel Hill’s eksperter i 2014 valgte å rangere norske partier langs en ideologisk venstre-høyre-skala (Bakker et al., 2015). Skalaen går fra 0 til 10 hvor høye tall indikerer høy grad av høyreorientering. Tabell 2.1:  R-kommandoer for kalkulator Regneoperasjon

R

Summer

sum() eller +

Differanse

Multiplisere

*

Dividere

/

Kvadrere

^2

Kvadratrot

sqrt()

Eksponent/Antilogaritme

exp()

Logaritme

log()

Er lik

==

Mindre enn

<

Mindre enn eller lik

<=

Større enn

>

Større enn eller lik

>=

Ulik

!=

Større enn OG mindre enn

<&>

Større enn ELLER mindre enn

<|>

2.2.1 Vektorer En «vektor» er en serie med tall eller bokstaver/ord som er lagret i et objekt. Vi kan lage en slik vektor med kommandoen c() (kortform for «concatenate»). > c(1, 2, 3, 4) [1] 1 2 3 4

Hver observasjon separeres med komma. Vær nøye med å lukke parentesen. Det er slik R forstår at du er ferdig med å snakke, og at det er R sin tur til å svare. Om du markerer den ene delen av en parentes, vil RStudio vise deg hvor tvillingen befinner


R som kalkulator

seg. Slik kan du se om du har ferdigstilt koden din. Om du sender en halvferdig (ikke avsluttet) kommando til konsollen, vil R skifte linje og legge til et plusstegn for å signalisere at programmet venter på mer. Ferdigstill koden eller trykk på Esc for å avslutte. I en serie bestående av tekst: skal hver bit pakkes inn i hermetegn. På notblokka vår ser vi at teksten blir grønn. Det vil den være fram til vi lukker hermetegnet. Her oppretter jeg en vektor med norske partinavn. > parti<-c("Ap", "FrP", "H", "KrF", "MDG", "Sp","SV", "V") > parti [1] "Ap"  "FrP" "H"   "KrF" "MDG" "Sp"  "SV"  "V"

Noter deg at R-språket er engelsk, selv om RStudio aksepterer andre bokstaver. Vi får med andre ord ikke lov å bruke de norske bokstavene «æ», «ø» og «å» i kodene våre. I en serie bestående av tall: skal hver bit skilles med komma, mens det matematiske kommategnet skrives som punktum. Denne gangen ser vi at tall fargelegges i blått. > hoyre<-c(3.75, 7.5, 7.25, 6, 2.25, 4, 1.5, 6.75) > hoyre [1] 3.75 7.50 7.25 6.00 2.25 4.00 1.50 6.75

I dette eksempelet er høyre-vektoren symmetrisk med parti-vektoren slik at første observasjon oppgir høyreorienteringen til Arbeiderpartiet (Ap, 3.75). Slik behøver det selvsagt ikke å være. Vi kan spørre om hvor lang en vektor er. > length(parti) [1] 8

Da får vi beskjed om hvor mange partinavn som befinner seg i serien. Hvert parti kaller vi en enhet eller observasjon. I parti-vektoren har vi 8 observasjoner. 2.2.1.1 INDEKSERING

Vi kan hente ut én eller flere spesifikke observasjoner fra en vektor ved å indeksere den. Da skriver jeg objektnavnet etterfulgt av hakeparenteser hvor jeg oppgir hvilken observasjon jeg ønsker å se. Vær nøye med ikke å bruke mellomrom mellom objektnavnet og parentesen.

33


34

Kapittel 2

Vil jeg se på det tredje partiet i vektoren min, så kan jeg be om det. > parti[3] [1] "H"

Jeg kan også be om å få se observasjonene 1 og 3. Da oppretter jeg i praksis en vektor med observasjonsnumrene inni hakeparentesen. > parti[c(1,3)] [1] "Ap" "H"

Jeg kan videre se på observasjonene fra 1 til 3. Da bruker jeg kolon for å opprette en vektor som går fra 1 til 3. > parti[1:3] [1] "Ap"  "FrP" "H"

2.2.1.2 REGNEOPERASJONER

R skiller mellom vektorer som består av bokstaver, og dem som består av tall. Man må ha definert en vektor i riktig kategori for å gjøre enkelte operasjoner: Typisk nok kan vi ikke regne gjennomsnittet til en vektor som er definert som noe annet enn tall. Er vi i tvil, kan vi spørre R om hvordan vektoren vår er registrert. > class(parti) [1] "character"

> class(hoyre) [1] "numeric"

Vi kan foreta en rekke matematiske operasjoner med høyre-vektoren vår. Om du kan regne med matematiske vektorer, er du nå på kjent grunn. R kan alle de matematiske reglene. Vi kan for eksempel legge til to poeng til hoyre-objektet vårt. Da vil alle tallene i vektoren øke med to poeng. > hoyre+2 [1] 5.75 9.50 9.25 8.00 4.25 6.00 3.50 8.75

Dette er i praksis slik vi omkoder en variabel: Vi gir vektoren (variabelen) en ny verdi på grunnlag av tidligere verdier. Om vi ønsker å ta vare på omkodingen, må vi enten omdefinere objektet vårt eller lage et nytt. Her lager jeg et nytt objekt.


R som kalkulator

> hoyre.omkodet<-hoyre+2

Vi kan også behandle én vektor ved hjelp av en annen. Da er det viktig at begge vektorer er like lange. Vi starter med å opprette en ny vektor. Den nye vektoren reflekterer hvor positivt norske partier stiller seg til omfordeling (Bakker et al., 2015). > omfordeling<-c(5.33, 4, 3.33, 4, 5.33, 4.67, 5.33, 3.33)

Nå kan vi, for eksempel, summere vektorene. Vi oppnår en tredje vektor hvor hver observasjon består av summen av de tilsvarende observasjonene i de foregående vektorene. Det er interessant dersom vi ønsker å opprette en additiv indeks for partiers holdninger til økonomisk utjevning. > hoyre+omfordeling [1]  9.08 11.50 10.58 10.00  7.58  8.67  6.83 10.08

Dersom vi forsøker å gjøre slike operasjoner på vektorer som ikke er definert som numeriske, vil R protestere. > parti+2 Error in parti + 2 : non-numeric argument to binary operator

2.2.1.3

FUNKSJONER OG ARGUMENTER

Det finnes en del ferdige kommandoer for regneoperasjoner. Disse kommandoene er kalt funksjoner, og er etterfulgt av en parentes. En funksjon er i praksis definerte oppgaver som R har lagret i minnet og klar til bruk. Mye av dialogen vår vil gå via funksjoner. Da vi spurte om lengden på parti-vektoren, brukte vi allerede en funksjon. Mange av de vanligste funksjonene er laget for vektorer. R kan for eksempel gi oss summen av alle tallene i vektoren (sum()), regne gjennomsnitt (mean()) eller standarddavvik (sd()). I parentesen oppgir vi minst ett, og ofte flere, argumenter. Disse gir R beskjed om hvilken informasjon som skal brukes, og detaljer om hvordan den skal behandles. Jeg kan be R regne ut gjennomsnittet av høyre-vektoren. > mean(x=hoyre) [1] 4.875

35


S I L J E S Y N N Ø V E LY D E R H E R M A N S E N

Statistikk er et håndverk mer enn en vitenskap. Derfor er verktøyet viktig. Silje Synnøve Lyder Hermansen inviterer leseren med på et samarbeid: Gjennom boka jobber de sammen i RStudio og går gjennom analysestadiene skritt for skritt. De laster inn data, tilrettelegger disse, gjør foranalyser og regresjonsanalyser. Hermansen legger stor vekt på at leseren skal forstå hva som skjer i prosessen, og kunne kommunisere resultatene. Med Lær deg R følger datasett, øvelsesoppgaver og løsningsforslag, slik at det også er lett å prøve seg på egen hånd. Alt du trenger er en datamaskin, internett og denne boka.

ISBN 978-82-450-2213-1

,!7II2E5-accbdb!

SIL JE SYNNØ VE LYDER HERMANSEN L ÆR DEG R

Velkommen til R-universet! Lær deg R er introduksjonen for deg som ønsker et godt arbeidsverktøy for statistisk analyse. R har vokst enormt i popularitet de siste årene, og med god grunn. R er gratis og dekker analysebehovene til så vel nybegynnere som eksperter innenfor kvantitativ metode.

LÆR DEG R En innføring i statistikkprogrammets muligheter

Silje Synnøve Lyder Hermansen jobber som postdoktor ved PluriCourts – Senter for forskning om internasjonale domstolers legitimitet. Hun har bred erfaring som foreleser i forskningsmetode for studenter på både bachelor- og masternivå, og som kursholder for ulike yrkesgrupper. Det var også som underviser at hun så behovet for en lettfattelig introduksjonsbok til R. Hermansen har en doktorgrad i statsvitenskap fra Universitetet i Oslo, forsker på politisk og juridisk adferd og har publisert vitenskapelige artikler i tidsskrifter som Party Politics og The Journal of Legislative Studies.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.