basal statistik 30. september 2008publicifsv.sund.ku.dk/~ebj/basal08_2/overheads/omvendt...• der...

72
Basal statistik 30. september 2008

Upload: others

Post on 29-Feb-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Basal statistik

30. september 2008

Variansanalyse

• Sammenligning af flere grupper

• Ensidet variansanalyse

• Tosidet variansanalyse

• Interaktion

• Modelkontrol

Peter Dalgaard,

Biostatistisk Afdeling

Institut for Folkesundhedsvidenskab,

Københavns Universitet

Slides af Lene T. Skovgaard findes pa

http://staff.pubhealth.ku.dk/~ebj/basal08_2

variansanalyse, september 2008 1

ANOVA (variansanalyse) i relation til t-test

antal grupper,

behandlinger, forskellige individer (units) samme individ (unit)

situationer el.lign.

2 uparret t-test parret t-test

≥3 ensidet anova tosidet anova

Tosidet variansanalyse

forekommer dog oftest i anden sammenhæng:

Personerne kan inddeles efter flere forskellige inddelingskriterier

(f.eks. rygestatus og aktivitetsniveau)

variansanalyse, september 2008 2

Typiske problemstillinger:

• Hvordan afhænger behandlingens effekt af sygdomsstadium?

• Er der forskel pa effektiviteten af diverse præparater til

nedsættelse af blodtrykket?

• Afhænger lungefunktionen af rygestatus? Og af aktivitetsniveau?

Datastruktur:

• Et antal personer (n) fordelt i et antal veldefinerede grupper (k)

Analyseform er ensidet variansanalyse

• Personerne er inddelt efter flere forskellige inddelingskriterier

(f.eks. rygestatus og aktivitetsniveau)

Analyseform er tosidet (flersidet) variansanalyse

variansanalyse, september 2008 3

Sammenligning af mere end 2 grupper

Eksempel:

22 ptt. bypass-operationer, randomiseret til 3 slags ventilering

Outcome: Red cell foliate (noget med folinsyre)

Gruppe I 50% N2O, 50% O2 i 24 timer

Gruppe II 50% N2O, 50% O2 under op.

Gruppe III 30–50% O2 (ingen N2O) i 24

timer

Gr.I Gr.II Gr.III

n 8 9 5

Mean 316.6 256.4 278.0

SD 58.7 37.1 33.8

• Er der forskel pa fordelingerne af responset i de enkelte grupper?

• Er der forskel pa niveauerne i de enkelte grupper?

variansanalyse, september 2008 4

Pas pa massesignifikans:

sammenlign ikke alle grupper to

og to!

med mindre....... (se senere)

variansanalyse, september 2008 5

Ensidet variansanalyse, ANOVA (one-way analysis of variance)

• ensidet: fordi der kun er et inddelingskriterium,

f.eks. som her ventileringsmetode

• variansanalyse: fordi man sammenligner variansen mellem

grupper med variansen indenfor grupper

Antagelser:

• Alle observationer er uafhængige

(personerne gar ikke igen flere gange, er ikke tvillinger o.l.)

• Der er samme varians (samme spredning, dvs. biologisk

variation) i alle grupper

• Inden for hver gruppe er observationerne normalfordelt

variansanalyse, september 2008 6

Model: Ygi = µg + εgi

i’te observation individuel

i gruppe nr. g afvigelse

middelværdi for

gruppe nr. g

Observationerne antages at følge en normalfordeling

(inden for hver gruppe) med samme spredning σ.

εgi ∼ N(0, σ2), Ygi ∼ N(µg, σ2)

variansanalyse, september 2008 7

Ensidet variansanalyse gar ud pa at undersøge, om alle k grupper kan

tænkes at have samme middelværdi, altsa at teste hypotesen:

H0 : µ1 = µ2 = · · · = µk

Fremgangsmade ved ensidet variansanalyse:

• Variansestimater for hver gruppe pooles til et fælles estimat, s2,

som er et skøn over (den fælles) varians indenfor grupper.

• Hypotesen om ens middelværdier for alle grupper (H0 : µg = µ)

testes ved et F-test pa forholdet mellem

’variation mellem grupper’ og ’variation indenfor grupper’.

variansanalyse, september 2008 8

Kvadratsummer

Opspaltning af observationer: ygi − y·= (ygi − yg) + (yg − y

·)

ygi i-te observation i g-te gruppe

yg gennemsnit i g-te gruppe

y. totalgennemsnit

Opspaltning af variation (kvadratsum, sum of squares, SS):∑

i,j

(ygi − y·)2 =

