0% encontró este documento útil (0 votos)
160 vistas26 páginas

Métodos de Regresión y Correlación en R

Este documento describe los métodos de regresión lineal y correlación. Explica que la regresión busca una función que describa la relación entre una variable dependiente y una o más variables independientes. La correlación mide el grado de asociación entre variables. A continuación, detalla cómo ajustar un modelo de regresión lineal simple usando R, incluyendo la representación de datos, el diagrama de dispersión y la estimación de parámetros. Finalmente, presenta un ejemplo con datos reales sobre edad y presión sanguínea.
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
160 vistas26 páginas

Métodos de Regresión y Correlación en R

Este documento describe los métodos de regresión lineal y correlación. Explica que la regresión busca una función que describa la relación entre una variable dependiente y una o más variables independientes. La correlación mide el grado de asociación entre variables. A continuación, detalla cómo ajustar un modelo de regresión lineal simple usando R, incluyendo la representación de datos, el diagrama de dispersión y la estimación de parámetros. Finalmente, presenta un ejemplo con datos reales sobre edad y presión sanguínea.
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 DOCX, PDF, TXT o lee en línea desde Scribd

Práctica 3

Métodos de regresión
REGRESIÓN Y CORRELACIÓN
Objetivos
 Ajustar modelos de regresión lineal simple y múltiple estimando los valores de sus
parámetros
 Obtener información adicional sobre los modelos de regresión (contrastes de
significación de los parámetros, test de bondad de ajuste,…)
 Contrastar las hipótesis del modelo de regresión lineal
 Ajustar un modelo de regresión cuadrático
 Estudiar la correlación entre variables.

Regresión
El objetivo del Análisis de regresión es determinar una función matemática sencilla que
describa el comportamiento de una variable dados los valores de otra u otras variables. En
el Análisis de regresión simple, se pretende estudiar y explicar el comportamiento de una
variable que notamos y, y que llamaremos variable explicada, variable dependiente o
variable de interés, a partir de otra variable, que notamos x, y que llamamos variable
explicativa, variable independiente o variable de predicción. El principal objetivo de
la regresión es encontrar la función que mejor explique la relación entre la variable
dependiente y las independientes.

Para cumplir dicho objetivo, el primer paso que debe realizar el investigador, es
representar las observaciones de ambas variables en un gráfico llamado diagrama de
dispersión o nube de puntos. A partir de esta representación el investigador puede
especificar la forma funcional de la función de regresión.

A menudo se supone que la relación que guardan la variable dependiente y las


independientes es lineal. En estos casos, se utlizan los modelos de regresión lineal.
Aunque las relaciones lineales aparecen de forma frecuente, también es posible considerar
otro tipo de relación entre las variables, que se modelizan mediante otros modelos de
regresión, como pueden ser el modelo de regresión cuadrático o parabólico o el modelo
de regresión hiperbólico.
Teoría de la Regresión: Consiste en la búsqueda de una “función” que exprese lo mejor
posible el tipo de relación entre dos o más variables.
Correlación
La correlación está íntimamente ligada con la regresión en el sentido de que se centra en el
estudio del grado de asociación entre variables. Por lo tanto, una variable independiente
que presente un alto grado de correlación con una variable dependiente será muy útil para
predecir los valores de ésta última. Cuando la relación entre las variables es lineal, se habla
de correlación lineal. Una de las medidas más utilizadas para medir la correlación lineal
entre variables es el coeficiente de correlación lineal de Pearson.
Teoría de la Correlación: Estudia el grado de dependencia entre las variables, es decir su
objetivo es medir el grado de ajuste existente entre la función teórica (función ajustada) y
la nube de puntos.
En esta práctica se mostrará cómo ajustar un modelo de regresión con RStudio, prestando
especial atención a los modelos de regresión lineal. Además, enseñaremos como calcular e
interpretar algunas medidas de correlación.
Regresión lineal simple
La regresión lineal simple supone que los valores de la variable dependiente, a los que
llamaremos yi, pueden escribirse en función de los valores de una única variable
independiente, los cuales notaremos por xi, según el siguiente modelo lineal:

donde y  , son los parámetros desconocidos que vamos a


estimar.
Habitualmente, al iniciar un estudio de regresión lineal simple se suelen representar los
valores de la variable dependiente y de la variable independiente de forma conjunta
mediante un diagrama de dispersión para determinar si realmente existe una relación
lineal entre ambas. Para realizar un diagrama de dispersión en R y RStudio utilizaremos la
orden plot
 > plot(x,y)
donde x e y son los valores de las variables independiente y dependiente, respectivamente.
En caso de que en el diagrama de dispersión se aprecie un patrón lineal entre las dos
variables, se podrá asumir una cierta relación lineal entre ambas variables y se procederá a
ajustar el modelo de regresión lineal simple.
Después de comprobar gráficamente la relación lineal entre las variables, el siguiente paso
es la estimación de los valores de los parámetros y   que aparecen en la fórmula (1) a
partir de un conjunto de datos. Para ello, podemos utilizar la función lm de R, cuya sintaxis
es la siguiente
>  lm(formula, data)
donde formula indica la relación que guardan la variable dependiente y la variable
independiente.

Por ejemplo:

> lm(formula = y  ~ x, data=midataset)

Algunas peculiaridades sobre este argumento:

  Las partes izquierda (variable dependiente) y derecha (variable independiente) de


la fórmula vienen separadas por el símbolo ~ , que puede escribirse con la secuencia de
comandos Alt + 126.
 Por defecto, la función devuelve un valor para . En determinadas ocasiones,
interesa que dicho valor sea igual a 0, lo cual se indica en la fórmula del siguiente modo:
> lm(formula = y  ~0 +  x, data=midataset)
  data es el conjunto de datos en el que se encuentran las variables que se utilizan en
la fórmula. Este argumento es optativo, aunque es muy recomendable usarlo para una
mayor claridad en la fórmula. Para ver la diferencia, observemos las siguientes llamadas a
la función lm:
> lm(formula = y  ~ x, data=midataset)
> lm(formula =midataset$y  ~ midataset$x)

 Ambas llamadas son equivalentes, pero en la primera de ellas se aprecia mucho mejor cuál
