Wie kann man die Unsicherheit der Modellkoeffizienten in das Vorhersageintervall einer multiplen linearen Regression einbeziehen?

Ich beschäftige mich mit der Modellierung kleiner experimenteller physikalischer Datensätze (insbesondere der Klebrigkeit von Klebeverbindungen). Da die meisten experimentellen Arbeiten nicht Tausende von Proben generieren, sondern eine Handvoll, muss ich erfinderisch sein, wie ich mit dieser kleinen Anzahl von Datensätzen (sagen wir 10-20) umgehe. An diesem Punkt habe ich ein Modell-Framework (Regression siehe unten bei PSS), das damit ziemlich gut umgehen kann.

Um jedoch ein besseres Bild von der Genauigkeit meiner Vorhersagen zu haben, möchte ich einen Fehlerbalken für meine vorhergesagten Werte haben, um zu überprüfen, wie gut meine Vorhersagen neue Experimente vorhersagen. Da diese Arbeit numerischer Natur ist, wird der Fehlerbalken aus dem zugrunde liegenden theoretischen Modell stammen, wie sich diese Fehler ausbreiten (dh Fehleranalyse, wie man sie in der Experimentalphysik gewohnt ist).

Gehen Sie der Einfachheit halber davon aus, dass ich es mit einem multiplen linearen Regressionsmodell zu tun habe, sagen wir (in Wirklichkeit wird es viel, viel mehr Begriffe geben):

(1) j = β 0 + β 1 X 1 + β 2 X 2
Was ich suche, ist eine algebraische Methode zur Berechnung (numerisch) von Fehlerbalken (tatsächlich ist es das Vorhersageintervall (PI) oder das Konfidenzintervall (CI), da beide verwandt sind). In der Statistikliteratur gibt es Hinweise auf ein solches Problem und Beispiele dafür, wie PI und CI berechnet werden können. Diese berücksichtigen jedoch nur die Variabilität der X 'S. Die PI und CI beziehen sich dann auf (vgl. Frage Frage 147242 ):
(2) v ^ F = S 2 X 0 ( X T X ) 1 X 0 T + S 2

Im Gegensatz dazu ist jeder meiner Modellkoeffizienten [siehe: PSS unten] ( β 0 , β 1 Und β 2 ) haben in diesem Fall einen Fehlerbalken (extrahiert durch Bootstrapping aus einer Verteilung, wobei die Verteilungen numerischer Natur und nicht analytisch sind und die Verteilungen für jeden der drei Koeffizienten spezifisch sind). Gibt es eine Möglichkeit, die Unsicherheit der β ich 's (siehe die "Fehlerbalken") in der Berechnung des PI (und CI).

Um es ganz einfach auszudrücken, wie kann die Gleichung

(3) v ^ F = S 2 X 0 ( X T X ) 1 X 0 T + S 2
geändert werden, um auch die Tatsache einzubeziehen, dass die Koeffizienten selbst Mittelwerte einer Verteilung sind.

(PS: Man könnte mit dem ein Ensemble aus verschiedenen Modellinstanzen erstellen β ich gezogen aus ihren jeweiligen Verteilungen und basierend auf der erhaltenen Verteilung j 0 Berechnen Sie das CI der j 0 , aber das ist nicht wirklich recheneffizient und bringt viele andere Probleme mit sich, die ich vermeiden möchte.)

(PPS: Das vorgestellte Regressionsmodell ist nicht das Ergebnis einer direkten Regression auf einen einzelnen Datensatz, sondern wie folgt aufgebaut:

  1. Erstellen Sie ein Ensemble von N Datensätzen.
  2. Bei jedem Datensatz führt eine Regression zu einem linearen Modell, wie im obigen Beitrag angegeben. Dies führt zu N Werten für jeden der Koeffizienten β .
  3. Der Mittelwert von jedem der drei Sätze wird berechnet.
  4. Diese drei mittleren Koeffizienten sind die Koeffizienten des oben dargestellten Modells.
  5. Das Ziel hier: Finden Sie das Vorhersageintervall für das obige gemittelte Modell unter Berücksichtigung der Tatsache, dass die Koeffizienten β werden aus numerischen Verteilungen berechnet.)
