Wie funktioniert vorherzusagen.lm() berechnen Sie Konfidenzintervalle und Vorhersage-Intervall?
Lief ich eine regression:
CopierDataRegression <- lm(V1~V2, data=CopierData1)
und meine Aufgabe war die Erlangung eines
- 90% Konfidenzintervall für die mittlere Antwort gegeben
V2=6
und - 90% Vorhersage-Intervall wenn
V2=6
.
Ich verwendete den folgenden code:
X6 <- data.frame(V2=6)
predict(CopierDataRegression, X6, se.fit=TRUE, interval="confidence", level=0.90)
predict(CopierDataRegression, X6, se.fit=TRUE, interval="prediction", level=0.90)
und ich bekam (87.3, 91.9)
und (74.5, 104.8)
das scheint richtig zu sein, da der PI sollte breiter sein.
Die Ausgabe der beiden auch enthalten se.fit = 1.39
die war die gleiche. Ich verstehe nicht, was diese standard-Fehler ist. Sollte nicht die standard-Fehler größer sein, für die PI-vs. des-Implantation? Wie finde ich diese zwei verschiedenen standard-Fehler in R?
Daten:
CopierData1 <- structure(list(V1 = c(20L, 60L, 46L, 41L, 12L, 137L, 68L, 89L,
4L, 32L, 144L, 156L, 93L, 36L, 72L, 100L, 105L, 131L, 127L, 57L,
66L, 101L, 109L, 74L, 134L, 112L, 18L, 73L, 111L, 96L, 123L,
90L, 20L, 28L, 3L, 57L, 86L, 132L, 112L, 27L, 131L, 34L, 27L,
61L, 77L), V2 = c(2L, 4L, 3L, 2L, 1L, 10L, 5L, 5L, 1L, 2L, 9L,
10L, 6L, 3L, 4L, 8L, 7L, 8L, 10L, 4L, 5L, 7L, 7L, 5L, 9L, 7L,
2L, 5L, 7L, 6L, 8L, 5L, 2L, 2L, 1L, 4L, 5L, 9L, 7L, 1L, 9L, 2L,
2L, 4L, 5L)), .Names = c("V1", "V2"),
class = "data.frame", row.names = c(NA, -45L))
Blick auf
Danke. Ich denke, was ich verlange ist, wie kann ich berechnen, den zwei std Fehler im Bild? So kann ich überprüfen Sie die Berechnung und wissen, wie Sie sind, abgeleitet.
?predict.lm
heißt es: "se.fit
: Standardfehler der vorhergesagten bedeutet". "Vorhergesagten bedeutet" macht es klingt, wie es bezieht sich nur auf das Konfidenzintervall. Wenn Sie nicht wollen, um es zu sehen, set se.fit = FALSE
.Danke. Ich denke, was ich verlange ist, wie kann ich berechnen, den zwei std Fehler im Bild? So kann ich überprüfen Sie die Berechnung und wissen, wie Sie sind, abgeleitet.
InformationsquelleAutor Mitty | 2016-06-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bei der Angabe
interval
undlevel
argumentpredict.lm
zurückkehren können Konfidenzintervall (CI) oder Prognose-Intervall (PI). Diese Antwort zeigt, so erhalten CI und PI, ohne diese Argumente. Es gibt zwei Möglichkeiten:predict.lm
;Wissen, wie man an beide Möglichkeiten geben Ihnen eine Gründliche verstehen der Vorhersage-Verfahren.
Beachten Sie, dass wir nur die
type = "response"
(Standard -) Fall fürpredict.lm
. Diskussiontype = "terms"
sprengt den Rahmen dieser Antwort.Setup
Entnehme ich deinen code hier zu helfen, andere Leser zum kopieren, einfügen und ausführen. Ich auch ändern, Variablen-Namen, so dass Sie klarere Bedeutungen. Darüber hinaus erweitere ich die
newdat
mehr als ein Zeilen, um zu zeigen, dass unsere Berechnungen sind "vektorisiert".Folgenden sind die Ausgabe von
predict.lm
, verglichen zu werden mit unseren manuellen Berechnungen später.Verwendung der mittleren Phase Ergebnis aus
predict.lm
z$se.fit
ist der standard-Fehler des predicted meanz$fit
, verwendet, um zu konstruieren, CIz$fit
. Wir müssen auch die Quantile der t-Verteilung mit einem Freiheitsgradz$df
.Sehen wir, dass dies stimmt überein mit der
predict.lm(, interval = "confidence")
.PI ist breiter als CI, da es Konten für die residual-Varianz:
Beachten Sie, dass dieser definierte Punkt-Weise. Für eine nicht gewichtete lineare regression (wie in deinem Beispiel), residual-Varianz ist überall gleich (bekannt als homoskedastizität), und es ist
z$residual.scale ^ 2
. Damit werden die standard-Fehler für PI istund PI ist gebaut wie
Sehen wir, dass dies stimmt überein mit der
predict.lm(, interval = "prediction")
.Bemerkung
Dinge werden komplizierter, wenn Sie haben ein Gewicht der linearen regression, wo die restliche Varianz ist nicht überall gleich, so dass
z$residual.scale ^ 2
sollten gewichtet werden. Es ist einfacher zu konstruieren PI für angepasste Werte (das heißt, Sie setzen nichtnewdata
bei der Verwendungtype = "prediction"
impredict.lm
), da die GEWICHTE bekannt sind (Sie müssen es überweight
argument bei der Verwendung vonlm
). Für die out-of-sample prediction " (das heißt, Sie übergeben einnewdata
zupredict.lm
),predict.lm
erwartet, dass Sie sagen, wie residual-Varianz sollten gewichtet werden. Sie müssen entweder argumentpred.var
oderweights
impredict.lm
, sonst erhalten Sie eine Warnung vonpredict.lm
beschweren, nicht genügend Informationen für den Bau PI. Im folgenden werden zitiert aus?predict.lm
:Beachten Sie, dass der Bau von CI ist nicht betroffen von der Art der regression.
Tun, alles von Grund auf neu
Grundsätzlich wollen wir wissen, wie zu erhalten
fit
,se.fit
,df
undresidual.scale
imz
.Dem predicted mean berechnet werden kann durch eine matrix-Vektor-Multiplikation
Xp %*% b
, woXp
ist der lineare Prädiktor-matrix undb
ist regression coefficient vector.Und wir sehen, dass dies stimmt überein mit der
z$fit
. Die Varianz-Kovarianz-füryh
istXp %*% V %*% t(Xp)
, woV
ist die Varianz-Kovarianz-matrix derb
welche berechnet werden kann durchDie volle Varianz-Kovarianz-matrix der
yh
ist nicht erforderlich, um zu berechnen, point-wise CI oder PI. Wir brauchen nur Ihre Hauptdiagonale. Also anstatt das zu tundiag(Xp %*% V %*% t(Xp))
wir tun können, ist es effizienter, überDer Verbleibende Freiheitsgrad ist leicht zugänglich in die Einbauküche Modell:
Schließlich, zu berechnen, residual-Varianz, verwenden Pearson Schätzer:
Bemerkung
Beachten Sie, dass bei der gewichteten regression
sig2
sollte berechnet werden, wieAnhang: eine selbst geschriebene Funktion, die imitiert
predict.lm
Den code bei "Mach alles neu" wurde sauber organisiert in einer Funktion
lm_predict
in diesem Q & A: lineares Modell mit- lm
: wie man der Vorhersage-Varianz der Summe der prognostizierten Werte.InformationsquelleAutor 李哲源
Ich weiß nicht, ob es eine schnelle Methode zum extrahieren der Standardfehler für die Vorhersage-Intervall, aber man kann immer backsolve die Intervalle für die SE (auch wenn es nicht super-elegant-Ansatz):
Beachten Sie, dass die CI SE ist der gleiche Wert von
se.fit
.InformationsquelleAutor MAB