Встановлення моделей в R, де коефіцієнти підлягають лінійним обмеженням


16

Як слід визначити формулу моделі в R, коли є одне (або більше) точних лінійних обмежень, що зв'язують коефіцієнти. Як приклад, скажіть, що ви знаєте, що b1 = 2 * b0 у простій лінійній регресійній моделі.

Дякую!

Відповіді:


16

Припустимо, ваша модель

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

і ви плануєте обмежувати коефіцієнти, наприклад:

β1=2β2

вставивши обмеження, переписавши оригінальну модель регресії, яку ви отримаєте

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)

Таким чином ви можете впоратися з будь-якими точними обмеженнями, оскільки кількість рівних знаків зменшує кількість невідомих параметрів на однакове число.

Граючи з формулами R, ви можете робити безпосередньо функцією 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>)

Це досить зрозуміло, але питання передбачає обмеження між b0 та b1. Чи слід також створити нову змінну Z = 2X + 1 і помістити модель без перехоплення?
Джордж Донтас

2
Я думаю, що зазвичай я використовую замість eval у формулах, тобто Y ~ I (1 + 2 * X1) + X2 + X3-1
mpiktas

@ gd047: Я оновив фрагменти коду, так, як ви кажете. @mpiktas: змінить це, так, це коротше;)
Дмитро Челов

4
Це хороша відповідь для загальнотеоретичного підходу, але простіший спосіб реально реалізувати ці гіпотези в R, що також має перевагу в тому, що не потрібно оцінювати кілька моделей, див. linearHypothesis()У carпакеті.
Джейк Вестфалл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.