introducción completa a la regresión lineal en R

la regresión lineal se utiliza para predecir el valor de una variable continua y basada en una o más variables predictoras de entrada X. El objetivo es establecer una fórmula matemática entre la variable de respuesta (y) y las variables predictoras (Xs). Puede usar esta fórmula para predecir Y, cuando solo se conocen valores de X.

introducción completa a la regresión lineal con R. (foto de Stacy Wyss)Contents1. Introducción a la regresión lineal
2., Ejemplo problema
3. Análisis gráfico
– Uso del gráfico de dispersión para visualizar la relación
– Uso del gráfico de cajas para comprobar valores atípicos
– Uso del gráfico de densidad para comprobar si la Variable de respuesta está cerca de lo Normal
4. ¿Qué es el análisis de correlación?
5. Construyendo el modelo de regresión lineal
6. Diagnóstico de regresión lineal
– Usando el valor de P para verificar la significación estadística
— ¿Qué es la hipótesis nula y alternativa?
-¿Qué es el valor t?
– ¿cómo calcular los valores de la estadística t y P?
-R-cuadrado y R-cuadrado ajustado
– Error estándar y F-estadística
7., ¿Cómo saber qué modelo de regresión es el más adecuado para los datos?
8. Predicción de modelos lineales
9. ¿Qué es la validación cruzada k-Fold y su propósito?10. A dónde ir desde aquí?

1. Introducción a la regresión lineal

la regresión lineal es una de las técnicas de modelado predictivo más utilizadas. El objetivo de la regresión lineal es encontrar una ecuación matemática para una variable de respuesta continua Y en función de una o más variables X. Para que pueda utilizar este modelo de regresión para predecir la Y cuando solo se conoce la X.,

Esta ecuación matemática puede generalizarse de la siguiente manera:

$$ $ Y = \beta_{1} + \beta_{2} X + \epsilon$$

donde ?1 es la intercepción y ?2 es la pendiente.

colectivamente, se llaman coeficientes de regresión y ? es el término de error, la parte de Y que el modelo de regresión no puede explicar.

Línea de Regresión Lineal

Problema de Ejemplo

Para este análisis, vamos a utilizar la etiqueta cars conjunto de datos que viene con R de forma predeterminada.,

cars es un conjunto de datos incorporado estándar, que hace que sea conveniente mostrar la regresión lineal de una manera simple y fácil de entender.

Puede acceder a este conjunto de datos escribiendo cars en su consola R.

encontrará que consta de 50 observaciones(filas) y 2 variables (columnas) de disty speed. Vamos a imprimir las primeras seis observaciones aquí.,

head(cars) 
#> speed dist#> 1 4 2#> 2 4 10#> 3 7 4#> 4 7 22#> 5 8 16#> 6 9 10

aquí, El objetivo es establecer una ecuación matemática para dist como una función de speed, por lo que se puede utilizar para predecir dist cuando sólo el speed del coche es conocido.

por lo que es deseable construir un modelo de regresión lineal con la variable de respuesta como dist y el predictor como speed.

antes de comenzar a construir el modelo de regresión, es una buena práctica analizar y comprender las variables.,

el análisis gráfico y el estudio de correlación a continuación ayudarán con esto.

análisis gráfico

El objetivo de este ejercicio es construir un modelo de regresión simple que se puede utilizar para predecir la distancia (dist).

esto es posible estableciendo una fórmula matemática entre Distancia (dist) y Velocidad (speed).

pero antes de saltar a la sintaxis, intentemos entender estas variables gráficamente.,

típicamente, para cada uno de los predictores, las siguientes gráficas ayudan a visualizar los patrones:

  • gráfica de dispersión: visualiza la relación lineal entre el predictor y la respuesta
  • gráfica de caja: para detectar cualquier observación atípica en la variable. Tener valores atípicos en su predictor puede afectar drásticamente las predicciones, ya que pueden afectar la dirección/pendiente de la línea de mejor ajuste.
  • gráfico de densidad: para ver la distribución de la variable predictora. Idealmente, se prefiere una distribución cercana a la normal (una curva en forma de campana), sin estar sesgada hacia la izquierda o la derecha.,

veamos cómo hacer cada uno de ellos.

el uso de gráficos de dispersión para visualizar la relación

Los gráficos de dispersión pueden ayudar a visualizar las relaciones lineales entre la respuesta y las variables predictoras.

