Forskning, analyse og presentasjon med R og RStudio

Introduksjon

Formålet med dette kurset er å lære deg hvordan man håndterer, analyserer og presenterer data. Data science er et stort fagfelt som kan omfatte alle typer studiedesign og analyser. Den eksplosive utviklingen innen data science de senere årene forklares blant annet av følgende:

  • Storskala innsamling og strukturering av data. Digitaliseringen har økt mulighetene for å samle inn data, og vi samler derfor inn data i et tempo vi aldri før har sett. Metodene for datalagring har blitt betydelig mer effektive. Stat, kommuner, regioner, bedrifter og organisasjoner samler i dag kontinuerlig inn store datamengder.
  • Bedre programvare og maskinvare for dataanalyse. Maskinvare og programvare for data science har utviklet seg raskt, særlig innen maskinlæring (machine learning, ML) og kunstig intelligens (KI), der utviklingen har vært formidabel de senere årene. I dag er programvaren så effektiv og fleksibel at en nybegynner i løpet av et par uker kan begynne å bruke de mest avanserte metodene.
  • Spredning av data science. Det finnes nå nærmest uendelig med undervisningsmateriell om data science på nettet. Denne tilgjengeligheten har ført til at stadig flere lærer seg å bruke disse verktøyene. Det finnes mange initiativer for å lære allmennheten data science, for eksempel Elements of AI, som har som mål å lære alle innbyggere i Sverige og Finland om kunstig intelligens (KI).
  • Økt interesse for data. Data har blitt en verdifull ressurs i alle organisasjoner, fra statlige myndigheter til små og store bedrifter. Dette har ført til at flere enkeltpersoner og organisasjoner er interessert i data.
graph TD;
    A(Data science)-->B(Medisin)
    A-->C(Finans);
    A-->D(Fysikk);
    A-->E(Kjemi);
    A-->F(Biologi);
    A-->G(Samfunn);
    A-->H(osv.);

Figur 1.1: Data science finnes innen alle fagområder.

Ikon av et programvindu med fargede felt som symboliserer kodelinjer

Data science er fagnøytralt

Du kan bruke denne boken til medisinsk forskning, finansielle analyser og forskning innen biologi, kjemi eller samfunnsvitenskap. Maskinvare, programvare og analysemetoder er identiske i alle bransjer.

1.1 Forutsetninger

Tidligere erfaring med programmering er en fordel, men ikke nødvendig for å lese denne boken. Hvem som helst kan lære seg å bruke R effektivt. Jo bedre du blir til å skrive kode, desto lettere blir arbeidet ditt. Evnen din til å skrive kode vil være en nærmest lineær funksjon av tiden du investerer i å lære.

1.2 Mål

Denne boken gir deg grunnlaget for selv å kunne gjennomføre en studie. Men du blir ikke ekspert av bare å lese denne boken. For å bli dyktig kreves ytterligere fordypning, og i denne boken får du passende henvisninger til hvor du kan fordype deg. Du vil likevel oppdage at denne boken rekker langt og gir deg grunnlaget du trenger for å arbeide med de metodene og temaene som angår deg mest.

Det er viktig å ha gode oppslagsverk for å kunne fordype seg. For statistiske metoder og maskinlæring anbefaler vi:

1.3 Programmere i R

R er et tolket språk (eng. interpreted language), noe som betyr at du må gi kommandoer for å utføre operasjoner (for eksempel beregninger). Å programmere eller kode betyr at man skriver kommandoer. Når du ber om det, vil R forsøke å utføre disse kommandoene.

1.3.1 Hvorfor programmere når man kan klikke?

Det er en grunnleggende forskjell mellom tolkede språk og programvare med grafisk grensesnitt (for eksempel SPSS, Excel osv.). Selv om programmer som Excel og SPSS virker enkle og bekvemme fordi man kan analysere bare ved å klikke, har de tydelige begrensninger. Det er for eksempel vanskelig å holde oversikt over alle klikk som er gjort, noe som kan gjøre det nærmest umulig å reprodusere resultatene. I tillegg er disse programmene begrenset av funksjonene som leverandøren tilbyr. Hvis du bruker R (eller Python), kan du følge koden din linje for linje og se nøyaktig hva du har gjort. Du kan når som helst justere kommandoene dine og umiddelbart få oppdaterte resultater. Du får også tilgang til de aller nyeste metodene og teknikkene, fordi hundretusenvis av eksperter arbeider daglig med å videreutvikle R (og Python). R og Python er gratis og dominerer i dag markedet for forskning, data science og statistikk (Figur 1.2). Det finnes kommersielle språk (for eksempel SAS, Stata), men bruken av disse går ned hvert år til fordel for R og Python.

