Je serais intéressé à trouver des moyens dans R pour mettre à jour efficacement un modèle linéaire lorsqu'une observation ou un prédicteur est ajouté. biglm a une capacité de mise à jour lors de l'ajout d'observations, mais mes données sont suffisamment petites pour résider en mémoire (même si j'ai un grand nombre d'instances à mettre à jour). Il existe des moyens de le faire à mains nues, par exemple, pour mettre à jour la factorisation QR (voir "Mise à jour de la factorisation QR et du problème des moindres carrés", par Hammarling et Lucas), mais j'espère une implémentation existante.
15
Il y a rang une fonction de mise à jour de QR Matlab ici que vous permet d' économiser un facteurp dans la complexité de la mise à jour des coefficients d'une régression linéaire p-variée.
Malgré la recherche de jours il y a quelques mois, je n'ai pas pu trouver d'équivalent dans R (attention, il y a beaucoup de fonctions de mise à jour qr dans cran mais quand vous regardez sous le capot, elles sont juste fausses - elles appellent
lm.update
tous les mêmes).Mise à jour : essayez dans la source du paquet «sauts». Dans la source R, vous trouverez une fonction 'leaps.forward', qui appelle une routine FORTRAN 'forwrd', située dans le / src du paquet qui semble implémenter la mise à jour QR de rang 1.
la source
Pourquoi n'essayez-vous pas la capacité de mise à jour de l'objet de modèle linéaire
Jetez un œil à ces liens
http://stat.ethz.ch/R-manual/R-devel/library/stats/html/update.html
http://www.science.oregonstate.edu/~shenr/Rhelp/update.lm.html
la source
Je cherche également depuis longtemps un équivalent à la mise à jour matlab qr, les sauts semblent être une bonne façon!
Dans R, vous pouvez regarder la fonction recresid () dans le package strucchange, qui donnera des résidus récursifs lorsque vous ajoutez une observation (pas variable!). Je suppose que cela nécessitera peu de modifications pour obtenir des bêtas récursifs (le bétar dans le code?).
la source