Upload
others
View
20
Download
0
Embed Size (px)
Citation preview
Datastrukturer
Kevin Thon
25 april 2017
Innledning
De fleste som er involvert med registerdata på et eller annet plan vilet et tidspunkt måtte forholde seg til hvordan dataen er strukturert.
Dette gjelder f.eks. ved:
I Utvikling/design av registerI Eksport/import av registerdataI Analyse av registerdataI Validering av registerdata
Avgrensing
I Denne forelesningen vil i stor grad ha fokus på data ut og kun iliten grad berøre temaer som omhandler databaser og effektivdatalagring.
Avgrensing
I Denne forelesningen vil i stor grad ha fokus på data ut og kun iliten grad berøre temaer som omhandler databaser og effektivdatalagring.
I Det betyr fokus på et bredere tema nemlig vasking/rydding avdata for å etablere analyseklare datasett. Praktiske eksemplervil benytte statistikkprogrammet R men fokus vil være påunderliggende konsepter.
Avgrensing
I Denne forelesningen vil i stor grad ha fokus på data ut og kun iliten grad berøre temaer som omhandler databaser og effektivdatalagring.
I Det betyr fokus på et bredere tema nemlig vasking/rydding avdata for å etablere analyseklare datasett. Praktiske eksemplervil benytte statistikkprogrammet R men fokus vil være påunderliggende konsepter.
I Disclaimer: Innholdet er sterkt inspirert av Hadley Wickham sinartikkel Tidy Data og eksemplene er hentet direkte derfra.
Definisjoner
De fleste statistiske datasett er rektangulære tabeller bestående avrader og kolonner.
Table 1: En tabell med behandlingsresultatet av to metoder i et fiktivteksperiment
treatmenta treatmentb
John Smith - 8Jane Doe 15 14Mary Johnson 17 12
Definisjoner forts.
I Et datasett er en samling verdier, typisk numeriske ellertekstlige. Hver verdi tilhører en variabel og en observasjon.
Definisjoner forts.
I Et datasett er en samling verdier, typisk numeriske ellertekstlige. Hver verdi tilhører en variabel og en observasjon.
I En variabel inneholder alle verdier som måler sammeunderliggende atributt på tvers av enheter. Eksempler: Høyde,blodtrykk, O2-opptak.
Definisjoner forts.
I Et datasett er en samling verdier, typisk numeriske ellertekstlige. Hver verdi tilhører en variabel og en observasjon.
I En variabel inneholder alle verdier som måler sammeunderliggende atributt på tvers av enheter. Eksempler: Høyde,blodtrykk, O2-opptak.
I En observasjon inneholder alle verdier målt på samme enhet(f.eks person, operasjon, dag) på tvers av atributter.
Oppgave
treatmenta treatmentb
John Smith - 8Jane Doe 15 14Mary Johnson 17 12
I Oppgave: Hva er variablene i dette datasettet?
Oppgave
treatmenta treatmentb
John Smith - 8Jane Doe 15 14Mary Johnson 17 12
I Oppgave: Hva er variablene i datasettet?I Løsningsforslag:
1. person med verdiene John Smith, Mary Johnson, and Jane Doe2. behandling med verdiene a og b3. resultat med verdiene 8, 15 14, 17, 12 (og én missing)
Hva er god datastruktur?
I Avhengig av formålet
Hva er god datastruktur?
I Avhengig av formåletI God struktur for lagring er ikke nødvendigvis god struktur for
analyse
Hva er god datastruktur?
I Avhengig av formåletI God struktur for lagring er ikke nødvendigvis god struktur for
analyseI Forskjellige typer analyse kan forusette forskjellig struktur
Hva er god datastruktur?
I Avhengig av formåletI God struktur for lagring er ikke nødvendigvis god struktur for
analyseI Forskjellige typer analyse kan forusette forskjellig strukturI Forskjellig programvare kan forutsette ulik struktur for samme
analyser. . .
Data i flere tabeller
I Et register sin database vil typisk bestå av flere tabeller, f.eks.:I PasientinfoI Behandlerskjema/intervensjonI Oppfølging
I Som regel ønsker registerfolk/forskere data i én fil - koblingoverlates til IT leverandør
I Ikke alltid praktisk mulig f.eks. for kronikerregister medvilkårlig antall oppfølginger
Kobling av data - prinsipper
I Hver tabell vil ha én eller flere koblingsnøklerI Pasient-IDI Foløps-ID
I Ved en kobling matcher man rader med samme koblingsnøkkelI Forskjellige måter å koble data:
I Inner join: Behold rader med koblingsnøkkel i begge tabellerI Left outer join: Behold alle rader i venstre tabell, de som ikke
har matchende koblingsnøkkel i høyre tabell blir tommeI Full outer join: Behold alle rader, ikke-matchede (venstre eller
høyre) blir tommeI Right outer join: Behold alle rader i høyre tabell, de som ikke
har matchende koblingsnøkkel i venstre tabell blir tomme
Kobling av data - eksemplerEksempeldata:
PART PRODNR SUPPLIER
WIRE 10 ACWFOIL 160 WESTERN_CHEMMAGNETS 10 BATEMANPLASTIC 30 PLASTIK_CORPBLADES 205 ACE_STEEL
PRODUCT PRODNR PRICE
SCREWDRIVER 505 3.70RELAY 30 7.55SAW 205 18.90GENERATOR 10 45.75
Kobling av data - eksempler
Inner join:
PRODNR PART SUPPLIER PRODUCT PRICE
10 WIRE ACWF GENERATOR 45.7510 MAGNETS BATEMAN GENERATOR 45.7530 PLASTIC PLASTIK_CORP RELAY 7.55
205 BLADES ACE_STEEL SAW 18.90
Kobling av data - eksempler
Figure 1
Ryddig (tidy) data
Et datasett er ryddig når:
1. Hver variabel utgjør en kolonne2. Hver observasjon utgjør en rad
(noe forenklet. . . )
Ryddig versjon av Tabell 1.
treatmenta treatmentb
John Smith - 8Jane Doe 15 14Mary Johnson 17 12
name trt result
John Smith a -Jane Doe a 15Mary Johnson a 17John Smith b 8Jane Doe b 14Mary Johnson b 12
Rotete data
Datasett man treffer på i villmarken vil ofte bryte med prinsippenefor ryddige datasett, og det på alle mulige måter. F.eks.:
I Kolonnenavn kan være verdier (ikke variabelnavn)
Rotete data
Datasett man treffer på i villmarken vil ofte bryte med prinsippenefor ryddige datasett, og det på alle mulige måter. F.eks.:
I Kolonnenavn kan være verdier (ikke variabelnavn)I Flere variabler kan være lagret i én kolonne
Rotete data
Datasett man treffer på i villmarken vil ofte bryte med prinsippenefor ryddige datasett, og det på alle mulige måter. F.eks.:
I Kolonnenavn kan være verdier (ikke variabelnavn)I Flere variabler kan være lagret i én kolonneI Variabler kan være lagret i både rader og kolonner
Kolonnenavn kan være verdier
religion
Ryddig form
religion income freq
Agnostic 150k 84Agnostic Don’t know/refused 96Atheist
Flere variabler kan være lagret i én kolonne
country year m014 m1524 m2534 m3544 m4554
11 AD 2000 0 0 1 0 037 AE 2000 2 4 4 6 561 AF 2000 52 228 183 149 12988 AG 2000 0 0 0 0 0137 AL 2000 2 19 21 14 24166 AM 2000 2 152 130 131 63179 AN 2000 0 0 1 2 0208 AO 2000 186 999 1003 912 482237 AR 2000 97 278 594 402 419266 AS 2000 - - - - 1
Oppryddingcountry year column cases
AD 2000 m014 0AD 2000 m1524 0AD 2000 m2534 1AD 2000 m3544 0AD 2000 m4554 0AD 2000 m5564 0AD 2000 m65 0AE 2000 m014 2AE 2000 m1524 4AE 2000 m2534 4AE 2000 m3544 6AE 2000 m4554 5AE 2000 m5564 12AE 2000 m65 10AE 2000 f014 3
Oppryddingcountry year sex age cases
AD 2000 m 0-14 0AD 2000 m 15-24 0AD 2000 m 25-34 1AD 2000 m 35-44 0AD 2000 m 45-54 0AD 2000 m 55-64 0AD 2000 m 65+ 0AE 2000 m 0-14 2AE 2000 m 15-24 4AE 2000 m 25-34 4AE 2000 m 35-44 6AE 2000 m 45-54 5AE 2000 m 55-64 12AE 2000 m 65+ 10AE 2000 f 0-14 3
Flere variabler i én kolonne: Norsk register
Figure 2
Variabler kan være lagret i både rader og kolonner
id year month element d1 d2 d3 d4 d5
MX17004 2010 1 tmax - - - - -MX17004 2010 1 tmin - - - - -MX17004 2010 2 tmax - 27.3 24.1 - -MX17004 2010 2 tmin - 14.4 14.4 - -MX17004 2010 3 tmax - - - - 32.1MX17004 2010 3 tmin - - - - 14.2MX17004 2010 4 tmax - - - - -MX17004 2010 4 tmin - - - - -MX17004 2010 5 tmax - - - - -MX17004 2010 5 tmin - - - - -
Opprydding
id date element value
MX17004 2010-01-30 tmax 27.8MX17004 2010-01-30 tmin 14.5MX17004 2010-02-02 tmax 27.3MX17004 2010-02-02 tmin 14.4MX17004 2010-02-03 tmax 24.1MX17004 2010-02-03 tmin 14.4MX17004 2010-02-11 tmax 29.7MX17004 2010-02-11 tmin 13.4MX17004 2010-02-23 tmax 29.9MX17004 2010-02-23 tmin 10.7
Opprydding
id date tmax tmin
MX17004 2010-01-30 27.8 14.5MX17004 2010-02-02 27.3 14.4MX17004 2010-02-03 24.1 14.4MX17004 2010-02-11 29.7 13.4MX17004 2010-02-23 29.9 10.7MX17004 2010-03-05 32.1 14.2MX17004 2010-03-10 34.5 16.8MX17004 2010-03-16 31.1 17.6MX17004 2010-04-27 36.3 16.7MX17004 2010-05-27 33.2 18.2
Ryddige data - hva så?
I Ryddige verktøy: Ryddig input -> ryddig outputI Forenkler en sammensatt analyse siden output fra ett verktøy
kan gis som input til et annet
Ryddige data - hva så?
I Ryddige verktøy: Ryddig input -> ryddig outputI Forenkler en sammensatt analyse siden output fra ett verktøy
kan gis som input til et annetI Kan potensielt forenkle de vanligste operasjoner på data:
I Manipulering (filtrering, transformering, aggregering, sortering)I Plotting/visualisering (ggplot2)I Modellering (f.eks regresjonsanalyse)
Oppsummering
I Vær bevisst hva du ønsker å bruke dataen til
Oppsummering
I Vær bevisst hva du ønsker å bruke dataen tilI Ingen fasit, bli kjent med mulighetene i ditt foretrukne verktøy
Oppsummering
I Vær bevisst hva du ønsker å bruke dataen tilI Ingen fasit, bli kjent med mulighetene i ditt foretrukne verktøyI En konsistent måte å tenke dataorganisering og struktur gjør at
man slipper å begynne fra scratch for hvert datasett
Oppsummering
I Vær bevisst hva du ønsker å bruke dataen tilI Ingen fasit, bli kjent med mulighetene i ditt foretrukne verktøyI En konsistent måte å tenke dataorganisering og struktur gjør at
man slipper å begynne fra scratch for hvert datasettI Struktur bare én av mange utfordringer
Takk for meg!