23 votos

Dificultad de la prueba de linealidad en la regresión

En el Modelado Estadístico: Las Dos Culturas Leo Breiman escribe

La corriente aplicada práctica es comprobar los datos de ajuste del modelo mediante el de bondad de ajuste de las pruebas y residual análisis. En un punto, algunos años atrás, puedo configurar una simulación de regresión problema en siete dimensiones con un cantidad controlada de la no linealidad. Estándar de pruebas de bondad de ajuste ¿ no rechazar la linealidad hasta el la no linealidad fue extrema.

Breiman no dar los detalles de su simulación. Él hace referencia a un papel que dice que le da justificación teórica para su observación, pero el papel no está publicada.

Alguien ha visto a un publican resultados de simulación o prueba teórica para apoyar Brieman la reclamación?

13voto

jldugger Puntos 7490

He creado una simulación que responda a Breiman la descripción y encontró que sólo el obvio: el resultado depende del contexto y de lo que se entiende por "extrema".

Un montón de cosas podría decir, sino que me limitaré a sólo un ejemplo llevada a cabo por medio de fácilmente modificados R código para los lectores interesados a utilizar en sus propias investigaciones. Este código comienza por la creación de un diseño de la matriz que consta de aproximadamente distribuidos de manera uniforme independiente de los valores que son aproximadamente ortogonales (para no entrar en problemas de multicolinealidad). Se calcula una sola cuadrática (es decir, no lineal) de la interacción entre las dos primeras variables: este es sólo uno de los muchos tipos de "no linealidad" que podían ser estudiadas, pero al menos es un común, que se entiende bien. Luego se normaliza todo, por lo que los coeficientes serán comparables:

set.seed(41)
p <- 7                                            # Dimensions
n <- 2^p                                          # Observations
x <- as.matrix(do.call(expand.grid, lapply(as.list(1:p), function(i) c(-1,1))))
x <- x + runif(n*p, min=-1, max=1)
x <- cbind(x, x.12 = x[,1]*x[,2])                 # The nonlinear part
x <- apply(x, 2, function(y) (y - mean(y))/sd(y)) # Standardization

Para la base de MCO del modelo (sin falta de linealidad) debemos especificar algunos de los coeficientes y de la desviación estándar del error residual. Aquí es un conjunto de unidad de los coeficientes y de un comparables SD:

beta <- rep(c(1,-1), p)[1:p]
sd <- 1

Para ilustrar la situación, aquí es una rígida iteración de la simulación. Se genera la variable dependiente, un resumen de sus valores, muestra el total matriz de correlaciones de todas las variables (incluida la interacción), y muestra un diagrama de dispersión de la matriz. A continuación, se realiza la regresión por MCO. En el siguiente, el coeficiente de interacción de $1/4$ es sustancialmente más pequeño que cualquiera de los otros coeficientes (todos iguales a $1$ o $-1$), por lo que sería difícil de la llamada "extrema":

gamma = 1/4          # The standardized interaction term
df <- data.frame(x)
df$y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
    summary(df)
    cor(df)*100
    plot(df, lower.panel=function(x,y) lines(lowess(y~x)), 
         upper.panel=function(x,y) points(x,y, pch=".", cex=4))
    summary(lm(df$y ~ x))

En lugar de vadear a través de todos los de salida de aquí, vamos a buscar a estos datos utilizando la salida de la plot comando:

SPM

El lowess huellas en el triángulo inferior muestran esencialmente no hay una relación lineal entre la interacción (x.12) y la variable dependiente (y) y modesto relaciones lineales entre las variables y y. El OLS resultados confirman que; la interacción es apenas significativo:

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.0263     0.0828    0.32    0.751    
xVar1         0.9947     0.0833   11.94   <2e-16 ***
xVar2        -0.8713     0.0842  -10.35   <2e-16 ***
xVar3         1.0709     0.0836   12.81   <2e-16 ***
xVar4        -1.0007     0.0840  -11.92   <2e-16 ***
xVar5         1.0233     0.0836   12.24   <2e-16 ***
xVar6        -0.9514     0.0835  -11.40   <2e-16 ***
xVar7         1.0482     0.0835   12.56   <2e-16 ***
xx.12         0.1902     0.0836    2.27    0.025 *  