es la expresión que indica la relación entre las variables.
Ejemplo 1
La siguiente tabla muestra información sobre la edad y la presión sanguínea de 10 mujeres:

Tabla1
: Datos del Ejemplo 1
Edad Presión
56 148
42 126
72 159
36 118
63 149
47 130
55 151
47 142
38 114
42 141

En primer lugar, vamos a almacenar los datos de las dos variables en dos vectores. Para
ello, en primer lugar abrimos un nuevo Script en el Editor de datos de RStudio,
seleccionando File/New File/R Script (o las teclas Ctrl + Shift + N) y escribimos
edad <- c(56, 42, 72,  36, 63, 47, 55, 47, 38, 42)
presion <- c(148, 126, 159, 118, 149, 130, 151, 142, 114, 141)
edad
presion
Seleccionanos las sentencias y pulsamos la tecla Run o bien Ctrl + Enter y se muestran las
siguientes órdenes en la Consola de RStudio
> edad <- c(56, 42, 72, 36, 63, 47, 55, 47, 38, 42)
> presion <- c(148, 126, 159, 118, 149, 130, 151, 142, 114, 141)
> edad
[1] 56 42 72 36 63 47 55 47 38 42
> presion
[1] 148 126 159 118 149 130 151 142 114 141

Otra opción es:

> setwd(“F:/Desktop/EJEMPLOSRS3”)
> datos <- [Link](“F:/Desktop/EJEMPLOSRS3/[Link]”, header = TRUE)
> datos 
edad Presión
1   56    148
2   42    126
3   72   159
4   36   118
5   63   149
6   47   130
7   55   151
8   47  142
9   38  114
10  42 141
Supongamos que nuestro objetivo es determinar la edad de una mujer a partir de su presión
sanguínea o, lo que es lo mismo, supongamos que la variable dependiente es edad y que la
variable independiente es presión. Vamos a representar el diagrama de dispersión de las
dos variables para determinar si la relación existente entre ambas puede considerarse
lineal, y por tanto, tiene sentido plantear un modelo de regresión lineal simple.
> plot(presion, edad)

Figura 1: Diagrama de
Dispersión

A la vista del gráfico de dispersión, se puede asumir un cierto grado de relación lineal entre
ambas variables, por lo que procedemos al ajuste del modelo lineal.

> reg_lin <- lm(edad ~ presion)


> reg_lin
Call:
lm(formula = edad ~ presion)
Coefficients:
(Intercept) presión
-43.5440 0.6774
Por defecto, la salida que muestra la función lm incluye únicamente las estimaciones para

los parámetros, en nuestro caso   y  . Por tanto, el modelo lineal puede escribirse del
siguiente modo:
edadi = -43.5440 + 0.6774 presioni
Estos dos parámetros pueden interpretarse del siguiente modo: –43.5440  es el valor de la
edad para una persona de  presión sanguínea 0, lo cual no tiene sentido. De hecho, en

multitud de ocasiones la interpretación del parámetro    no es relevante y todo el interés


recae sobre la interpretación del resto de parámetros.
El parámetro   es igual a 0.6774  indica que, por término medio, cada mmHg
(milímetros de mercurio) de incremento en la presión sanguínea de una persona supone un
incremento de 0.6774. en su edad.
Podemos obtener más información sobre el modelo de regresión que hemos calculado
aplicando la función summary al objeto que contiene los datos de la regresión, al cual
hemos llamado reg_lin en este ejemplo.
> summary(reg_lin)
Call:
lm(formula = edad ~ presion)
Residuals:
Min 1Q Median 3Q Max
-9.9676 -2.9835 -0.0973 3.8623 7.8394
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -43.5440 17.6126 -2.472 0.038571 *
presion 0.6774 0.1271 5.328 0.000704 ***

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 5.742 on 8 degrees of freedom
Multiple R-squared: 0.7802, Adjusted R-squared: 0.7527
F-statistic: 28.39 on 1 and 8 DF, p-value: 0.000704
Esta salida contiene una información más completa sobre el análisis. Así, por ejemplo,
encontramos información sobre los residuos (en el apartado Residuals), que se definen
como la diferencia entre el verdadero valor de la variable dependiente y el valor que
pronostica el modelo de regresión. Cuanto más pequeños sean estos residuos mejor será el
ajuste del modelo a los datos y más acertadas serán las predicciones que se realicen a partir
de dicho modelo.
En la tabla Coefficients encontramos los valores de los parámetros que aparecían en la
salida por defecto junto a su error estándar. Cada parámetro aparece acompañado del valor
de un estadístico t de Student y un p-valor que sirven para contrastar la significación del
parámetro en cuestión, es decir, para resolver los siguientes contrastes de hipótesis:

Lo que se pretende mediante estos contrastes, es


determinar si los efectos de la constante y de la variable independiente son realmente
importantes para explicar la variable dependiente o si, por el contario, pueden considerarse
nulos.
En nuestro ejemplo, los p-valores que nos ayudan a resolver estos contrastes
son 0.038571 y 0.000704 ambos menores que 0.05. Así, considerando un nivel del
significación del 5%, rechazamos la hipótesis nula en ambos contrastes, de manera que
podemos suponer ambos parámetros significativamente distintos de 0.
Por último, en la parte final de la salida, encontramos el valor de R² (Multiple R-squared) y
de R² ajustado (Adjusted R-squared), que son indicadores de la bondad del ajuste de
nuestro modelo a los datos. R² oscila entre 0 y 1, de manera que, valores de R² próximos a
1 indican un buen ajuste del modelo lineal a los datos. Por otro lado, R² ajustado es similar
a R², pero penaliza la introducción en el modelo de variables independientes poco
relevantes a la hora de explicar la variable dependiente. Por tanto, R² ajustado <=  R². En
nuestro ejemplo, R² = 0.7802 y R² ajustado = 0.7527, por lo que podemos concluir que el
modelo lineal se ajusta de forma aceptable a nuestros datos. La última línea de la salida
incluye un estadístico F de Snedecor y el p-valor correspondiente que se utilizan para
resolver el siguiente contraste:

que se conoce habitualmente como contraste


