Modele pasujące w R, w których współczynniki podlegają ograniczeniom liniowym

16

Jak powinienem zdefiniować wzór modelu w R, kiedy dostępne jest jedno (lub więcej) dokładnych ograniczeń liniowych wiążących współczynniki. Jako przykład powiedz, że wiesz, że b1 = 2 * b0 w prostym modelu regresji liniowej.

Dziękuję Ci!

George Dontas
źródło

Odpowiedzi:

16

Załóżmy, że twój model to

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

i planujesz ograniczyć współczynniki, na przykład:

β1=2β2

wstawiając ograniczenie, przepisując oryginalny model regresji, który otrzymasz

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

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

wprowadź nową zmienną a twój model z ograniczeniami będzieZ(t)=2X1(t)+X2(t)

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

W ten sposób możesz obsłużyć wszelkie dokładne ograniczenia, ponieważ liczba znaków równości zmniejsza liczbę nieznanych parametrów o tę samą liczbę.

Grając z formułami R, możesz to zrobić bezpośrednio za pomocą funkcji I ()

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
źródło
Jest to całkiem jasne, ale pytanie sugerowało ograniczenie między b0 i b1. Czy powinienem również utworzyć nową zmienną Z = 2X + 1 i dopasować model bez przechwytywania?
George Dontas,
2
Myślę, że zwykle jestem używany zamiast eval w formułach, tj. Y ~ I (1 + 2 * X1) + X2 + X3-1
mpiktas
@ gd047: Zaktualizowałem fragmenty kodu, tak, jak mówisz. @mpiktas: zmieni to, tak, jest krótszy;)
Dmitrij Celov
4
Jest to dobre rozwiązanie dla ogólnego podejścia teoretycznego, ale za to łatwiejszy sposób, aby rzeczywiście wdrożyć te hipotezy w R, który ma również tę zaletę, że nie wymaga jednego oszacować wiele modeli można znaleźć linearHypothesis()w carpakiecie.
Jake Westfall