idealmente, si tiene muchas variables predictoras, se dibuja un gráfico de dispersión para cada una de ellas contra la respuesta, junto con la línea de mejor ajuste como se ve a continuación.,

scatter.smooth(x=cars$speed, y=cars$dist, main="Dist ~ Speed") 
distancia vs velocidad Scatterplot

el gráfico de dispersión junto con la línea de suavizado anterior sugiere relación lineal y positiva entre el topo dedist y el topo despeed.

esto es algo bueno.

porque, uno de los supuestos subyacentes de la regresión lineal es, la relación entre la respuesta y las variables predictoras es lineal y aditiva.,

usando BoxPlot para verificar valores atípicos

generalmente, un valor atípico es cualquier punto de datos que se encuentra fuera del rango inter cuartil (IQR) de 1.5*.

IQR se calcula como la distancia entre los valores del percentil 25 y el percentil 75 para esa variable.,

Boxplots de la Velocidad y la Distancia

Utilizando la Densidad de la Trama Para Comprobar Si la Variable de Respuesta Es casi Normal

Diagrama de densidad De la Velocidad y la Distancia

4. ¿Qué es el análisis de correlación?

El análisis de correlación estudia la fuerza de la relación entre dos variables continuas. Se trata de calcular el coeficiente de correlación entre las dos variables.,

entonces, ¿qué es la correlación? Y cómo es útil en la regresión lineal?

La correlación es una medida estadística que muestra el grado de dependencia lineal entre dos variables.

para calcular la correlación, las dos variables deben ocurrir en pares, al igual que lo que tenemos aquí con speed y dist.

La correlación puede tomar valores entre -1 y +1.

si una variable aumenta consistentemente con el aumento del valor de la otra, entonces tienen una fuerte correlación positiva (valor cercano a +1).,

del mismo modo, si uno disminuye consistentemente cuando el otro aumenta, tienen una fuerte correlación negativa (valor cercano a -1).

un valor más cercano a 0 sugiere una relación débil entre las variables.

una correlación baja (-0.2 <x < 0.2) probablemente sugiere que gran parte de la variación de la variable de respuesta (y) es inexplicable por el predictor (X). En ese caso, probablemente debería buscar mejores variables explicativas.,

si observa el conjunto de datos cars en la consola R, para cada instancia en la que aumenta la velocidad, la distancia también aumenta junto con él.

eso significa que hay una fuerte relación positiva entre ellos. Por lo tanto, la correlación entre ellos estará más cerca de 1.

sin Embargo, la correlación no implica causalidad.

En otras palabras, si dos variables tienen una alta correlación, no significa que una variable «cause» que el valor de la otra variable aumente.

La correlación es solo una ayuda para entender la relación., Solo puede confiar en la lógica y el razonamiento empresarial para hacer ese juicio.

entonces, ¿cómo calcular la correlación en R?

simplemente use la función cor() con las dos variables numéricas como argumentos.

cor(cars$speed, cars$dist) 
#> 0.8068949

construyendo el modelo de regresión lineal

ahora que ha visto la relación lineal pictóricamente en el gráfico de dispersión y a través de la correlación, intentemos construir el modelo de regresión lineal.

la función utilizada para construir modelos lineales es lm().,

la función lm() toma dos argumentos principales:

  1. Formula
  2. Data

los datos son típicamente un objeto data.frame y la fórmula es un objeto de clase formula.

pero la Convención más común es escribir la fórmula directamente como se escribe a continuación.

mediante la construcción del modelo de regresión lineal, hemos establecido la relación entre el predictor y la respuesta en forma de una fórmula matemática.

Es la distancia (dist) como función para speed.,

para la salida anterior, puede notar que los coeficientes de integridad de la parte tienen dos componentes: Intercept: -17.579, speed: 3.932.

Estos también se llaman los coeficientes beta. En otras palabras,

$$dist?=?Interceptar?+?(????la velocidad)$$

=> dist = ?17.579 + 3.932?velocidad

diagnóstico de regresión lineal

ahora se construye el modelo lineal y tiene una fórmula que puede usar para predecir el valor dist si se conoce un speed correspondiente.

¿es esto suficiente para usar este modelo? ¡NO!,

porque, antes de usar un modelo de regresión para hacer predicciones, debe asegurarse de que sea estadísticamente significativo. Pero, ¿cómo se asegura esto?

