Cómo evaluar resultados de regresión lineal

8

Tengo un problema de regresión lineal. En resumen, tengo un conjunto de datos, lo dividí en dos subconjuntos. Un subconjunto se usa para encontrar la regresión lineal (subconjunto de entrenamiento), otro se usa para evaluarlo (subconjunto de evaluación). Mi pregunta es ¿cómo evaluar el resultado de esta regresión lineal después de aplicarlo al subconjunto de datos de evaluación?

Aquí están los detalles:

En el subconjunto de entrenamiento, hago regresión lineal: y=unaX+si, dónde y es verdad (también conocida como objetivo), XEs una variable independiente. Entonces encontréuna y si. (X y y se dan en el subconjunto de entrenamiento).

Ahora, usando una y si encontrado arriba del subconjunto de entrenamiento, aplíquelo al subconjunto de evaluación, encontré y=unaX+si. En otras palabras, estosy se encuentran de regresión lineal con X. Ahora, además dey, Tambien tengo ydel conjunto de evaluación. ¿Cómo evalúo mi resultado (cuántoy difiere de y)? ¿Algún modelo matemático general para hacer eso? Tiene que ser algún tipo de modelo / fórmula matemática. Puedo pensar en diferentes formas de hacerlo, pero todas son un poco ad-hoc o simples, pero esto es para un trabajo científico, por lo que desafortunadamente no se pueden usar aquí cosas que suenan ad-hoc.

¿Alguna idea?

camioneta
fuente
66
No creo que este tipo de evaluación se use generalmente con modelos de regresión simples. ¿Qué le diría que no descubriría al usar todo el conjunto de datos para generar sus parámetros de regresión? Normalmente, la razón para usar un conjunto de datos de evaluación es evitar el sobreajuste, pero eso no es un problema cuando ya sabe que su modelo contendrá solo una variable independiente.
octern
Para ser claros, @octern estaba hablando de regresión lineal. La división de prueba de entrenamiento es una práctica perfectamente buena para hacer esto con regresión logística. Incluso podría tener sentido en la regresión lineal si el conjunto de pruebas tiene una distribución diferente / no estacionaria que la capacitación, o proviene de un período de tiempo diferente (por ejemplo, campaña publicitaria, comportamiento de compra).
smci

Respuestas:

11

Estoy de acuerdo con @Octern en que rara vez se ve a las personas que usan divisiones de tren / prueba (o incluso cosas como la validación cruzada) para modelos lineales. El sobreajuste no es (casi) ciertamente un problema con un modelo muy simple como este.

Si desea tener una idea de la "calidad" de su modelo, puede informar los intervalos de confianza (o sus equivalentes bayesianos) alrededor de sus coeficientes de regresión. Hay varias formas de hacerlo. Si sabe / puede asumir que sus errores se distribuyen normalmente, hay una fórmula simple (y los paquetes de análisis de datos más populares le darán estos valores). Otra alternativa popular es calcularlos mediante remuestreo (p. Ej., Bootstrapping o jackknifing), lo que hace menos suposiciones sobre la distribución de errores. En cualquier caso, usaría el conjunto de datos completo para el cálculo.

Matt Krause
fuente
1
También debe hacer un análisis residual trazando.
kjetil b halvorsen
1

si realmente está bien con su modelo de entrenamiento lineal y desea saber qué tan bien podría predecir los datos de su prueba, entonces todo lo que tendría que hacer es usar la fórmula del modelo lineal que ya tiene e incluir los coeficientes estimados a (= intercepción) yb (coeficiente de regresión, también llamado pendiente) resultante del primer modelo.

debería verse como y = a + b * X aquí algunos números imaginarios ... y = 2 + 0.5 * X

¿Qué software estás usando? ¿Estás usando R? si es así, puede usar la función predict.lm () y aplicarla en su segundo conjunto de datos.

Jens
fuente
1

Si bien esto depende en gran medida de cuáles son exactamente sus objetivos, una forma simple y estándar de hacerlo sería medir el error cuadrático medio (MSE) . Entonces, si tienes tu conjunto de datos de pruebare que consisten en pares de entrada / salida, re={(X1,y1),(X2,y2),...,(Xnorte,ynorte)} y tus parámetros una y si, entonces el MSE se puede calcular como

MSEuna,si=1norteyo=1norte(yyo-(unaXyo+si))2.

Esta es probablemente una forma sensata de medir su error también, ya que es probable que este sea el criterio que utilizó para encontrar los parámetros. una y si. Si desea tener una mejor idea de qué tan bien se generalizan sus parámetros estimados, debe considerar algo como la validación cruzada .

Alto
fuente