¿Qué es la desviación? (específicamente en CART / rpart)

45

¿Qué es la "desviación", cómo se calcula y cuáles son sus usos en diferentes campos de las estadísticas?

En particular, estoy personalmente interesado en sus usos en CART (y su implementación en rpart en R).

Estoy preguntando esto ya que el artículo wiki parece algo deficiente y sus ideas serán bienvenidas.

Tal Galili
fuente

Respuestas:

48

Desviación y GLM

Formalmente, uno puede ver la desviación como una especie de distancia entre dos modelos probabilísticos; en el contexto GLM, equivale a dos veces la relación logarítmica de probabilidades entre dos modelos anidados 1/0 donde 0 es el modelo "más pequeño"; es decir, una restricción lineal en los parámetros del modelo (véase el lema de Neyman-Pearson ), como dijo @suncoolsu. Como tal, se puede utilizar para realizar la comparación del modelo . También puede verse como una generalización del RSS utilizado en la estimación de OLS (ANOVA, regresión), ya que proporciona una medida de bondad de ajuste del modelo que se evalúa en comparación con el modelo nulo (solo intercepción). Funciona también con LM:

> x <- rnorm(100)
> y <- 0.8*x+rnorm(100)
> lm.res <- lm(y ~ x)

ε^tε^

> t(residuals(lm.res))%*%residuals(lm.res)
         [,1]
[1,] 98.66754

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 

R2=1RSS/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 

Ahora, mira la desviación:

> deviance(lm.res)
[1] 98.66754

De hecho, para los modelos lineales, la desviación es igual al RSS (puede recordar que las estimaciones de OLS y ML coinciden en tal caso).

Desviación y CARRITO

nipiknikpikD

Di=2kniklog(pik),

D+α#(T)#(T)TD1kpik2

j

Di=j(yjμi)2,

N(μi,σ2)DDirpartresiduals()función para rpartobjeto, donde los "residuos de desviación" se calculan como la raíz cuadrada de menos dos veces el logaritmo del modelo ajustado.

Una introducción a la partición recursiva utilizando las rutinas rpart, de Atkinson y Therneau, también es un buen comienzo. Para una revisión más general (incluido el embolsado), recomendaría

chl
fuente
1
+1 buena respuesta chl, que, como dices, complementa la mía, así que no hay problemas allí. Muy bien puesto.
Restablece a Monica - G. Simpson el
Una cosa menor: probablemente no sea mejor usar lm.fiten su ejemplo, ya que este es el nombre del caballo de batalla detrás lm.
Restablece a Monica - G. Simpson el
@Gavin Oh, sí, es cierto. Gracias por recordarme que, a menudo cometo este error ...
chl
3
Solo una observación: para la regresión lineal, la desviación es igual a la RSS porque la suposición de normalidad de los errores implica que RSS es igual que el estadístico de prueba LR, lo que implica que la desviación se distribuye normalmente, independientemente de los asintóticos . Esto es solo una expansión de (creo) un breve comentario de chl.
suncoolsu
εi
25

Podría ser un poco más claro si pensamos en un modelo perfecto con tantos parámetros como observaciones de modo que explique toda la variación en la respuesta. Este es el modelo saturado. La desviación simplemente mide la diferencia en el "ajuste" de un modelo candidato y el del modelo saturado.

En un árbol de regresión, el modelo saturado sería uno que tuviera tantos nodos terminales (hojas) como observaciones, por lo que encajaría perfectamente en la respuesta. La desviación de un modelo más simple puede calcularse como las sumas residuales de cuadrados del nodo, sumadas sobre todos los nodos. En otras palabras, la suma de las diferencias al cuadrado entre los valores pronosticados y observados. Este es el mismo tipo de error (o desviación) utilizado en la regresión de mínimos cuadrados.

Para un árbol de clasificación, las sumas residuales de cuadrados no son la medida más apropiada de falta de ajuste. En cambio, hay una medida alternativa de desviación, además de que se pueden construir árboles minimizando una medida de entropía o el índice de Gini. Este último es el predeterminado en rpart. El índice de Gini se calcula como:

Di=1k=1Kpik2

pikkii

Restablece a Mónica - G. Simpson
fuente
(+1) Lo siento, mi publicación llegó más tarde y no noté la tuya. Como creo que no se superponen demasiado, dejaré el mío si no te importa.
chl
R2
11

N

Deviance=2[L(μ^|y)L(y|y)]

M1M2p1p2M1M2

En ese caso, se toma la diferencia de desviación:

ΔDeviance=2[L(μ1^|y)L(μ2^|y)]

ΔDeviancep2p1glmR

Si desea leer en mayor detalle: cf: Análisis de datos categóricos por Alan Agresti, pp 118.

suncoolsu
fuente
@Tal, no uso rparty dejaré la respuesta a los miembros más experimentados de este foro.
suncoolsu
Creo que tengo la idea ... Pero rpart imprime la desviación incluso para los árboles de regresión Oo
deps_stats
@deps_stats esa desviación es sumas residuales de cuadrados sumadas sobre los nodos terminales del árbol.
Restablece a Monica - G. Simpson el