0% encontró este documento útil (0 votos)
42 vistas15 páginas

Regresión Lineal en R: Análisis y Métodos

Este documento describe los tipos de regresión lineal como simple, múltiple y polinomial y cómo aplicarlos en R usando el conjunto de datos Boston para predecir el valor de las viviendas.

Cargado por

Cesar Santos
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
42 vistas15 páginas

Regresión Lineal en R: Análisis y Métodos

Este documento describe los tipos de regresión lineal como simple, múltiple y polinomial y cómo aplicarlos en R usando el conjunto de datos Boston para predecir el valor de las viviendas.

Cargado por

Cesar Santos
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

División Academica de Ciencias y Tecnologı́as de la

Información

Regresión Lineal en R

Reporte

Docente:
Dr. José Hernández Torruco

Alumno:
César Enrique Santos Vázquez
Índice

1. Introducción 4
1.1. Marco Teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1. Regresión Lineal Simple . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2. Regresión Lineal Múltiple . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.3. Regresión Polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3. Método . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2. Procedimiento 8
2.1. Regresión Lineal Simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1. Gráficando la regresión lineal simple . . . . . . . . . . . . . . . . . . . . 10
2.2. Regresión lineal multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1. Predicción de multiples valores de vivienda . . . . . . . . . . . . . . . . . 13
2.2.2. Relación lineal entre los predictores y la variable de respuesta . . . . . . 13

2
Índice de figuras

2.1. Gráfica del modelo lineal simple, donde medv: valor de la vivienda (en miles de
dolares) y lstat: porcentaje de poblacion de bajo nivel socioeconomico. . . . . . . 10
2.2. Relación lineal entre predictores y residuales del modelo lineal. . . . . . . . . . . 14

3
Capı́tulo 1

Introducción

En estadı́stica la regresión es una herramienta ampliamente utilizada, la cual ayuda al usuario


de los datos en la tarea de conocer las relaciones que existenten entre un conjunto de variables
cualitativas, mediante ecuaciones matemáticas establecidas. Es decir, este análisis se basa el
proceso de modelado matemático, dentro del cual se analizada la relación que existe entre
una variables dependiente y una matriz de variables [Link] tipo de métodos son
ampliamente utilizados en proyecciones de cualquier tipo, ya sea financieras, sociales, biológicas,
etc. Puesto que su principal objetivo es obtener como producto una función (ecuación o modelo)
que sea util para la estimación de los posibles valores de la variable dependiente, respecto a las
variables dependientes (predictores) [Galán, 2016].

4
1.1. MARCO TEÓRICO 5

1.1. Marco Teórico


En esta sección se definirán los conceptos clásicos correspondientes al tema de regresión, ası́
como algunas otras generalidades, los conceptos fueron tomados de Regresión lineal simple
y polinomial: teorı́a y práctica1 de Pablo Vinuesa.

Análisis de Regresión : conjunto de métodos estadı́sticos que usamos cuando tanto la variable
de respuesta como la la(s) variable(s) predictiva(s) son contı́nuas y queremos predecir valores
de la primera en función de valores observados de las segundas. El análisis de regresión consiste
en ajustar un modelo a los datos, estimando coeficientes a partir de las observaciones, con el
fin de predecir valores de la variable de respuesa.

Algunos de los algoritmos del análisis de regresión son:


Identificar las variables predictivas relacionadas con una variable de respuesta.
Describir la forma de la relación entre estas variables y para derivar una función matem-
atica óptima que modele esta relación
Predecir la variable de respuesta a partir de la(s) explicativas o predictoras.

Es posible subdivir este tipo de análisis en Tipos de Regresión:

Regresión Lineal Simple: predicción de una variable de respuesta cuantitativa a partir


de una variable predictora cuantitativa.
Regresión Polinomial: Predicción de una variable de respuesta cuantitativa a partir
de una variable predictora cuantitativa, donde la relación se modela como una función
polinomial de orden n.
Regresión Lineal Múltiple: Predicción de una variable de respuesta cuantitativa a
partir de dos o más variables predictoras cuantitativas.
Regresión Lineal Multivariada: Predicción de más de una variable de respuesta cuan-
titativa a partir de una o más variables predictoras cuantitativas.
Regresión Logı́stica: Predicción de una variable categórica a partir de una o más pre-
dictoras.
Regresión De Poisson: Predicción de una variable de respuesta que representa un
conteo a partir de una o más predictoras.
Regresión No Lineal: Predicción de una variable de respuesta cuantitativa a partir de
una o más predictoras, donde el modelo no es lineal.
Regresión Robusta: Predicción de una variable de respuesta cuantitativa a partir de
una o más predictoras, usando una aproximación resistente al efecto de observaciones
influyentes.