ómnibus. Mediante este contraste se comprueba si, de forma global, el modelo lineal es
apropiado para modelizar los datos. En nuestro ejemplo, el p-valor asociado a este
contraste es inferior a 0.05 por lo que, al 5% de significación podemos rechazar la
hipótesis nula y afirmar que, efectivamente, el modelo lineal es adecuado para nuestro
conjunto de datos.
R y RStudio nos permiten dibujar la recta de regresión lineal sobre el diagrama de
dispersión mediante la orden abline. De este modo podemos visualizar la distancia
existente entre los valores observados y los valores que el modelo pronostica (esto es, los
residuos).
> plot(presion, edad)
> abline(reg_lin) 

Figura 2: Diagrama de
Dispersión y recta de regresión

Un aspecto importante cuando se trabaja con modelos de regresión lineal es la


comprobación de las hipótesis que deben de cumplirse para poder utilizar este tipo de
modelos. Estas suposiciones hacen referencia a los residuos y pueden resumirse en los
siguientes puntos:

 Normalidad de los residuos


 Independencia de los residuos
 Homocedasticidad (igualdad de las varianzas de los residuos)
 Linealidad de los residuos

Al aplicar la función plot sobre el objeto que contiene la información del modelo
obtenemos 4 gráficos que nos ayudan para la validación del modelo. Estos gráficos son:

 Valores predichos frente a residuos


 Gráfico Q-Q de normalidad
 Valores predichos frente a raíz cuadrada de los residuos estandarizados (en
valor absoluto)
 Residuos estandarizados frente a leverages
> plot(reg_lin)
Hit <Return> to see next plot:
Nota: Para pasar de un gráfico al siguiente basta con hacer Clik con el ratón o
presionar Enter sobre el gráfico en cuestión

   

  
     

Figura 3,4,5 y 6: Gráficos para la validación del modelo

Los gráficos 4 y 6 se utilizan para contrastar gráficamente la independencia, la


homocedasticidad y la linealidad de los residuos. Idealmente, los residuos deben estar
aleatoriamente distribuidos a lo largo del gráfico, sin formar ningún tipo de patrón.

El gráfico Q- Q, (Gráfico 5) por su parte, se utiliza para contrastar la normalidad de los


residuos. Lo deseable es que los residuos estandarizados estén lo más cerca posible a la
línea punteada que aparece en el gráfico.

El gráfico de residuos estandarizados frente a leverages (Gráfico 3) se utiliza para detectar


puntos con una influencia importante en el cálculo de las estimaciones de los parámetros.
En caso de detectarse algún punto fuera de los límites que establecen las líneas
discontinuas debe estudiarse este punto de forma aislada para detectar, por ejemplo, si la
elevada importancia de esa observación se debe a un error.
Los gráficos parecen indicar que los residuos son aleatorios, independientes y
homocedásticos. Sin embargo, no parece que los residuos sigan una distribución Normal.
Vamos a confirmar si esto es así mediante métodos analíticos.

Para comprobar la normalidad, aplicaremos a los residuos el test de normalidad


de Kolmogorov-Smirnov, que en R y Rstudio se calcula a través de la función [Link], cuya
sintaxis es la siguiente:
 [Link] (x, distrib)

donde

 x es un vector numérico con los datos a los que vamos a aplicar el test (en nuestro
caso, los residuos)
 distrib indica la distribución de referencia que se usará en el contraste (en nuestro
caso, la distribución Normal, por lo que distrib = pnorm)
Al realizar un análisis de regresión lineal,  R y RStudio guardan automáticamente los
residuos en el objeto que almacena la información de la regresión (y que nosotros hemos
llamado reg_lin). Para acceder a estos residuos, escribiremos $residuals a continuación del
nombre del objeto que contiene la información del análisis. Por tanto, podemos realizar el
contraste de Kolmogorov-Smirnov del siguiente modo:
> [Link](reg_lin$residuals, “pnorm”)
One-sample Kolmogorov-Smirnov test
data: reg_lin$residuals
D = 0.3935, p-value = 0.06608
alternative hypothesis: two-sided

Los resultados del test nos confirman lo que se intuía en el gráfico Q-Q: a un 10% de
significación los residuos no siguen una distribución normal, puesto que el p-valor que se
obtiene (0.06608) es menor que 0.1. Sin embargo para una significación del 5% no se debe
rechazar la hipótesis nula.

Por último, contrastemos la independencia de los residuos mediante el test de Durbin-


Watson. La función que calcula este test se llama dwtest y se encuentra dentro del
paquete lmtest. Por lo que lo primero que tenemos que hacer es instalar y cargar dicho
paquete. Puedes encontrar más información sobre la instalación y cargas de paquetes en la
práctica 2.

Para ello elegir en el menú principal Tools/Install Packages


Figura 7: Tools/Install
Packages
En la consola de RStudio se muestra
> [Link](“lmtest”)
trying URL ‘[Link]
Content type ‘application/zip’ length 283498 bytes (276 KB)
downloaded 276 KB
package ‘lmtest’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\Usuario\AppData\Local\Temp\RtmpMtPgAz\downloaded_packages

A continuación se debe Cargar el paquete, para ello desde el panel de paquetes


simplemente se selecciona dicho paquete
Figura 8: Cargar el paquete lmtest
En la consola de RStudio se muestra
> library(“lmtest”, [Link]=”C:/Program Files/R/R-3.2.5/library”)
Loading required package: zoo
Attaching package: ‘zoo’
The following objects are masked from ‘package:base’:
[Link], [Link]

También se puede utilizar las instrucciones

> [Link](“lmtest”)   #Instalación del paquete


> library(lmtest)  #Carga del paquete
Ahora ya podemos utilizar la función dwtest, cuya sintaxis es
dwtest (formula)

donde

 formula indica la relación que guardan la variable dependiente y la independiente, y


debe coincidir con la que se ha empleado en la función lm.
> dwtest(edad~presion)
Durbin-Watson test
data: edad ~ presion
DW = 1.9667, p-value = 0.5879
alternative hypothesis: true autocorrelation is greater than 0

En este caso, con un p-valor de 0.5879 no podemos rechazar la hipótesis de que los
residuos son independientes.