comencemos imprimiendo las estadísticas de resumen delinearMod.

Usando el valor p para comprobar la significación estadística

las estadísticas de resumen anteriores nos dicen una serie de cosas.

uno de ellos es el valor de p del modelo (en la última línea) y el valor de P de las variables predictoras individuales (columna extrema derecha bajo los coeficientes de enteros wis).

los valores p son muy importantes.,

porque, podemos considerar que un modelo lineal es estadísticamente significativo solo cuando ambos valores de p son menores que el nivel de significancia estadística predeterminado de 0,05.

esto puede interpretarse visualmente por las estrellas de significación al final de la fila contra cada variable X.

cuanto más Las estrellas junto a la variable del valor p de s, más significativa es la variable.

¿qué es la hipótesis nula y alternativa?

siempre que hay un valor p, siempre hay una hipótesis nula y alternativa asociada.

Entonces, ¿cuál es la hipótesis nula en este caso?,

en regresión lineal, la hipótesis nula (H0) es que los coeficientes beta asociados con las variables son iguales a cero.

La hipótesis alternativa (H1) es que los coeficientes no son iguales a cero. (es decir, existe una relación entre la variable independiente en cuestión y la variable dependiente).

¿qué es el valor t?

podemos interpretar el valor t algo así. Un valor T mayor indica que es menos probable que el coeficiente no sea igual a cero puramente por casualidad. Por lo tanto, más alto el valor t, mejor.,

Pr(> div| / t/) O P-valor es la probabilidad de que se obtiene un valor t tan alto o más alto que el valor observado cuando la hipótesis nula (la ? coeficiente es igual a cero o que no hay relación) es verdadero.

¿Qué significa esto para nosotros?

Cuando el valor de p es menor que el nivel de significancia (< 0.05), puede rechazar con seguridad la hipótesis nula de que el coeficiente ? del predictor es cero.

en nuestro caso, linearMod, ambos valores de p están muy por debajo del umbral de 0.05.,

por lo tanto, puede rechazar la hipótesis nula y concluir que el modelo es estadísticamente significativo.

es muy importante que el modelo sea estadísticamente significativo antes de que pueda seguir adelante y usarlo para predecir la variable dependiente. De lo contrario, la confianza en los valores predichos de ese modelo se reduce y puede interpretarse como un evento de azar.

¿cómo calcular el estadístico t y los valores p?

cuando se conocen los coeficientes del modelo y el error estándar, la fórmula para calcular el estadístico t y el valor p es la siguiente:

$ $ t?Statistic = {??,coeficiente \sobre Std.Error}

en caso de que desee calcular algunas de las estadísticas por código manual, el siguiente fragmento muestra cómo.

R-cuadrado y Adj R-cuadrado

la información real en un dato es la variación total que contiene, ¿recuerdas?.

lo que R-Squared nos dice es la proporción de variación en la variable dependiente (respuesta) que ha sido explicada por este modelo.,

R Squared Computation

recuerde, la información total en una variable es la cantidad de variación que contiene.

$$ R^{2} = 1 – \frac{RSS}{TSS}$$

donde, RSS es la Suma de Cuadrados Residual dada por

$$RSS = \sum_{i}^{n} \left( y_{i} – \hat{y_{i}} \right) ^{2}$$
y la Suma de Cuadrados Total está dada por
$$TSS = \sum_{i}^{n} \left( y_{i} – \bar{y_{i}} \right) ^{2}$$

Aquí, y-hat es la equipada con valor para la observación i y y-bar es la media de Y.,

no descartamos necesariamente un modelo basado en un valor R-cuadrado bajo.

para comparar la eficacia de dos modelos de regresión diferentes, es una buena práctica utilizar la muestra de validación para comparar el AIC de los dos modelos.

además de AIC, también se pueden utilizar otras métricas de evaluación como el error porcentual absoluto medio (MAPE), el Error cuadrado medio (MSE) y el Error absoluto medio (MAE).

eso es sobre R-cuadrado. ¿Y qué hay de R-cuadrado ajustado?

¿qué se ajusta R-cuadrado?,

a medida que agregue más variables X a su modelo, el valor R-cuadrado del nuevo modelo más grande siempre será mayor que el del subconjunto más pequeño.

¿te imaginas por qué?

esto se debe a que, dado que todas las variables en el modelo original también están presentes, su contribución para explicar la variable dependiente también estará presente en el super-conjunto.

