Các mô hình phù hợp trong R trong đó các hệ số phải chịu (các) hạn chế tuyến tính


16

Làm thế nào tôi nên xác định một công thức mô hình trong R, khi một (hoặc nhiều) hạn chế tuyến tính chính xác ràng buộc các hệ số có sẵn. Ví dụ, giả sử rằng bạn biết rằng b1 = 2 * b0 trong mô hình hồi quy tuyến tính đơn giản.

Cảm ơn bạn!

Câu trả lời:


16

Giả sử mô hình của bạn là

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

và bạn đang lên kế hoạch để hạn chế các hệ số, ví dụ như:

β1= =2β2

chèn các hạn chế, viết lại mô hình hồi quy ban đầu bạn sẽ nhận được

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

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

giới thiệu một biến mới và mô hình của bạn bị hạn chế sẽ làZ(t)= =2X1(t)+X2(t)

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

Bằng cách này, bạn có thể xử lý bất kỳ hạn chế chính xác nào, bởi vì số lượng dấu bằng nhau làm giảm số lượng tham số chưa biết bằng cùng một số.

Chơi với công thức R bạn có thể thực hiện trực tiếp bằng hàm 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>)

Điều này khá rõ ràng, nhưng câu hỏi đã gợi ý một hạn chế giữa b0 và b1. Tôi cũng nên tạo một biến mới Z = 2X + 1 và phù hợp với một mô hình mà không bị chặn?
George Dontas

2
Tôi nghĩ thông thường tôi được sử dụng thay vì eval trong các công thức, tức là Y ~ I (1 + 2 * X1) + X2 + X3-1
mpiktas

@ gd047: Tôi đã cập nhật với một đoạn mã, đúng như bạn nói. @mpiktas: sẽ thay đổi điều này, vâng nó ngắn hơn;)
Dmitrij Celov

4
Đây là một câu trả lời tốt cho cách tiếp cận lý thuyết chung, nhưng để dễ dàng thực hiện các giả thuyết này trong R, điều này cũng có ưu điểm là không yêu cầu một mô hình để ước tính nhiều mô hình, xem linearHypothesis()trong cargói.
Jake Westfall
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.