1 Århus 27. januar 2014 Morten Frydenberg Statistik

Transcription

1 Århus 27. januar 2014 Morten Frydenberg Statistik
Århus 27. januar 2014
Morten Frydenberg
Statistik FSV 4. semester 2014
Holdundervisning
Uge 1: 4. februar
Introduktion til Stata
Hvad er Stata?
Stata er et program, der kan lave statistiske analyser af data. Udover dette kan Stata bruges til
datamanagement og til at lave grafer og andet.
Stata har de sidste par år fået større og større udbredelse blandt forskere inden for mange områder. Dette
skyldes, at det er rimeligt billigt, at Stata har en meget simpel licens politik (generelt ingen tidsbegrænsede
licenser), og ikke mindst at Stata er utrolig hurtig til at introducere de nyeste analysemetoder. Endelig har
Stata en meget aktiv brugergruppe, der udvikler nye programtilføjelser, som kan downloades og bruges
gratis af alle, der har Stata.
Hvad adskiller Stata fra programmer som fx Word og Excel?
Word og Excel er programmer, hvor man kun har én type filer, som programmerne kan arbejde med
(henholdsvis Excel regneark med endelsen .xls/.xlsx og Word dokumenter, .doc/.docx). Helt så enkelt er
det ikke med Stata, som er et program, der arbejder med flere forskellige typer filer.
Stata arbejder med følgende typer filer (bl.a.):
1. Data filer (har endelsen .dta i filnavnet). Disse indeholder data i et rektangulært format.
Typisk vil hver række svare til en person/patient/fødsel, mens man i søjlerne har information om
disse enheder (observationer).
2. Kommando-filer som man kalder do-filer (.do) – det er alene disse filer, som brugerne (jer!) skal
skrive, idet de indeholder opskriften på, hvordan alle andre filer skal hentes ind, behandles og
gemmes.
Disse filer indeholder de kommandoer/ordrer, som man vil udføre på en datafil.
3. log-filer (.log eller .scml), der indeholder resultatet af de beregninger, Stata har udført på baggrund
af en do-fil.
Udover disse filtyper findes der to andre:
4. Programmer, som kan køres inde i Stata som kommandoer. Disse kaldes ado-filer (.ado).
Nogle af disse er lavet af Stata Corp (firmaet bag Stata), men mange er lavet af brugere og kan
hentes gratis ned fra nettet.
5. Stata graf-filer (.gph), der indeholder grafer lavet af Stata. Disse filer kan kun læses af Stata.
Hvor kan I læse om brug af Stata?
Der er fem steder, hvor I kan søge hjælp, når I bruger Stata (prioriteret rækkefølge):
1
1. ISHR (Introduction to Stata for Health Researchers, 3rd Ed.).
Det meste af det, du vil lære i dag, er beskrevet kapitel 1 og 2 i ISHR.
Bemærk: ISHR er skrevet til Stata version 11. Der er sket nogle ændringer af Stata fra version 11 til
13, men de fleste har ingen betydning for dette kursus, se ”ISHR3 and Stata 12_13.pdf”, som ligger
under Stata på Blackboard.
Opsætningen af vinduerne i Stata er dog ændret noget, se øvelse 2.
2. Statas simple hjælpefunktion. Bruges ved enten at klikke sig frem i Help menuen i Stata eller ved at
skrive help i Stata’s Command-vindue – det sidste er oftest det letteste, fx help ttest.
3. Statas pdf dokumentation. Med installationen af Stata får man automatisk, hvad der svarer til en
hyldemeter manualer som pdf dokumenter. Man kan tilgå alle disse manualer ved at klikke Help >
PDF Documentation eller ved at klikke videre i den simple hjælpefunktion.
4. Dine undervisere.
5. Nettet. Der findes mange hjemmesider, hvor man kan finde hjælp til Stata, fx
http://www.stata.com/links/resources1.html og http://www.ats.ucla.edu/stat/stata/notes/
Der findes også nogle sider, der indeholder egentlige introduktionskurser til Stata.
Stata et program, der kan en hel masse ting, og vi vil kun komme ind på en lille del på dette kursus. Den
samlede dokumentation i pdf-form, der følger med Stata er enorm. Her er papirudgaven til version 12 på
min reol (bemærk, at jeg ikke har læst alle bøgerne):
2
Hvordan starter og afslutter man Stata?
Stata kan startes på (mindst) tre forskellige måder: Ved at starte Stata programmet (som man gør med
andre programmer), ved at dobbeltklikke på en Stata data-fil eller ved at dobbeltklikke på en Stata do-fil.
•
•
Under Windows kan man have flere Stata sessioner kørende samtidigt, dvs. hver gang du klikker på
en do-fil eller en Stata data fil, starter der en ny session.
Under MAC-OS kan man kun have en Stata session kørende ad gangen (hvis man da ikke bruger
”Ninja-tricks”).
Stata kan lukkes som andre programmer ved at klikke på krydset (under MAC-OS vil dette ikke lukke Stata
men blot ”dokke”/minimere Stata, ⌘+q vil lukke Stata). Udover dette kan man lukke Stata ved at skrive
exit (eller exit, clear) i Command vinduet.
Øvelse 1 – Stata hjælp
Start Stata.
Vi vil nu søge hjælp om Stata kommandoen summarize.
Find Command vinduet og skriv help summarize i dette.
Nu skulle du få åbnet et nyt vindue, der beskriver kommandoen summarize.
Kig lidt på det, der står i vinduet – men tag det roligt, du vil endnu ikke kunne forstå det hele ☺.
Øverst i vinduet står der [R] summarize. Dobbeltklik på dette link.
Du skulle nu få åbnet pdf-dokumentationen, som er noget mere omfattende.
Kig lidt på det, der står i vinduet – igen: tag det roligt, du vil endnu ikke kunne forstå det hele ☺.
Slå summarize op i ISHR på side 123. Kig også på side 31-33.
●
Øvelse 2 – Statas vinduer
Vi vil nu finde information om de forskellige vinduer og ikoner i Stata 12.
Skriv help gs i Command-vinduet.
Under ”2 The Stata user interface” klik på linket [GSW], hvis du bruger Windows-pc, alternativt på [GSM],
hvis du bruger en Mac.
Læs/skim afsnittene The windows, The toolbar, The Command window og The Results window.
På side 97 eller 95 starter kapitel 13 “Using the Do-file Editor -- automating Stata”. Skim dette.
Du ved nu, hvor du kan finde lidt hjælp om de mange vinduer I Stata.
●
3
Når man arbejder med Stata (og andre programmer), er det vigtigt at vide, hvor de filer ligger, som
programmet arbejder med.
I har sikkert forskellige systemer, I bruger til at holde orden i jeres mange forskellige filer. Dette vil vi for så
vidt ikke blande os i her på kurset, men vi forventer, at I altid ved, hvor en konkret fil ligger på jeres
PC/Mac!
Beslut placering og navn for den folder, du ønsker at bruge i forbindelse med disse øvelser!
Denne folder vil vi i det følgende kalde Arbejdsfolder – jeg har selv valgt en folder, der hedder
StataIntro under documents.
Download følgende filer fra AULA/Stata til Arbejdsfolder:
lung.dta
Intro1.do
Intro2.do
BodyData1.dta
Gen_Bodydata2.do
Øvelse 3 – Find stien til Arbejdsfolder
Dobbeltklik på lung.dta – dette skulle gerne få Stata til at åbne. Hvis ikke, så bed om hjælp!
Læs, hvad der står i Results vinduet.
Nederst bør der stå en linje, der ser nogenlunde således ud (Windows):
. use C:\Users\morten.BIOSTAT\Documents\StataIntro\lung.dta
og sådan på en Mac:
. use “/Users/BiostatMac/Documents/StataIntro/lung.dta”
Det, der står før lung.dta, er stien til Arbejdsfolder, dvs dens fulde navn. I eksemplerne ovenfor er det
Windows:
Mac:
“C:\Users\morten.BIOSTAT\Documents\StataIntro\”
“/Users/BiostatMac/Documents/StataIntro/”
Navnet på denne sti har du brug for, når du skal arbejde i Stata.
Det kan godt betale sig at kopiere denne sti – du får brug for den lige om lidt!
(Hvis du på et tidspunkt er i tvivl om hvor Stata arbejder, så kan du bruge kommandoen pwd eller se
nederst til venstre i Stata vinduet.)
●
Nu er det tid til at se lidt på, hvad Stata kan. Som første eksempel ser vi på det lille datasæt (lung.dta)
med lungefunktion og højde, som vi brugte til øvelserne den 17. april 2013 i Epidemiologi og Biostatistik.
4
Øvelse 4 - Lidt om hvad Stata kan
Åbn Stata.
Vi vil nu udføre nogle kommandoer i Stata ved at skrive dem i Command vinduet og trykke på Return/Entertasten .
Først skal du angive, hvor du vil arbejde ved at skrive cd Arbejdsfolder fx :
cd ”C:\Users\morten.BIOSTAT\Documents\StataIntro\”
Dernæst åbner du lung.dta ved at skrive
use lung.dta, clear
For at få et hurtigt overblik over data:
summarize
Lidt mere detaljeret information om højden (variablen height) fås ved at angive denne variabel og tilføje
optionen detail:
summarize height, detail
Informationer om køn findes i variablen sex. Dette er en kategorisk variabel, så her vil gennemsnit og
percentiler ikke give mening (overvej hvorfor!). En lille tabel vil selvfølgelig være bedre
tab1 sex
Selvom tabellen skriver ”female” og ”male”, så antager variablen sex reelt værdierne 1 eller 2, men der er
knyttet labels til disse (vi vil vende tilbage til labels senere). Dette kan ses ved at skrive
codebook sex
Her kan vi se, at for kvinder har sex værdien 1, og for mænd har sex værdien 2.
Lad os udnytte dette til at få lidt informationer om højde og PEFR for kvinderne:
summarize height PEFR if sex == 1
Den sidste del (if sex==1) angiver, at vi kun vil have informationerne, hvis sex er lig 1 (dvs. for kvinder).
Bemærk, at man her skal skrive ”==” for at vise, at der er tale om et såkaldt logisk lighedstegn, hvor vi
sammenligner venstre og højre side for at finde ud af, om udsagnet er sandt eller falsk for hver observation.
Hvis man kun vil se på mændene, skriver man tilsvarende:
summarize height PEFR if sex == 2
Vi kan få sikkerhedsintervallerne for middel PEFR for mænd og kvinder med kommandoerne
ci PEFR if sex==1
ci PEFR if sex==2
Af ovenstående kan vi finde forskellen i PEFR for kvinder i forhold til mænd:
δˆ = µˆ female − µˆ male = 474.07 − 568.21 = −94.14
( )
2
2
se δˆ = se ( µˆ female ) + se ( µˆ male ) = 7.482 + 8.282 = 11.16
Approx95%CI : −94.14 ± 1.96i11.16 = (−116; −72)
Vi kan også teste hypotesen om ingen forskel ved det approksimative test:
z=
δˆ − 0 −94.14
=
= −8.43
11.16
se δˆ
( )
p < 0.001
I Stata kan vi meget let lave denne sammenligning under antagelse af normalfordelte data, baseret på tfordelingen:
ttest PEFR, by(sex)
5
Vi bruger her option by(sex) til at angive, at vi ønsker at sammenligne to grupper, som de er angivet ved
i variablen sex.
I outputtet ses et summary for mænd og kvinder samt en beskrivelse af forskellen i linjen diff (spring
over linjen combined, som typisk er irrelevant).
Teststørrelsen for hypotesen om ingen forskel mellem de to køn findes under tabellen, og vi aflæser t =
-8.1270 og den tilhørende p-værdi som Pr(|T| > |t|) = 0.0000.
VI vil også gerne lave nogle tegninger af data. Vi kan starte med et histogram over PEFR:
histogram PEFR
Eller endnu bedre kan vi opdele på køn (her i samme tegning ved brug af by(sex)):
histogram PEFR, by(sex)
Man kan supplere med normalfordelingskurver ved at tilføje option normal:
histogram PEFR, by(sex) normal
Lad os se på sammenhængen mellem højde og PEFR. En tegning vil være en god start:
scatter PEFR height
Igen opdelt på køn
scatter PEFR height, by(sex)
Vi kan også få Stata til at lave en lineær regression af PEFR på højde – her blandt mændene:
regress PEFR height if sex == 2
hvoraf vi kan aflæse, at den estimerede linje for mændene er givet ved
PEFR = −131.25 + 3.94ihøjde
mens vi for kvinderne får PEFR = −2.39 + 2.87ihøjde , jf:
regress PEFR height if sex == 1
Luk Stata ved at skrive
exit
●
Øvelse 5 – Stata data filer: .dta-filer
Åbn Stata og datasættet lung.dta.
Der er tre måde, hvorved man kan se direkte på data: man kan browse (se, men ikke ændre), list (data
bliver listet op i Results vinduet) eller edit (se, og med mulighed for at ændre).
Generelt bør man nøjes med at browse eller liste, så man ikke fejlagtigt kommer til at ændre data.
Vi vil starte med at browse:
browse
I det nye vindue kan vi til venstre se data. I søjlerne ser vi henholdsvis nummeret på personen, køn, højde,
PEFR og VC (et andet mål for lungefunktion). Der er en række for hver person.
I undervinduet Variables kan vi vælge, hvilke variable vi vil se.
I undervinduet Properties kan vi se informationer om den enkelte variabel og data.
6
Man kan også vælge kun at se på nogle enkelte variable og kun for en delmængde af personer, så for fx at
se køn, højde og PEFR for alle, der er højere end 170:
browse sex height PEFR if height > 170
Eller alternativt, alle observationer i linjerne 3 til 10 ved brug af
browse sex height PEFR in 3/10
Som sagt kan man også få listet data i Results vinduet
list
Stata vil skrive --more--, når skærmen er fuld. Tryk på mellemrumstasten for at fortsætte.
For at liste udvalgte variable og personer
list sex height PEFR if height > 170
Vi husker, at sex faktisk er gemt som 1 (kvinder) og 2 (mænd). Hvis man vil se data uden disse labels kan
man tilføje options nolabel til browse eller list
list sex height PEFR in 3/10, nolabel
Vi vil nu ændre i data vha. af dataeditoren.
(Dette er noget, vi i øvrigt kraftigt advarer imod at gøre, da alle rettelser normalt skal være
dokumenterede, se øvelse 9).
edit
Vi vil nu ændre højden for person nr. 3 fra 163cm til 210cm ved at dobbeltklikke på cellen og skrive 210 i
stedet for 163. Afslut ved at trykke på Return-tasten.
Luk derefter data-editor vinduet.
Læs, hvad der nu står i Results vinduet.
Vi vil nu lukke Stata ved at skrive
exit
Stata burde nu skrive ”no; data in memory would be lost” (med rødt). Dette betyder, at Stata godt ved, at
der er blevet ændret i data. Hvis man ikke ønsker at gemme ændringerne, kan man skrive
exit, clear
Hvis man derimod ønsker at gemme de ændrede data i en ny Stata data fil med et andet navn, fx
lung1.dta, så skriver man:
save lung1.dta
●
Nu vil vi se på en Stata do-fil.
Øvelse 6 – Stata program filer: .do-filer
Dobbeltklik på Intro1.do i din Arbejdsfolder.
Stata skulle nu starte op med Intro1.do åbnet i Do-file Editor.
7
I Do-file Editoren kan du både editere do-filer og køre (dette hedder ”do” i Stata) hele eller dele af do-filer.
Kig lidt på do-filen. Den indeholder alle de kommandoer, som du brugte i øvelse 4.
Derudover er der tilføjet nogle kommentarer – det er de linjer, der starter med *. Kommentarlinjerne bliver
ikke udført af Stata, når du kører filen, men de er nyttige til at huske og beskrive, hvad programmet egentlig
laver, og hvad formålet med det er.
Start med at rette cd “C:\Users\morten.BIOSTAT\Documents\StataIntro\”, så den stemmer med din
Arbejdsfolder.
Gem den rettede fil, som du plejer at gøre, når du bruger andre programmer (fx Ctrl+s eller ⌘+s).
Marker de første 24 linjer (til og med ”* middel PEFR for kvinder og mænd”). Disse 24 linjer ”køres” nu ved
at trykke på Ctrl+d ( Mac: ⌘+SHIFT+d) eller ved at klikke på do-knappen,
, yderst til højre, øverst i
vinduet.
Bemærk, at du nu har kørt alle de markerede kommandoer, og resultaterne står i Results vinduet i Stata.
Man kan også køre en enkelt linie:
marker linie 22: ci PEFR if sex == 1 og tryk Ctrl-d
Hvis man vil køre hele filen fra start til slut, så skal man blot undlade at markere noget, og så trykke på
Ctrl+d eller
Prøv dette.
.
●
Selv om man i Stata kan klikke sig frem via menuer eller udføre kommandoer ved at skrive dem i Command
vinduet, vil vi på kurset for det meste bruge do-filer. Typisk vil man skrive en ny kommando i den do-fil,
man arbejder på, markere den og trykke Ctrl+d (⌘+SHIFT+d) for at køre den. Hvis der er en fejl i
kommandoen, eller hvis den ikke gør det, man havde regnet med, så må man ændre kommandoen, indtil
den er ok. Derefter kan man gå videre med næste kommandolinje. Man kan som i andre programmer også
copy/paste dele af do-filen, hvis man har brug for dette. På denne måde vil man ende med en do-fil, der
fungerer fra start til slut, og man kan til slut køre hele do-filen for at få et output, der ikke indeholder
fejlmeldinger – dette kræver ofte en del forsøg undervejs!
Do-filer bestemmer således, hvad Stata skal lave, og outputtet ender i Results vinduet og tegningerne i et
Graph vindue (der hele tiden ændrer sig). Men vi har brug for at kunne gemme resultaterne samt
tegningerne til senere brug.
Vi vil først se på hvordan man gemmer det, der bliver skrevet i Results vinduet. Vi vil her på kurset kun
bruge .log filer, der er almindelig tekst-filer helt uden formatering (såkaldte ASCII- filer), der kan læses af
andre, ret simple programmer (såkaldte text editors).
Det er en god ide at give log-filen det samme ”fornavn” som den do-fil, den passer sammen med,
fx så resultater fra do-filen Intro1.do gemmes i en log-fil med navnet Intro1.log.
8
Øvelse 7 – Stata resultatfiler: .log-filer
Åbn Intro1.do igen.
Husk at sikre dig, at cd kommandoen henviser til din Arbejdsfolder.
Vi vil nu sørge for, at alt der bliver skrevet i Results vinduet, bliver gemt i en log-fil, der hedder
Intro1.log.
Indsæt to nye linier efter cd-linien:
capture log close
log using Intro1.log, text replace
Den første linie sikrer, at man starter på en ny log-fil (er der en allerede igangværende log-fil, lukkes den).
Den anden starter log-filen, som overskriver Intro1.log, hvis den allerede eksisterer.
For at lukke log-filen samt sikre, at log-filen bliver gemt, afsluttes do-filen med:
log close
Gør dette og kør hele do-filen.
De sidste linier i Results vinduet skulle nu ligne disse:
. log close
name: <unnamed>
log: C:\Users\morten.BIOSTAT\Documents\StataIntro\Intro1.log
log type: text
closed on: 25 Jan 2012, 13:07:49
---------------------------------------------------------------------------------------------------
Man kan åbne log-filen i Stata vha. Statas ”viewer”. Skriv
view Intro1.log
i Command vinduet.
Udenfor Stata kan log-filen læses ved brug af fx Notepad (Windows). Prøv dette.
●
Som du har set, så kan man lave fine tegninger i Stata. Disse kan man også have lyst til at gemme, så man
senere kan sætte dem ind fx i et Word dokument. Stata kan gemme (eksportere) grafer i mange forskellige
formater. Vi vil her på kurset bruge ”png” (Portable Network Graphics) formatet.
Øvelse 8 – Export af Stata grafer
Åbn Intro2.do i Stata og ret cd kommandoen.
Marker til og med ”*EN TEGNING SLUT” og kør dette.
Dette skulle gerne resultere i, at der kommer et Graph vindue med flot(!) tegning.
I de næste linjer gemmer vi nu en kopi af grafen som hhv. pdf-fil , en png-fil og en wmf-fil ( dette virker kun
under Windows). Alle har ”fornavnet” tegning1 og efternavn (extension), der angiver grafik-typen.
Kør disse linjer.
Luk Stata og find tegningerne i Arbejdsfolder.
●
9
Ofte har man brug for at tilføje nye (afledte) variable til sit datasæt eller lave andre former for
datamanagement. Dette kan også med fordel gøres i Stata.
Øvelse 9 – Tilføje nye variable til og rette fejl i et Stata datasæt
BodyData1.dta indeholder informationer om køn, alder, højde og vægt for ca. 5 000 personer. Hvis vi
senere skal bruge data til at studere fedme, har vi brug for BMI samt BMI inddelt i passende grupper.
Kønnet er blot givet ved 1 eller 2, hvilket ikke er særligt klart.
Endelig er der angivet en forkert vægt for personen med idnr 4013: den burde være 76 kg og ikke 760 kg.
Denne fejl skal rettes, inden vi beregner BMI.
Vi vil derfor nu lave et nyt datasæt, BodyData2.dta, baseret på BodyData1.dta.
Dette vil vi også gøre i en do-fil for at dokumentere ændringen. Denne do-fil har fået et navn,
Gen_BodyData2.do, så vi senere kan finde den fil, der bliver brugt til at lave (generere) den nye datafil.
Åbn Gen_BodyData2.do og ret cd linjerne.
Kig på linjerne, kør dem et par stykker af gangen, og læs hvad der står i Results.
Der er nogle nye kommandoer:
replace
bliver brugt til at ændre en allerede eksisterende variabel.
generate
bliver brugt til at lave en ny variabel ved at regne på de, der allerede er i datasættet.
egen
kan ligeledes lave en ny variabel, men er noget mere avanceret.
Her deler vi BMI op i grupper ud fra nogle velvalgte cutpoints (18.5, 25 og 30).
tabstat
er (endnu) en måde, vi kan lave en tabel med forskelligt indhold (stats).
label define laver labels, der senere kan tilknyttes en variabel.
label values tilknytter labels til en variabel.
save
gemmer det aktuelle datasæt under det valgte navn i den aktuelle folder;
option replace tillader, at man overskriver, hvis dta-filen allerede findes.
●
Som sagt er der mange aktive brugere af Stata. Nogle af disse laver nye funktioner/kommandoer til Stata,
som andre brugere kan downloade og bruge.
Du skal i næste øvelse hente en sådan kommando og se, hvor den bliver gemt på din computer.
Øvelse 10 – Hente procedurer lavet af andre brugere på nettet.
I uge 10 i Epidemiologi og Biostatistik omtalte jeg kort Pearsons korrelationskoefficient. Beregning af
sikkerhedsintervallet for denne er lidt kompliceret (se KS side 95-96).
Det ville derfor være rart, hvis man kunne gøre det i Stata, men det kan man ikke umiddelbart!
Men en bruger har lavet en kommando (en ado-fil), der kan. Udfør nedenstående ved at skrive i Command
vinduet.
10
Åbn BodyData2.dta i Stata
Beregn korrelationen mellem højde og vægt:
corr hoejde vaegt
Et estimat, men intet sikkerhedsinterval!
Prøv at skrive
corrci hoejde vaegt
Dette bør give en rød fejlmeddelelse: unrecognized command: corrci.
Med andre ord: Stata kender ikke (endnu) kommandoen corrci.
Det er muligt i Stata at lede på nettet efter kommandoen. Dette kan fx gøres ved:
findit corrci
Dette åbner et vindue med resultaterne af søgningen. Øverst er to fund fra det, der hedder Stata Journal
(SJ) SJ-10-4 og SJ-8-3. Den øverste er en opdatering af den nederste – det er den øverste, vi vil bruge.
Klik på linket pr0041_1
klik på click here to install i det nye vindue
(bemærk, kendte vi navnet på pakken i forvejen, så kunne vi bare skrive net install pr0041_1 )
Nu skulle kommandoen være installeret og Viewer vinduet kan lukkes.
Prøv igen med
corrci hoejde vaegt
Så fik vi også et sikkerhedsinterval!!
Der er også kommet en hjælp til kommandoen
help corrci
Til slut vil vi lige se, hvor Stata har gemt de filer, du har hentet.
Bemærk, dette kan være lidt forskelligt, alt efter hvordan man har installeret Stata.
Kommandoen
sysdir
laver en liste over de forskellige foldere, Stata programmet bruger.
Linjen (PLUS) viser den folder, hvor Stata gemmer de kommandoer, du henter fra nettet - ligesom du lige
har gjort med corrci.
●
11