i,j

(ygi − yg)2

︸ ︷︷ ︸

indenfor grupper

+∑

i,j

(yg − y·)2

︸ ︷︷ ︸

mellem grupper

SStot = SSw + SSb

(n − 1) = (n − k) + (k − 1)

variansanalyse, september 2008 9

Middelkvadratsummer (Mean Squares, MS):

MSw = SSw/(N − k): Poolet varians indenfor de 3 grupper

MSb = SSb/(k − 1): Varians mellem gruppegennemsnit

Teststørrelse: F = MSb

MSw

Vi forkaster nulhypotesen hvis F er stor, dvs. hvis variationen mellem

grupper er for stor i forhold til variationen indenfor grupper.

Variansanalyseskema

df SS MS F P

Between 2 15515.88 7757.9 3.71 0.04

Within 19 39716.09 2090.3

Total 21 55231.97

variansanalyse, september 2008 10

Ensidet ANOVA i SAS:

OBS: Data sættes op i 2 kolonner, en med outcome (redcell)

og en med klassifikationsvariablen (grp).

I Analyst:

Statistics→ANOVA→ One-Way ANOVA...

hvor redcell er ’Dependent’ og grp er ’Class’:

The ANOVA Procedure

Class Level Information

Class Levels Values

grp 3 1 2 3

Number of observations 22

variansanalyse, september 2008 11

Dependent Variable: redcell

Sum of

Source DF Squares Mean Square F Value Pr > F

Model 2 15515.76641 7757.88321 3.71 0.0436

Error 19 39716.09722 2090.32091

Corrected Total 21 55231.86364

R-Square Coeff Var Root MSE redcell Mean

0.280921 16.14252 45.72003 283.2273

Source DF Anova SS Mean Square F Value Pr > F

grp 2 15515.76641 7757.88321 3.71 0.0436

variansanalyse, september 2008 12

Hvis man ogsa vil have estimater og konfidensgrænser

....og det vil man vel som regel:

Statistics→ANOVA→ Linear Models, klik Statistics og

afkryds Parameter Estimates

Ga endvidere ud i koden og tilføje ’clparm’ i model-linien:

model redcell=grp / solution clparm;

hvorved man vil fa

Standard

Parameter Estimate Error t Value Pr > |t| 95% Confidence Limits

Intercept 278.0000000 B 20.44661784 13.60 <.0001 235.2047370 320.7952630

grp 1 38.6250000 B 26.06442584 1.48 0.1548 -15.9284703 93.1784703

grp 2 -21.5555556 B 25.50141290 -0.85 0.4085 -74.9306262 31.8195151

grp 3 0.0000000 B . . . . .

variansanalyse, september 2008 13

Normalfordelingsantagelsen

Det er antaget, at observationerne følger en normalfordeling

inden for hver gruppe. Dette bør checkes, f.eks.:

• ved at tegne histogrammer eller fraktildiagrammer

for hver gruppe

• ved at tegne histogram eller fraktildiagram for residualerne

rgi = Ygi − µg = Ygi − Yg

• ved at lave normalfordelingstest, enten for hver gruppe for sig,

eller samlet for residualerne

variansanalyse, september 2008 14

Histogram af residualer, med overlejret normalfordeling:

Flot er det jo ikke

– men hvad kan man forvente med kun 22 observationer....

variansanalyse, september 2008 15

Fraktildiagram:

Tests for Normality

Test --Statistic--- -----p Value------

Shapiro-Wilk W 0.965996 Pr < W 0.6188

Kolmogorov-Smirnov D 0.107925 Pr > D >0.1500

Cramer-von Mises W-Sq 0.043461 Pr > W-Sq >0.2500

Anderson-Darling A-Sq 0.263301 Pr > A-Sq >0.2500

Her vurderes normalfordelingsantagelsen at være OK

variansanalyse, september 2008 16

Test for identiske varianser/spredninger i de 3 grupper

(en af forudsætningerne for den ensidede variansanalyse)

Dette testes ved at klikke Test og afkrydse i ’Levenes test’:

Levene’s Test for Homogeneity of redcell Variance

ANOVA of Squared Deviations from Group Means

Sum of Mean

Source DF Squares Square F Value Pr > F

grp 2 18765720 9382860 4.14 0.0321

Error 19 43019786 2264199

Ved sammenligning af de k = 3 variansestimater fas en teststørrelse

pa 4.14, som er F(2,19)-fordelt, svarende til P=0.03, og altsa

signifikans!

variansanalyse, september 2008 17

Antagelsen om varianshomogenitet