Regresión lineal múltiple


El modelo de regresión múltiple es la extensión a k variables explicativas del modelo de
regresión simple. En general, una variable de interés y depende de varias variables x1, x2,
…, xk  y no sólo de una única variable de predicción x. Por ejemplo, para estudiar la
contaminación atmosférica, parece razonable considerar más de una variable explicativa,
como pueden la temperatura media anual, el número de fábricas, el número de habitantes,
etc. Además de las variables observables, la variable de interés puede depender de otras
desconocidas para el investigador. Un modelo de regresión representa el efecto de estas
variables en lo que se conoce como error aleatorio o perturbación.
Un modelo de regresión teórico en el que las variables se pueden relacionar mediante una
función de tipo lineal, podemos expresarlo de la siguiente forma:

Figura 9: Expresión del modelo de regresión múltiple

donde

 y es la variable de interés que vamos a predecir, también llamada variable respuesta
o variable dependiente
 x1, x2, …, xk  son  variables independientes, explicativas o de predicción
  β1, β2, …, βk son los parámetros desconocidos que vamos a estimar
  ε es el error aleatorio o perturbación, que representa el efecto de todas las variables
que pueden afectar a la variable dependiente y no están incluidas en el modelo de
regresión.
En R y Rstudio, el paso de un modelo de regresión lineal simple a un modelo de regresión
lineal múltiple es muy sencillo: basta con añadir variables independientes al
argumento formula de la función lm separadas por el signo +. Veamos un ejemplo:
Ejemplo 2
Se desea conocer el gasto de alimentación mensual de una familia en función del ingreso
mensual, el tamaño de la familia y el número de hijos en la universidad. Los datos se
muestran en la tabla adjunta

Tabla 2: Gastos de alimentación mensual

Famili Gastos Ingresos Tamaño Hijos


a comida familia Universidad
1 1000 5000 7 3
2 580 2500 4 1
3 520 2000 3 1
4 500 1900 3 0
5 600 3000 6 1
6 550 4000 5 2
7 400 2000 2 0

Vamos a ajustar un nuevo modelo de regresión lineal múltiple que explique el gasto de
alimentación mensual en función de las variables descritas anteriormente. En primer lugar,
vamos a crear cuatro vectores numéricos, uno para cada variable

> gastos <- c(1000, 580, 520, 500, 600, 550, 400)
> ingresos <- c(50000, 2500, 2000, 1900, 3000, 4000, 2000)
> tamaño <- c(7, 4, 3, 3, 6, 5, 2)
> hijosU <- c(3,1,1,0,1,2,0)
Y vamos a agrupar la información relativa a las 4 variables de las que disponemos en un
data frame al que pondremos por nombre datos2:
> datos2 <- [Link](gastos, ingresos, tamaño, hijosU)
Comprobemos que, efectivamente, el data frame que hemos creado contiene la
información sobre las 4 variables:
> datos2
gastos ingresos tamaño hijosU
1 1000 50000 7 3
2 580 2500 4 1
3 520 2000 3 1
4 500 1900 3 0
5 600 3000 6 1
6 550 4000 5 2
7 400 2000 2 0
A continuación ajustamos el modelo de regresión lineal múltiple
> reg_lin_mul <- lm(gastos ~ ingresos + tamaño + hijosU)
> summary(reg_lin_mul)
Call:
lm(formula = gastos ~ ingresos + tamaño + hijosU)
Residuals:
1234567
1.216 48.164 29.125 15.209 -10.134 -35.402 -48.178
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.590e+02 6.291e+01 5.706 0.0107 *
ingresos 7.247e-03 1.802e-03 4.021 0.0276 *
tamaño 3.734e+01 2.046e+01 1.825 0.1655
hijosU 5.359e+00 4.061e+01 0.132 0.9034

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 48.57 on 3 degrees of freedom
Multiple R-squared: 0.9677, Adjusted R-squared: 0.9353
F-statistic: 29.93 on 3 and 3 DF, p-value: 0.009772

En Coefficients se muestran los parámetros estimados de regresión β 0 = 3.590e, β01/sub>=7.247e,


 =  3.734e y
β2 β3 =  5.359e
La ecuación de regresión ajustada está dada por:
gastosi = 3.590e02 + 7.247e-03 * ingresosi + 3.734e01 * tamañoi + 5.359 *hijosUi .
 Los gastos estimados son iguales a 3.590e02 euros (constantes las demás variables)
 Por cada mil euros de ingresos, los gastos aumentan en 7.247e-03, supuesto que
permanecen constantes las otras variables.
 Por cada aumento del tamaño de la familia en un familiar, los gastos estimados
aumentan en 3.734e01e, suponiendo que se mantienen constantes las otras variables
 Por cada aumento del número de hijos estudiando en la Universidad, los gastos
estimados aumentan en 5.359, suponiendo que se mantienen constantes las otras variables

Tanto la interpretación como la comprobación de la significación de los parámetros se


realizan de forma similar al caso en que se cuenta con una única variable independiente.
Igualmente, la validación se lleva a cabo del mismo modo que para la regresión lineal
simple.

El p-valor asociado al contraste (0.009772) es menor que a = 0.05, por lo que rechazamos


la hipótesis nula. Esto implica que al menos una de las variables independientes contribuye
de forma significativa a la explicación de la variable respuesta.
Para las variables tamaño familiar y número de hijos en la Universidad, los p-valores
son 0.1655 y 0.9034, respectivamente. Ambos mayores que 0.05, por lo que no
rechazamos la hipótesis nula de significación de ambas variables. Estas variables no son
válidas para predecir los gastos alimentación mensual de una familia y por tanto se pueden
eliminar del modelo.
Con respecto a las representaciones gráficas, se pueden representar gráficos de dispersión
de la variable dependiente con respecto a cada una de las variables independientes
mediante el comando plot, como se ha mostrado anteriormente.
Correlación lineal
Para calcular el coeficiente de correlación lineal entre dos variables en R y RStudio utilizan
la orden cor, cuya sintaxis es la siguiente:
cor (x, y, method = c(“pearson” “kendall”, “spearman”))

