Agrupación rápida por regresión lineal simple

Este Q & A surge de ¿Cómo hacer group_by y lm rápido? donde OP intentaba hacer una regresión lineal simple por grupo para un marco de datos grande.

n teoría, una serie de regresión de grupo pory ~ x | g es equivalente a una única regresión agrupaday ~ x * g. Este último es muy atractivo porque la prueba estadística entre diferentes grupos es sencilla. Pero en la práctica, hacer esta regresión más grande no es computacionalmente fácil. Mi respuesta en los paquetes de reseñas de preguntas y respuestas vinculadasspeedlm yglm4, pero señaló que no pueden abordar este problema.

l problema de regresión grande es difícil, particularmente cuando hay variables de factores. Esto puede explicar por qué muchas personas abandonan esta idea y prefieren dividir los datos por grupo y ajustar los modelos por grupo. No tiene sentido enumerar métodos de regresión de grupo por grupo (ver Regresión lineal y agrupar por en R). Lo que me importa es la velocidad.

Para una regresión lineal simple comoy ~ x | g, dividiendo los datos por grupo y luego confiando en rutinas de ajuste de modelo estándar comolm es un asesino de rendimiento. En primer lugar, el subconjunto de un marco de datos grande es ineficiente. En segundo lugar, las rutinas de ajuste del modelo estándar siguen el procedimiento que se detalla a continuación, que representan una sobrecarga para el cálculo de regresión úti

parse la fórmula del modelo al objeto "términos" (usandoterms.formula);construir marco modelo (usandomodel.frame.default);atriz del modelo @build (usandomodel.matrix.default).

Hay trucos informáticos inteligentes para la regresión lineal simple. Como lo demostré en Regresión lineal simple por parejas rápida entre variables en un marco de datos, el método de covarianza es extremadamente rápido. ¿Podemos adaptarlo al grupo por regresión lineal simple a través de unagroup_by_simpleLM función?

Respuestas a la pregunta(1)

Su respuesta a la pregunta