kan ogsa checkes grafisk med residualplot:

Residualer tegnes op mod predikterede (=forventede=fittede) værdier

Det giver dog ikke sa meget ny information....

variansanalyse, september 2008 18

Multiple sammenligninger

Problem:

F -test viser, at der nok er

forskel—men hvor?

Parvise t-test ikke godt pga.

massesignifikans

Der er m = k(k − 1)/2 mulige test, reelt

signifikansniveau: 1 − (1 − α)m,

f.eks. for k=5: 0.40

variansanalyse, september 2008 19

Hvad gør man sa i praksis?

Der findes ikke nogen helt tilfredsstillende løsning, men

1. Prøv at undga problemet (fokuser problemstillingen)

2. Udvælg et (lille) antal relevante sammenligninger pa forhand,

dvs. skriv dem ind i protokollen!

3. Tegn gennemsnit ±2 × SEM og brug øjemalet (!?),

evt. suppleret med F -tests pa delsæt af grupper.

4. Modificer t-test ved at gange P med antallet af tests, den

sakaldte Bonferroni korrektion (konservativ)

eller anden form for korrektion (Dunnett, Tukey).

variansanalyse, september 2008 20

Statistics→ANOVA→

One-Way ANOVA...

Tryk Plots og videre i

Means Plot

Her med Bars pa 2 s.e., dvs. konfidensintervaller for middelværdierne

I direkte programmering ændres i symbol-sætningen:

symbol1 v=circle i=std1jt l=1 h=3 w=2;

variansanalyse, september 2008 21

Korrektion for multiple sammenligninger

• Bonferroni

– benytter signifikansniveau αm

– stærkt konservativ, dvs. for høje P-værdier (lav styrke)

• Sidak

– benytter signifikansniveau 1 − (1 − α)1

m ≈ αm for sma m

– lidt mindre konservativ, men stadig ret lav styrke

• Tukey

– baseres pa fordeling af ’størst blandt mange’

– giver større styrke

• Dunnett

– korrigerer kun for test mod referencegruppe

(typisk en kontrolgruppe eller ’tid 0’)

variansanalyse, september 2008 22

Multiple sammenligninger i SAS Analyst:

Vælg Statistics/Anova/Linear Models

og herunder

• Means/LS Means, vælg grp og

• compute p’s for pairwise differences

samt Bonferroni eller Tukey som Adjustment Method:

• For ogsa at fa konfidensintervaller, skal man ud i koden og tilføje

cl i lsmeans-sætningen:

lsmeans grp / pdiff adjust=bonferroni cl;

lsmeans grp / pdiff adjust=tukey cl;

variansanalyse, september 2008 23

Eksempel pa SAS output for Bonferroni korrektionen:

Adjustment for Multiple Comparisons: Bonferroni

Least Squares Means for effect grp

Pr > |t| for H0: LSMean(i)=LSMean(j)

Dependent Variable: redcell

i/j 1 2 3

1 0.0418 0.4643

2 0.0418 1.0000

3 0.4643 1.0000

Adjustment for Multiple Comparisons: Bonferroni

Difference Simultaneous 95%

Between Confidence Limits for

i j Means LSMean(i)-LSMean(j)

1 2 60.180556 1.861360 118.499751

1 3 38.625000 -29.796878 107.046878

2 3 -21.555556 -88.499465 45.388354

variansanalyse, september 2008 24

Eksempel pa SAS output for Tukey korrektionen:

Adjustment for Multiple Comparisons: Tukey-Kramer

Least Squares Means for effect grp

Pr > |t| for H0: LSMean(i)=LSMean(j)

Dependent Variable: redcell

i/j 1 2 3

1 0.0355 0.3215

2 0.0355 0.6802

3 0.3215 0.6802

Adjustment for Multiple Comparisons: Tukey-Kramer

Difference Simultaneous 95%

Between Confidence Limits for

i j Means LSMean(i)-LSMean(j)

1 2 60.180556 3.742064 116.619047

1 3 38.625000 -27.590379 104.840379

2 3 -21.555556 -86.340628 43.229517

variansanalyse, september 2008 25

Hvis antagelserne ikke holder:

• Transformation (ofte logaritmer)

kan afhjælpe savel variansinhomogenitet som darlig

normalfordelingstilpasning

• Man kan lave vægtet analyse

(Welch’s test), ligesom ved T-test

Statistics→ANOVA→ One-Way ANOVA...

Klik Tests og afkryds Welch’s variance-weighted test

Welch’s ANOVA for redcell

Source DF F Value Pr > F

grp 2.0000 2.97 0.0928

