Datastrukturer - Helse Bergen · 2017. 6. 15. · AD 2000 m 0-14 0 AD 2000 m 15-24 0 AD 2000 m...

40
Datastrukturer Kevin Thon 25 april 2017

Transcript of Datastrukturer - Helse Bergen · 2017. 6. 15. · AD 2000 m 0-14 0 AD 2000 m 15-24 0 AD 2000 m...

  • 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!