26 votos

¿Cómo puede uno empírico demuestra en R que métodos de validación cruzada son equivalentes a la AIC y BIC?

En una pregunta en otra parte de este sitio, varias respuestas, mencionó que el AIC es equivalente a dejar-uno-fuera (LOO) validación cruzada y que el BIC es equivalente a K-fold cross validation. Es allí una manera de demostrar empíricamente esta en R tal que las técnicas involucradas en LOO y K-fold está claro y demostrado ser equivalente a la AIC y BIC valores? Bien comentado código sería útil en este sentido. Además, en la demostración de la BIC por favor, utilice el paquete lme4. Véase a continuación un ejemplo de un conjunto de datos...

library(lme4) #for the BIC function

generate.data <- function(seed)
{
    set.seed(seed) #Set a seed so the results are consistent (I hope)
    a <- rnorm(60) #predictor
    b <- rnorm(60) #predictor
    c <- rnorm(60) #predictor
    y <- rnorm(60)*3.5+a+b #the outcome is really a function of predictor a and b but not predictor c
    data <- data.frame(y,a,b,c) 
    return(data)    
}

data <- generate.data(76)
good.model <- lm(y ~ a+b,data=data)
bad.model <- lm(y ~ a+b+c,data=data)
AIC(good.model)
BIC(logLik(good.model))
AIC(bad.model)
BIC(logLik(bad.model))

Por los comentarios anteriores, a continuación tienes una lista de las semillas de 1 a 10000 en el que AIC y BIC en desacuerdo. Esto fue hecho por una simple búsqueda a través de las semillas disponibles, pero si alguien podría proporcionar una manera para generar datos que tienden a producir respuestas divergentes a partir de estos dos criterios de información puede ser particularmente informativo.

notable.seeds <- read.csv("http://student.ucr.edu/~rpier001/res.csv")$seed

Como un aparte, pensé sobre el pedido de estas semillas en la medida en que el AIC y BIC en desacuerdo que he tratado de cuantificar como la suma de las diferencias absolutas de la AIC y BIC. Por ejemplo,

AICDiff <- AIC(bad.model) - AIC(good.model) 
BICDiff <- BIC(logLik(bad.model)) - BIC(logLik(good.model))
disagreement <- sum(abs(c(AICDiff,BICDiff)))

donde mi desacuerdo métrica razonablemente se aplica cuando las observaciones son notables. Por ejemplo,

are.diff <- sum(sign(c(AICDiff,BICDiff)))
notable <- ifelse(are.diff == 0 & AICDiff != 0,TRUE,FALSE)

Sin embargo, en casos donde la AIC y BIC de acuerdo, con el calculado desacuerdo valor fue siempre el mismo (y es una función del tamaño de la muestra). Mirando hacia atrás en cómo AIC y BIC se calculan puedo ver por qué esto podría ser el caso computacionalmente, pero no estoy seguro de por qué sería el caso conceptualmente. Si alguien pudiera aclarar esa cuestión, se lo agradecería.

5voto

BBlake Puntos 310

En un intento parcialmente responder a mi propia pregunta, leí en la Wikipedia descripción de leave-one-out cross validation

implica el uso de una única observación a partir de la muestra original como el la validación de datos, y el resto de observaciones de los datos de entrenamiento. Esto se repite de tal manera que cada la observación en la muestra se utiliza una vez como la validación de datos.

En el código R, sospecho que eso significaría algo como esto...

resid <- rep(NA, Nobs) 
for (lcv in 1:Nobs)
    {
        data.loo <- data[-lcv,] #drop the data point that will be used for validation
        loo.model <- lm(y ~ a+b,data=data.loo) #construct a model without that data point
            resid[lcv] <- data[lcv,"y"] - (coef(loo.model)[1] + coef(loo.model)[2]*data[lcv,"a"]+coef(loo.model)[3]*data[lcv,"b"]) #compare the observed value to the value predicted by the loo model for each possible observation, and store that value
    }

... se supone que los valores del rendimiento en resid que está relacionado con el AIC. En la práctica, la suma de los cuadrados de los residuos de cada iteración del LOO bucle detallados anteriormente es un buen predictor de la AIC para el notable.semillas, r^2 = .9776. Pero, en otra parte de un contribuyente, sugirió que LOO debe ser asintóticamente equivalente a la AIC (al menos para los modelos lineales), así que estoy un poco decepcionado de que r^2 no es más cercana a 1. Obviamente, esta no es realmente una respuesta - más como código adicional para tratar de animar a alguien a intentar dar una respuesta mejor.

Addendum: Desde AIC y BIC para los modelos de tamaño de muestra fijo, sólo varían por una constante, la correlación de BIC para el cuadrado de los residuos es el mismo que el correaltion de AIC para el cuadrado de los residuos, por lo que el enfoque que tomó anterior parece ser infructuosos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X