Min student spurte i dag om hvordan å tolke AIC (Akaike ‘ s Information
Kriterier) statistikk for valg av modell. Vi endte opp med bashing ut noen R
– koden for å demonstrere hvordan man kan beregne AIC for en enkel GLM (general
lineær modell). Jeg har alltid tror at hvis du kan forstå avledning av et
statistikk, det er mye lettere å huske hvordan du skal bruke det.,
hvis du Nå google avledning av AIC, er du sannsynligvis til å kjøre inn i en
mye av matematikk. Men prinsippene er egentlig ikke så komplisert. Så her
vi vil passe noen enkle GLMs, så utlede et middel til å velge den ‘beste’
en.
Hoppe til slutten hvis du bare ønsker å gå over grunnleggende prinsipper.
Før vi kan forstå AIC selv, vi trenger å forstå
statistisk metodikk for likelihoods.,
Forklare likelihoods
Si at du har noen data som er normalfordelt med et gjennomsnitt av 5
og et sd-av 3
:
– >
set.seed(126)n <- 50 #sample sizea <- 5sdy <- 3y <- rnorm(n, mean = a, sd = sdy)hist(y)
Nå ønsker vi å estimere noen parametere for befolkningen som y
er
samplet fra, som sin middelverdi og standard devaiation (som vi kjenner her
til å være 5 og 3, men i den virkelige verden vil du ikke vite det).
Vi kommer til å bruke frequentist statistikk for å estimere disse parametrene.,
Filosofisk dette betyr at vi mener at det er ‘ene sanne verdien for
hver parameter, og de data vi har observert er generert av denne sanne
verdi.
– >
m1 <- glm(y ~ 1, family = "gaussian")sm1 <- summary(m1)
beregningen av gjennomsnittlig er lagret her coef(m1)
=4.38, estimert
varians her sm1$dispersion
= 5.91, eller SD sqrt(sm1$dispersion)
=2.43. Bare for å være helt klart, vi også spesifisert at vi tror det
data-følge en normal (AKA «Gauss») distribusjon.,
Vi bare passer en GLM å be R å estimere en parameter intercept (~1
),
som er rett og slett bety for y
. Vi får også ut et estimat for SD
(= $\sqrt varians$) Du kanskje tror det er overkill å bruke en GLM til
beregne gjennomsnitt og SD, når vi bare kunne beregne dem direkte.
Vel merker nå at R også beregnet noen andre mengder, som
gjenværende avvik og AIC statistikk.
Du kan også være klar over at avvik er et mål på modellresultater,
mye som summer-av-rutene., Merk også at verdien av AIC er
mistenkelig nær avvik. Til tross for sin merkelige navn, begreper
underliggende avvik er ganske enkel.
Som jeg sa over, vi er å observere data som er generert fra en
befolkning med en sann betyr, og en sann SD. Gitt vi vet har
estimater av disse mengdene som definerer en sannsynlighetsfordeling, vi
kan også beregne sannsynligheten for å måle en ny verdi på y
at
si = 7.,
for Å gjøre dette, har vi bare sett den estimerte verdier i ligningen for
normal distribusjon og be for den relative sannsynligheten for 7
. Vi
gjør dette med R-funksjon dnorm
sdest <- sqrt(sm1$dispersion)dnorm(7, mean = coef(m1), sd = sdest)## 0.09196167
Formelt, dette er den relative sannsynligheten for at verdien 7 gitt
verdiene for gjennomsnitt og SD-at vi estimert (=4.8 og 2.39
henholdsvis hvis du bruker samme tilfeldig frø som meg).,
Du kan spørre hvorfor sannsynligheten er større enn 1, sikkert, som det kommer
fra en sannsynlighetsfordeling, det bør være <1. Vel, normalt
distribusjon er kontinuerlig, noe som betyr at det beskriver en infinte sett med
det er mulig y
verdier, så sannsynligheten for at en gitt verdi vil være null.
Den relative sannsynligheten på den annen side kan brukes til å beregne
sannsynligheten for et utvalg av
verdier.,
Så du kan innse at du beregner sannsynligheten for at alle data
ville være en fornuftig måte å måle hvor godt vår ‘modell’ (bare et middel og
SD her) passer dataene.
Her er hva sannsynligheten ser ut som:
– >
plot(y, dnorm(y, mean = coef(m1), sd = sdest), ylab = "Likelihood")
Det er bare en normal fordeling.
for Å gjøre dette, tenk på hvordan du ville beregne sannsynligheten for
flere (uavhengig) hendelser. Si sjansen jeg sykle til arbeid på
en gitt dag er 3/5 og sjansen for at det regner er 161/365 (som
Vancouver!,), så sjansen jeg vil sitte i regnet er 3/5 *
161/365 = ca 1/4, så jeg best bære en frakk om ridning i Vancouver.
Vi kan gjøre det samme for likelihoods, bare multiplisere sannsynligheten for
hver enkelt y
verdi, og vi har den totale sannsynligheten. Dette vil være
et svært lite antall, fordi vi multiplisere en rekke små antall av hver
andre., Så et triks vi bruker er å summen logg av likelihoods i stedet
for å multiplisere dem:
– >
y_lik <- dnorm(y, mean = coef(m1), sd = sdest, log = TRUE)sum(y_lik)## -114.8636
Jo større (mindre negativt) sannsynligheten for våre data gitt
modellens estimater, ‘bedre’ modellen passer data. Det avvik er
beregnes fra og sannsynligheten for avvik mindre verdier
angi en nærmere tilpasning av modellen til dataene.
parameterverdier som gir oss den minste verdien av det
-log-likelihood er kalt maksimum likelihood estimatene.,
å Sammenligne alternative hypoteser med likelihoods
Nå sier at vi har målinger og to covariates, x1
og x2
, enten
som vi tror kan påvirke y:
– >
a <- 5b <- 3n <- 100x1 <- rnorm(n)x2 <- rnorm(n)sdy <- 1y <- a + b*x1 + rnorm(n, sd = sdy)par(mfrow = c(1,2))plot(x1, y)plot(x2, y)
Slik at x1 er en årsak til y, men x2 påvirker ikke y. Hvordan ville vi velge
som hypotese er mest sannsynlig?, Vel, en måte ville være å sammenligne modeller
med ulike kombinasjoner av covariates:
– >
m1 <- glm(y ~ x1)m2 <- glm(y ~ x2)m3 <- glm(y ~ x1 + x2)
Nå er vi feste en tråd til y, slik at vårt estimat for gjennomsnittlig er nå
linje som best passer, er det varierer med verdien av x1. For å visualisere dette:
– >
plot(x1, y)lines(x1, predict(m1))
predict(m1)
gir den linjen som passer best, dvs. gjennomsnittlig verdi av y
gitt hver x1 verdi., Så bruker vi forutsi å få likelihoods for hver
modell:
sannsynligheten for m1
er større enn m2
, som gir mening fordim2
har den ‘falske’ covariate i det. Sannsynligheten for m3
(som har
både x1 og x2 i det) er fractionally større enn sannsynligheten m1
så skal vi dømme at modellen som gir nesten like god representasjon
av data?,
Fordi sannsynligheten er bare en liten bit større, tillegg av x2
har bare forklart en liten del av variansen i dataene. Men der
har du trekke linjen mellom hva som er inkludert og ekskludert x2? Du kjører inn i en
lignende problem hvis du bruker R^2 for valg av modell.
Så hva om vi straffe sannsynligheten av antall paramaters vi
har å anslå for å passe modell? Så hvis vi inkluderer flere covariates
(og vi regner med flere skråningen parametre) bare de som står for en
mye av variasjonen vil overvinne straff.,
Hva ønsker vi en statistikk som hjelper oss med å velge den mest parsimonious
modell.
AIC som et mål på parsimony
En måte vi kan straffe sannsynligheten av antall parametere som er
for å legge til et beløp til det som er proporsjonal med antall parametre.
la oss Først må du multiplisere den log-likelihood med -2, slik at det er positive
og lavere verdier indikerer en tettere passform.
– >
LLm1 <- sum(dnorm(y, mean = predict(m1), sd = sqrt(sm1$dispersion), log = TRUE))-2*LLm1## 251.2428
Hvorfor det ikke -2 -1, jeg kan ikke helt huske, men jeg tror bare historiske
grunner.,
legg Deretter 2*k, der k er antall estimerte parametre.
– >
-2*LLm1 + 2*3## 257.2428
For m1
det er tre parametre, en fange, en skråning og en
standard avvik. Nå, la oss beregne AIC for alle tre modeller:
ser Vi at modell 1 har den laveste AIC-og derfor har de
parsimonious passform. Modell 1 nå utkonkurrerer modell 3 som hadde en litt
høyere sannsynlighet, men på grunn av den ekstra covariate har en høyere
straff for.,
AIC grunnleggende prinsipper
Så for å oppsummere, de grunnleggende prinsippene som styrer bruken av AIC er:
-
Lavere indikerer en mer parsimonious modellen, i forhold til en modell passform
med en høyere AIC. -
Det er et relativt mål for modellen parsimony, så det har
det betyr at hvis vi sammenligner AIC for alternative hypoteser (= ulike
– modeller av data). -
Vi kan sammenligne ikke-innkapslede modeller. For eksempel, kunne vi sammenligne en
lineær til en ikke-lineær modell., -
sammenligninger er bare gyldig for modeller som passer til den samme svar
data (dvs. verdier av y). -
Modell utvalget gjennomført med AIC vil velge den samme modellen som
leave-one-out cross validation (der vi la ut ett datapunkt
og passer inn i modellen, og deretter vurdere sin plass til det punktet) for store
eksempel størrelser. -
Du bør ikke sammenligne for mange modeller med AIC., Vil du kjøre
til de samme problemene med flere modellen sammenligningen som du vil
med p-verdier, i og med at du kanskje ved en tilfeldighet, finner en modell med
lavest AIC, som ikke er virkelig den mest hensiktsmessige modellen. -
Når du bruker AIC du kan ende opp med flere modeller som
– utfør på samme måte til hverandre. Så du har lignende bevis
vekter for ulike alternative hypoteser. I eksempelet ovenfor m3
er faktisk omtrent like bra som m1. -
Du bør rette for forskningsobjekter hvis du bruker AIC med
forskningsobjekter, ved hjelp av AICc statistikk.,
Forutsatt at det regner hele dagen, noe som er rimelig for Vancouver.
Legg igjen en kommentar