basal statistik 30. september 2008publicifsv.sund.ku.dk/~ebj/basal08_2/overheads/omvendt...• der...
TRANSCRIPT
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 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 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 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 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 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;