Cập nhật hồi quy tuyến tính hiệu quả khi thêm các quan sát và / hoặc các yếu tố dự đoán trong R


15

Tôi sẽ quan tâm đến việc tìm cách trong R để cập nhật hiệu quả mô hình tuyến tính khi quan sát hoặc dự đoán được thêm vào. biglm có khả năng cập nhật khi thêm các quan sát, nhưng dữ liệu của tôi đủ nhỏ để lưu trong bộ nhớ (mặc dù tôi có một số lượng lớn các trường hợp cần cập nhật). Có nhiều cách để làm điều này với hai bàn tay trắng, ví dụ, để cập nhật hệ số QR (xem "Cập nhật hệ số QR và vấn đề bình phương tối thiểu" của Hammarling và Lucas), nhưng tôi hy vọng sẽ có một triển khai hiện có.

Câu trả lời:


6

Nếu thuật toán bạn đang tìm kiếm thực sự giống như Thống kê ứng dụng 274 , 1992, Tập 41 (2) thì bạn chỉ có thể sử dụng biglm vì nó không yêu cầu bạn giữ dữ liệu của mình trong một tệp.


Cảm ơn, nhưng biglm có thể cập nhật trong các dự đoán số? Tôi nghĩ rằng nó chỉ cập nhật quan sát.
vui vẻ vào

Có một giải pháp dạng đóng để thêm các yếu tố dự đoán? Bạn cần tương đương với inv (X'X), điều đó có tồn tại để thêm một cột không? Trong mọi trường hợp, không phải vấn đề của bạn là 'nhỏ' như trong, giả sử, một vài (mười) nghìn đến vài trăm? Thật sự nó có ảnh hưởng sao?
Dirk Eddelbuettel

2
Có dạng đóng đơn giản để cập nhật SVD và các công thức liên quan hơn cho QR. Tiết kiệm tính toán có thể có ý nghĩa khi giải quyết hàng ngàn mô hình. Chúng có thể được thực hiện trong R, nhưng nó đòi hỏi một chút công việc. Đó là một dự án tốt đẹp.
vui vẻ

2
Vâng, tôi hiểu rằng có một đội ngũ CNTT có khả năng tại cửa hàng của bạn. Tôi chắc chắn rằng họ có thể thực hiện một cái gì đó rãnh cho bạn.
Dirk Eddelbuettel

4

Có một chức năng cập nhật QR xếp hạng trong MATLAB ở đây giúp bạn tiết kiệm một yếu tốp trong sự phức tạp của việc cập nhật các hệ số của hồi quy tuyến tính p-variated.

Mặc dù đã tìm kiếm vài ngày cách đây vài tháng, tôi đã không thể tìm thấy một tương đương trong R (hãy coi chừng có nhiều hàm qr.update trong cran nhưng khi bạn nhìn vào mui xe thì chúng chỉ là giả - chúng gọi lm.update tất cả đều giống nhau).

Cập nhật : thử trong nguồn của gói 'nhảy'. Trong nguồn R, bạn sẽ tìm thấy một hàm 'leaps.forward', gọi một thói quen FORTRAN là 'forwrd', nằm trong inthe / src của gói dường như thực hiện cập nhật QR xếp hạng 1.


3

Tại sao bạn không thử khả năng cập nhật của đối tượng mô hình tuyến tính

update.lm( lm.obj, formula, data, weights, subset, na.action)

Take a look at this links

  • For a general explanation of the update function:

http://stat.ethz.ch/R-manual/R-devel/library/stats/html/update.html

  • For a particular explanation about update.lm:

http://www.science.oregonstate.edu/~shenr/Rhelp/update.lm.html


3
Có hai điều không hoạt động với cập nhật (NB: update.lm không được dùng nữa). Đầu tiên, nó sử dụng các công thức. Điều này tự nó làm cho thực hiện 400% chậm hơn so với lm.fit () Thứ hai, nó reestimates toàn bộ mô hình. Không có hiệu quả đạt được ở đây.
vui vẻ

Cảm ơn thực tế, tôi đã sử dụng bản cập nhật cho các mô hình cỡ trung bình. Nó có thể không hữu ích trong trường hợp của bạn.
deps_stats

1

Từ lâu tôi cũng đã tìm kiếm một bản tương đương với bản cập nhật matlab qr, bước nhảy vọt có vẻ là một cách hay!

Trong R, bạn có thể xem hàm recresid () trong phân tầng gói, sẽ cung cấp phần dư đệ quy khi bạn thêm một quan sát (không phải là biến!). Tôi đoán là điều này sẽ yêu cầu sửa đổi ít để có được betas đệ quy (betar trong mã?).

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.