una guía paso a paso para la regresión lineal en R

la regresión lineal es un modelo de regresión que utiliza una línea recta para describir la relación entre las variables. Encuentra la línea de mejor ajuste a través de sus datos Buscando el valor del coeficiente de regresión que minimiza el error total del modelo.,

Hay dos tipos principales de regresión lineal:

  • la regresión lineal Simple utiliza solo una variable independiente
  • la regresión lineal múltiple utiliza dos o más variables independientes

en esta guía paso a paso, lo guiaremos a través de la regresión lineal en R utilizando dos conjuntos de datos de muestra.

regresión lineal Simple
el primer conjunto de Datos contiene observaciones sobre los ingresos (en un rango de $15k a 7 75k) y la felicidad (clasificada en una escala de 1 a 10) en una muestra imaginaria de 500 personas., Los valores de ingresos se dividen por 10,000 para que los datos de ingresos coincidan con la escala de las puntuaciones de felicidad (por lo que un valor de $2 representa 2 20,000, $3 es 3 30,000, etc.).)
regresión lineal múltiple
el segundo conjunto de Datos contiene observaciones sobre el porcentaje de personas que van en bicicleta al trabajo cada día, el porcentaje de personas que fuman y el porcentaje de personas con enfermedades cardíacas en una muestra imaginaria de 500 ciudades.

descargue los conjuntos de datos de muestra para probarlo usted mismo.,

conjunto de datos de regresión Simple conjunto de datos de regresión múltiple

introducción en R

comience descargando R y RStudio. A continuación, abra RStudio y haga clic en Archivo > nuevo archivo > R Script.

a medida que avanzamos en cada paso, puede copiar y pegar el código de los cuadros de texto directamente en su script. Para ejecutar el código, resalte las líneas que desea ejecutar y haga clic en el botón Ejecutar en la parte superior derecha del editor de texto (o presione ctrl + enter en el teclado).,p>

para instalar los paquetes que necesita para el análisis, ejecute este código (solo necesita hacerlo una vez):

install.packages("ggplot2")
install.packages("dplyr")
install.packages("broom")
install.packages("ggpubr")

a continuación, cargue los paquetes en su entorno R ejecutando este código (debe hacer esto cada vez que reinicie R):

library(ggplot2)
library(dplyr)
library(broom)
library(ggpubr)

Paso 1: Cargue los datos en R

siga estos cuatro pasos para cada conjunto de datos:

  1. En RStudio, vaya a archivo > Importar conjunto de datos > desde el texto (base).,
  2. elija el archivo de datos que ha descargado (ingresos.datos o corazón.datos), y aparece una ventana de Importar conjunto de datos.
  3. en la ventana del marco de datos, debe ver una columna X (índice) y columnas que enumeran los datos para cada una de las variables (ingresos y felicidad o andar en bicicleta, fumar y corazón.enfermedad).
  4. haga clic en el botón Importar y el archivo debería aparecer en la pestaña Entorno en la parte superior derecha de la pantalla de RStudio.

Después de cargar los datos, compruebe que se han leído correctamente utilizando summary().,

regresión Simple

summary(income.data)

debido a que ambas variables son cuantitativas, cuando ejecutamos esta función vemos una tabla en nuestra consola con un resumen numérico de los datos.,Esto nos dice los valores mínimo, mediano, medio y máximo de la variable independiente (ingreso) y variable dependiente (felicidad):

regresión múltiple

summary(heart.data)

nuevamente, debido a que las variables son cuantitativas, al ejecutar el código se produce un resumen numérico de los datos para las variables independientes (fumar y andar en bicicleta) y la variable dependiente (enfermedad cardíaca):

¿puntuación de plagio?,

Compare su artículo con más de 60 mil millones de páginas web y 30 millones de publicaciones.

  • Mejor comprobador de plagio de 2020
  • Informe de plagio & porcentaje
  • mayor base de datos de plagio

Comprobador de plagio Scribbr

paso 2: Asegúrese de que sus datos cumplan con las suposiciones

podemos usar R para verificar que nuestros datos cumplan con las cuatro suposiciones principales para la regresión lineal.,

regresión Simple

  1. Independencia de las observaciones (también conocida como sin autocorrelación)

debido a que solo tenemos una variable independiente y una variable dependiente, no necesitamos probar ninguna relación oculta entre las variables.