Modelo gerenal de regresión lineal:

estimadoi = (modelo) + errori


1
[Link] vinuesa
6 CAPÍTULO 1. INTRODUCCIÓN

A continuación se explicaran con mas detalle los algoritmos de Regresión Lineal Simple,
Regresión Polinomial y Regresión Lineal Múltiple.

1.1.1. Regresión Lineal Simple


La regresión lineal simple2 es un modelo de regresión en donde una función lineal repre-
senta la relación existente entre una variable dependiente y su respectiva variable independiente.
Es decir, la ecuación que describe el modelo adopta la forma y = ax+b, en donde y es la variable
dependiente, x es la variable independiente, y a y b son los coeficientes de la recta (pendiente y
punto de corte, respectivamente) que, bajo algún criterio de minimización como el de mı́nimos
cuadrados, ofrece el mejor ajuste a los datos de entrada .

Una manera mas explicita de escribir su ecuación general es:

Yi = (a + bXi) + i
Donde:

a = punto de corte en el eje de ordenadas.

b = pendiente o gradiente de la recta, que son los coeficientes de regresión.

i = corresponde al término de resı́duos, que representa la diferencia entre el valor obser-


vado y el estimado para el individuo i.

1.1.2. Regresión Lineal Múltiple


Es una extensión de la regresión lineal simple, por lo que es fundamental comprender esta
última. Los modelos de regresión múltiple pueden emplearse para predecir el valor de la variable
dependiente o para evaluar la influencia que tienen los predictores sobre ella (esto último se
debe que analizar con cautela para no malinterpretar causa-efecto).

La ecuación general de la regresión lineal múltiple 3


es la siguiente:

Yi = (a + b1X1i + b2X2i... + bnXni) + i


Donde:

a = punto de corte en el eje de ordenadas.

b = pendiente o gradiente de la recta, que son los coeficientes de regresión.

i = corresponde al término de resı́duos, que representa la diferencia entre el valor obser-


vado y el estimado para el individuo i.

2
[Link] %C3 %B3nlinealm %C3 %BAltiple
3
[Link] regresion lineal multiple
1.2. OBJETIVOS 7

1.1.3. Regresión Polinomial


La dependencia entre la variable de respuesta y la regresión frecuentemente no es lineal. No
obstante, el principio de parsimonia (navaja de Occam) requiere que ajustemos un modelo
lineal simple (el más simple, menos parametrizado) como modelo nulo, a no ser que un modelo
no lineal se demuestre significativamente superior al nulo.

Una de las maneras más sencillas es usando la regresión polinomial4 , que está definida por:

Y = a + bX + cX 2 + dX 3...
El concepto básico es sencillo. Tenemos una sola variable explicativa contı́nua, x, pero podemos
ajustar potencias mayores de x, como x2 , x3 . . . y añadirlas al modelo, junto a x, para describir
diversos tipos de curvatura en la relación y ˜ x.

1.2. Objetivos
Los objetivos trazados para en este documento son los siguientes:
1. Usar el dataset Boston del paquete MASS.
2. Econtrar la ecuación de regresión lineal para predecir el valor de la vivienda en función
del porcentaje de pobreza de la población.
3. Predecir el valor de la vivienda en función de un determinado porcentaje de pobreza.
4. Generar un modelo que permita explicar el precio de la vivienda de una población emple-
ando para ello cualquiera de las variables disponibles en el dataset Boston y que resulten
útiles en el modelo. Usar la funcion step.
5. Predecir el valor de la vivienda en función de determinados valores para los predictores
encontrados en el modelo anterior.

1.3. Método
Como ya se explico con anterioridad, la regresión lineal simple y la regresión lineal multiple son
algoritmos capaces de realizar predicciones (emitir una respuesta) de una variable dependiente
(Y) en base a una matriz de predictores o variables independientes (X). Se utilizara codificación
en lenguaje R, en el entorno de desarrollo integrado (IDE) Rstudio versión 1.2.5033.

Para el generar los modelos y realizar las predicciones se utilizara la librerı́a stats, la cual es un
paquete de funciones estadı́sticas.

”Este paquete contiene funciones para cálculos estadı́sticos y generación de números


aleatorios.” (R core team & contributor worldwide)