Error 11.0646

Vi er altsa ikke alt for sikre pa den fundne forskel.....

variansanalyse, september 2008 26

Analyse af logaritmerede data:

Dependent Variable: logredcell

Sum of

Source DF Squares Mean Square F Value Pr > F

Model 2 0.03365613 0.01682807 3.54 0.0494

Error 19 0.09034142 0.00475481

Corrected Total 21 0.12399755

R-Square Coeff Var Root MSE logredcell Mean

0.271426 2.819603 0.068955 2.445562

Source DF Anova SS Mean Square F Value Pr > F

grp 2 0.03365613 0.01682807 3.54 0.0494

Levene’s Test for Homogeneity of logredcell Variance

ANOVA of Squared Deviations from Group Means

Sum of Mean

Source DF Squares Square F Value Pr > F

grp 2 0.000046 0.000023 2.01 0.1621

Error 19 0.000218 0.000011

variansanalyse, september 2008 27

Standard

Parameter Estimate Error t Value Pr > |t|

Intercept 2.441548395 B 0.03083768 79.17 <.0001

grp 1 0.052315114 B 0.03931048 1.33 0.1990

grp 2 -0.036690342 B 0.03846134 -0.95 0.3521

grp 3 0.000000000 B . . .

Parameter 95% Confidence Limits

Intercept 2.377004395 2.506092396

grp 1 -0.029962665 0.134592894

grp 2 -0.117190853 0.043810170

grp 3 . .

variansanalyse, september 2008 28

Fortolkning af logaritmeret analyse

Eksempelvis forskel mellem gruppe 1 og gruppe 3:

Estimatet var 0.05232 med konfidensgrænser (−0.02996, 0.13459)

Det skal tilbagetransformeres:

100.05232 = 1.128

med konfidensgrænser (10−0.02996, 100.13459) = (0.933, 1.363)

Det betyder,

at gruppe 1 estimeres til at ligge 12.8% højere end gruppe 3,

med 95% grænser fra 6.7% under til 36.3% over.

variansanalyse, september 2008 29

Non-parametrisk Kruskal-Wallis test:

Statistics→ANOVA→ Nonparametric One-Way ANOVA...

hvor redcell sættes som ’Dependent’ og grp som ’Independent’

(darlig betegnelse):

Kruskal-Wallis Test

Chi-Square 4.1852

DF 2

Asymptotic Pr > Chi-Square 0.1234

Exact Pr >= Chi-Square 0.1233

Bemærk: Man kan ogsa fa en eksakt vurdering af teststørrelsen, men

pas pa i tilfælde af store materialer!

variansanalyse, september 2008 30

Direkte programmering:

/* indlæsning af data og dannelse af sasuser.redcell */

data sasuser.redcell;

input grp redcell;

datalines;

1 243

1 251

1 275

1 291

1 347

1 354

3 241

3 258

3 270

3 293

3 328

;

run;

variansanalyse, september 2008 31

/* scatter plot, s. 4 */

proc gplot data=a1;

plot redcell*grp

/ haxis=axis1 vaxis=axis2 frame;

axis1 order=(1 to 3 by 1) offset=(8,8)

label=(H=3 ’gruppe nr.’) value=(H=3) minor=NONE;

axis2 offset=(1,1) value=(H=3) minor=NONE

label=(A=90 R=0 H=3 ’red cell foliate’);

symbol1 v=circle i=none l=1 h=3 w=2;

run;

/* analyse s. 10-11,16,25 */

proc anova data=sasuser.redcell;

class grp;

model redcell=grp; /* s. 10 */

means grp / hovtest=levene welch; /* s. 16 + 25 */

output out=ny p=predikt r=resid;

run;

variansanalyse, september 2008 32

/* analyse s. 12,16,24 */

proc glm data=sasuser.redcell;

class grp;

model redcell=grp / solution clparm; /* s. 12 */

means grp / hovtest=levene; /* s. 16 */

lsmeans grp / pdiff adjust=tukey cl; /* s. 24 */

run;

/* figurer s. 14,15 */

proc univariate normal data=ny;

var resid;

histogram / cfill=gray height=3 normal; /* s. 14 */

probplot / height=3 normal(mu=EST sigma=EST l=33); /* s. 15 */

inset mean std skewness / header=’descriptive’;

run;

/* nonparametrisk sammenligning, s. 29 */

proc npar1way data=a1 anova wilcoxon;

exact wilcoxon;

class grp;

var redcell;

run;

variansanalyse, september 2008 33

ANOVA (variansanalyse) i relation til t-test

antal grupper,

