Obtención de una fórmula para los límites de predicción en un modelo lineal (es decir, intervalos de predicción)

18

Tomemos el siguiente ejemplo:

set.seed(342)
x1 <- runif(100)
x2 <- runif(100)
y <- x1+x2 + 2*x1*x2 + rnorm(100)
fit <- lm(y~x1*x2)

Esto crea un modelo de y basado en x1 y x2, utilizando una regresión OLS. Si deseamos predecir y para un x_vec dado, simplemente podríamos usar la fórmula que obtenemos de summary(fit).

Sin embargo, ¿qué pasa si queremos predecir las predicciones inferior y superior de y? (para un nivel de confianza dado).

¿Cómo entonces construiríamos la fórmula?

Tal Galili
fuente
La sección Intervalo de confianza en nuevas observaciones de esta página puede ayudar.
GaBorgulya
@Tal Lo siento, pero no está muy claro para mí lo que realmente quieres decir con "predecir las predicciones inferior y superior de y". ¿Tiene algo que ver con las bandas de predicción o tolerancia?
chl
@Tal: un par de consultas. Cuando dices ".. y basado en x1 y x2, usando una regresión OLS". , quiere decir que crea un modelo lineal y estima parámetros usando OLS . Estoy en lo cierto? y la pregunta de @ chl: ¿desea predecir los límites inferior y superior para el intervalo de predicción?
suncoolsu
@chl, perdón por no ser más claro. Estoy buscando dos fórmulas que den un intervalo para que "atrapen" el valor "real" de y el 95% del tiempo. Siento cómo estoy usando definiciones para el IC para la media, cuando probablemente haya algún otro término que debería usar, lo siento ...
Tal Galili
@suncoolsu: sí y sí.
Tal Galili

Respuestas:

25

Necesitará aritmética matricial. No estoy seguro de cómo irá Excel con eso. De todos modos, aquí están los detalles.

Suponga que su regresión se escribe como .y=Xβ+e

Sea un vector de fila que contiene los valores de los predictores para los pronósticos (en el mismo formato que X ). A continuación, el pronóstico es dada por Y = X * β = X * ( X ' X ) - 1 X ' Y con una varianza asociada σ 2 [ 1 + X * ( X ' X ) - 1 ( X * ) ' ] .XX

y^=Xβ^=X(XX)1XY
σ2[1+X(XX)1(X)].
A continuación, un intervalo de predicción de 95% se puede calcular (suponiendo errores distribuidos normalmente) como y ± 1,96 sigma Esto tiene en cuenta la incertidumbre debida al término de erroreyla incertidumbre en las estimaciones de coeficientes. Sin embargo, ignora cualquier error en X. Entonces, si los valores futuros de los predictores son inciertos, entonces el intervalo de predicción calculado usando esta expresión será demasiado estrecho.
y^±1.96σ^1+X(XX)1(X).
eX
Rob Hyndman
fuente
1
+1, excelente respuesta. Sin embargo, debo tener en cuenta que el modelo de regresión siempre estima la expectativa condicional, por lo que es tan bueno como lo son sus regresores. Entonces, el último comentario, aunque es muy bueno, no es estrictamente necesario, ya que si crea un modelo de regresión, debe confiar en los regresores.
mpiktas
y^=Xβ+X(XX)1Xevary^=varX(XX)1Xe=σ2X(XX)1(X)
y^
norte×norte
X
7

¿Estás por casualidad después de los diferentes tipos de intervalos de predicción? La predict.lmpágina del manual tiene

 ## S3 method for class 'lm'
 predict(object, newdata, se.fit = FALSE, scale = NULL, df = Inf, 
         interval = c("none", "confidence", "prediction"),
         level = 0.95, type = c("response", "terms"),
         terms = NULL, na.action = na.pass,
         pred.var = res.var/weights, weights = 1, ...)

y

El establecimiento de 'intervalos' especifica el cálculo de los intervalos de confianza o predicción (tolerancia) en el 'nivel' especificado, a veces denominado intervalos estrechos frente a intervalos amplios.

¿Eso es lo que tenías en mente?

Dirk Eddelbuettel
fuente
Hola Dirk, eso es lo que deseo encontrar, pero quiero que los enlaces superior e inferior tengan la forma de una fórmula (para luego implementar en alguna forma baja de software estadístico, por ejemplo, Excel ...)
Tal Galili
pd: ahora veo que hubo una edición en el título de mi pregunta que podría haberle llevado a pensar que estaba preguntando sobre el parámetro de intervalo predict.lm (que no soy) :)
Tal Galili
8
Estás abusando de la terminología aquí. Excel no es un software estadístico.
Dirk Eddelbuettel
1
Tienes razón, mi oferta, ¿qué tal "una aplicación de hoja de cálculo"?
Tal Galili
3
Puedo vivir con ello; llama al diablo por su nombre ;-)
Dirk Eddelbuettel
6

@Tal: ¿Puedo sugerir a Kutner et al como una fuente fabulosa para modelos lineales?

mi(YEl |XvmiC)

mi(YEl |XvmiC)Y^ ±αY^Y^Y^σ2norteXvmiC-X¯)2σ2(Xyo-X¯)2

B_Miner
fuente
1
(+1) por hacer la distinción. Sin embargo, creo que el OP está pidiendo (1), no (2) (y he editado el título de la pregunta en consecuencia). También tenga en cuenta que su fórmula parece asumir que la regresión depende solo de una variable.
whuber