donde

 x hace referencia a la primera de las variables


 y hace referencia a la segunda de las variables
 method indica el método que se va a utilizar para calcular el coeficiente de
correlación lineal. Las posibles opciones son: pearson (método que se considera por
defecto), kendall y spearman. Puedes encontrar más información sobre estos 3 métodos de
cálculo del coeficiente de correlación lineal en el siguiente enlace:
 [Link]
Ejemplo 3
Vamos a calcular el coeficiente de correlación lineal de Pearson entre las variables gastos e
ingresos:
> cor(gastos, ingresos)
[1] 0.9465675

El 94.65% de los gastos de alimentación mensual de una familia es explicada por sus
ingresos mensuales.

También es posible calcular de forma simultánea la correlación entre un conjunto de


variables almacenada en un data frame. Por ejemplo:

> cor(datos2)
              gastos   ingresos   tamaño        hijosU
gastos 1.0000000 0.9465675 0.8457301 0.8627733
ingresos 0.9465675 1.0000000 0.6886470 0.7885404
tamaño 0.8457301 0.6886470 1.0000000 0.8416254
hijosU 0.8627733 0.7885404 0.8416254 1.0000000
En este caso, en lugar de un único valor numérico, la función cor devuelve una matriz
simétrica con las correlaciones entre las variables.
Habitualmente, se está interesado en contrastar si la correlación lineal entre pares de
variables puede considerarse 0 o no. Es decir, se quiere resolver el contraste

donde ρ representa el coeficiente de correlación lineal. Este contraste se


resuelve en R y Rstudio usando la función [Link]
[Link](x, y, alternative = c(“[Link]”, “less”, “greater”), method = c(“pearson”,
“kendall”, “spearman”), [Link] = 0.95)

donde

 x, y, method son los mismos parámetros que se usan en la función cor


 alternative indica cuál va a ser la hipótesis alternativa del contraste. Por defecto se
considera que la hipótesis alternativa es  ([Link]), aunque también pueden considerarse
las hipótesis alternativas  (less) o  (greater).
 [Link] indica el nivel de confianza que se usará en el contraste (por defecto,
0.95)

En el Ejemplo 3 vamos a contrastar la significación de la correlación entre las variables


gastos e ingresos:

> [Link] (gastos, ingresos)


Pearson’s product-moment correlation
data: gastos and ingresos
t = 6.5629, df = 5, p-value = 0.001231
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.6738267 0.9922965
sample estimates:
cor
0.9465675

El p-valor asociado a este contraste es de 0.001231 < 0.05, por lo que rechazamos la
hipótesis de que la correlación lineal entre estas dos variables sea 0.

Otros modelos de regresión: regresión cuadrática


Aunque los modelos de regresión lineal (tanto simple como múltiple) funcionan bien en
una amplia mayoría de situaciones, en ocasiones es necesario considerar modelos más
complejos para conseguir un mejor ajuste a los datos.

Un ejemplo de este tipo de modelos es la regresión cuadrática. El modelo más sencillo de


regresión cuadrática es el siguiente:

Para ajustar un modelo de regresión cuadrático en R y RStudio basta con indicar en el


argumento formula de la función lm que una de las variables independientes está elevada
al cuadrado mediante el símbolo ^2.
Ejemplo 4
Calcular los valores de las estimaciones  ,  y     en el modelo de regresión:
> lm(formula = gastos ~ ingresos +
tamaño^2)
Call:
lm(formula = gastos ~ ingresos + tamaño^2)
Coefficients:
(Intercept) ingresos tamaño
3.562e+02 7.374e-03 3.915e+01
gastos = 3.562e+02 + 7.374e-03 * ingresos + 3.915e+01 * tamaño2
Ejercicios
Ejercicios Guiados
Ejercicio guiado
Una empresa fabricante de cereales está interesada en conocer cómo afecta a las
ventas del producto, la publicidad en la televisión, en la radio y en los periódicos.
Para ello, realiza un estudio de los gastos mensuales (en miles de euros)
correspondientes a los últimos 20 meses. Estos datos se presentan en la siguiente
tabla.
Ventas Pub(tv) Pub(radio) Pub(periód.)
10 13 56 40
12 14 55 40
11 15 60 42
13 17 65 50
12 17.5 69 40
14 13 67 44
16 14.5 68 40
12 9 67 44
14 8 97 46
11 9 66 46
10 8 65 45
19 10 60 110
8.5 17 70 30
8 18 110 50
9 18.5 75 45
13 19 80 40
16 20 85 80
18 20 90 90
20 13 56 90
22 14 55 110
Tabla3: Datos del Ejemplo Guiado 1
a) Crea 4 vectores numéricos, de manera que cada uno contenga los datos de una
columna y un data frame llamado Cereales con los 4 vectores que acabas de crear

b) Representa el diagrama de dispersión de las ventas y la publicidad en tv


c) Escribe la recta de regresión lineal que surge de considerar las ventas como
variable dependiente y la publicidad en tv como variable independiente
d) ¿Son significativos los dos parámetros anteriores? ¿Qué puede decirse del ajuste
del modelo a los datos?
e) ¿Cuál sería la recta de regresión en el caso de que se considere un modelo de
regresión lineal simple sin constante?
f) Calcula el coeficiente de correlación lineal de Pearson entre ambas variables. ¿Es
significativa esta correlación?
g) ¿Cuál sería la recta de regresión lineal si se incluye la publicidad en radio como
variable independiente?
h) Ajustar un modelo de regresión lineal múltiple. Obtener una estimación de los
parámetros del modelo y su interpretación
i) Contrastar la significación del modelo propuesto
j) ¿Puede eliminarse alguna variable del modelo? Realiza los contrastes de
significación individuales
k) Coeficiente de determinación

Ejercicio Guiado (Resuelto)


a) Crea 4 vectores numéricos, de manera que cada uno contenga los datos de una
columna y un data frame llamado Cereales con los 4 vectores que acabas de crear
> ventas <- c(10,12,11,13,12,14,16,12,14,11,10,19,8.5,8,9,13,16,18,20,22)

> tv <- c(13,14,15,17,17.5,13,14.5,9,8,9,8,10,17,18,18.5,19,20,20,13,14)