behandlinger, forskellige individer (units) samme individ (unit)

situationer el.lign.

2 uparret t-test parret t-test

≥3 ensidet anova tosidet anova

Tosidet variansanalyse

forekommer dog oftest i anden sammenhæng:

Personerne kan inddeles efter flere forskellige inddelingskriterier

(f.eks. rygestatus og aktivitetsniveau)

variansanalyse, september 2008 34

Korttidseffekt af enalaprilat pa puls, gentagne malinger

Tid

Person 0 30 60 120 mean

1 96 92 86 92 91.50

2 110 106 108 114 109.50

3 89 86 85 83 85.75

4 95 78 78 83 83.50

5 128 124 118 118 122.00

6 100 98 100 94 98.00

7 72 68 67 71 69.50

8 79 75 74 74 75.50

9 100 106 104 102 103.00

mean 96.56 92.56 91.11 92.33 93.14

Ved sammenligning af tidspunkter skal man eliminere variation mellem

personer, ganske som i et parret t-test

variansanalyse, september 2008 35

Linieplot (“Spaghettiogram”)

Puls vs. tid,

observationer hørende til samme

person forbundet.

Ideelt er forløbene parallelle (additivitet).

variansanalyse, september 2008 36

Additiv model:

Der er effekt af person (p) og tid (t):

Ypt = µ + αp + βt + εpt

og disse virker additivt (de skal lægges sammen).

(Nødvendigt med passende band pa parametrene, i SAS f.eks. α9 = β4 = 0).

εpt uafhængige, middelværdi 0, samme spredning, normalfordelte,

dvs. εpt ∼ N(0, σ2).

Variationsopspaltning:

SStot = SSperson + SStid + SSres

variansanalyse, september 2008 37

Forsøg pa grafisk illustration af modellen:

Ideelt set parallelle forløb, overlejret med normalfordelt variation

giver mere irregulære forløb.

Person 2

Time point

Person 1

Person 2

Time point

Person 1

variansanalyse, september 2008 38

Variansanalyseskema

df SS MS F P

Personer 8 8966.6 1120.8 90.60 <0.0001

Tid 3 151.0 50.3 4.07 0.0180

Resid. 24 296.8 12.4

Total 35 9414.3

Højsignifikant forskel pa personer

(forventeligt, men ikke sa interessant)

Signifikant tidsforskel, P=0.018, men vi mangler estimater!

variansanalyse, september 2008 39

Man kan igen med fordel anvende:

Statistics/Anova/Linear Models med puls som Dependent og

bade person og tid som Class-variable.

I Statistics vælges Parameter Estimates:

Class Level Information

Class Levels Values

person 9 1 2 3 4 5 6 7 8 9

tid 4 0 30 60 120

Number of observations 36

Dependent Variable: puls

Sum of

Source DF Squares Mean Square F Value Pr > F

Model 11 9117.527778 828.866162 67.03 <.0001

Error 24 296.777778 12.365741

Corrected Total 35 9414.305556

R-Square Coeff Var Root MSE puls Mean

0.968476 3.775539 3.516496 93.13889

variansanalyse, september 2008 40

Source DF Type III SS Mean Square F Value Pr > F

tid 3 150.972222 50.324074 4.07 0.0180

person 8 8966.555556 1120.819444 90.64 <.0001

Standard

Parameter Estimate Error t Value Pr > |t|

Intercept 102.1944444 B 2.03024963 50.34 <.0001

tid 0 4.2222222 B 1.65769189 2.55 0.0177

tid 30 0.2222222 B 1.65769189 0.13 0.8945

tid 60 -1.2222222 B 1.65769189 -0.74 0.4681

tid 120 0.0000000 B . . .

person 1 -11.5000000 B 2.48653783 -4.62 0.0001

person 2 6.5000000 B 2.48653783 2.61 0.0152

person 3 -17.2500000 B 2.48653783 -6.94 <.0001

person 4 -19.5000000 B 2.48653783 -7.84 <.0001

person 5 19.0000000 B 2.48653783 7.64 <.0001

person 6 -5.0000000 B 2.48653783 -2.01 0.0557

person 7 -33.5000000 B 2.48653783 -13.47 <.0001

person 8 -27.5000000 B 2.48653783 -11.06 <.0001

person 9 0.0000000 B . . .

Bemærk, at de sidste niveauer af hver faktor (Class-variabel)

bliver sat til 0

De kaldes referenceniveauer

variansanalyse, september 2008 41

Forventede værdier for person=3, tid=30:

ypt = µ + αp + βt