Linjediagram fra Google Trends 2015 til 2022 der søkeinteressen for Python og R øker, mens SAS, STATA og SPSS ligger nær null
Figur 1.2: Resultater fra Google Trends for R, SAS, STATA, Python og SPSS.

1.4 Arbeidsgang

Figur 1.3 viser hvilke trinn som inngår i en typisk studie.

graph TD; A(Importere data)--> B(Inspisere data)--> C(Klargjøre og transformere data)--> D(Visualisere data)--> E(Beskrive data)--> F(Lage prediksjonsmodeller)--> H(Kommunisere resultater)

Figur 1.3: Trinn i en studie.

For å analysere data i R må dataene først importeres. Du kan importere i prinsippet hvilken som helst type data til R (SAS, STATA, SPSS, Excel, CSV osv.). Etter at dataene er importert, skal det gjøres en grundig inspeksjon. Inspeksjonen skal kartlegge egenskapene til kolonnene og radene.

For kolonnene (variablene) omfatter dette blant annet:

  • Kartlegging av hvilke variabeltyper som finnes, og om R har tolket variabeltypen riktig: En variabel som er numerisk (f.eks. kroppsvekt), må tolkes som numerisk (numerical) av R for å unngå feilaktige analyser.
  • Kartlegging og justering av de ulike nivåene (levels) til kategoriske variabler: Variabler som ikke er numeriske, er oftest faktorer i R (factor). Nivåene til hver faktorvariabel må gjennomgås og justeres ved behov.
  • Kartlegging av andelen missing for hver variabel: Manglende data er et problem i nesten alle analyser. Det er viktig å kartlegge hvor stort problemet er, og om og hvordan det kan håndteres.
  • Kartlegging av variablenes fordelinger: Enkle beskrivelser av variablenes fordelinger (maksimumsverdi, minimumsverdi, gjennomsnitt, median osv.) skal gjøres.
  • Opprettelse av nye variabler (kolonner).

For radene (observasjonene) omfatter dette blant annet:

  • Avklaring av om radene representerer unike individer.
  • Avklaring av om samme individ kan forekomme flere ganger i dataene.

Viktige begreper

  • Visualisering: å lage grafer og figurer.
  • Deskripsjon: Enkle matematiske beskrivelser av data. For eksempel bruk av gjennomsnitt og standardavvik for å beskrive fordelinger.
  • Prediksjon: Bruk av en modell for å forutsi et utfall eller en verdi. Et eksempel på et utfall er død (ja/nei), og et eksempel på en verdi er vektnedgang i kilogram. Man kan predikere (forutsi) om en pasient kommer til å overleve eller ikke, eller hvor mye en person kommer til å gå ned i vekt.
  • Prediksjonsmodell (statistisk modell): Prediksjonsmodeller brukes til å (1) beskrive sammenhenger mellom variabler eller (2) gjøre prediksjoner. De lages enten med klassisk regresjonsanalyse eller med maskinlæring. Alle modeller er en matematisk beskrivelse av data. De kan brukes til å estimere effekten av variabler (f.eks. hvordan kolesterol påvirker risikoen for hjerteinfarkt) eller gjøre prediksjoner (f.eks. hvor stor risikoen er for å få et hjerteinfarkt).
  • Tidy data: Data der kolonnene er variabler og radene er observasjoner.
  • Data wrangling: Bearbeiding av data slik at analyser kan gjøres.
  • Visualisering av data er nesten alltid viktig. Visualisering kan gjøres som ledd i inspeksjon, deskripsjon eller presentasjon av sluttresultater.

Ofte lages det også statistiske modeller (prediksjonsmodeller) for å studere sammenhenger mellom variabler eller for å lage prediksjonsmodeller. Som regel kan samme modell brukes både til å studere sammenhenger og til å gjøre prediksjoner.

1.5 Data frame

Å importere data betyr ganske enkelt at du åpner dataene og gjør dem tilgjengelige i R. Data viser oftest til en rektangulær tabell som består av rader og kolonner. Radene er observasjoner (for eksempel pasienter), og kolonnene er variabler. I R kalles disse tabellene data frames, som ofte forkortes df.