> radio <-c(56,55,60,65,69,67,68,67,97,66,65,60,70,110,75,80,85,90,56,55)


> periodicos <- c(40,40,42,50,40,44,40,44,46,46,45,110,30,50,45,40,80,90,90, 110)
> cereales <- [Link](ventas, tv, radio, periodicos)

Comprobemos que los datos se han guardado correctamente

> cereales
  ventas tv radio periodicos
1    10.0 13.0    56         40
2    12.0 14.0    55         40
3    11.0 15.0    60         42
4    13.0 17.0    65         50
5    12.0 17.5    69         40
6    14.0 13.0    67         44
7    16.0 14.5    68         40
8    12.0  9.0    67         44
9    14.0  8.0    97         46
10   11.0  9.0    66         46
11   10.0  8.0    65         45
12   19.0 10.0    60        110
13    8.5 17.0    70         30
14    8.0 18.0   110         50
15    9.0 18.5    75         45
16   13.0 19.0    80         40
17   16.0 20.0    85         80
18   18.0 20.0    90         90
19   20.0 13.0    56         90
20   22.0 14.0    55        110
Otra opción es, Seleccionar en el menú principal: Session/Set Working Directory/Choose
Directory (Ctrl+Shift+H) y en la Consola de RStudio se muestra la siguiente orden:
> setwd(“F:/Desktop/EJEMPLOSRS3”)
A continuación leemos el fichero utilizando [Link]
> cereales <- [Link](“F:/Desktop/EJEMPLOSRS3/[Link]”, header = TRUE).
b) Representa el diagrama de dispersión de las ventas y la publicidad en tv

> plot(cereales$ventas, cereales$tv)


Figura 10: Diagrama de
Dispersión
c) Escribe la recta de regresión lineal que surge de considerar las  ventas como
variable dependiente y la publicidad en tv como  variable independiente

> reg_lin <- lm(ventas ~ tv, data = cereales)


> reg_lin
Call:
  lm(formula = ventas ~ tv, data = cereales)
Coefficients:
  (Intercept)           tv  
14.02705     -0.04188

Por tanto, la recta de regresión es:

ventasi = 14.0275 -0.04188 tvi


d) ¿Son significativos los dos parámetros anteriores? ¿Qué puede decirse del ajuste
del modelo a los datos?
> summary(reg_lin)
Call:
  lm(formula = ventas ~ tv, data = cereales)
Residuals:
  Min      1Q  Median      3Q     Max
-5.2732 -2.8582 -0.8046  2.6378  8.5593
Coefficients:
  Estimate Std. Error t value Pr(>|t|)    
(Intercept) 14.02705    3.47625   4.035 0.000777 ***
  tv          -0.04188    0.23342  -0.179 0.859609    

  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 4.063 on 18 degrees of freedom
Multiple R-squared:  0.001785,    Adjusted R-squared:  -0.05367
F-statistic: 0.03219 on 1 and 18 DF,  p-value: 0.8596
Los p-valores asociados al contraste t de Student para ambos parámetros (0.000777 y
0.859609). El intercepto tiene un p-valor menor que 0.05, por lo es significativamente
distintos de 0 y  el p-valor correspondiente al parámetro publicidad en tv tiene un p-valor
mayor que 0.05, por lo tanto no es significativamente distintos de 0.

Por otra parte, el valor de R² (0.001785) nos lleva a concluir que el ajuste del modelo a los
datos es muy malo.
e) ¿Cuál sería la recta de regresión en el caso de que se considere un modelo de
regresión lineal simple sin constante?
> reg_lin2 <- lm(ventas ~ 0 + tv, data = cereales)
> reg_lin2
Call:
  lm(formula = ventas ~ 0 + tv, data = cereales)
Coefficients:
  tv  
0.8673

En este caso, el modelo sería:   ventasi = 0.8673 tvi


f) Calcula el coeficiente de correlación lineal de Pearson entre ambas variables. ¿Es
significativa esta correlación?
> [Link](cereales$ventas, cereales$tv)
Pearson’s product-moment correlation
data:  cereales$ventas and cereales$tv
t = -0.17942, df = 18, p-value = 0.8596
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.4758758  0.4078947
sample estimates:
cor
-0.04225282
Puesto que el p-valor del contraste es de 0.8596 y, por lo tanto, mayor que 0.05, podemos
concluir que la correlación no es significativa, y podría considerarse 0.
g) ¿Cuál sería la recta de regresión lineal si se incluye la publicidad en radio como
variable independiente?
> reg_lin_mul <- lm(ventas ~ tv + radio, data = cereales)
> reg_lin_mul

Call:
lm(formula = ventas ~ tv + radio, data = cereales)
Coefficients:
(Intercept)           tv        radio
17.38543      0.03823     -0.06370

En este caso, la recta de regresión lineal múltiple podría escribirse


como: ventasi = 17.38543 + 0.03823 tvi – 0.06370 radioi
h) Ajustar un modelo de regresión lineal múltiple. Obtener una estimación de los
parámetros del modelo y su interpretación

> reg_lin_mul2 <- lm(ventas ~ tv + radio + periodicos, data = cereales)


> reg_lin_mul2
Call:
lm(formula = ventas ~ tv + radio + periodicos, data = cereales)
Coefficients:
(Intercept)           tv        radio   periodicos
8.775929    -0.008508    -0.038358     0.133460

La ecuación de la recta de regresión ajustada es: ventasi = 8.775929 – 0.008508 tvi  –


0.038358 radioi + 0.133460 periodicosi
Las ventas estimadas son de 8775.929 euros si no se produce inversión en ninguno de los
tres tipos de publicidad.
Por cada mil euros invertidos en publicidad en televisión las ventas esperadas disminuyen
en 8.508 euros, supuesto que permanecen constantes las otras variables
Por cada mil euros invertidos en publicidad en radio las ventas esperadas disminuyen
en 38.358 euros, supuesto que permanecen constantes las otras variables
Por cada mil euros invertidos en publicidad en periódicos las ventas esperadas aumentan
en 133.460 euros, supuesto que permanecen constantes las otras variables.

A la vista de estos resultados parece únicamente recomendable la publicidad en periódicos.