Diese Frage sollte wahrscheinlich hier gepostet werden: stats.stackexchange.com
Ich habe es heute Morgen dort gepostet, aber es wurde fast sofort geschlossen, weil sie irgendwie nicht verstehen, worum es mir eigentlich geht. :'( Da dies die Art von Frage ist, die sich aus einem physikalischen (experimentellen) Hintergrund ergibt, hoffte ich, hier mehr Hilfe zu erhalten ( stats.stackexchange.com/q/457861 )
Eine Frage im falschen Forum erneut zu posten, weil ein Experte (zB whuber) darauf hingewiesen hat, dass die Frage nicht genug Fokus hat, ist wahrscheinlich die falsche Strategie.
Fehleranalyse ist meines Wissens ein wichtiges Thema in der Experimentalphysik. Dies ist eine praktische Anwendung (die sich aufgrund des Kontexts von In-silico-Experimenten auch für ein Statistikforum eignet). Ich bin hier, um eine Antwort zu finden. Wenn die Antwort lautet: "Es gibt niemanden, der die Antwort weiß.", oder "Auf diese Frage gibt es keine Antwort, weil...", dann freue ich mich auch.
Ich stimme dafür, diese Frage als nicht zum Thema gehörend zu schließen, da es anscheinend nicht um Physik geht.
Meta-Beitrag zum Schließen dieser Frage.
Ich habe eine Reihe von Kommentaren entfernt, die versuchten, die Frage und/oder Antworten darauf zu beantworten. Bitte beachten Sie, dass Kommentare verwendet werden sollten, um Verbesserungen vorzuschlagen und um Klärung der Frage zu bitten, nicht um zu antworten.
Haben Sie jemals eine Antwort auf diese Frage erhalten, sei es irgendwo im StackExchange-Netzwerk oder anderswo?
Das ist so gut wie es kam.
Dieses Problem ist schwierig, aber es ist schon früher aufgetreten. Sehen Sie sich den folgenden Link an, um das Problem zu lösen: asq.org/quality-resources/design-of-experiments

Antworten (3)

Ich verstehe den von Ihnen verlinkten Beitrag nicht ganz, es scheint, dass sie implizit davon ausgehen, dass sie ein Modell dafür haben, wie X 0 generiert wird, was im allgemeinen Fall nicht zutrifft ... Wenn ich Ihre Frage jedoch verstehe, besteht die allgemeinste und einfachste Lösung, um das zu erreichen, was Sie möchten, darin, Ihre Vorhersageintervalle zu booten . Die Grundidee ist, jeden von Ihnen zu verwenden N Datensätze zur Erzeugung eines Vektors β , dann stapeln Sie Ihre β in eine Matrix

B = [ β 1 β 2 β N ] .

Jetzt ist Ihre Verteilung der Ausgaben B X 0 , und Sie können Statistiken zu den Elementen dieses Vektors erstellen, die Konfidenzintervalle aufweisen.

Die Annahme ist nicht implizit, da es sich um eine lineare Regression handelt, die nach einem vorgegebenen Algorithmus durchgeführt wird. Die Tatsache, dass ich eine lineare Regression auf ein Ensemble anwende, um eine Gleichung derselben expliziten Form zu erzeugen, macht dies etwas schwierig. Einerseits denke ich, dass Sie den Fehler des linearen Regressionsmodells einbeziehen müssen, und gleichzeitig brauche ich die Fehlerbalken für die aus dem Ensemble erhaltenen Koeffizienten.
Das vorgeschlagene Bootstrapping ist eine gültige Idee (vgl. PS meines Beitrags). Wie ich jedoch bereits erklärt habe, ist dies ziemlich ineffizient, da Sie eine große Menge von Vorhersagen durchführen und den Überblick über das Ensemble von Modellen behalten müssen.
Wenn Sie nur die Verteilung von haben β , dann, da dies eine multiple lineare Regression ist, die Varianz der Ausgabe insgesamt β ist nur
σ ich 2 X ich 2 ,
Wo X ich sind die Eingabe in σ ich 2 ist die Varianz der ich ter Parameter von β über dem N Regressoren. So können Sie die Varianz jeder Spalte von berechnen B und verwenden Sie das, um Ihnen die Varianz Ihrer Ausgabe in nur zwei Schritten zu geben N . Dies funktioniert jedoch nur für die lineare Regression und gibt Ihnen keine Perzentile, was Sie wollten.
das sieht interessant aus danke.

Dies ist ein Problem, das im Wesentlichen für die Bayes'sche Analyse maßgeschneidert ist. Das Ergebnis einer Bayes'schen Analyse ist die gemeinsame Verteilung aller Ihrer Modellkoeffizienten. Sie können also Stichproben aus den vorhergesagten Daten simulieren, indem Sie zuerst eine Stichprobe aus den Modellkoeffizienten ziehen und dann diese Modellkoeffizienten verwenden, um eine Stichprobe aus den Daten zu ziehen. Dies wird als "posteriore prädiktive Verteilung" bezeichnet. Es wird häufig in der Bayes'schen Analyse verwendet, um die Gültigkeit des Modells zu bewerten. Wenn Ihr Modell Ihren Datengenerierungsprozess angemessen annähert, sollten Ihre tatsächlichen Daten Ihren späteren vorhergesagten Daten angemessen ähnlich sein.

Ich empfehle die Verwendung des rstanarm-Pakets in R. IMO, selbst wenn Sie R nicht kennen, lohnt es sich, es zu lernen, nur um dieses Paket zu verwenden.

https://mc-stan.org/rstanarm/

Das funktioniert wahrscheinlich mit einem vernünftigen Datensatz, aber es gibt ein paar Einschränkungen: (1) es muss in einem bestehenden Python-Framework implementiert werden, damit R-Libs nicht in Frage kommen, und (2) in der Tat gibt es viele Möglichkeiten, wie Sie können Ensembles von Vorhersagen generieren und von dort aus fortfahren, aber das ist der ineffiziente Weg, den ich vermeiden möchte. Es sollte stattdessen eine Einzelpunktberechnung sein.
Es gibt auch PyStan, das eng verwandt ist. Wie auch immer, passen Sie sich bezüglich der Berechnungen an. Ich glaube, dass die Bayes'sche Statistik der richtige Ansatz für diese Art von Problem ist, aber es ist Ihr Projekt
Danke für den Hinweis. Ich werde es prüfen.

Sie sollten Ihr Gehirn nicht mit Statistiken durcheinander bringen. Es gibt Lügen, große Lügen und es gibt Statistiken.

Sie sollten an Ihrer direkten Aufgabe arbeiten, was die Kausalität der Wirkungen ist, die Sie in Ihrer Arbeit erzielen.

Wir alle kennen die Tatsachen der „falschen Korrelation“. Korrelation ist nicht Kausalität. Der Stanley Cup korreliert mit den Verkäufen von Staples[1]. Na und? Nichts.

Ich verstehe nicht, warum Sie eine multiple lineare Regression benötigen, die aufgrund interner theoretischer Inkonsistenzen unglaublich fehlerhaft ist . Hauptsächlich können Sie kein Ergebnis einer "Regression" als Beweis für eine starke Kausalität verwenden. Aber die Regression mit mehreren gemischten Variablen lässt Sie nicht einmal eine schwache Kausalität finden. Wissen Sie, was Heteroskedastizität ist? [2]

Dafür wurde 2003 der Nobelpreis verliehen. Arbeite an Physik, nicht an Statistik. Als Zweites haben Sie Robert Engle.

Über Fehlerbalken, die Sie benötigen. Zeichnen Sie Fehlerbalken in der Größe, die Sie für richtig halten, auf Papier . Sie sind Wissenschaftler. Das sind deine Bars , nicht die von jemand anderem. Fügen Sie etwas Rauschen in Ihre experimentelle Signalleitung ein und schließen Sie die Fehlergrößen, die Sie erhalten.

[1] http://tylervigen.com/view_correlation?id=28910

[2] https://en.wikipedia.org/wiki/Heteroscedasticity

Wir haben es mit einem Ensemble-Modell im Kontext von ML zu tun, das auf einen kleinen Datensatz aus der realen Welt angewendet wird (dh keine schöne Kurve / Verteilung / ... nur numerische Daten). Und wir suchen nicht nach einem Beweis für starke oder schwache Kausalität, sondern nur nach einem Modell, das zu den Daten passt.