10 Tabelanalyser
Tabeller og diverse tests i en-, to- eller flervejstabeller laves vha proc freq
. Som gennemgående eksempel i dette afsnit benytter vi datasættet fra 3. undervisningsuge om køn og farveblindhed:
data farveblind;$ farveblind $ antal;
input gender
datalines;119
pige nej 1
pige ja 144
dreng nej 6
dreng ja
; run;
Idet datasættet indeholder 4 linjer (en for hver kombination af køn og farveblindhed) og hver linje repræsenterer antal
personer, skal alle analyser på dette datasæt udføres med ekstra linje weight antal;
. Normalt ville vi have et datasæt på 119+1+144+6=270 linjer. I så fald ville al syntaksen nedenfor virke fint uden denne weight
-linje.
10.1 Envejstabeller
En tabel af en enkelt variabel laves med syntaks a la
=farveblind;
proc freq data
tables farveblind;/* OBS: Fordi datasættet indeholder 4 og ikke n=270 linjer */
weight antal; run;
Bemærk at der her ikke tages højde for køn, men at vi blot beregner andelen af farveblinde for hele stikprøven. Ønsker vi at beregne andelene for hvert køn for sig, kan vi tilføje en linje
where gender='pige';
for at få beregningen kun for piger eller vi kan først sortere datasættet efter køn og tilføje en linje by gender;
.
10.1.1 CI for andele / binomialtest
Ønsker vi CI for andelen og evt også et test for om hyppigheden af farveblinde er f.eks. 50% udvides syntaksen til
=farveblind;
proc freq data/ binomial;
tables farveblind
exact binomial;/* OBS: Fordi datasættet indeholder 4 og ikke n=270 linjer */
weight antal; run;
binomial
itables
-linjen angiver, at vi ønsker at bestemme CI for andelen af farveblinde (laveste niveau affarveblind
-variablen, som erja
) / teste hypotesen at p=0.50 (default option) svarende til at sandsynligheden for farveblindhed er 50%. Det er selvfølgelig en fjollet hypotese. Ønsker vi at teste at andelen er fx 5% skriver vibinomial(p=0.05)
i stedet. Test og CI er baseret på normalfordelingsapproximationen til binomialfordelingen, som fungerer godt når p ikke er for tæt på 0 eller 1 og n ikke er for lille.exact binomial
supplerer med eksakt CI og test (altid validt).
10.2 Tovejstabeller
En tabel hvor man holder to variable op mod hinanden (tovejstabel) kan opnås ved at sætte en * mellem de to variable i tables
-linien. Variablen før *’en kommer i rækkerne, variablen efter i søjlerne.
Syntaksen har formen:
=farveblind;
proc freq data* farveblind;
tables gender run;
Her kan man med en række ekstra options styre, hvilke procenter SAS skal beregne og få lavet et test for om de to variable er uafhængige ved at tilføje options efter en / i tables-linien, f.eks:
=farveblind;
proc freq data* farveblind / nopercent nocol chisq;
tables gender run;
Ovenfor specificeres at vi ikke ønsker totalprocenter (nopercent
) og søjleprocenter (nocol
, vi får så kun rækkeprocenter) og at vi ønsker et chi-i-anden test (chisq
) for uafhængighed. Hyppigt anvendte options er:
nopercent
Udelader total-procenternocol
Udelader søjleprocenternorow
Udelader rækkeprocenterexpected
Tilføjer den forventede værdi under hypotesen om uafhængighed mellem række- og søjlevariablenechisq
Udfører chi-i-anden test i tovejs-tabeller. Bruger du Studio får du kun en p-værdi ud, bruger du Enterprise kommer der adskillige, hvor den første svarer til det hyppigt anvendte Pearson chi-i-anden testrelrisk
Beregner relativ risiko og oddsratio for en 2x2-tabel incl konfidensintervallerriskdiff
Bestemmer risikodifferensen incl CI for en 2x2 tabel
10.3 McNemar test (parrede data)
For parrede binære data kan andelene f.eks før/efter en intervention sammenlignes med et McNemar test (hypotesen er, at andelen af ‘positive/successer’ ikke er ændret fra før til efter). Testet udføres ved at lave 2x2 tabellen og tilføje en linje exact mcnem;
.
For eksemplet med sammenligning af to sensitiviter for tuberkulosepatienter (uge 3):
data tuberkulose;$ B $ antal;
input A
datalines;+ + 20
+ - 12
- + 2
- - 16
;
run;
=tuberkulose;
proc freq data*B / norow nocol;
tables A
exact mcnem;
weight antal; run;