Anpassung von Modellen in R, bei denen Koeffizienten linearen Beschränkungen unterliegen

16

Wie soll ich eine Modellformel in R definieren, wenn eine (oder mehrere) exakte lineare Beschränkungen, die die Koeffizienten binden, verfügbar sind? Angenommen, Sie wissen, dass in einem einfachen linearen Regressionsmodell b1 = 2 * b0 ist.

Vielen Dank!

George Dontas
quelle

Antworten:

16

Angenommen, Ihr Modell ist

Y.(t)=β0+β1X1(t)+β2X2(t)+ε(t)

und Sie planen die Koeffizienten einzuschränken, zum Beispiel wie:

β1=2β2

Durch Einfügen der Einschränkung wird das ursprüngliche Regressionsmodell, das Sie erhalten, neu geschrieben

Y.(t)=β0+2β2X1(t)+β2X2(t)+ε(t)

Y.(t)=β0+β2(2X1(t)+X2(t))+ε(t)

Z(t)=2X1(t)+X2(t)

Y.(t)=β0+β2Z(t)+ε(t)

Auf diese Weise können Sie mit genauen Einschränkungen umgehen, da die Anzahl der Gleichheitszeichen die Anzahl der unbekannten Parameter um dieselbe Anzahl verringert.

Mit R-Formeln können Sie direkt mit der I () -Funktion spielen

lm(formula = Y ~ I(1 + 2*X1) + X2 + X3 - 1, data = <your data>) 
lm(formula = Y ~ I(2*X1 + X2) + X3, data = <your data>)
Dmitrij Celov
quelle
Dies ist ziemlich klar, aber die Frage deutete auf eine Beschränkung zwischen b0 und b1 hin. Soll ich auch eine neue Variable Z = 2X + 1 erstellen und ein Modell ohne Achsenabschnitt anpassen?
George Dontas
2
Ich denke, normalerweise werde ich in Formeln anstelle von eval verwendet, dh Y ~ I (1 + 2 * X1) + X2 + X3-1
mpiktas
@ gd047: Ich habe mit einem Code Stücke aktualisiert, ja es ist wie du sagst. @mpiktas: werde das ändern, ja es ist kürzer;)
Dmitrij Celov
4
Dies ist eine gute Antwort für den allgemeinen theoretischen Ansatz, aber für einen einfacheren Weg, diese Hypothesen tatsächlich in R zu implementieren, was auch den Vorteil hat, dass man nicht mehrere Modelle schätzen muss, siehe linearHypothesis()im carPaket.
Jake Westfall