Por lo tanto, cualquier variable nueva que agregue solo puede agregar (si no significativamente) a la variación que ya se explicó.

está aquí, el valor AJUSTADO R-cuadrado viene a ayudar.,

R-cuadrado ajustado se formula de tal manera que penaliza el número de términos (predictores leídos) en su modelo.

así que a diferencia de R-sq, a medida que aumenta el número de predictores en el modelo, El adj-R-sq no siempre puede aumentar.

Por lo tanto, al comparar modelos anidados, es una buena práctica comparar usando adj-R-cuadrado en lugar de solo R-cuadrado.,

$$ R^{2}_{adj} = 1 – \frac{MSE}{MST}$$

donde, MSE es el error cuadrático medio dado por

$$MSE = \frac{RSS}{\left( n-p \derecho)}$$

y el MST es la media del cuadrado total dado por

$$MST = \frac{TSS}{\left( n-1 \right)}$$

donde n es el número de observaciones y q es el número de coeficientes en el modelo.,

Por lo tanto, al moverse alrededor de los numeradores y denominadores, la relación entre R2 y Radj2 se convierte en:

R R^{2}_{adj} = 1 – \left( \frac{\left( 1 – R^{2}\right) \left(n-1\right)}{n-Q}\right)

error estándar y F-estadístico

ambos errores estándar y F-estadístico son medidas de bondad de ajuste.

std std., Error = \sqrt{MSE} = \sqrt{\frac{SSE}{n-q}}

f F-Statistic = \frac{MSR}{MSE} where

donde, n es el número de observaciones, q es el número de coeficientes y MSR es la regresión cuadrada media, calculada como,

ms MSR=\frac{\sum_{i}^{n}\left( \hat{y_{I} – \bar{y}}\RIGHT)}{Q-1} = \frac{SST – SSE}{q – 1}

cuanto mayor sea la estadística f, mejor será.

¿Qué es AIC y BIC?,el criterio de información Akaike – AIC (Akaike, 1974) y el criterio de información Bayesiano – BIC (Schwarz, 1978) son medidas de la bondad de ajuste del modelo de regresión lineal y también se pueden utilizar para la selección del modelo.

ambos criterios dependen del valor maximizado de la función de verosimilitud L para el modelo estimado.

La AIC se define como:

AIC?=?(?2)?�?¿ln (L)?+?(2) k)

donde, k es el número de parámetros del modelo y el BIC se define como:

BIC?=?(?2)?�?¿ln (L)?+?¿k?�?ln(n)

donde n es el tamaño de la muestra.,

para la comparación de modelos, se prefiere el modelo con la puntuación AIC y BIC más baja.

AIC(linearMod) #=> 419.1569BIC(linearMod) #=> BIC => 424.8929

¿Cómo saber qué modelo de regresión es el más adecuado para los datos?,

La mayoría de las métricas comunes para mirar, mientras que la selección del modelo son:

ESTADÍSTICA CRITERIO
R-Cuadrado Mayor sea el mejor
Adj R-Squared Mayor sea el mejor
F-Estadística Mayor sea el mejor
Std. Error más cerca de cero el mejor
t-statistic debe ser mayor 1.96 para que el valor de p sea menor que 0.,td>Baja la mejor
cp Mallows Debe estar cerca de el número de predictores en el modelo
MAPE (error absoluto porcentual) Baja la mejor
MSE (Mean squared error) Baja la mejor
Min_Max Exactitud => media(min(real, prevista)/max(real, predijo)) Mayor sea el mejor

la Predicción de Modelos Lineales

hasta ahora hemos visto cómo construir un modelo de regresión lineal utilizando todo el conjunto de datos., Si lo construye de esa manera, no hay forma de saber cómo funcionará el modelo con los nuevos datos.

entonces, la práctica preferida es dividir su conjunto de datos en una muestra de 80:20 (entrenamiento:prueba), luego, construir el modelo en la muestra del 80% y luego usar el modelo así construido para predecir la variable dependiente en los datos de la prueba.

haciéndolo de esta manera, tendremos los valores predichos del modelo para los datos del 20% (prueba), así como los Reales (del conjunto de datos original).

al calcular las medidas de precisión (como la precisión min_max) y las tasas de error (MAPE o MSE), puede averiguar la precisión de la predicción del modelo.,

Ahora, vamos a ver cómo hacer esto.

