varias style img htmloutput graficas funcion div r lm

style - ¿Hay una función lm más rápida?



tags$style shiny (4)

Desde 3.1.0 hay una función .lm.fit() . Esta función debería ser más rápida que lm() y lm.fit() .

Se describe y su rendimiento se compara con diferentes funciones de lm aquí: https://rpubs.com/maechler/fast_lm .

Me gustaría obtener la pendiente de un ajuste de regresión lineal para conjuntos de datos separados de 1M (1M * 50 filas para data.frame, o 1M * 50 para matriz). Ahora estoy usando la función lm() , que lleva mucho tiempo (unos 10 minutos).

¿Hay alguna función más rápida para la regresión lineal?


Sí hay:

  • R en sí tiene lm.fit() que es más lm.fit() : no hay notación de fórmula, un conjunto de resultados mucho más simple

  • varios de nuestros paquetes relacionados con fastLm() tienen implementaciones fastLm() : RcppArmadillo, RcppEigen, RcppGSL.

Hemos descrito fastLm() en varias publicaciones y presentaciones de blogs. Si lo desea de la manera más rápida, no use la interfaz de la fórmula: analizar la fórmula y preparar la matriz del modelo lleva más tiempo que la regresión real.

Dicho esto, si está retrocediendo un solo vector en un solo vector, puede simplificar esto ya que no se necesita un paquete de matriz.


lmfit en el paquete Rfast es incluso más rápido que .lm.fit. El único inconveniente es que no funciona cuando la matriz de diseño no tiene rango completo.


speedlm from speedglm debería hacerlo ya que funciona en grandes conjuntos de datos.