Por otra parte se utilizara la librerı́a MASS, esta librerı́a consta de funciones y datasets de
uso libre, con los cuales es posible realizar tareas estadı́sticas. Concretamente se utilizara el
dataset llamado Boston, contenido en la librerı́a MASS. Este dataset tiene una estructura en
forma de matriz de datos, tiene una dimensión de 506 renglones (observaciones) y 14 columnas
(variables).
4
[Link]
Capı́tulo 2

Procedimiento

2.1. Regresión Lineal Simple


En esta sección se utilizara el dataset, para predecir el valor de una viviendo en función del
porcentaje de pobreza de la población.

Primero cargaremos las librerı́as necesarias, asi como el dataset.

> library(MASS)
> library(GGally)
> library(scatterplot3d)
> data(Boston)

Aquı́ se muestra una vista general de los encabezados del dataset, ası́ como una pequeña
vista de previa del mismo.

> head(Boston)

crim zn indus chas nox rm age dis rad tax ptratio black lstat
1 0.00632 18 2.31 0 0.538 6.575 65.2 4.0900 1 296 15.3 396.90 4.98
2 0.02731 0 7.07 0 0.469 6.421 78.9 4.9671 2 242 17.8 396.90 9.14
3 0.02729 0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8 392.83 4.03
4 0.03237 0 2.18 0 0.458 6.998 45.8 6.0622 3 222 18.7 394.63 2.94
5 0.06905 0 2.18 0 0.458 7.147 54.2 6.0622 3 222 18.7 396.90 5.33
6 0.02985 0 2.18 0 0.458 6.430 58.7 6.0622 3 222 18.7 394.12 5.21
medv
1 24.0
2 21.6
3 34.7
4 33.4
5 36.2
6 28.7

> str(Boston)

'[Link]': 506 obs. of 14 variables:


$ crim : num 0.00632 0.02731 0.02729 0.03237 0.06905 ...
$ zn : num 18 0 0 0 0 0 12.5 12.5 12.5 12.5 ...
$ indus : num 2.31 7.07 7.07 2.18 2.18 2.18 7.87 7.87 7.87 7.87 ...

8
2.1. REGRESIÓN LINEAL SIMPLE 9

$ chas : int 0 0 0 0 0 0 0 0 0 0 ...


$ nox : num 0.538 0.469 0.469 0.458 0.458 0.458 0.524 0.524 0.524 0.524 ...
$ rm : num 6.58 6.42 7.18 7 7.15 ...
$ age : num 65.2 78.9 61.1 45.8 54.2 58.7 66.6 96.1 100 85.9 ...
$ dis : num 4.09 4.97 4.97 6.06 6.06 ...
$ rad : int 1 2 2 3 3 3 5 5 5 5 ...
$ tax : num 296 242 242 222 222 222 311 311 311 311 ...
$ ptratio: num 15.3 17.8 17.8 18.7 18.7 18.7 15.2 15.2 15.2 15.2 ...
$ black : num 397 397 393 395 397 ...
$ lstat : num 4.98 9.14 4.03 2.94 5.33 ...
$ medv : num 24 21.6 34.7 33.4 36.2 28.7 22.9 27.1 16.5 18.9 ...

Se realiza el ajuste del modelo de regresión. Para esto se hace uso de la función lm ( ).

> viv_pob.fit <- lm(medv ˜ lstat ,data = Boston)


> summary(viv_pob.fit)

Call:
lm(formula = medv ˜ lstat, data = Boston)

Residuals:
Min 1Q Median 3Q Max
-15.168 -3.990 -1.318 2.034 24.500

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 34.55384 0.56263 61.41 <2e-16 ***
lstat -0.95005 0.03873 -24.53 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 6.216 on 504 degrees of freedom


Multiple R-squared: 0.5441, Adjusted R-squared: 0.5432
F-statistic: 601.6 on 1 and 504 DF, p-value: < 2.2e-16

Ahora se procede a realizar la predicción del valor de una vivienda.

> val_pred <- predict(viv_pob.fit, [Link](lstat = 9.14))

El valor obtenido por esta predicción es 25.870389786035. Esto es facilmente comprobable si


seguimos la ecuación del modelo de regresión lineal. El valor de la vivienda sera llamado val pred
para referirnos a la preddicción del valor de la vivienda.

val pred = Intercept + (Estimate lstatXval lstat)


val predicho = 34.55384 + (−0.95005X9.14)
val pred = 25.8703x103 $
10 CAPÍTULO 2. PROCEDIMIENTO

2.1.1. Gráficando la regresión lineal simple


En la Figura 2.1, se observa la tendencia decendente en cuanto al valor de una viviendo con
respecto al porcentaje de pobreza de una población.

