Ottenere una formula per i limiti di predizione in un modello lineare (es .: intervalli di predizione)


18

Facciamo il seguente esempio:

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

Questo crea un modello di y basato su x1 e x2, usando una regressione OLS. Se desideriamo prevedere y per un dato x_vec, potremmo semplicemente usare la formula che otteniamo da summary(fit).

Tuttavia, se vogliamo prevedere le previsioni inferiore e superiore di y? (per un determinato livello di confidenza).

Come potremmo quindi costruire la formula?


La sezione Intervallo di confidenza sulle nuove osservazioni di questa pagina può essere d'aiuto.
GaBorgulya,

@Tal Siamo spiacenti, ma non mi è veramente chiaro cosa intendi realmente per "prevedere le previsioni inferiori e superiori di y". Ha qualcosa a che fare con le bande di previsione o tolleranza?
chl

@Tal - un paio di domande. Quando dici ".. y basato su x1 e x2, usando una regressione OLS." , intendi creare un modello lineare e stimare i parametri utilizzando OLS . Ho ragione? e la domanda di @ chl: vuoi prevedere i limiti inferiore e superiore per l'intervallo di previsione?
suncoolsu,

@chl, scusami per non essere più chiaro. Sto cercando due formule che daranno un intervallo per "catturare" il valore "reale" del 95% delle volte. Sento come sto usando le definizioni dell'IC per la media, quando probabilmente c'è qualche altro termine che dovrei usare, mi dispiace per quello ...
Tal Galili,

@suncoolsu - sì e sì.
Tal Galili,

Risposte:


25

Avrai bisogno dell'aritmetica della matrice. Non sono sicuro di come andrà Excel. Comunque, ecco i dettagli.

Supponiamo che la tua regressione sia scritta come .y=Xβ+e

Sia un vettore di riga contenente i valori dei predittori per le previsioni (nello stesso formato di X ). Poi la previsione è dato da y = X * β = X * ( X ' X ) - 1 X ' Y con una varianza associata σ 2 [ 1 + X * ( X ' X ) - 1 ( X * ) ' ] .X*X

y^=X*β^=X*(X'X)-1X'Y
σ2[1+X*(X'X)-1(X*)'].
Poi un intervallo di previsione 95% può essere calcolata (supponendo errori normalmente distribuiti) come y ± 1,96 σ Ciò tiene conto dell'incertezza dovuta al termine di erroreeedell'incertezza nelle stime dei coefficienti. Tuttavia, ignora eventuali errori in X. Pertanto, se i valori futuri dei predittori sono incerti, l'intervallo di previsione calcolato utilizzando questa espressione sarà troppo stretto.
y^±1.96σ^1+X*(X'X)-1(X*)'.
eX*

1
+1, risposta eccellente. Dovrei notare, tuttavia, che il modello di regressione stima sempre l'aspettativa condizionale, quindi è buono come i suoi regressori. Quindi l'ultimo commento, sebbene sia molto buono, non è strettamente necessario, poiché se costruisci un modello di regressione devi fidarti dei regressori.
mpiktas,

y^=X*β+X*(X'X)-1X'evun'ry^=vun'rX*(X'X)-1X'e=σ2X*(X'X)-1(X*)'

y^

N×N

X*

7

Sei per caso dopo i diversi tipi di intervalli di previsione? La predict.lmpagina del manuale ha

 ## 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, ...)

e

L'impostazione di "intervalli" specifica il calcolo degli intervalli di confidenza o previsione (tolleranza) al "livello" specificato, a volte indicato come intervallo stretto o ampio.

È quello che avevi in ​​mente?


Ciao Dirk, questo è davvero ciò che desidero trovare, ma voglio che i legami superiore e inferiore siano nella forma di una formula (quindi da implementare in seguito in qualche forma bassa di software statistico, ad esempio, Excel ...)
Tal Galili,

ps: ora vedo che c'era una modifica al titolo della mia domanda che potrebbe averti portato a pensare che stavo chiedendo il parametro di intervallo predict.lm (che non sono) :)
Tal Galili

8
Stai abusando della terminologia qui. Excel non è un software statistico.
Dirk Eddelbuettel,

1
Hai ragione, mia offerta, che ne dici di "un'applicazione per fogli di calcolo"?
Tal Galili,

3
Posso vivere con quello; chiama il diavolo con il suo nome ;-)
Dirk Eddelbuettel,

6

@Tal: Potrei suggerire Kutner et al come una fonte favolosa per i modelli lineari.

E(Y|Xvec)

E(Y|Xvec)Y^ ±αY^Y^Y^σ2nXvec-X¯)2σ2Σ(Xio-X¯)2


1
(+1) per fare la distinzione. Tuttavia, credo che l'OP chieda (1), non (2) (e ho modificato il titolo della domanda di conseguenza). Si noti inoltre che la formula sembra presupporre che la regressione dipenda solo da una variabile.
whuber
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.