o meu aluno perguntou hoje como interpretar a estatística AIC (informação de Akaikeritérios) para a seleção do modelo. Nós acabamos quebrando algum código R
para demonstrar como calcular o AIC para um simples GLM (general
modelo linear). Eu sempre acho que se você pode entender a derivação de uma estatística
, é muito mais fácil lembrar como usá-lo.,
agora, se você derivação do google da AIC, você provavelmente vai encontrar um lote de matemática. Mas os princípios não são assim tão complexos. Então aqui vamos ajustar alguns GLMs simples, em seguida, derivar um meio para escolher o’melhor’
um.
P > pular para o final se você só quiser rever os princípios básicos.antes que possamos entender a AIC, precisamos entender a metodologia estatística de likelihoods.,
Explicando probabilidade
Digamos que você tem alguns dados que são normalmente distribuída com uma média de 5
e um cartão de memória sd de 3
:
set.seed(126)n <- 50 #sample sizea <- 5sdy <- 3y <- rnorm(n, mean = a, sd = sdy)hist(y)
Agora nós queremos estimar alguns parâmetros para a população que y
foi
amostrados, como a sua média e o padrão devaiation (o que sabemos que aqui
5 e 3, mas no mundo real, você não sabe o que).vamos usar estatísticas de frequência para estimar esses parâmetros.,filosoficamente, isto significa que acreditamos que existe “um valor verdadeiro” para cada parâmetro, e os dados que observamos são gerados por este valor verdadeiro.
m1 <- glm(y ~ 1, family = "gaussian")sm1 <- summary(m1)
A estimativa da média é armazenado aqui coef(m1)
=4.38, a estimativa de
desvio aqui sm1$dispersion
= 5.91, ou o SD sqrt(sm1$dispersion)
=2.43. Só para ser totalmente claro, nós também especificamos que acreditamos que os dados seguem uma distribuição normal (também conhecida como “Gaussian”).,
Nós só cabe um GLM pedindo R para estimar um parâmetro intercept (~1
),
, que é simplesmente a média de y
. Nós também temos uma estimativa do SD
(= $\sqrt variance$) você pode pensar que seu exagero para usar um GLM para
estimar a média e SD, quando nós poderíamos apenas calculá-los diretamente.
otice now that R also estimated some other quantities, like the
residual deviance and the AIC statistic.
Você também pode estar ciente de que o desvio é uma medida do ajuste modelo, muito parecido com as somas-de-quadrados., Note também que o valor da AIC é suspiciosamente próximo ao desvio. Apesar de seu nome estranho, os conceitos subjacentes ao desvio são bastante simples.
Como eu disse acima, estamos observando dados que são gerados a partir de uma população com uma média verdadeira e um SD verdadeiro. Dado que sabemos ter estimativas dessas quantidades que definem uma distribuição de probabilidade, nós também podemos estimar a probabilidade de medir um novo valor de y
que
say = 7.,
para fazer isso, nós simplesmente plugamos os valores estimados na equação para
a distribuição normal e pedimos a probabilidade relativa de 7
. Nós
fazer isso com a função R dnorm
sdest <- sqrt(sm1$dispersion)dnorm(7, mean = coef(m1), sd = sdest)## 0.09196167
Formalmente, esta é a probabilidade relativa de valor 7 dado o
valores da média e o cartão SD que nós estimado (=4,8 e 2.39
, respectivamente, se você estiver usando a mesma semente aleatória como me).,
Você pode perguntar Por que a probabilidade é maior que 1, certamente, como vem
de uma distribuição de probabilidade, deve ser <1. Bem, a distribuição normal de
é contínua, o que significa que descreve um conjunto infinito de
possível y
valores, então a probabilidade de qualquer valor dado será zero.
a probabilidade relativa por outro lado pode ser usada para calcular a probabilidade de um intervalo de valores de
.,
assim você pode perceber que calcular a probabilidade de todos os dados
seria uma maneira sensata de medir o quão bem o nosso ‘modelo’ (apenas uma média e
SD aqui) se encaixa os dados.
Aqui está o que a probabilidade parece:
plot(y, dnorm(y, mean = coef(m1), sd = sdest), ylab = "Likelihood")
É apenas uma distribuição normal.
para fazer isso, pense em como você calcularia a probabilidade de múltiplos eventos (independentes). Digamos que a chance de eu andar de bicicleta para trabalhar em qualquer dia é 3/5 e a chance de chover é 161/365 (como Vancouver!,), então a chance que eu vou montar na chuva é 3/5 *
161/365 = cerca de 1/4, então eu melhor usar um casaco se andar em Vancouver.
Podemos fazer o mesmo para likelihoods, simplesmente multiplicar a probabilidade de cada indivíduoy
valor e temos a probabilidade total. This will be
a very small number, because we multiply a lot of small numbers by each
other., Assim, um truque que uso é a soma do logaritmo da probabilidade em vez
de multiplicação:
y_lik <- dnorm(y, mean = coef(m1), sd = sdest, log = TRUE)sum(y_lik)## -114.8636
O maior (menos negativo) a probabilidade de os nossos dados, dada a
modelo de estimativas, o “melhor” modelo ajusta os dados. The deviance is
calculated from the likely and for the deviance smaller values
indicate a closer fit of the model to the data.
os valores dos parâmetros que nos dão o menor valor da probabilidade de log são denominados as estimativas de probabilidade máxima.,
a Comparação de alternativas de hipóteses com probabilidade
Agora, dizer que nós temos de medições e duas covariáveis, x1
e x2
, ou
de que nós pensamos que pode afetar 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)
Então x1 é uma causa de y, mas x2 não afeta y. Como seria de nós escolher
qual hipótese é mais provável?, Bem, uma forma seria a de comparar os modelos
com diferentes combinações de covariáveis:
m1 <- glm(y ~ x1)m2 <- glm(y ~ x2)m3 <- glm(y ~ x1 + x2)
Agora estamos a montagem de uma linha de y, então a nossa estimativa da média é agora o
linha de melhor ajuste, ela varia de acordo com o valor de x1. Para visualizar este:
plot(x1, y)lines(x1, predict(m1))
predict(m1)
dá a linha de melhor ajuste, ou seja, o valor médio de y
dada a cada valor de x1., Em seguida, usamos prever para obter a probabilidade para cada
modelo:
A probabilidade de m1
for maior que m2
, que faz sentido, porquem2
tem o ‘falso’ covariável nele. A probabilidade de m3
(que tem
ambos x1 e x2) é pouco maior do que a probabilidade m1
então devemos julgar que o modelo de como dar quase como uma boa representação
dos dados?,
porque a probabilidade é apenas um pouco maior, a adição de x2
apenas explicou uma pequena quantidade da variância nos dados. Mas onde é que traças a linha entre incluir e excluir x2? Você encontra um problema similar se você usar r^2 para a seleção do modelo.
So what if we penalize the likely by the number of paramaters we
have to estimate to fit the model? Então, se incluirmos mais covariados
(e estimarmos mais parâmetros de inclinação) apenas aqueles que contabilizam um lote da variação superarão a penalidade.,
O que queremos uma estatística que nos ajude a selecionar o modelo mais parsimônico
.
a AIC como uma medida de parsimonia
uma maneira que nós poderíamos penalizar a probabilidade pelo número de parâmetros é
adicionar uma quantidade a ela que é proporcional ao número de parâmetros.
Em Primeiro Lugar, vamos multiplicar a probabilidade logarítmica por -2, de modo que seja positivo
e valores menores indicam um ajuste mais próximo.
Why its -2 not -1, I can’t quite remember, but I think just historical
reasons.,
em seguida, adicionar 2 * k, em que k é o número de parâmetros estimados.
-2*LLm1 + 2*3## 257.2428
Param1
há três parâmetros, uma interceptação, um declive e um desvio padrão. Agora, vamos calcular o AIC para todos os três modelos:
vemos que o modelo 1 tem o AIC mais baixo e, portanto, tem o ajuste mais parsimónico. O modelo 1 agora supera o modelo 3 que tinha uma probabilidade ligeiramente superior, mas por causa da covariação extra tem uma penalidade mais alta também.,
AIC basic principles
So to summarize, the basic principles that guide the use of the AIC are:
-
Lower indicates a more parsimonious model, relative to a model fit
with AIC higher. -
é uma medida relativa da parsimonia modelo, por isso só tem
significado se compararmos a AIC para hipóteses alternativas (= diferentes modelos dos dados). -
podemos comparar modelos não aninhados. Por exemplo, poderíamos comparar um
linear a um modelo não-linear., -
as comparações só são válidas para modelos que são adequados à mesma resposta
dados (ou seja, valores de y). -
seleção de modelos conduzida com o AIC irá escolher o mesmo modelo como
saída-validação cruzada (onde deixamos para fora um ponto de dados
e encaixar o modelo, em seguida, avaliar a sua adequação a esse ponto) para grandes tamanhos de amostras. -
não deve comparar muitos modelos com a AIC., Você vai executar
para os mesmos problemas com comparação de vários modelos como você faria
com valores p, em que você pode por acaso encontrar um modelo com o
menor AIC, que não é verdadeiramente o modelo mais apropriado. -
ao usar a AIC você pode acabar com vários modelos que
executam similarmente um ao outro. Então você tem evidências similares pesos para diferentes hipóteses alternativas. No exemplo acima do m3
é realmente tão bom quanto m1. -
deve corrigir para pequenos tamanhos de amostra se utilizar a AIC com pequenos tamanhos de amostra, utilizando a estatística AICc.,assumindo que chove o dia todo, o que é razoável para Vancouver.
Deixe uma resposta