i) Contrastar la significación del modelo propuesto


> summary(reg_lin_mul2)
Call:
  lm(formula = ventas ~ tv + radio + periodicos, data = cereales)
Residuals:
  Min      1Q  Median      3Q     Max
-3.0764 -1.5515  0.0564  0.9941  4.6174
Coefficients:
  Estimate Std. Error t value Pr(>|t|)    
(Intercept)  8.775929   2.967301   2.958  0.00926 **
  tv          -0.008508   0.133711  -0.064  0.95005    
radio       -0.038358   0.036079  -1.063  0.30349    
periodicos   0.133460   0.020365   6.554 6.64e-06 ***
 —
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.187 on 16 degrees of freedom
Multiple R-squared:  0.7428,    Adjusted R-squared:  0.6946
F-statistic:  15.4 on 3 and 16 DF,  p-value: 5.61e-05
 Mediante los contrastes de hipótesis:

podemos determinar si los efectos de la constante y de las variables independientes son


realmente importantes para explicar la variable dependiente o si, por el contario, pueden
considerarse nulos.

En nuestro ejemplo, el p-valor 5.61e-05 es menor que 0.05. Considerando un nivel del


significación del 5%, rechazamos la hipótesis nula, de manera que podemos suponer que al
menos una de las variables independiente contribuye de forma significativa a la
explicación de la variable respuesta.

j) ¿Puede eliminarse alguna variable del modelo? Realiza los contrastes de


significación individuales 
Realizamos tres contrastes de hipótesis, uno para cada coeficiente de cada variable
explicativa

Los p-valores asociados a cada uno de los contrastes de las


variable independientes son 0.95005, 0.30349 y 6.64e-06 para publicidad en tv, radio y
periódicos, respectivamente. Los p-valores para publicidad en tv y en radio son mayores
que 0.05, por lo que no rechazamos la hipótesis nula de significación de ambas variables.
Estas variables no son válidas para predecir las ventas de cereales y por tanto las
eliminamos del estudio
k) Coeficiente de determinación
El coeficiente de determinación es igual a 0.7428 y el coeficiente de determinación
corregido es  0.6946. En este caso no se aprecian grandes diferencias entre ambos
coeficientes. El 74.28% de la variación en las ventas de cereales se explican por su
relación lineal con el modelo propuesto. Este valor del 74.28% lo podemos considerar
satisfactorio.

Solución:

ventas <- c(10,12,11,13,12,14,16,12,14,11,10,19,8.5,8,9,13,16,18,20,22)


tv <- c(13,14,15,17,17.5,13,14.5,9,8,9,8,10,17,18,18.5,19,20,20,13,14)
radio <-c(56,55,60,65,69,67,68,67,97,66,65,60,70,110,75,80,85,90,56,55)
periodicos <- c(40,40,42,50,40,44,40,44,46,46,45,110,30,50,45,40,80,90,90, 110)
cereales <- [Link](ventas, tv, radio, periodicos)
cereales
plot(cereales$ventas,cereales$tv)
reg_lin <- lm(ventas ~ tv, data = cereales)
reg_lin
summary(reg_lin)
reg_lin2 <- lm(ventas ~ 0 + tv, data = cereales)
reg_lin2
cor(cereales$ventas, cereales$tv)
[Link](cereales$ventas, cereales$tv)
reg_lin_mul <- lm(ventas ~ tv + radio, data = cereales)
reg_lin_mul
reg_lin_mul2 <- lm(ventas ~ tv + radio + periodicos, data = cereales)
reg_lin_mul2
summary(reg_lin_mul2)

Ejercicios Propuestos
Ejercicio Propuesto
Con el objetivo de realizar un estudio de mercado sobre el precio de los pisos, se
seleccionan de forma aleatoria una muestra estratificada representativa de los
distintos barrios de una ciudad. Los datos sobre el precio de los pisos en miles de
euros, la superficie en m² y la antigüedad del inmueble en años, se muestran en la
siguiente tabla.

 Tabla4. Datos del Ejemplo Propuesto 1

Precio Superficie Antigüedad


250 120 15
130 80 20
165 100 30
310 180 15
320 190 12
400 250 40
200 99 30
80 90 27
69 60 14
179 100 20
120 110 22
223 120 25
300 180 21
198 130 33
165 90 5
69 50 12
73 60 6
123 70 10
356 120 28
183 130 30

Se pide:
a) Crear un data frame de nombre pisos que almacene los datos del ejemplo
propuesto
b) Dibujar el diagrama de dispersión de las variables precio y superficie y determinar
si puede existir una cierta relación lineal entre ambas
c) ¿Cuál es la recta de regresión lineal simple que considera a la precio como variable
dependiente y a la superficie como variable independiente? Interpreta los parámetros
de esa recta
d) ¿Son significativos estos parámetros? ¿Qué puede decirse del ajuste del modelo a
los datos?
e) ¿Cuál es la correlación lineal de Pearson entre ambas variables? ¿Es significativa?
f) ¿Cuál es la recta de regresión lineal si se considera también como variable
independiente la antigüedad?
g) Ajustar un modelo de regresión lineal múltiple. Obtener una estimación de los
parámetros del modelo y su interpretación
h) Contrastar la significación del modelo propuesto
i) ¿Puede eliminarse alguna variable del modelo? Razona la respuesta
j) Coeficiente de determinación y de determinación corregido. Interpretación

k) Calcular los valores de las estimaciones  ,  y     en el modelo de regresión: 

Ejercicio Propuesto (Resuelto)


 a) Crear un data frame de nombre pisos que almacene los datos del ejemplo
propuesto
> pisos
precio superficie antiguedad
1     250        120         15
2     130         80         20
3     165        100         30
4     310        180         15
5     320        190         12
6     400        250         40
7     200         99         30
8      80         90         27
9      69         60         14
10    179        100         20
11    120        110         22
12    223        120         25
13    300        180         21
14    198        130         33
15    165         90          5
16     69         50         12
17     73         60          6
18    123         70         10
19    356        120         28
20    183        130         30
b) Dibujar el diagrama de dispersión de las variables precio y superficie y determinar
si puede existir una cierta relación lineal entre ambas