si sabe que tiene autocorrelación dentro de variables (es decir, múltiples observaciones del mismo sujeto de prueba), entonces no proceda con una regresión lineal simple! Utilice un modelo estructurado, como un modelo lineal de efectos mixtos, en su lugar.,

  1. normalidad

para comprobar si la variable dependiente sigue una distribución normal, utilice la funciónhist().

hist(income.data$happiness)

Las observaciones tienen aproximadamente forma de campana (más observaciones en el medio de la distribución, menos en las colas), por lo que podemos proceder con la regresión lineal.

  1. linealidad

La relación entre la variable independiente y la dependiente debe ser lineal., Podemos probar esto visualmente con un gráfico de dispersión para ver si la distribución de puntos de datos podría describirse con una línea recta.

plot(happiness ~ income, data = income.data)

La relación de aspecto de aproximadamente lineal, de manera que podamos proceder con el modelo lineal.

  1. Homoscedasticidad (también conocida como homogeneidad de varianza)

esto significa que el error de predicción no cambia significativamente en el rango de predicción del modelo. Podemos probar esta suposición más tarde, después de ajustar el modelo lineal.,

regresión múltiple

  1. Independencia de las observaciones (también conocida como sin autocorrelación)

Use la funcióncor() para probar la relación entre sus variables independientes y asegurarse de que no estén muy correlacionadas.

cor(heart.data$biking, heart.data$smoking)

Cuando ejecutamos este código, la salida es de 0.015. La correlación entre andar en bicicleta y fumar es pequeña (0.015 es solo una correlación del 1.5%), por lo que podemos incluir ambos parámetros en nuestro modelo.,

  1. normalidad

Use la función hist() para probar si su variable dependiente sigue una distribución normal.

hist(heart.data$heart.disease)

La distribución de las observaciones es aproximadamente en forma de campana, para que podamos proceder con la regresión lineal.

  1. linealidad

podemos comprobar esto usando dos gráficos de dispersión: uno para ciclismo y enfermedades del corazón, y uno para fumar y enfermedades del corazón.,

plot(heart.disease ~ biking, data=heart.data)
plot(heart.disease ~ smoking, data=heart.data)

a Pesar de que la relación entre el tabaquismo y la enfermedad del corazón es un poco menos claro, aún aparece lineal. Podemos proceder con regresión lineal.

  1. Homoscedasticity

vamos a comprobar esto después de hacer el modelo.,

Paso 3: Realizar el análisis de regresión lineal

ahora que ha determinado que sus datos cumplen con las suposiciones, puede realizar un análisis de regresión lineal para evaluar la relación entre las variables independientes y dependientes.

regresión Simple: ingresos y felicidad

veamos si hay una relación lineal entre ingresos y felicidad en nuestra encuesta de 500 personas con ingresos que van desde $15K a 7 75k, donde la felicidad se mide en una escala de 1 a 10.,

para realizar un análisis de regresión lineal simple y verificar los resultados, debe ejecutar dos líneas de código. La primera línea de código hace el modelo lineal, y la segunda línea imprime el resumen del modelo:

income.happiness.lm <- lm(happiness ~ income, data = income.data)summary(income.happiness.lm)

la salida se ve así:

esta tabla de salida primero presenta la ecuación del modelo, luego resume los residuos del modelo (consulte el paso 4).,

la sección de coeficientes muestra:

  1. Las estimaciones (estimación) para los parámetros del modelo – el valor de la intersección en y (en este caso 0.204) y el efecto estimado del ingreso sobre la felicidad (0.713).
  2. El error estándar de los valores estimados (Std. Error).
  3. El estadístico de prueba (valor t, en este caso el estadístico t).
  4. El valor p (Pr (> / t/)), también conocido como la probabilidad de encontrar el estadístico T dado si la hipótesis nula de no relación fuera verdadera.,

Las tres últimas líneas son diagnósticos del modelo, lo más importante a tener en cuenta es el valor p (Aquí es 2.2 e-16, o casi cero), que indicará si el modelo se ajusta bien a los datos.

de estos resultados, podemos decir que hay una relación positiva significativa entre el ingreso y la felicidad (valor p < 0.001), con un aumento de 0.713 unidades (+/- 0.01) en la felicidad por cada aumento de unidad en el ingreso.,

regresión múltiple: ciclismo, tabaquismo y enfermedades cardíacas