> plt_lms <- (


+ ggplot(data = Boston, aes(x = lstat, y = medv)) +
+ geom_point() +
+ stat_smooth(method = "lm", col = "dodgerblue3") +
+ theme([Link] = element_rect(fill = "white"),
+ [Link].x=element_line(),
+ [Link].y=element_line()) +
+ ggtitle("Modelo lineal ajustado al dataset Boston")
+ )
> plt_lms

> plt_lms

Modelo lineal ajustado al dataset Boston

50

40

30
medv

20

10

0 10 20 30
lstat

Figura 2.1: Gráfica del modelo lineal simple, donde medv: valor de la vivienda (en miles de
dolares) y lstat: porcentaje de poblacion de bajo nivel socioeconomico.
2.2. REGRESIÓN LINEAL MULTIPLE 11

2.2. Regresión lineal multiple


En esta sección se ajustara un modelo de regresión que permita estimar el valor de una vivienda
con respecto a varias variables. Sin embargo, buscamos general el mejor modelo posible, para
esto utilizaremos la función step ( ), esta función realiza una selección de los mejores pre-
dictores basandose en el metodo de step by step o´ paso a paso. Esta función emplea criterios
matemáticos para decidir qué predictores contribuyen significativamente al modelo y en qué
orden se introducen [Rodrigo, 2016].

> val_mult.fit <- lm(medv ˜ ., data = Boston)


> step(object = val_mult.fit, direction = "both", trace = 1)

Start: AIC=1589.64
medv ˜ crim + zn + indus + chas + nox + rm + age + dis + rad +
tax + ptratio + black + lstat

Df Sum of Sq RSS AIC


- age 1 0.06 11079 1587.7
- indus 1 2.52 11081 1587.8
<none> 11079 1589.6
- chas 1 218.97 11298 1597.5
- tax 1 242.26 11321 1598.6
- crim 1 243.22 11322 1598.6
- zn 1 257.49 11336 1599.3
- black 1 270.63 11349 1599.8
- rad 1 479.15 11558 1609.1
- nox 1 487.16 11566 1609.4
- ptratio 1 1194.23 12273 1639.4
- dis 1 1232.41 12311 1641.0
- rm 1 1871.32 12950 1666.6
- lstat 1 2410.84 13490 1687.3

Step: AIC=1587.65
medv ˜ crim + zn + indus + chas + nox + rm + dis + rad + tax +
ptratio + black + lstat

Df Sum of Sq RSS AIC


- indus 1 2.52 11081 1585.8
<none> 11079 1587.7
+ age 1 0.06 11079 1589.6
- chas 1 219.91 11299 1595.6
- tax 1 242.24 11321 1596.6
- crim 1 243.20 11322 1596.6
- zn 1 260.32 11339 1597.4
- black 1 272.26 11351 1597.9
- rad 1 481.09 11560 1607.2
- nox 1 520.87 11600 1608.9
- ptratio 1 1200.23 12279 1637.7
- dis 1 1352.26 12431 1643.9
- rm 1 1959.55 13038 1668.0
- lstat 1 2718.88 13798 1696.7
12 CAPÍTULO 2. PROCEDIMIENTO

Step: AIC=1585.76
medv ˜ crim + zn + chas + nox + rm + dis + rad + tax + ptratio +
black + lstat

Df Sum of Sq RSS AIC


<none> 11081 1585.8
+ indus 1 2.52 11079 1587.7
+ age 1 0.06 11081 1587.8
- chas 1 227.21 11309 1594.0
- crim 1 245.37 11327 1594.8
- zn 1 257.82 11339 1595.4
- black 1 270.82 11352 1596.0
- tax 1 273.62 11355 1596.1
- rad 1 500.92 11582 1606.1
- nox 1 541.91 11623 1607.9
- ptratio 1 1206.45 12288 1636.0
- dis 1 1448.94 12530 1645.9
- rm 1 1963.66 13045 1666.3
- lstat 1 2723.48 13805 1695.0

Call:
lm(formula = medv ˜ crim + zn + chas + nox + rm + dis + rad +
tax + ptratio + black + lstat, data = Boston)

Coefficients:
(Intercept) crim zn chas nox rm
36.341145 -0.108413 0.045845 2.718716 -17.376023 3.801579
dis rad tax ptratio black lstat
-1.492711 0.299608 -0.011778 -0.946525 0.009291 -0.522553

Como se puede observar la funcion step ( ) nos devuelve el modelo con la mejor configuracion
posible.

> smlr_valv <- lm(formula = medv ˜ crim + zn + chas + nox + rm + dis + rad +
+ tax + ptratio + black + lstat, data = Boston)
> summary(smlr_valv)

