Deviance e GLM
Formalmente, pode-se ver o desvio como uma espécie de distância entre dois modelos probabilísticos; no contexto do GLM, isso equivale a duas vezes a razão de log de probabilidades entre dois modelos aninhados que é o modelo "menor"; isto é, uma restrição linear aos parâmetros do modelo (cf. o lema Neyman – Pearson ), como disse @suncoolsu. Como tal, ele pode ser usado para realizar a comparação de modelos . Também pode ser visto como uma generalização do RSS usado na estimativa de OLS (ANOVA, regressão), pois fornece uma medida da qualidade do ajuste do modelo que está sendo avaliado quando comparado ao modelo nulo (somente interceptação). Também funciona com o LM:ℓ1/ ℓ0 0ℓ0 0
> x <- rnorm(100)
> y <- 0.8*x+rnorm(100)
> lm.res <- lm(y ~ x)
Os resíduos SS (RSS) são calculados como , que são facilmente obtidos como:ε^tε^
> t(residuals(lm.res))%*%residuals(lm.res)
[,1]
[1,] 98.66754
ou do (não ajustado)R2
> summary(lm.res)
Call:
lm(formula = y ~ x)
(...)
Residual standard error: 1.003 on 98 degrees of freedom
Multiple R-squared: 0.4234, Adjusted R-squared: 0.4175
F-statistic: 71.97 on 1 and 98 DF, p-value: 2.334e-13
desde que é a variação total. Observe que ele está disponível diretamente em uma tabela ANOVA, comoR2= 1 - RSS / TSSTSS
> summary.aov(lm.res)
Df Sum Sq Mean Sq F value Pr(>F)
x 1 72.459 72.459 71.969 2.334e-13 ***
Residuals 98 98.668 1.007
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Agora, veja o desvio:
> deviance(lm.res)
[1] 98.66754
De fato, para modelos lineares, o desvio é igual ao RSS (você deve se lembrar que as estimativas de OLS e ML coincidem nesse caso).
Deviance e CART
Podemos ver CART como uma maneira de alocar já indivíduos rotulados em classes arbitrárias (em um contexto de classificação). As árvores podem ser vistas como um modelo de probabilidade para a associação de indivíduos. Portanto, em cada nó , temos uma distribuição de probabilidade sobre as classes. O importante aqui é que as folhas da árvore nos fornecem uma amostra aleatória de uma distribuição multinomial especificada por . Podemos assim definir o desvio de uma árvore, , como a soma de todas as folhas denipiknikpikD
Di=−2∑kniklog(pik),
seguindo as notações de Venables e Ripley ( MASS , Springer 2002, 4ª ed.). Se você tiver acesso a essa referência essencial para usuários do R (IMHO), poderá verificar por si próprio como essa abordagem é usada para dividir nós e ajustar uma árvore aos dados observados (p. 255 ss.); Basicamente, a ideia consiste em minimizar, por poda a árvore, , onde é o número de nós na árvore . Aqui reconhecemos o compromisso da complexidade de custos . Aqui, é equivalente ao conceito de impureza do nó (ou seja, a heterogeneidade da distribuição em um determinado nó), que é baseado em uma medida de entropia ou ganho de informação, ou no conhecido índice de Gini, definido comoD+α#(T)#(T)TD 1 - Σ k p 2 i kD1−∑kp2ik (as proporções desconhecidas são estimadas a partir das proporções dos nós).
Com uma árvore de regressão, a idéia é bastante semelhante, e podemos conceituar o desvio como soma dos quadrados definidos para os indivíduos porj
Di=∑j(yj−μi)2,
resumido sobre todas as folhas. Aqui, o modelo de probabilidade que é considerado dentro de cada folha é um gaussiano . Citando Venables e Ripley (p. 256), " é o desvio em escala usual para um GLM gaussiano. No entanto, a distribuição nos nós internos da árvore é então uma mistura de distribuições normais e, portanto, é apropriado apenas nas folhas. O processo de construção de árvores deve ser visto como um refinamento hierárquico dos modelos de probabilidade, muito semelhante à seleção de variáveis avançadas em regressão ". A Seção 9.2 fornece informações mais detalhadas sobre a implementação, mas você já pode ver a função paraN(μi,σ2)DDirpart
residuals()
rpart
objeto, onde "resíduos de desvio" são calculados como a raiz quadrada de menos duas vezes o logaritmo do modelo ajustado.
Uma introdução ao particionamento recursivo usando as rotinas rpart , de Atkinson e Therneau, também é um bom começo. Para uma revisão mais geral (incluindo ensacamento), eu recomendaria
lm.fit
no seu exemplo, pois esse é o nome do cavalo de trabalho por tráslm
.Pode ser um pouco mais claro se pensarmos em um modelo perfeito com tantos parâmetros quanto observações, para que ele explique toda a variação na resposta. Este é o modelo saturado. O desvio mede simplesmente a diferença de "ajuste" de um modelo candidato e do modelo saturado.
Em uma árvore de regressão, o modelo saturado seria aquele que tivesse tantos nós terminais (folhas) quanto observações para que se ajustasse perfeitamente à resposta. O desvio de um modelo mais simples pode ser calculado como a soma residual de quadrados do nó, somada a todos os nós. Em outras palavras, a soma das diferenças quadráticas entre os valores previstos e observados. Esse é o mesmo tipo de erro (ou desvio) usado na regressão de mínimos quadrados.
Para uma árvore de classificação, somas residuais de quadrados não é a medida mais apropriada de falta de ajuste. Em vez disso, há uma medida alternativa de desvio, além de árvores podem ser construídas minimizando uma medida de entropia ou o índice de Gini. O último é o padrão em
rpart
. O índice Gini é calculado como:fonte
Nesse caso, a diferença de desvio é tomada:
glm
R
Se você quiser ler com mais detalhes: cf: Análise de Dados Categorizados por Alan Agresti, pp 118.
fonte
rpart
e vou deixar a resposta para os membros mais experientes deste fórum.