p. 1/3 Forelesning 9 STK3100/4100 Plan for forelesning: 18. oktober 2012 Geir Storvik 1. Lineære blandede modeller 2. Marginale modeller 3. Estimering - ML og REML 4. Modell seleksjon
p. 2/3 Modell med alle antagelser Y i =X i β + Z i b i + ε i,i = 1,...,N b i N(0,D) ε i N(0,Σ i ) b 1,..,b N,ε 1,...,ε N uavhengige Laird & Ware modell formulering Ofte: Forenklede strukturer på D,Σ i D = d 2 I,Σ i = σ 2 I
p. 3/3 Marginal modell/likelihood Y i N(X i β,v i ) V i =Z i DZ T i + Σ i avh av parametre ψ L i =f(y i ;β,ψ) 1 = (2π) n i/2 V i 1/2 exp{ 1(Y 2 i X i β) T V 1 i (Y i X i β)} l i = n i log(2π) 1 log V 2 2 i 1(Y 2 i X i β) T V 1 i (Y i X i β N l(β,ψ) = i=1 l i
p. 4/3 Direkte spesifisering av marginal modell V i = τ 2 φ φ φ φ φ τ 2 φ φ φ φ φ τ 2 φ φ φ φ φ τ 2 φ φ φ φ φ τ 2 Compound symmetric structure, svarer til Σ i =σ 2 I,Z i = 1 T,D = d 2 = φ,τ 2 = σ 2 + d 2
p. 5/3 Direkte spesifisering av marginal modell V i = τ 2 c 21 c 31 c 41 c 51 c 21 τ 2 c 32 c 42 c 52 c 31 c 32 τ 2 c 43 c 53 c 41 c 42 c 43 τ 2 c 54 c 51 c 52 c 53 c 54 τ 2 general correlation matrix
p. 6/3 Eksempel Blandet modell > M.mixed <- lme(richness NAP, random = 1 fbeach, method = "REML", data = RIKZ) > summary(m.mixed)$coef$fixed (Intercept) NAP 6.581893-2.568400 Marginal modell > M.gls <- gls(richness NAP, method = "REML", correlation = corcompsymm(form = 1 fbeach), data = RIKZ) > coef(m.gls) (Intercept) NAP 6.581893-2.568400
p. 7/3 ML estimering l(β,ψ) = N i=1 1 Kan maksimeres numerisk [ n i 2 log(2π) 1 2 log V i (Y 2 i X i β) T V 1 i (Y i X i β)] Gir forventningsskjeve estimater for varianser Finnes alternative strategier som gir forventningsrette estimater Lettest illustert først i vanlig lineær regresjonsmodell.
p. 8/3 Estimering Vanlig: ML estimering. gir ˆµ = ȳ og Y i uif N(µ,σ 2 ) ˆσ 2 = 1 n n (y i ȳ) 2 Forventningsskjev i=1 Foretrekker ofte ˆσ 2 = 1 n 1 n (y i ȳ) 2 Forventningsrett i=1 Forventningsskjevhet i ML-estimat: Tar ikke hensyn til usikkerhet i µ
p. 9/3 REML REML = Restricted maximum likelihood Modell (vanlig lineær regresjon): Y i = X i β + ε i, ε i N(0,σ 2 ) Ide: Transformere data slik at β forsvinner. A er en n (n p) matrise slik at A T X = 0. Gir A T Y =A T Xβ + A T ε N(0,σ 2 A T A) Estimer σ 2 ved ML basert på A T Y i.
p. 10/3 REML (forts) 1 1 L REML = exp{ Y T A[A T A] 1 A T Y} (2π) N/2 σ 2 A T A 1/2 2σ 2 l REML = N 2 log(2π) n p log σ 2 1 2 2 log AT A 1 Y T A[A T A] 1 A T Y 2σ 2 Gir ˆσ 2 = 1 n p YT A[A T A] 1 A T Y
p. 11/3 Eksempel Y i uif N(µ,σ 2 ) X =1 N = 1 N 1 1, A T = A T X =I N 1 1 N 1 1 N 1 = 0 Y 1 Y N A T Y =. (I N 1 1 N 1 ) Y N 1 Y N ˆσ 2 = 1 n (y i ȳ) 2 n 1 i=1 Utledning av ˆσ 2 krever noe regning!
p. 12/3 REML og blandede modeller Modell: Y i N(X i β,v i ), V i = Z i DZ T i + Σ i Kombinert: Y N(Xβ,V) X T =(X T 1,...,X T N),V = Diag{V i } Definer A slik at A T X = 0. Gir A T Y N(0,A T VA) Estimer parametre i V ved ML estimering basert på A T Y. Merk: Resultat ikke avhengig av hvordan vi spesifiserer A. Gir forventningsrette estimater! Resultater avhengig av parametrisering (faktorer)!
p. 13/3 Eksempel RIKZ$fExp<-RIKZ$Exposure RIKZ$fExp[RIKZ$fExp==8]<-10 RIKZ$fExp<-factor(RIKZ$fExp,levels=c(10,11)) M0.ML <- lme(richness NAP, data = RIKZ, random = 1 fbeach, method = "ML") M0.REML <-lme(richness NAP, data = RIKZ, random = 1 fbeach, method = "REML") M1.ML <- lme(richness NAP+fExp, data = RIKZ, random = 1 fbeach, method = "ML") M1.REML <- lme(richness NAP+fExp, data = RIKZ, random = 1 fbeach, method = "REML")
Estimater p. 14/3
p. 15/3 Modell valg i blandede modeller To modell-deler Faste effekter/forklaringsvariable Tilfeldige effekter/korrelasjonsstruktur Vil påvirke hverandre Nødvendig med ulike metoder
p. 16/3 Modell seleksjonsprotokoll Hovedide: Ønsker mest forklart gjennom faste effekter 1. Start med modell med alle forklaringsvariable og så mange interaksjoner som mulig 2. Finn optimal struktur på tilfeldige effekter. Her bør REML brukes! 3. Finn optimal struktur for faste effekter. Her bør ML brukes! 4. Presenter endelig modell med REML estimering.
p. 17/3 Metoder To hovedstrategier Informasjonskriterier: AIC, BIC Via hypotesetesting på parametre (nøstede modeller) t-observator (Wald test) F -observator (flere parametre/faktorer) Likelihood ratio test
p. 18/3 AIC/BIC og ML AIC = 2 l(ˆθ) + 2 q BIC = 2 l(ˆθ) + log(n) q Feil i boka q: Antall parametre i modell (β-er og σ-er) n = N i=1 n i AIC: Minimerer prediksjonsfeil, kan gi for store modeller BIC: Vil asymptotisk velge riktig modell, men kan velge for små modeller for endelig n. Kan brukes direkte ved ML estimering l(ˆθ) er log-likelihood verdi oppnådd ved ML.
p. 19/3 AIC/BIC og REML AIC = 2 l(ˆθ) + 2 q BIC = 2 l(ˆθ) + log(n p) q Feil i boka p: Antall regresjonsparametre Her er nå l(ˆθ) likelihood verdi oppnådd ved REML. Kan vise L REML (θ) = N i=1 X T i V 1 i X i 1/2 L ML (θ)
p. 20/3 Eksempel gal tilnærming Biodiversitet: Starter med kun NAP som forklaringsvariabel Finner optimal struktur for tilfeldig effekt Ingen tilfeldige effekter Tilfeldig konstantledd for hvert område Tilfeldig konstantledd og stigningstall Sammenlikning med REML Merk: lm bruker ML, lme krever tilfeldig effekt, gls mulig.
p. 21/3 Eksempel gal tilnærming > Wrong1 <- gls(richness 1 + NAP, method = "REML", data = RIKZ) > Wrong2 <- lme(richness 1 + NAP, random = 1 fbeach, method = "REML", data = RIKZ) > Wrong3 <- lme(richness 1 + NAP, method = "REML", random = 1 + NAP fbeach, data = RIKZ) > cbind(aic(wrong1,wrong2,wrong3),bic(wrong1,wrong2,wrong3)) df AIC df BIC Wrong1 3 258.2010 3 263.4846 Wrong2 4 247.4802 4 254.5250 Wrong3 6 244.3839 6 254.9511 Best med tilfeldig konstantledd og stigningsledd.
p. 22/3 LR tester for tilfeldige effekter Likelihood ratio test gjennom anova kommandoen: > anova(wrong1,wrong2,wrong3) Model df AIC BIC loglik Test L.Ratio p-valu Wrong1 1 3 258.2010 263.4846-126.1005 Wrong2 2 4 247.4802 254.5250-119.7401 1 vs 2 12.720753 0.000 Wrong3 3 6 244.3839 254.9511-116.1919 2 vs 3 7.096378 0.028 Problem: Tester H 0 : σ 2? Gir feil P-verdi! = 0 som er på randen av parameterrrommet
p. 23/3 LR tester for tilfeldige effekter H 0 : θ Θ 0 mot H 1 : θ Θ a LR test: Vanlig asymptotisk teori krever Θ 0 i det indre av Θ = Θ 0 Θ a. Har da 2LR χ 2 q a q 0. P-verdi = Pr(χ 2 q a q 0 > 2LR). Her: Tester H 0 : d 2 11 = 0. På grensen av Θ : {d 2 11 0}. Kan vise: P-verdi for stor. Konservativ test. Presist: Anta k tilfeldige effekter under H 0, k + 1 tilfeldige effekter under H a. T = 2LR Pr(T > c) = 0.5 [Pr(χ 2 k > c) + Pr(χ 2 k+1 > c)] Spesielt: k = 0: Pr(T > c) = 0.5 Pr(χ 2 1 > c)
p. 24/3 Trinn 2: Valg av tilfeldige effekter Wrong1 mot Wrong2: > 1-0.5*(pchisq(T,0)+pchisq(T,1)) [1] 0.0001808101 Wrong2 mot Wrong3 > T = anova(wrong1,wrong2,wrong3)[3,8] > 1-0.5*(pchisq(T,1)+pchisq(T,2)) [1] 0.01825034 Velger modell Wrong3, dvs tilfeldig konstantledd og stigningskoefficient.
p. 25/3 Trinn 3: Faste effekter > summary(wrong3) Fixed effects: Richness 1 + NAP Value Std.Error DF t-value p-value (Intercept) 6.588703 1.2647627 35 5.209438 0e+00 NAP -2.830027 0.7229387 35-3.914615 4e-04 NAP signifikant, legger til Exposure og interaksjon > RIKZ$fExp<-RIKZ$Exposure > RIKZ$fExp[RIKZ$fExp==8]<-10 > RIKZ$fExp<-factor(RIKZ$fExp,levels=c(10,11)) > Wrong4 <- lme(richness 1 + NAP * fexp,random = 1 + NAP fbeach method = "ML", data = RIKZ) Error in lme.formula(richness 1 + NAP * fexp, random = 1 + NAP nlminb problem, convergence error code = 1 > lmc <- lmecontrol(niterem = 5000, msmaxiter = 5000) > Wrong4 = lme(richness 1 + NAP * fexp,random = 1 + NAP fbeach, method = "ML", data = RIKZ,control=lmc)
p. 26/3 Trinn 3 (forts) > anova(wrong4) numdf dendf F-value p-value (Intercept) 1 34 34.87139 <.0001 NAP 1 34 18.65502 0.0001 fexp 1 7 5.65495 0.0490 NAP:fExp 1 34 3.32296 0.0771 > summary(wrong4) Fixed effects: Richness 1 + NAP * fexp Value Std.Error DF t-value p-value (Intercept) 9.118945 1.2242357 34 7.448684 0.0000 NAP -3.879203 0.8816476 34-4.399947 0.0001 fexp11-5.534743 1.8510032 7-2.990132 0.0202 NAP:fExp11 2.429496 1.3327641 34 1.822900 0.0771 Interaksjon ikke signifikant
p. 27/3 Trinn 3: Faste effekter > Wrong4.2 <- lme(richness 1 + NAP + fexp,random = 1 + NAP fbea method = "ML", data = RIKZ) > anova(wrong5) numdf dendf F-value p-value (Intercept) 1 35 34.95647 <.0001 NAP 1 35 14.11410 0.0006 fexp 1 7 5.95940 0.0447 > summary(wrong4.2) Fixed effects: Richness 1 + NAP + fexp Value Std.Error DF t-value p-value (Intercept) 8.407714 1.183419 35 7.104595 0.0000 NAP -2.808422 0.759642 35-3.697034 0.0007 fexp11-3.704917 1.517669 7-2.441189 0.0447 > cbind(aic(wrong4,wrong4.2),bic(wrong4,wrong4.2)) df AIC df BIC Wrong4 8 243.2228 8 257.6761 Wrong4.2 7 245.3353 7 257.9820 Exposure også på kanten av å være signifikant på 5% nivå. Endelig modell: Y ij =α + b 1i + (β + b 2i )NAP ij + ε ij
p. 28/3 Frihetsgrader Brukes i t og F tester Forklaringsvariable delt inn i to grupper Nivå 1: Variable med ulike verdier for hver observasjon innen gruppe. fg: Totalt antall obs - antall grupper/klustre - antall nivå 1 variable Eksempel: NAP, fg=45-9-1=35 Nivå 2: Variable med samme verdi innen hver gruppe. fg: Antall grupper - antall nivå 2 variable (inkl konstantledd) Eksempel: Exposure, fg=9-2=7
p. 29/3 Testing og ML > lmc <- lmecontrol(niterem = 5200, msmaxiter = 5200) > Wrong4A <- lme(richness 1 + NAP, method="ml", control = lmc, data = RIKZ, random = 1+NAP fbeach) > Wrong4B <- lme(richness 1 + NAP + fexp, random = 1 + NAP fbeach, method="ml", data = RIKZ,control = lmc) > Wrong4C <- lme(richness 1 + NAP * fexp, random = 1 + NAP fbeach, data = RIKZ, method = "ML", control = lmc) > anova(wrong4a, Wrong4B, Wrong4C) Model df AIC BIC loglik Test L.Ratio p-valu Wrong4A 1 6 246.6578 257.4977-117.3289 Wrong4B 2 7 245.3353 257.9820-115.6677 1 vs 2 3.322437 0.068 Wrong4C 3 8 243.2228 257.6761-113.6114 2 vs 3 4.112574 0.042 Optimal modell: Kun NAP
p. 30/3 Trinn 4: Endelig modell > Wrong5 <- lme(richness 1 + NAP,random = 1 + NAP fbeach, + method = "REML", data = RIKZ) > summary(wrong5) Random effects: Formula: 1 + NAP fbeach Structure: General positive-definite, Log-Cholesky parametrization StdDev Corr (Intercept) 3.549073 (Intr) NAP 1.714958-0.99 Residual 2.702822 Fixed effects: Richness 1 + NAP Value Std.Error DF t-value p-value (Intercept) 6.588704 1.2647638 35 5.209434 0e+00 NAP -2.830026 0.7229386 35-3.914615 4e-04 Number of Observations: 45 Number of Groups: 9
p. 31/3 God metode, trinn 1 Innkluderer begge variable med interaksjon > B1=gls(Richness 1+NAP*fExp,method="REML",data=RIKZ) > B2=lme(Richness 1+NAP*fExp,data=RIKZ,random= 1 fbeach,method="rem > B3=lme(Richness 1+NAP*fExp,data=RIKZ,random= 1+NAP fbeach,method= > AIC(B1,B2,B3) df AIC B1 5 238.5329 B2 6 236.4925 B3 8 237.1331 Best modell: Tilfeldig effekt i konstantledd
p. 32/3 God metode: Trinn 2 > summary(b2) Fixed effects: Richness 1 + NAP * fexp Value Std.Error DF t-value p-value (Intercept) 8.861084 1.0208450 34 8.680147 0.0000 NAP -3.463651 0.6278583 34-5.516613 0.0000 fexp11-5.255617 1.5452293 7-3.401189 0.0114 NAP:fExp11 2.000464 0.9461260 34 2.114374 0.0419 Dropper interaksjon
p. 33/3 God metode: Trinn 3 > B2B=lme(Richness 1+NAP+fExp,data=RIKZ,random= 1 fbeach,method="re > summary(b2b) Linear mixed-effects model fit by REML Data: RIKZ AIC BIC loglik 240.5538 249.2422-115.2769 Random effects: Formula: 1 fbeach (Intercept) Residual StdDev: 1.907175 3.059089 Fixed effects: Richness 1 + NAP + fexp Value Std.Error DF t-value p-value (Intercept) 8.601088 1.0594875 35 8.118158 0.0000 NAP -2.581708 0.4883901 35-5.286160 0.0000 fexp11-4.532777 1.5755610 7-2.876929 0.0238 Endelig modell: Y ij =α + b i + β 1 NAP ij + β 2 Exposure i + ε ij
p. 34/3 Modell validering Modell-valg: Velger mellom et antall mulige modeller Vil endelig modell beskrive data godt? Modell validering: Sjekke endelig modell Goodness-of-fit test Residual-plott
p. 35/3 Modell validering/residualer Respons residualer (default i R): Y ij ŷ ij Standardiserte residualer (Pearson residualer) Y ij ŷ ij sd[y ij ] Begge kan beregnes på ulike nivåer: Nivå 0: Populasjonsnivå. ŷ ij = X T i ˆβ. Nivå 1: Innen gruppe. ŷ ij = X T i ˆβ + Z T i ˆb i. (Default) sd[y ij ] justert etter hvilket nivå en bruker. Merk: Nivå 0 residualer er avhengige!
p. 36/3 Residual plott for RIKZ data - nivå 0 plot(fitted(b2b,level=0),residuals(b2b,level=0)) residuals(b2b, level = 0) 5 0 5 10 2 0 2 4 6 8 10 12 fitted(b2b, level = 0)
p. 37/3 Residual plott for RIKZ data - nivå 1 plot(fitted(b2b,level=1),residuals(b2b,level=1)) residuals(b2b, level = 1) 5 0 5 10 0 5 10 15 fitted(b2b, level = 1)