Call:
lm(formula = medv ˜ crim + zn + chas + nox + rm + dis + rad +
tax + ptratio + black + lstat, data = Boston)

Residuals:
Min 1Q Median 3Q Max
-15.5984 -2.7386 -0.5046 1.7273 26.2373

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 36.341145 5.067492 7.171 2.73e-12 ***
crim -0.108413 0.032779 -3.307 0.001010 **
zn 0.045845 0.013523 3.390 0.000754 ***
2.2. REGRESIÓN LINEAL MULTIPLE 13

chas 2.718716 0.854240 3.183 0.001551 **


nox -17.376023 3.535243 -4.915 1.21e-06 ***
rm 3.801579 0.406316 9.356 < 2e-16 ***
dis -1.492711 0.185731 -8.037 6.84e-15 ***
rad 0.299608 0.063402 4.726 3.00e-06 ***
tax -0.011778 0.003372 -3.493 0.000521 ***
ptratio -0.946525 0.129066 -7.334 9.24e-13 ***
black 0.009291 0.002674 3.475 0.000557 ***
lstat -0.522553 0.047424 -11.019 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.736 on 494 degrees of freedom


Multiple R-squared: 0.7406, Adjusted R-squared: 0.7348
F-statistic: 128.2 on 11 and 494 DF, p-value: < 2.2e-16

2.2.1. Predicción de multiples valores de vivienda


Por ultimo se realizara la predicción para el valor de varias viviendas, tomando como base el
modelo de regresión multiple creado anteriormente.
> [Link](49)
> mtr_pred <- [Link](sample(Boston[c(FALSE,TRUE), c(-3,-14)], size = 12,
+ replace = FALSE))
> mtr_pred$medv_pred <- predict(smlr_valv, new = mtr_pred)
> head(mtr_pred$medv_pred)
[1] 24.99653 28.64799 25.29804 19.50302 18.88043 21.54663
Se muestran los primeros cinco valores predichos. Por otra parte con el comando confint ( )
es posible mostrar el intervalo de confianza para cada uno de los coeficientes del modelo.
> confint(smlr_valv)
2.5 % 97.5 %
(Intercept) 26.384649126 46.29764088
crim -0.172817670 -0.04400902
zn 0.019275889 0.07241397
chas 1.040324913 4.39710769
nox -24.321990312 -10.43005655
rm 3.003258393 4.59989929
dis -1.857631161 -1.12779176
rad 0.175037411 0.42417950
tax -0.018403857 -0.00515209
ptratio -1.200109823 -0.69293932
black 0.004037216 0.01454447
lstat -0.615731781 -0.42937513

2.2.2. Relación lineal entre los predictores y la variable de respuesta


Si las gráficas mostrancen relacion lineal, los residuos deben distribuirse de manera aleatoria
cerca del 0, o con una variabilidad constante a lo largo del eje X. Como se muestra en la Figura
2.2.
14 CAPÍTULO 2. PROCEDIMIENTO

> library(ggplot2)
> library(gridExtra)
> plot1 <- ggplot(data = Boston, aes(lstat, smlr_valv$residuals)) +
+ geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
+ theme_bw()
> plot2 <- ggplot(data = Boston, aes(nox, smlr_valv$residuals)) +
+ geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
+ theme_bw()
> plot3 <- ggplot(data = Boston, aes(rm, smlr_valv$residuals)) +
+ geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
+ theme_bw()
> plot4 <- ggplot(data = Boston, aes(dis, smlr_valv$residuals)) +
+ geom_point() + geom_smooth(color = "firebrick") + geom_hline(yintercept = 0) +
+ theme_bw()

> [Link](plot1, plot2, plot3, plot4)

20 20
smlr_valv$residuals

smlr_valv$residuals

10 10

0 0

−10 −10

0 10 20 30 0.4 0.5 0.6 0.7 0.8


lstat nox

20 20
smlr_valv$residuals

smlr_valv$residuals

10 10

0 0

−10 −10

4 5 6 7 8 9 2.5 5.0 7.5 10.0 12.5


rm dis

Figura 2.2: Relación lineal entre predictores y residuales del modelo lineal.
Bibliografı́a

[Galán, 2016] Galán, J. S. (2016). Análisis de regresión. Accedido en 04/05/2020 a


[Link]

[Rodrigo, 2016] Rodrigo, J. A. (2016). Introducción a la regresión lineal múltiple. Accedido en


04/05/2020 a [Link]

15

También podría gustarte