= 102.19 − 17.25 + 0.22

= 85.16

Residualer

rpt = ypt − ypt = ypt − yp. − y.t + y..

Altsa f.eks.

y32 = 85.16

r32 = 86 − 85.16 = 0.84

variansanalyse, september 2008 42

Modelkontrol

Se efter:

• Varianshomogenitet (systematik, trompet?)

• Normalfordelingstilpasning

(tunge haler?, skæv fordeling?)

• Mangel pa additivitet (vekselvirkning):.

kan kun undersøges hvis der er flere observationer pr. ’celle’

• Seriel korrelation? (Naboobservationer hænger tættere sammen)

variansanalyse, september 2008 43

Residualer vs. forventede værdier

Der bør ikke ses nogen systematik.

variansanalyse, september 2008 44

Check af normalfordelingsantagelsen:

Det ser rimeligt ud

variansanalyse, september 2008 45

Check af uafhængighed er rimeligt her,

da der er flere observationer for hver person

Vi har godt nok et personniveau, men der kunne være ekstra seriel

korrelation, dvs. at naboresidualer kunne ligne hinanden

Modeller, der inkluderer sadanne korrelationer, gar under navnet

Repeated measurements

variansanalyse, september 2008 46

Der ser ikke ud til at være seriel korrelation her

variansanalyse, september 2008 47

Direkte programmering af den tosidede variansanlyse:

data sasuser.puls;

infile ’puls.tal’ firstobs=2;

input person tid0 tid30 tid60 tid120;

/* udfoldning af data til 4 linier pr. person */

tid=0; puls=tid0; output;

tid=30; puls=tid30; output;

tid=60; puls=tid60; output;

tid=120; puls=tid120; output;

run;

/* figur s. 35 */

proc gplot data=sasuser.puls;

plot puls*tid=person

/ nolegend haxis=axis1 vaxis=axis2 frame;

axis1 value=(H=3) minor=NONE label=(H=3);

axis2 value=(H=3) minor=NONE label=(A=90 R=0 H=3);

symbol1 v=circle i=join c=BLACK l=2 h=3 w=2 r=9;

run;

variansanalyse, september 2008 48

/* analyse s. 39-40 */

proc glm data=sasuser.puls;

class person tid;

model puls=tid person / solution;

output out=ny p=predikt r=resid;

run;

/* figur s. 43 */

proc gplot gout=plotud data=ny;

plot resid*yhat

/ vref=0 lv=33 haxis=axis1 vaxis=axis2 frame;

axis1 value=(H=3) minor=NONE label=(H=3 ’Expected’);

axis2 value=(H=3) minor=NONE label=(A=90 R=0 H=3 ’Residual’);

symbol1 v=circle i=none c=BLACK h=3 l=2 w=2 r=9;

run;

/* figurer s. 44 */

proc univariate normal data=ny gout=plotud;

var resid;

histogram / cfill=gray height=3 normal;

probplot / height=3 normal(mu=EST sigma=EST l=33);

inset mean std skewness / header=’descriptive’;

run;

variansanalyse, september 2008 49

data b1;

set ny;

lagresid=lag(resid);

run;

/* figur s. 46 */

proc gplot gout=plotud data=b1; where tid>0;

plot resid*lagresid

/ href=0 lh=33 vref=0 lv=33 haxis=axis1 vaxis=axis2 frame;

axis1 value=(H=3) minor=NONE label=(H=3 ’forrige residual’);

axis2 value=(H=3) minor=NONE label=(A=90 R=0 H=3 ’residual’);

symbol1 v=circle i=none c=BLACK h=3 l=2 w=2 r=9;

run;

variansanalyse, september 2008 50

Eksempel pa vekselvirkning (interaktion):

• To inddelingskriterier: køn og rygestatus

• Outcome: FEV1

• Effekten af rygning afhænger af køn

• Forskellen pa kønnene afhænger af rygestatus

variansanalyse, september 2008 51

Mulige forklaringer:

• biologisk forskel pa effekt af rygning

– holder vist ikke i praksis,

men eksemplet er jo ogsa blot ’tænkt’

• maske ryger kvinderne ikke helt sa meget

– antal pakkear confounder for køn

• maske virker rygningen som en relativ (%-vis) nedsættelse af

FEV1

– kunne undersøges ved en longitudinel undersøgelse

variansanalyse, september 2008 52

Eksempel: Rygnings effekt pa fødselsvægt

variansanalyse, september 2008 53

Interaktion/vekselvirkning mellem mængden og varigheden af

rygningen

• Der er effekt af mængden, men kun hvis man har røget længe.

