R'de gözlemler ve / veya öngörücüler eklerken lineer regresyonun verimli bir şekilde güncellenmesi


15

Bir gözlem veya bir öngörücü eklendiğinde doğrusal bir modeli etkili bir şekilde güncellemek için R'de yollar bulmak isterim. biglm, gözlem eklerken güncelleme yeteneğine sahiptir, ancak verilerim bellekte kalacak kadar küçüktür (ancak güncellenecek çok sayıda örneğim olmasına rağmen). Bunu çıplak ellerle yapmanın yolları vardır, örneğin, QR çarpanlaştırmasını güncellemek için (Hammarling ve Lucas'ın "QR Çarpanlarına Ayırma ve En Küçük Kareler Problemini Güncelleme" konusuna bakın), ancak mevcut bir uygulamayı umuyorum.

Yanıtlar:


6

Aradığınız algoritma gerçekten de Applied Statistics 274 , 1992, Vol 41 (2) gibi bir şeyse , verilerinizi bir dosyada tutmanızı gerektirmediği için biglm'yi kullanabilirsiniz .


Teşekkürler, ancak sayı tahmincilerinde biglm güncellenebilir mi? Sadece gözlemleri güncellediğini düşündüm.
noksan

Öngörücüler eklemek için kapalı bir çözüm var mı? İnv (X'X) eşdeğerine ihtiyacınız var, sütun eklemek için var mı? Herhangi birinde, sorunlarınız, örneğin birkaç (on) binden birkaç yüze kadar 'küçük' değil mi? Gerçekten önemli mi?
Dirk Eddelbuettel

2
Bir SVD'yi güncellemek için basit kapalı form ve QR için daha ilgili formüller vardır. Hesaplamalı tasarruflar binlerce modeli çözerken önemli olabilir. R'de uygulanabilirler, ancak biraz çalışma gerektirir. Güzel bir proje.
gappy

2
Mağazanızda yetenekli bir BT ekibi olduğunu anlıyorum. Eminim onlar için trenchant bir şey uygulayabilirler.
Dirk Eddelbuettel

4

Matlab'de rütbe bir QR güncelleme fonksiyonu yoktur burada size faktör kaydeder gerileme doğrusal bir p-değişkenin katsayıları güncelleme karmaşıklığı içinde.p

Birkaç ay önce günler aramaya rağmen, R'de bir eşdeğer bulamadım (vinçte birçok qr.update işlevi olduğuna dikkat edin, ancak kaputun altına baktığınızda sadece sahte - onlar diyorlar lm.updatehepsi aynı).

Güncelleme : 'sıçramalar' paketinin kaynağını deneyin. R-kaynağında, 1. basamak QR güncellemesini uyguluyor gibi görünen paketin / src'sinde bulunan bir FORTRAN rutin 'forwrd'ı çağıran bir' leaps.forward 'işlevi bulacaksınız.


3

Neden doğrusal model nesnesinin güncelleme özelliğini denemiyorsunuz

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

Bu bağlantılara bir göz atın

  • Güncelleme fonksiyonunun genel bir açıklaması için:

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

  • Update.lm ile ilgili özel bir açıklama için:

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


3
Güncellemeyle çalışmayan iki şey vardır (Not: update.lm kullanımdan kaldırılmıştır). İlk olarak, formüller kullanır. Bu kendi başına% 400 daha yavaş lm.fit daha hale getirmesi () İkinci olarak, reestimates bütün modeli. Burada verimlilik kazancı yok.
gappy

Aslında, orta ölçekli modeller için güncelleme kullanıyorum. Muhtemelen sizin durumunuzda yararlı değildir.
deps_stats

1

Ayrıca uzun zamandır matlab qr güncellemesine eşdeğer bir şey arıyorum, sıçramalar güzel bir yol gibi görünüyor!

R'de, bir gözlem eklediğinizde (değişken değil!) Özyinelemeli kalıntılar veren rectruct () işlevine paket yapısında bakabilirsiniz. Benim tahminim, bu özyinelemeli betalar (koddaki betar?) Elde etmek için çok az değişiklik gerektirecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.