En el gráfico se aprecia un cierto patrón lineal entre las variables, aunque esto debe
confirmarse mediante métodos analíticos.

c) ¿Cuál es la recta de regresión lineal simple que considera a la precio como variable
dependiente y a la superficie como variable independiente? Interpreta los parámetros
de esa recta
Call:
lm(formula = precio ~ superficie, data = pisos)
Coefficients:
(Intercept) superficie
-7.813 1.747
La recta de regresión lineal simple es: precio = -7.813 + 1.747 superficie

Los dos parámetros de la recta se interpretan del siguiente modo: -7.8136 es el precio
esperado para un piso que tiene 0 de superficie (que no tiene ningún sentido). Por otra
parte, por cada metro cuadrado de incremento en la superficie de un piso, se espera un
aumento en el precio del piso de 1747 euros.

d) ¿Son significativos estos parámetros? ¿Qué puede decirse del ajuste del modelo a
los datos?
Call:
lm(formula = precio ~ superficie, data = pisos)
Residuals:
Min 1Q Median 3Q Max
-69.436 -25.020 -3.061 12.960 154.147
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -7.8131 27.5629 -0.283 0.78
superficie 1.7472 0.2181 8.012 2.4e-07 ***

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 47.92 on 18 degrees of freedom
Multiple R-squared: 0.781, Adjusted R-squared: 0.7688
F-statistic: 64.19 on 1 and 18 DF, p-value: 2.399e-07
Considerando un nivel de significación del 5%, sólo es significativamente distintos de 0 el
parámetro superficie, ya que su p-valor (2.4e-07 ) es inferior a  0.05.
El ajuste del modelo a los datos es aceptable, ya que el valor de R² es de 0.781
e) ¿Cuál es la correlación lineal de Pearson entre ambas variables? ¿Es significativa?
Pearson’s product-moment correlation
data:  pisos$precio and pisos$superficie
t = 8.012, df = 18, p-value = 2.399e-07
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.7245916 0.9534095
sample estimates:
     cor
0.883743
El coeficiente de correlación lineal de Pearson entre las dos variables es de 0.883743
Con un p-valor de 2.399e-07 < 0.05, rechazamos la hipótesis de que el coeficiente de
correlación lineal de Pearson entre ambas variables pueda considerarse 0.
f) ¿Cuál es la recta de regresión lineal si se considera también como variable
independiente la antigüedad?
Call:
  lm(formula = precio ~ antiguedad, data = pisos)
Coefficients:
  (Intercept)   antiguedad  
110.423        4.107 
En este caso, la recta de regresión lineales: precio = 110.423 + 4.107 antiguedad
g) Ajustar un modelo de regresión lineal múltiple. Obtener una estimación de los
parámetros del modelo y su interpretación
Call:
  lm(formula = precio ~ superficie + antiguedad, data = pisos)
Coefficients:
  (Intercept)   superficie   antiguedad  
-6.82133      1.75516     -0.09239 
En este caso, la recta de regresión lineal múltiple es: precio = -6.82133 + 1.75516
superficie – 0.09239 antiguedad
h) Contrastar la significación del modelo propuesto
Coefficients:
  Estimate Std. Error t value Pr(>|t|)    
(Intercept) -6.82133   31.73892  -0.215    0.832    
superficie   1.75516    0.25176   6.972 2.25e-06 ***
  antiguedad  -0.09239    1.32791  -0.070    0.945    

  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 49.3 on 17 degrees of freedom
Multiple R-squared:  0.7811,    Adjusted R-squared:  0.7553
F-statistic: 30.32 on 2 and 17 DF,  p-value: 2.47e-06
El único parámetro significativamente distinto de cero es superficie (P-valor = 2.25e-06)
i) ¿Puede eliminarse alguna variable del modelo? Razona la respuesta
Se puede eliminar la variable antiguedad ya que su p-valor  es 0.945 > α = 0.05, por lo que
no rechazamos la hipótesis nula de significación de dicha variable. Esta variable no es
válida para predecir el precio de los pisos
j) Coeficiente de determinación y de determinación corregido. Interpretación
El coeficiente de determinaciónes 0.7811 y el de determinación corregido es 0.7553. No se
aprecian grandes diferencias entre ambos coeficientes.

El 78.11% de la variación en el precio de los pisos se explican por su relación lineal con el
modelo propuesto. El valor de este coeficiente es satisfactorio.

k) Calcular los valores de las estimaciones  ,  y     en el modelo de regresión: 

Call:
  lm(formula = precio ~ superficie + antiguedad^2, data = pisos)
Coefficients:
  (Intercept)   superficie   antiguedad  
-6.82133      1.75516     -0.09239 

En este caso, el modelo de regresión cuadrático puede escribirse del siguiente modo:

precio = -6.82133 + 1.75516 superficie – 0.09239 antigüedad

Solución del Ejercicio Propuesto


precio <- c(250, 130, 165, 310, 320, 400, 200, 80, 69, 179, 120, 223,
300, 198, 165, 69, 73, 123, 356, 183)
superficie <- c(120, 80, 100, 180, 190, 250, 99, 90, 60, 100, 110, 120,
180, 130, 90, 50, 60, 70, 120, 130)
antiguedad <-c(15, 20, 30, 15, 12, 40, 30, 27, 14, 20, 22, 25, 21, 33, 5,
12, 6, 10, 28, 30)
pisos <- [Link](precio, superficie, antiguedad)
pisos
plot(pisos$precio,pisos$superficie)
reg_lin <- lm(precio ~ superficie, data = pisos)
reg_lin
summary(reg_lin)
cor(pisos$precio, pisos$superficie)
reg_lin2 <- lm(ventas ~ 0 + tv, data = cereales)
reg_lin2
cor(pisos$precio, pisos$superficie)
[Link](pisos$precio, pisos$superficie)
reg_lin1 <- lm(precio ~ antiguedad, data = pisos)
reg_lin1
reg_lin_mul <- lm(precio ~ superficie + antiguedad, data = pisos)
reg_lin_mul
summary(reg_lin_mul)
reg_lin_mul2 <- lm(precio ~ superficie + antiguedad^2, data = pisos)
reg_lin_mul2

También podría gustarte