• Der er effekt af varigheden, og denne effekt øges med mængden.

Effekten af mængden afhænger af....

og effekten af varigheden afhænger af....

variansanalyse, september 2008 54

Eksempel: Fibrinogen efter miltoperation

34 rotter randomiseres, pa 2 mader

• 17 far fjernet milten (splenectomy=yes)

• 8/17 i hver gruppe opholder sig i stor højde (place=altitude)

Outcome:

Fibrinogen niveau i mg% ved dag 21

variansanalyse, september 2008 55

variansanalyse, september 2008 56

Den sædvanlige additive model:

Yspr = µ + αs + βp + εspr

splenectomy (s=yes/no) og place (p=altitude/control)

virker additivt.

Model med interaktion (vekselvirkning)

Yspr = µ + αs + βp + γsp + εspr

Her specificeres en interaktion mellem splenectomy og place, dvs.

effekten af ophold i stor højde tænkes at afhænge af, hvorvidt man

har faet fjernet milten eller ej.

— og omvendt ....

variansanalyse, september 2008 57

Tosidet variansanalyse med vekselvirkning:

Statistics→ANOVA→ Linear Models

hvor fibrinogen sættes som ’Dependent’ og

savel splenectomy som place som ’Class’.

For at fa interaktionsleddet med, klikkes nu Model, hvorefter man

udvælger begge variable og trykker Cross/Add:

The GLM Procedure

Class Level Information

Class Levels Values

splenectomy 2 no yes

place 2 altitude control

Number of observations 34

variansanalyse, september 2008 58

Dependent Variable: fibrinogen

Sum of

Source DF Squares Mean Square F Value Pr > F

Model 3 138402.2949 46134.0983 7.51 0.0007

Error 30 184321.2639 6144.0421

Corrected Total 33 322723.5588

R-Square Coeff Var Root MSE fibrinogen Mean

0.428857 22.21804 78.38394 352.7941

Source DF Type I SS Mean Square F Value Pr > F

place 1 57895.84355 57895.84355 9.42 0.0045

splenectomy 1 79976.50000 79976.50000 13.02 0.0011

splenectomy*place 1 529.95139 529.95139 0.09 0.7710

Source DF Type III SS Mean Square F Value Pr > F

place 1 57895.84355 57895.84355 9.42 0.0045

splenectomy 1 78937.01021 78937.01021 12.85 0.0012

splenectomy*place 1 529.95139 529.95139 0.09 0.7710

variansanalyse, september 2008 59

Standard

Parameter Estimate Error t Value

Intercept 261.6666667 B 26.12798017 10.01

place altitude 90.5833333 B 38.08774887 2.38

place control 0.0000000 B . .

splenectomy no 104.4444444 B 36.95054391 2.83

splenectomy yes 0.0000000 B . .

splenectomy*place no altitude -15.8194444 B 53.86421101 -0.29

splenectomy*place no control 0.0000000 B . .

splenectomy*place yes altitude 0.0000000 B . .

splenectomy*place yes control 0.0000000 B . .

Parameter Pr > |t|

Intercept <.0001

place altitude 0.0240

place control .

splenectomy no 0.0083

splenectomy yes .

splenectomy*place no altitude 0.7710

splenectomy*place no control .

splenectomy*place yes altitude .

splenectomy*place yes control .

variansanalyse, september 2008 60

Estimater

Referenceniveauerne er:

place=control, splenectomy=yes

(de sidste i den alfabetiske

rækkefølge)

Denne gruppe har et for-

ventet fibrinogenniveau pa

intercept=261.67

For de andre niveauer skal der

adderes et eller flere korrektions-

led, saledes:

place

splenectomy control altitude

261.67 261.67

yes + 90.58

= 352.25

261.67 261.67

+ 104.44 + 104.44

no + 90.58

- 15.82

= 366.11 = 440.87

variansanalyse, september 2008 61

Vi kan godt fa SAS til at udregne disse niveauer explicit:

I Model under Linear Models fjernes hovedvirkningerne, og der

afkrydses i No intercept

Source DF Type III SS Mean Square F Value Pr > F

splenectomy*place 4 4370167.736 1092541.934 177.82 <.0001

Standard

Parameter Estimate Error t Value

splenectomy*place no altitude 440.8750000 27.71290793 15.91

splenectomy*place no control 366.1111111 26.12798017 14.01

splenectomy*place yes altitude 352.2500000 27.71290793 12.71

splenectomy*place yes control 261.6666667 26.12798017 10.01

Parameter Pr > |t|

splenectomy*place no altitude <.0001