Voy a tomar el p-valor del término de interacción como una prueba de no linealidad: cuando el p-valor es lo suficientemente baja (usted puede elegir cómo baja), le han detectado la no linealidad.

(Hay una sutileza aquí qué es exactamente lo que estamos buscando. En la práctica podríamos necesidad de examinar todas 7*6/2 = 21 posibles, cuadrática de las interacciones, así como, quizás, de más de 7 cuadrática términos, en lugar de centrarse en un solo término, como se hace aquí. Nos gustaría hacer una corrección para estos 28 de inter-relacionados con las pruebas. Yo no explícitamente hacer esta corrección aquí, porque en lugar de mostrar la simulación de la distribución de los p-valores. Usted puede leer las tasas de detección directamente a partir de los histogramas final que se basa en su umbrales de importancia.)

Pero no hagamos de este análisis, solo una vez; vamos a hacerlo un montón de veces, la generación de nuevos valores de y en cada iteración de acuerdo con el mismo modelo y el mismo diseño de la matriz. Para lograr esto, se utiliza una función para llevar a cabo una iteración y devolver el p-valor del término de interacción:

test <- function(gamma, sd=1) {
  y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
  fit <- summary(lm(y ~ x))
  m <- coef(fit)
  n <- dim(m)[1]
  m[n, 4]
}

Yo elija para presentar los resultados de la simulación como histogramas de los valores de p, variando el coeficiente estandarizado gamma del término de interacción. En primer lugar, los histogramas:

h <- function(g, n.trials=1000) {
  hist(replicate(n.trials, test(g, sd)), xlim=c(0,1), 
       main=toString(g), xlab="x1:x2 p-value")
}
par(mfrow=c(2,2)) # Draw a 2 by 2 panel of results

Ahora para hacer el trabajo. Se toma unos segundos para 1000 ensayos por la simulación (y cuatro simulaciones independientes, comenzando con el valor dado del término de interacción y, sucesivamente, reducir a la mitad cada vez):

temp <- sapply(2^(-3:0) * gamma, h)

Los resultados:

Histograms

Leer hacia atrás desde la parte inferior derecha, con estos gráficos muestran que para este diseño de la matriz x, para esta desviación estándar de los errores de sd, y para estos coeficientes tipificados beta, OLS puede detectar un estándar de la interacción de $1/4$ (apenas una cuarta parte del tamaño de los otros coeficientes) de forma fiable, más del 80% del tiempo (con un 5% umbral para el valor de p--a recordar la breve discusión acerca de la corrección para comparaciones múltiples, que ahora estoy ignorando); a menudo puede detectar una interacción tamaño de $1/8$ (alrededor de 20% del tiempo); a veces va a detectar una interacción de tamaño $1/16$, y realmente no puede identificar ningún interacciones de menor tamaño. No se muestra aquí es un histograma para gamma igual a $1/2$, lo que demuestra que incluso cuando la corrección para comparaciones múltiples, una ecuación cuadrática de la interacción de este gran es casi seguramente detectado.

Si usted toma estas interacciones, que varían en tamaño desde $1/32$$1/4$, para ser "extremo" o no dependerá de su perspectiva, en la regresión de la situación (expresados como x, sdy beta), en cuantas pruebas independientes de la no linealidad te imaginas llevando a cabo, y, ritmo Breiman, a quien yo respeto mucho, tal vez si usted tiene un hacha para moler. Usted sin duda puede hacer que sea difícil para OLS para detectar la no linealidad: sólo infla sd por lo que los pantanos de la no linealidad y, simultáneamente, la conducta de muchos diferentes pruebas de bondad de ajuste.

En definitiva, una simulación de como esto puede ser lo que usted como si usted acaba de configurar e interpretar de la manera correcta. Que sugiere que el individuo estadístico deben llevar a cabo sus propias exploraciones, adecuadas a los problemas específicos que enfrentan, con el fin de llegar a un personal y una profunda comprensión de las capacidades y debilidades de los procedimientos que se están utilizando.

1voto

Johan Lübcke Puntos 2137

No da una respuesta definitiva a la pregunta, pero yo le daría un vistazo a este. Especialmente el punto 2. Véase también la discusión en el apéndice A2 de papel.

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