La regresión lineal simple es una prueba paramétrica , lo que significa que realiza ciertas suposiciones sobre los datos. Estas suposiciones son:
Homogeneidad de varianza (homocedasticidad): el tamaño del error en nuestra predicción no cambia significativamente según los valores de la variable independiente. Independencia de las observaciones: las observaciones en el conjunto de datos se recopilaron utilizando métodos de muestreo estadísticamente válidos y no existen relaciones ocultas entre las observaciones. Normalidad: Los datos siguen una distribución normal.
La regresión lineal hace una suposición adicional:
La relación entre la variable independiente y la dependiente es lineal: la línea de mejor ajuste a través de los puntos de datos es una línea recta (en lugar de una curva o algún tipo de factor de agrupación). Nota:Si sus datos no cumplen los supuestos de homocedasticidad o normalidad, es posible que pueda utilizar una prueba no paramétrica , como la prueba de rangos de Spearman.
Ejemplo: Datos que no cumplen los supuestos Cree que existe una relación lineal entre el consumo de carne curada y la incidencia de cáncer colorrectal en EE. UU. Sin embargo, descubre que se han recopilado muchos más datos con tasas altas de consumo de carne que con tasas bajas, lo que resulta en una mayor variación en la estimación de las tasas de cáncer en el rango bajo que en el alto. Dado que los datos violan el supuesto de homocedasticidad, no son válidos para la regresión, pero en su lugar realiza una prueba de rangos de Spearman.
OJO Si sus datos violan el supuesto de independencia de las observaciones (por ejemplo, si las observaciones se repiten a lo largo del tiempo), es posible que pueda realizar un modelo lineal de efectos mixtos que tenga en cuenta la estructura adicional en los datos.
##ejemplo de regresión lineal simple en R La siguiente bases de datos, hace referencia a la realción ingresos y felicidad. Siendo X la variable independiente income (ingresos) y Y variable dependiente happiness (felicidad). Realiza un análisis de regresión lineal simple.
#datos
income_data<- read_csv("income.data.csv")
## New names:
## Rows: 498 Columns: 3
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," dbl
## (3): ...1, income, happiness
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
summary(income_data)# análisis descriptivo de los datos
## ...1 income happiness
## Min. : 1.0 Min. :1.506 Min. :0.266
## 1st Qu.:125.2 1st Qu.:3.006 1st Qu.:2.266
## Median :249.5 Median :4.424 Median :3.473
## Mean :249.5 Mean :4.467 Mean :3.393
## 3rd Qu.:373.8 3rd Qu.:5.992 3rd Qu.:4.503
## Max. :498.0 Max. :7.482 Max. :6.863
#probar los supuestos Independencia de las observaciones: (también conocida como ausencia de autocorrelación) Como solo tenemos una variable independiente y una variable dependiente, no necesitamos probar ninguna relación oculta entre las variables.
Si sabe que existe autocorrelación dentro de las variables (es decir, múltiples observaciones del mismo sujeto de prueba), no proceda con una regresión lineal simple. Utilice un modelo estructurado, como un modelo lineal de efectos mixtos.
Normalidad Para comprobar si la variable dependiente sigue una distribución normal , utilice la hist()función.
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. Linealidad La relación entre la variable independiente y la dependiente debe ser lineal. Podemos comprobarlo visualmente con un diagrama de dispersión para ver si la distribución de los puntos de datos puede describirse con una línea recta.
plot(happiness ~ income, data = income_data)
La relación parece aproximadamente lineal, por lo que podemos continuar
con el modelo lineal. Homocedasticidad (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
comprobar esta suposición más adelante, tras ajustar el modelo lineal. #
Modelo de Regresión Lineal Simple
Veamos si existe una relación lineal entre los ingresos y la felicidad en nuestra encuesta a 498 personas con ingresos que oscilan entre $15.000 y $75.000, donde la felicidad se mide en una escala de 1 a 10.
Para realizar un análisis de regresión lineal simple y comprobar los resultados, se necesitan dos líneas de código. La primera crea el modelo lineal y la segunda imprime el resumen del modelo:
income.happiness.lm <- lm(happiness ~ income, data = income_data)
summary(income.happiness.lm)
##
## Call:
## lm(formula = happiness ~ income, data = income_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.02479 -0.48526 0.04078 0.45898 2.37805
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.20427 0.08884 2.299 0.0219 *
## income 0.71383 0.01854 38.505 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7181 on 496 degrees of freedom
## Multiple R-squared: 0.7493, Adjusted R-squared: 0.7488
## F-statistic: 1483 on 1 and 496 DF, p-value: < 2.2e-16
Esta tabla de salida primero repite la fórmula que se utilizó para generar los resultados (‘Llamada’), luego resume los residuos del modelo (‘Residuos’), que dan una idea de qué tan bien se ajusta el modelo a los datos reales.
A continuación se muestra la tabla de “Coeficientes”. La primera fila muestra las estimaciones de la intersección con el eje y, y la segunda, el coeficiente de regresión del modelo.
La fila 1 de la tabla está etiquetada como (Intercept). Esta es la intersección con el eje y de la ecuación de regresión, con un valor de 0,20. Puede sustituirla en su ecuación de regresión si desea predecir los valores de felicidad en el rango de ingresos observado: La siguiente fila de la tabla “Coeficientes” corresponde a los ingresos. Esta fila describe el efecto estimado de los ingresos en la felicidad declarada:
La columna es el efectoEstimate estimado , también llamado coeficiente de regresión o valor r 2. El número en la tabla (0,713) nos dice que por cada aumento de una unidad en el ingreso (donde una unidad de ingreso = 10 000) hay un aumento correspondiente de 0,71 unidades en la felicidad reportada (donde la felicidad es una escala de 1 a 10).
La Std. Errorcolumna muestra el error estándar de la estimación. Este número muestra cuánta variación hay en nuestra estimación de la relación entre ingresos y felicidad.
La t value columna muestra el estadístico de prueba . A menos que se especifique lo contrario, el estadístico de prueba utilizado en la regresión lineal es el valor t de una prueba t bilateral . Cuanto mayor sea el estadístico de prueba, menor será la probabilidad de que nuestros resultados se deban al azar.
La Pr(>| t |) columna muestra el valor p . Este número indica la probabilidad de observar el efecto estimado de los ingresos en la felicidad si la hipótesis nula de ausencia de efecto fuera cierta.
Debido a que el valor p es tan bajo ( p < 0,001), podemos rechazar la hipótesis nula y concluir que el ingreso tiene un efecto estadísticamente significativo en la felicidad.
Las últimas tres líneas del resumen del modelo son estadísticas sobre el modelo en su conjunto. Lo más importante es el valor p del modelo. En este caso, es significativo ( p < 0,001), lo que significa que este modelo se ajusta bien a los datos observados. Presentando los resultados Al informar sus resultados, incluya el efecto estimado (es decir, el coeficiente de regresión), el error estándar de la estimación y el valor p . También debe interpretar sus cifras para que sus lectores comprendan claramente el significado de su coeficiente de regresión:
Encontramos una relación significativa ( p < 0,001) entre el ingreso y la felicidad (R 2 = 0,71 ± 0,018), con un aumento de 0,71 unidades en la felicidad reportada por cada 10.000 unidades de aumento en el ingreso.
Prueba de homocedasticidad
par(mfrow=c(2,2))
plot(income.happiness.lm)
par(mfrow=c(1,1))
Los residuos representan la varianza inexplicada . No son exactamente lo mismo que el error del modelo, pero se calculan a partir de él, por lo que observar un sesgo en los residuos también indicaría un sesgo en el error.
Lo más importante es verificar que las líneas rojas que representan la media de los residuos sean básicamente horizontales y centradas en cero. Esto significa que no hay valores atípicos ni sesgos en los datos que invaliden una regresión lineal.
En el gráfico Q-Q normal de la parte superior derecha, podemos ver que los residuos reales de nuestro modelo forman una línea casi perfectamente uno a uno con los residuos teóricos de un modelo perfecto.
Basándonos en estos residuos, podemos decir que nuestro modelo cumple el supuesto de homocedasticidad. #Visualizar los resultados con un gráfico 1. Trazar los puntos:
income.graph<-ggplot(income_data, aes(x=income, y=happiness))+
geom_point()
income.graph
income.graph <- income.graph + geom_smooth(method="lm", col="RED")
income.graph
## `geom_smooth()` using formula = 'y ~ x'
income.graph <- income.graph +
stat_regline_equation(label.x = 3, label.y = 7)
income.graph
## `geom_smooth()` using formula = 'y ~ x'
income.graph +
theme_bw() +
labs(title = "Reported happiness as a function of income",
x = "Income (x$10,000)",
y = "Happiness score (0 to 10)")
## `geom_smooth()` using formula = 'y ~ x'
#Prueba de normalidad de los residuos
"H0 : lOS RESIDUOS SON NORMALES
H1 : LOS RESIDUOS NO SON NORMALES"
## [1] "H0 : lOS RESIDUOS SON NORMALES\nH1 : LOS RESIDUOS NO SON NORMALES"
"se acepta H0 si p>0.05, se rechaza H0 si p<0.05"
## [1] "se acepta H0 si p>0.05, se rechaza H0 si p<0.05"
residuos <- rstandard(income.happiness.lm)
shapiro.test(residuos)
##
## Shapiro-Wilk normality test
##
## data: residuos
## W = 0.99676, p-value = 0.4211