Navn Alder Inntekt Utdanning Kolesterol
Adam 45 324211 Høyskole 4.5
Zara 51 198765 Grunnskole 7.6
John 49 250643 Videregående 3.2

Eksempel på en data frame.

1.5.1 Andre datatyper

Med R kan du analysere data frames, fotografier, illustrasjoner, lydopptak og video. Fordi denne boken er rettet mot nybegynnere, vil data frames stå i sentrum.

1.5.2 Programvare

  • R: R er et språk og en programvare for databehandling og grafikk.
  • RStudio: RStudio ble laget for å gjøre arbeidet i R enklere. Fra og med oktober 2022 skifter RStudio navn til Posit. For å arbeide med R starter du bare RStudio. Med RStudio lager du også rapporter i PDF, EPUB og HTML.
  • Pakker (eng. package): Du kan utvide funksjonaliteten i R ved å installere pakker. Det finnes rundt 16000 tilgjengelige pakker.

1.6 Om R og RStudio

R er et språk som er utviklet spesielt for å analysere og visualisere data. R er ekstremt effektivt til dette formålet. Ingen andre språk er like effektive, fleksible og allsidige. R ble utviklet ved Bell Laboratories (tidligere AT&T, nå Lucent Technologies) av John Chambers og kolleger. I tillegg til standardinstallasjonen av R finnes det ytterligere 16000 pakker, noe som gir enorme muligheter.

1.6.1 Installere R

Last ned R (desktop version) fra CRAN (The Comprehensive R Archive Network): https://cloud.r-project.org.

1.6.2 Slik installerer du RStudio

RStudio er et såkalt IDE (integrated development environment), det vil si et program som gjør det enklere å programmere. RStudio gjør det enklere å holde oversikt over skript, filer, grafer og dokumenter. Last ned RStudio her: http://www.rstudio.com/download.

Figur 1.4 viser hvordan RStudio ser ut.

RStudio med fire paneler: skript, konsoll, miljø og verktøy, samt en enkel punktgraf i panelet Plots
Figur 1.4: RStudio.

Legg merke til i Figur 1.4 at det er fire vinduer i RStudio. Øverst til venstre finner du Source/Script, som brukes til å skrive og lagre kode (skript). Det er i dette vinduet du kommer til å skrive koden din. Under Source/Script finner du Console, som kan brukes til å kjøre korte kommandoer. Det er også i Console du får beskjed om skriptet ditt kunne eksekveres (kjøres).

1.7 Å kjøre kode i R

For å kjøre kode i Console kan du skrive kommandoen din på siste linje og trykke Enter. I Figur 1.5 ser du et eksempel der kommandoen 1+1 eksekveres.

Konsollen i RStudio der uttrykket 1+1 er kjørt og resultatet 2 vises
Figur 1.5: Å kjøre kode i R.

For å kjøre kode i Source/Script markerer du linjene du vil kjøre, og trykker på Run øverst til høyre i vinduet.

RStudio der to markerte kodelinjer i skriptet kjøres med knappen Run, og resultatene 2 og 4 vises i konsollen
Figur 1.6: Kjør flere kodelinjer samtidig i Script-vinduet.

Som det fremgår av Figur 1.4, finnes det ytterligere to vinduer i R, nemlig Environment (Miljø) og Verktøy. Under Environment ser du alle data frames og andre objekter du lager og importerer. Under Verktøy ser du flere paneler (File, Plots, Packages, Help osv.). Figur 1.7 viser at disse panelene presenterer filene dine, grafer du har laget, pakker som er tilgjengelige, og hjelpedokumentasjon for alle pakker og funksjoner.

Fanen Files i RStudio med en mappeliste med filnavn, størrelse og endringsdato
(a) File viser alle filer på datamaskinen. Herfra kan du åpne filer og inspisere filer i arbeidsmappen din.
Fanen Plots i RStudio som viser en enkel graf med et eneste punkt
(b) Plots viser figurer som du lager.
Fanen Packages i RStudio med en liste over installerte R-pakker, beskrivelser og versjonsnumre
(c) Packages viser hvilke pakker som er installert, og om de er aktivert.
Fanen Help i RStudio som viser hjelpedokumentet for funksjonen mean
(d) Help viser hjelpedokumenter for alle pakker og funksjoner.

Figur 1.7: Verktøy i RStudio.