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áslm.fit()
: no hay notación de fórmula, un conjunto de resultados mucho más simplevarios de nuestros paquetes relacionados con
fastLm()
tienen implementacionesfastLm()
: 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.