R에서 관측치 및 / 또는 예측 변수를 추가 할 때 선형 회귀를 효율적으로 업데이트


15

관측치 또는 예측 변수를 추가 할 때 선형 모델을 효율적으로 업데이트하기 위해 R에서 방법을 찾는 데 관심이 있습니다. biglm에는 관측치를 추가 할 때 업데이트 기능이 있지만 내 데이터는 메모리에 상주 할 정도로 작습니다 (업데이트 할 인스턴스가 많지만). QR 인수 분해 업데이트 (예 : Hammarling 및 Lucas의 "QR 인수 분해 및 최소 제곱 문제 업데이트"참조)를 맨손으로 수행하는 방법이 있지만 기존 구현을 기대하고 있습니다.

답변:


6

찾고있는 알고리즘이 실제로 Applied Statistics 274 , 1992, Vol 41 (2) 와 같은 것이면 파일에 데이터를 유지할 필요가 없으므로 biglm 을 사용할 수 있습니다.


고맙지 만 biglm이 숫자 예측기에서 업데이트 될 수 있습니까? 관측치 만 업데이트되었다고 생각했습니다.
gappy

예측 변수를 추가하기위한 폐쇄 형 솔루션이 있습니까? inv (X'X)에 해당하는 것이 필요합니다. 열을 추가하기 위해 존재합니까? 예를 들어, 몇 천에서 수백 개의 문제처럼 '작은'문제가 아닌가? 정말 문제가 되나요?
Dirk Eddelbuettel

2
SVD를 업데이트하는 간단한 닫힌 양식과 QR에 대한 관련 수식이 있습니다. 수천 개의 모델을 해결할 때 계산 비용을 크게 절감 할 수 있습니다. R로 구현할 수 있지만 약간의 작업이 필요합니다. 좋은 프로젝트입니다.
gappy 2016 년

2
네 가게에는 유능한 IT 팀이 있다는 것을 알고 있습니다. 그들이 당신을 위해 무언가를 구현할 수 있다고 확신합니다.
Dirk Eddelbuettel

4

두 달 전에 며칠 동안 검색했지만 R에서 동등한 기능을 찾을 수 없었습니다 (크랜에는 많은 qr.update 함수가 있지만 후드를 볼 때 가짜 일뿐입니다. lm.update모두 같은).

업데이트 : 패키지 '도약'의 소스를 사용해보십시오. R- 소스에서 순위 1 QR 업데이트를 구현하는 것으로 보이는 패키지의 / src에있는 FORTRAN 루틴 'forwrd'를 호출하는 'leaps.forward'함수를 찾을 수 있습니다.


3

선형 모델 객체의 업데이트 기능을 사용해보십시오.

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

이 링크를보십시오

  • 업데이트 기능에 대한 일반적인 설명 :

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

  • update.lm에 대한 특정 설명 :

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


3
업데이트에서 작동하지 않는 두 가지 사항이 있습니다 (NB : update.lm은 사용되지 않음). 먼저 수식을 사용합니다. 이것 자체는 lm.fit ()보다 400 % 느리게 실행합니다. 둘째, 전체 모델을 다시 추정 합니다. 여기에는 효율성이 없습니다.
gappy 2016 년

사실, 나는 중형 모델에 대한 업데이트를 사용하고 있습니다. 아마도 귀하의 경우에는 유용하지 않습니다.
deps_stats 2016 년

1

나는 또한 matlab qr 업데이트와 동등한 것을 오랫동안 찾고 있었지만 도약은 좋은 방법 인 것 같습니다!

R에서는 패키지 strucchange에서 recresid () 함수를 볼 수 있습니다.이 함수는 관측 값을 추가 할 때 재귀 잔차를 제공합니다 (변수 아님). 내 생각에 이것은 재귀 베타 (코드의 베타)를 얻기 위해 약간의 수정이 필요하다는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.