Paso 1: Crear los datos de entrenamiento y prueba

esto se puede hacer usando la función sample(). Solo asegúrese de establecer la semilla usando set.seed() para que las muestras puedan ser recreadas para uso futuro.

Paso 2: Ajuste el modelo en los datos de entrenamiento y predecir dist en los datos de prueba

Paso 3: revisar las medidas de diagnóstico.

del resumen del modelo, el valor de P del modelo y el valor predictor de p s son menores que el nivel de significancia.

así que tienes un modelo estadísticamente significativo.,

Además, el R-Sq y Adj R-Sq son comparativos con el modelo original construido sobre Datos completos.

Paso 4: calcular la precisión de la predicción y las tasas de error

una correlación simple entre los valores reales y predichos se puede utilizar como una forma de medición de precisión.

una mayor precisión de correlación implica que los valores reales y predichos tienen un movimiento direccional similar, es decir, cuando los valores reales aumentan, los valores predichos también aumentan y viceversa.,

Ahora vamos a calcular la precisión Min Max y MAPE:

min minmaxaccuracy = mean \left( \frac{min\left(actuals, predicteds\right)}{max\left (actuals, predicteds \right)} \right)

mean meanabsolutepercentageerror \ (Mape) = mean\left( \frac{ABS\left(predicteds?actuals \ right)} {actuals}\right)

alternativamente, puede calcular todas las métricas de error de una sola vez utilizando la funciónregr.eval() en el paquete dmwr. Tendrá que install.packages('DMwR') para esto si lo está utilizando por primera vez.

¿qué es la validación cruzada k-Fold y su propósito?,

supongamos que el modelo predice satisfactoriamente en la división del 20% (Datos de prueba), ¿es suficiente para creer que su modelo funcionará igual de bien todo el tiempo?

¿Qué quiero decir con esto?

es posible que pocos de los puntos de datos no sean representativos de la población sobre la que se construyó el modelo.

por ejemplo, en el conjunto de datos cars, supongamos que se usó concrete road para las pruebas de carretera en el 80% de los datos de entrenamiento, mientras que muddy road se usó para el 20% de los datos de prueba restantes.,

si el modelo fue entrenado en tal configuración, no puede esperar que el modelo prediga el dist en el conjunto de datos de prueba con la misma precisión. Simplemente porque no ha aprendido la relación entre speed y dist en este tipo de ambiente.

por lo tanto, es importante probar rigurosamente el rendimiento del modelo de wa’s tanto como sea posible.

una forma de hacer esta prueba rigurosa, es comprobar si la ecuación del modelo funciona igual de bien, cuando se entrena y se prueba en diferentes trozos distintos de datos.,

esto es exactamente lo que hace la validación cruzada k-Fold. Así es como funciona:

  1. Divida sus datos en porciones aleatorias de muestra mutuamente excluyentes.
  2. luego construya modelos K iterativamente, manteniendo uno de los subconjuntos k como datos de prueba cada vez.

en cada iteración, construimos el modelo sobre los datos restantes (porción k-1) y calculamos el error cuadrado medio de las predicciones en el subconjunto k’ésimo.

  1. Finalmente, se calcula el promedio de estos errores al cuadrado medio (para porciones de host k).

Puede usar esta métrica para comparar diferentes modelos lineales.,

al hacer esto, debe verificar dos cosas de las predicciones de K-fold:

  1. si la precisión de la predicción de cada uno de los k-fold model de s no varía demasiado para una muestra en particular, y
  2. si las líneas de mejor ajuste de los k-folds no varían demasiado con respecto a la pendiente y el nivel.

En otras palabras, deben ser paralelas y lo más cerca posible entre sí. Esto es lo que revela el gráfico de validación cruzada k-fold (abajo).

en la siguiente gráfica, ¿las líneas discontinuas son paralelas?, ¿Los símbolos pequeños y grandes no están demasiado dispersos para un color en particular?

Validación Cruzada de la Parcela R

Dónde ir desde aquí?

hemos cubierto los conceptos básicos sobre la regresión lineal. Además de estos, es necesario entender que la regresión lineal se basa en ciertas suposiciones subyacentes que deben tenerse en cuenta especialmente cuando se trabaja con múltiples Xs., Una vez que esté familiarizado con eso, los modelos de regresión avanzada le mostrarán los diversos casos especiales en los que una forma diferente de regresión sería más adecuada.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *