Calcolo dell'intervallo di previsione


9

Ho i seguenti dati situati qui . Sto tentando di calcolare l'intervallo di confidenza al 95% sulla purezza media quando la percentuale di idrocarburi è 1,0. In R, inserisco quanto segue.

> predict(purity.lm, newdata=list(hydro=1.0), interval="confidence", level=.95)
   fit      lwr      upr
1 89.66431 87.51017 91.81845

Tuttavia, come posso ottenere questo risultato da solo? Ho tentato di usare la seguente equazione.

snew=s2(1+1N+(xnewx¯)2(xix¯)2)

E inserisco quanto segue in R.

> SSE_line = sum((purity - (77.863 + 11.801*hydro))^2)
> MSE = SSE_line/18
> t.quantiles <- qt(c(.025, .975), 18)
> prediction = B0 + B1*1
> SE_predict = sqrt(MSE)*sqrt(1+1/20+(mean(hydro)-1)^2/sum((hydro - mean(hydro))^2))
> prediction + SE_predict*t.quantiles
[1] 81.80716 97.52146

I miei risultati sono diversi dalla funzione di previsione di R. Che cosa ho frainteso sugli intervalli di previsione?


Come stai calcolando l'MSE nel tuo codice?

Ho aggiunto il calcolo al post.
idealistikz,

1
come MMJ ha suggerito di provarepredict(purity.lm, newdata=list(hydro=1.0), interval="prediction", level=.95)
vinux

Risposte:


16

Il predict.lmcodice calcola gli intervalli di confidenza per i valori adattati. Il calcolo della tua mano sta calcolando gli intervalli di previsione per i nuovi dati. Se si desidera ottenere lo stesso risultato predict.lmottenuto dal calcolo della mano, passare interval="confidence"a interval="prediction"


1

Buona risposta da parte di Dpel. Vorrei aggiungere che la differenza tra intervallo di confidenza e intervallo di previsione può essere dichiarata come di seguito:

Intervallo di confidenza

snew=s2(1N+(xnewx¯)2(xix¯)2)

Intervallo di previsione

snew=s2(1+1N+(xnewx¯)2(xix¯)2)

Fonte Vedi diapositiva pagina 5/17 e 11/17

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.