studentul meu a întrebat astăzi cum să interpreteze statistica AIC (informații Akaike
criterii) pentru selectarea modelului. Am ajuns bashing unele R
cod pentru a demonstra modul de a calcula aic pentru un simplu GLM (general
model liniar). Întotdeauna cred că dacă puteți înțelege derivarea unei statistici
, este mult mai ușor să vă amintiți cum să o utilizați.,
acum, dacă Google derivare a AIC, vă sunt susceptibile de a rula într-o
mulțime de matematică. Dar principiile nu sunt chiar atât de complexe. Deci, aici
vom potrivi câteva GLM-uri simple, apoi vom obține un mijloc de a alege „cel mai bun”
unul.
Treci la final dacă vrei doar să treci peste principiile de bază.
înainte de a putea înțelege AIC, totuși, trebuie să înțelegem
metodologia statistică a probabilităților.,
Explicând likelihoods
Spune că ai niște date care nu sunt normal distribuite, cu o medie de 5
si un sd de 3
:
set.seed(126)n <- 50 #sample sizea <- 5sdy <- 3y <- rnorm(n, mean = a, sd = sdy)hist(y)
Acum vrem să estimarea unor parametri pentru populația care y
eșantion de ca sa spun si standard devaiation (care știm că aici
pentru a fi de 5 și 3, dar în lumea reală nu stiu care).vom folosi statisticile frequentist pentru a estima acești parametri.,
din punct de vedere filozofic, aceasta înseamnă că credem că există „o valoare adevărată” pentru
fiecare parametru, iar datele pe care le-am observat sunt generate de această valoare adevărată
.
m1 <- glm(y ~ 1, family = "gaussian")sm1 <- summary(m1)
estimare a mediei este stocat aici coef(m1)
=4.38, estimat
varianța aici sm1$dispersion
= 5.91, sau SD sqrt(sm1$dispersion)
=2.43. Doar pentru a fi complet clar, am specificat, de asemenea, că credem că datele
urmează o distribuție normală (AKA „Gaussian”).,
se potrivesc doar un GLM cere R pentru a estima o interceptare parametru (~1
),
care este pur și simplu de y
. De asemenea, vom obține o estimare a SD
(= $\sqrt varianța$) s-ar putea crede overkill sa de a utiliza un GLM pentru a
estima medie și SD, atunci când am putea calcula doar le direct.ei bine, observați acum că R a estimat și alte cantități, cum ar fi Devianța reziduală și statistica AIC.de asemenea, s-ar putea să fiți conștienți de faptul că Devianța este o măsură a potrivirii modelului,
La fel ca sumele de pătrate., Rețineți, de asemenea, că valoarea AIC este
suspect de aproape de devianță. În ciuda numelui său ciudat, conceptele
care stau la baza devianței sunt destul de simple.așa cum am spus mai sus, observăm date care sunt generate dintr-o populație
cu o medie adevărată și UN SD adevărat. Dat știm că avem
estimări ale acestor mărimi care definesc o distribuție de probabilitate,
ar putea, de asemenea, să estimeze probabilitatea de măsurare a o noua valoare de y
spune = 7.,
Pentru a face acest lucru, pur și simplu introduceți valorile estimate în ecuație pentru
distribuția normală și cere probabilitatea relativă de 7
. Ne-am
face acest lucru cu R funcția dnorm
sdest <- sqrt(sm1$dispersion)dnorm(7, mean = coef(m1), sd = sdest)## 0.09196167
în mod Oficial, acest lucru este probabilitatea relativă de valoarea 7 a dat
valorile medie și SD care am estimat (=4.8 și 2.39
respectiv dacă sunteți folosind aceleași semințe aleatoare ca mine).,
s-ar putea întreba De ce probabilitatea este mai mare decât 1, cu siguranță, deoarece vine
dintr-o distribuție de probabilitate, ar trebui să fie <1. Ei bine, distribuția normală
este continuă, ceea ce înseamnă că descrie un set infinte de valori
posibile y
, astfel încât probabilitatea oricărei valori date va fi zero.
probabilitatea relativă, pe de altă parte, poate fi utilizată pentru a calcula probabilitatea unui interval de valori
.,
deci, s-ar putea realiza că calcularea probabilității tuturor datelor
ar fi o modalitate sensibilă de a măsura cât de bine „modelul” nostru (doar o medie și
SD aici) se potrivește datelor.
Aici e ceea ce probabilitatea arata ca:
plot(y, dnorm(y, mean = coef(m1), sd = sdest), ylab = "Likelihood")
este doar o distribuție normală.pentru a face acest lucru, gândiți-vă cum ați calcula probabilitatea unor evenimente multiple (independente). Spuneți că șansa de a merge cu bicicleta pentru a lucra la
orice zi dată este 3/5 și șansa de a ploua este 161/365 (cum ar fi
Vancouver!,), atunci șansa pe care o voi călări în ploaie este de 3/5 *
161/365 = aproximativ 1/4, așa că cel mai bine port o haină dacă călătoresc în Vancouver.
putem face același lucru pentru likelihoods, pur și simplu multiplica probabilitatea de
fiecare y
valoare și avem totală probabilitatea. Acesta va fi
un număr foarte mic, deoarece înmulțim o mulțime de numere mici cu fiecare
altul., Deci, un truc pe care o folosim este suma jurnalul de likelihoods în loc
de multiplicarea lor:
y_lik <- dnorm(y, mean = coef(m1), sd = sdest, log = TRUE)sum(y_lik)## -114.8636
Cea mai mare (cea mai puțin negative) probabilitatea de a noastra de date
model estimări, „mai bine” modelul se potrivește cu datele. Devianța este
calculată din probabilitate și pentru Devianță valori mai mici
indică o potrivire mai apropiată a modelului de date.
valorile parametrilor care ne dau cea mai mică valoare a probabilității
-log-sunt denumite estimările probabilității maxime.,
Comparând alternative ipoteze cu likelihoods
Acum spune că avem măsurători și două variabile, x1
și x2
, nici
de care credem că ar putea afecta 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)
Deci x1 este o cauză a lui y, dar x2 nu afectează y. Cum ne-ar alege
ipoteza care este cel mai probabil?, Ei bine, o modalitate ar fi de a compara modele
cu diferite combinații de variabile:
m1 <- glm(y ~ x1)m2 <- glm(y ~ x2)m3 <- glm(y ~ x1 + x2)
Acum suntem montarea o linie de la y, deci estimarea mediei este acum
linia cea mai potrivită, ea variază cu valoarea x1. Pentru a vizualiza acest lucru:
plot(x1, y)lines(x1, predict(m1))
predict(m1)
dă linia cea mai potrivită, adică valoarea medie a lui y
dat fiecare x1 valoare., Apoi folosim anticipa pentru a obține likelihoods pentru fiecare
model:
probabilitatea de m1
este mai mare decât m2
, ceea ce face sens, pentru căm2
are „fals” covariate în ea. Probabilitatea pentru m3
(care a
ambele x1 și x2 în ea) este semnificativ mai mare decât probabilitatea m1
,
deci, ar trebui să ne judecăm că modelul ca dau aproape la fel de bun o reprezentare
de date?,deoarece probabilitatea este doar un pic mai mare, adăugarea de x2
A explicat doar o cantitate mică de variația datelor. Dar unde
trasați linia dintre includerea și excluderea x2? Aveți o
problemă similară dacă utilizați R^2 pentru selectarea modelului.deci ,ce se întâmplă dacă vom penaliza probabilitatea de numărul de paramaters noi
trebuie să estimeze pentru a se potrivi modelului? Apoi, dacă includem mai multe covariate
(și estimăm mai mulți parametri de pantă), numai cei care reprezintă o
mulțime de variație vor depăși pedeapsa.,
ce ne dorim o statistică care ne ajută să selectăm modelul cel mai parcimonios
.
AIC ca măsură a parcimoniei
o modalitate prin care am putea penaliza probabilitatea cu numărul de parametri este
să adăugăm o sumă care este proporțională cu numărul de parametri.
În primul rând, să înmulțim log-probabilitatea cu -2, astfel încât să fie pozitiv
și valori mai mici indică o potrivire mai strânsă.
LLm1 <- sum(dnorm(y, mean = predict(m1), sd = sqrt(sm1$dispersion), log = TRUE))-2*LLm1## 251.2428
de Ce sa -2 nu -1, nu-mi amintesc, dar cred că doar istoric
motive.,apoi adăugați 2*k, unde k este numărul de parametri estimați.
-2*LLm1 + 2*3## 257.2428
Pentru m1
există trei parametri, unul de interceptare, pe o pantă și o
abaterea standard. Acum, să calculăm AIC pentru toate cele trei modele:
vedem că modelul 1 are cel mai mic AIC și, prin urmare, are cea mai
Potrivire parsimonioasă. Modelul 1 depășește acum modelul 3, care a avut o probabilitate ușor
mai mare, dar din cauza covariatului suplimentar are și o penalizare
mai mare.,deci, pentru a rezuma, principiile de bază care ghidează utilizarea AIC sunt:
-
inferior indică un model mai parsimonious, în raport cu un model Se potrivesc
cu un AIC mai mare. -
este o măsură relativă a parcimoniei modelului, deci are doar
semnificație dacă comparăm AIC pentru ipoteze alternative (=diferite
modele ale datelor). -
putem compara modele non-imbricate. De exemplu, am putea compara un
liniar cu un model neliniar.,comparațiile sunt valabile numai pentru modelele care sunt potrivite pentru același răspuns
Date (adică valorile lui y).selectarea modelului efectuată cu AIC va alege același model ca și validarea încrucișată
leave-one-out (unde lăsăm un punct de Date
și potrivim modelul, apoi evaluăm potrivirea acestuia la acel punct) pentru dimensiuni mari ale eșantionului.nu trebuie să comparați prea multe modele cu AIC., Va rula
în aceleași probleme cu mai multe model de comparație ca
cu valori p, în care ai șansa de a găsi un model cu
cel mai mic AIC, care nu este cu adevărat cel mai potrivit model. -
atunci când utilizați AIC s-ar putea termina cu mai multe modele care
efectua în mod similar unele cu altele. Deci, aveți dovezi similare
greutăți pentru diferite ipoteze alternative. În exemplul de mai sus m3
este de fapt la fel de bun ca m1. -
ar trebui să corectați pentru dimensiuni mici ale eșantionului dacă utilizați AIC cu
dimensiuni mici ale eșantionului, utilizând statistica AICc.,presupunând că plouă toată ziua, ceea ce este rezonabil pentru Vancouver.
Lasă un răspuns