splenectomy*place no control <.0001

splenectomy*place yes altitude <.0001

splenectomy*place yes control <.0001

– men sa mister vi muligheden for at teste

variansanalyse, september 2008 62

Vekselvirkningen er ikke signifikant (P=0.77),

sa vi simplificerer til en

tosidet variansanalyse uden vekselvirkning:

The GLM Procedure

Dependent Variable: fibrinogen

Sum of

Source DF Squares Mean Square F Value Pr > F

Model 2 137872.3435 68936.1718 11.56 0.0002

Error 31 184851.2153 5962.9424

Corrected Total 33 322723.5588

R-Square Coeff Var Root MSE fibrinogen Mean

0.427215 21.88815 77.22009 352.7941

Source DF Type III SS Mean Square F Value Pr > F

place 1 57895.84355 57895.84355 9.71 0.0039

splenectomy 1 79976.50000 79976.50000 13.41 0.0009

variansanalyse, september 2008 63

Standard

Parameter Estimate Error t Value Pr > |t|

Intercept 265.3888889 B 22.50900351 11.79 <.0001

place altitude 82.6736111 B 26.53221591 3.12 0.0039

place control 0.0000000 B . . .

splenectomy no 97.0000000 B 26.48627265 3.66 0.0009

splenectomy yes 0.0000000 B . . .

Parameter 95% Confidence Limits

Intercept 219.4814736 311.2963042

place altitude 28.5608000 136.7864222

place control . .

splenectomy no 42.9808908 151.0191092

splenectomy yes . .

variansanalyse, september 2008 64

Modelkontrolplots:

variansanalyse, september 2008 65

Test for normalitet:

Goodness-of-Fit Tests for Normal Distribution

Test ---Statistic---- -----p Value-----

Kolmogorov-Smirnov D 0.12781780 Pr > D >0.150

Cramer-von Mises W-Sq 0.10652540 Pr > W-Sq 0.091

Anderson-Darling A-Sq 0.53922199 Pr > A-Sq 0.160

variansanalyse, september 2008 66

Direkte programmering af interaktion:

data a1;

input place $ splenectomy $ fibrinogen;

datalines;

a y 528

a y 444

a y 228

c n 388

c n 425

c n 344

c n 425

;

run;

variansanalyse, september 2008 67

data sasuser.fibrinogen;

set a1;

if place=’a’ then place=’altitude’;

if place=’c’ then place=’control’;

if splenectomy=’y’ then splenectomy=’yes’;

if splenectomy=’n’ then splenectomy=’no’;

if place=’a’ and splenectomy=’y’ then group=’yes_altitude’;

if place=’c’ and splenectomy=’y’ then group=’yes_control’;

if place=’a’ and splenectomy=’n’ then group=’no_altitude’;

if place=’c’ and splenectomy=’n’ then group=’no_control’;

run;

/* figur s. 55 */

proc gplot data=sasuser.fibronogen;

plot fibrinogen*group

/ nolegend haxis=axis1 vaxis=axis2 frame;

axis1 offset=(3,3) value=(H=2) minor=NONE label=(H=3);

axis2 value=(H=3) minor=NONE label=(A=90 R=0 H=3);

symbol1 v=circle i=none c=BLACK h=3;

run;

variansanalyse, september 2008 68

/* analyse s. 57-59 */

proc glm data=sasuser.fibronogen;

class splenectomy place;

model fibrinogen=place splenectomy place*splenectomy / solution;

*output out=ny p=yhat r=resid;

run;

/* analyse s. 61 */

proc glm data=sasuser.fibronogen;

class splenectomy place;

model fibrinogen=place*splenectomy / noint solution;

run;

/* analyse s. 62-63 */

proc glm data=sasuser.fibronogen;

class splenectomy place;

model fibrinogen=place splenectomy / solution clparm;

output out=ny p=yhat r=resid;

run;

variansanalyse, september 2008 69

/* figur s. 64 */

proc gplot data=ny;

plot resid*yhat

/ haxis=axis1 vaxis=axis2 frame;

axis1 value=(H=3) minor=NONE label=(H=3 ’Expected’);

axis2 value=(H=3) minor=NONE label=(A=90 R=0 H=3 ’Residual’);

symbol1 v=circle i=none c=BLACK h=3 l=2 w=2 r=9;

run;

/* figur og test s. 64,65 */

proc univariate normal data=ny;

var resid;

probplot / height=3 normal(mu=EST sigma=EST l=33);

histogram / cfill=gray height=3 normal;

inset mean std skewness / header=’descriptive’;

run;