veamos si hay una relación lineal entre el ciclismo y el trabajo, el tabaquismo y las enfermedades cardíacas en nuestra encuesta imaginaria de 500 ciudades. Las tasas de ir en bicicleta al trabajo oscilan entre el 1 y el 75%, las tasas de fumar entre el 0,5 y el 30% y las tasas de enfermedades cardíacas entre el 0,5 y el 20,5%.

para probar la relación, primero ajustamos un modelo lineal con la enfermedad cardíaca como variable dependiente y el ciclismo y el tabaquismo como variables independientes., Ejecute estas dos líneas de código:

heart.disease.lm<-lm(heart.disease ~ biking + smoking, data = heart.data)summary(heart.disease.lm)

la salida se ve así:

El efecto del ciclismo en las enfermedades cardíacas es de -0.2, mientras que el efecto estimado del tabaquismo es de 0.178.

esto significa que por cada aumento del 1% en el ciclismo para trabajar, hay una disminución correlacionada del 0,2% en la incidencia de enfermedades cardíacas. Mientras tanto, por cada aumento del 1% en el tabaquismo, hay un aumento del 0,178% en la tasa de enfermedades cardíacas.,

Los errores estándar para estos coeficientes de regresión son muy pequeños, y los T-estadísticos son muy grandes (-147 y 50.4, respectivamente). Los valores de p reflejan estos pequeños errores y grandes estadísticas de T. Para ambos parámetros, hay casi cero probabilidad de que este efecto se deba al azar.

recuerde que estos datos se componen de este ejemplo, por lo que en la vida real estas relaciones no serían tan claras!,

Paso 4: Compruebe la homoscedasticidad

antes de proceder con la visualización de datos, debemos asegurarnos de que nuestros modelos se ajusten a la suposición de homoscedasticidad del modelo lineal.

regresión Simple

podemos ejecutar plot(income.happiness.lm) para verificar si los datos observados cumplen con nuestros supuestos del modelo:

par(mfrow=c(2,2))
plot(income.happiness.lm)
par(mfrow=c(1,1))

tenga en cuenta que el comando par(mfrow()) dividirá la ventana de gráficos en el número de filas y columnas especificadas entre corchetes., Así que par(mfrow=c(2,2)) lo divide en dos filas y dos columnas. Para volver a trazar un gráfico en toda la ventana, configure los parámetros nuevamente y reemplace el (2,2) por (1,1).

Estos son los gráficos de residuos producidos por el código:

Residuos son la varianza inexplicada. No son exactamente lo mismo que el error del modelo, pero se calculan a partir de él, por lo que ver un sesgo en los residuos también indicaría un sesgo en el error.,

lo más importante a buscar es que las líneas rojas que representan la media de los residuos son básicamente horizontales y centradas alrededor de cero. Esto significa que no hay valores atípicos o sesgos en los datos que harían inválida una regresión lineal.

en el Q-Qplot Normal en la parte superior derecha, podemos ver que los residuos reales de nuestro modelo forman una línea casi perfecta de uno a uno con los residuos teóricos de un modelo perfecto.

basado en estos residuos, podemos decir que nuestro modelo cumple con el supuesto de homoscedasticidad.,

regresión múltiple

nuevamente, debemos verificar que nuestro modelo es realmente un buen ajuste para los datos, y que no tenemos una gran variación en el error del modelo, ejecutando este código:

par(mfrow=c(2,2))
plot(heart.disease.lm)
par(mfrow=c(1,1))

la salida se ve así:

al igual que con nuestra regresión simple, los residuos no muestran sesgo, por lo que podemos decir que nuestro modelo se ajusta a la suposición de homoscedasticidad.,

Paso 5: visualiza los resultados con un gráfico

a continuación, podemos trazar los datos y la línea de regresión desde nuestro modelo de regresión lineal para que los resultados puedan compartirse.

regresión Simple

siga 4 pasos para visualizar los resultados de su regresión lineal simple.,

  1. trazar los puntos de datos en un gráfico
income.graph<-ggplot(income.data, aes(x=income, y=happiness))+ geom_point()income.graph

  1. Añadir a la línea de regresión lineal a los datos trazados

Añadir la línea de regresión utilizando geom_smooth() y escribir en lm como método para la creación de la línea. Esto agregará la línea de la regresión lineal, así como el error estándar de la estimación (en este caso +/- 0.,01) como una franja gris clara que rodea la línea:

income.graph <- income.graph + geom_smooth(method="lm", col="black")income.graph

  1. agregue la ecuación para la línea de regresión.
income.graph <- income.graph + stat_regline_equation(label.x = 3, label.y = 7)income.graph

  1. Hacer un gráfico listo para la publicación

podemos agregar algunos parámetros de estilo usando theme_bw() y hacer etiquetas personalizadas utilizando labs().,

income.graph + theme_bw() + labs(title = "Reported happiness as a function of income", x = "Income (x$10,000)", y = "Happiness score (0 to 10)")

Esto produce el acabado gráfico que puede incluir en sus documentos:

regresión Múltiple

La visualización de paso para la regresión múltiple es más difícil que para la regresión simple, porque ahora tenemos dos predictores. Una opción es trazar un plano, pero estos son difíciles de leer y no se publican a menudo.

probaremos un método diferente: trazar la relación entre el ciclismo y la enfermedad cardíaca en diferentes niveles de tabaquismo., En este ejemplo, fumar se tratará como un factor con tres niveles, solo con el propósito de mostrar las relaciones en nuestros datos.

Hay 7 pasos a seguir.

  1. Crear un nuevo dataframe con la información necesaria para trazar el modelo

Utilice la función expand.grid() para crear un dataframe con los parámetros de suministro., Dentro de esta función vamos a:

  • Crear una secuencia desde el valor más bajo al más alto de sus datos de ciclismo observados;
  • Elegir los valores mínimos, medios y máximos de fumar, con el fin de hacer 3 niveles de fumar sobre los cuales predecir las tasas de enfermedad cardíaca.

esto no creará nada nuevo en su consola, pero debería ver un nuevo marco de datos aparecer en la pestaña Entorno. Haga clic en él para verlo.,

  1. predecir los valores de la enfermedad cardíaca en función de su modelo lineal

a continuación guardaremos nuestros valores ‘predichos y’ como una nueva columna en el conjunto de datos que acabamos de crear.

plotting.data$predicted.y <- predict.lm(heart.disease.lm, newdata=plotting.data)
  1. Ronda de fumar números con dos decimales

Esto hará que la leyenda más fácil para leer más tarde.,

plotting.data$smoking <- round(plotting.data$smoking, digits = 2)
  1. cambiar la variable ‘fumar’ por un factor

esto nos permite trazar la interacción entre el ciclismo y la enfermedad cardíaca en cada uno de los tres niveles de tabaquismo que elegimos.,

plotting.data$smoking <- as.factor(plotting.data$smoking)
  1. Plot the original data
heart.plot <- ggplot(heart.data, aes(x=biking, y=heart.disease)) + geom_point()heart.plot

  1. Add the regression lines
heart.plot <- heart.plot + geom_line(data=plotting.data, aes(x=biking, y=predicted.y, color=smoking), size=1.25)heart.plot

  1. Make the graph ready for publication

Because this graph has two regression coefficients, the stat_regline_equation() function won’t work here., Pero si queremos añadir nuestro modelo de regresión para el gráfico, podemos hacerlo así:

heart.plot + annotate(geom="text", x=30, y=1.75, label=" = 15 + (-0.2*biking) + (0.178*smoking)")

Este es el acabado gráfico que puede incluir en sus papeles!

Paso 6: Informe de sus resultados

Además del gráfico, incluya una breve declaración que explique los resultados del modelo de regresión.

reportando los resultados de la regresión lineal simple
encontramos una relación significativa entre el ingreso y la felicidad (p < 0.001, R2 = 0.73 ± 0.,0193), con un aumento de 0.73 unidades en la felicidad reportada por cada aumento de income 10,000 en los ingresos.
reportando los resultados de regresión lineal múltiple
en nuestra encuesta de 500 ciudades, encontramos relaciones significativas entre la frecuencia de ir en bicicleta al trabajo y la frecuencia de enfermedades cardíacas y la frecuencia de fumar y la frecuencia de enfermedades cardíacas (p < 0 y p<0.001, respectivamente).

específicamente encontramos una disminución del 0,2% (±0.,0014) en la frecuencia de enfermedades del corazón por cada aumento del 1% en el ciclismo, y un aumento del 0,178% (±0,0035) en la frecuencia de enfermedades del corazón por cada aumento del 1% en el tabaquismo.

Deja una respuesta

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