Está en la página 1de 41

21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

Modelos Regresión Lineal para predecir el


precio de viviendas
Minería de Datos y Modelización Predictiva
20/1/2020

Introducción y esquema de trabajo


A lo largo de este documento se desarrolla el procedimiento básico para enfrentarse a un análisis de Regresión
Lineal cuando los datos de entrada se encuentran previamente depurados. Se puede esquematizar el proceso como
sigue:

1. Preparación de archivos y creación de variables aleatorias de control


2. Estudio descriptivo de relaciones de las variables
Relaciones de predictores con la variable objetivo
Relaciones entre los predictores
3. Tranformaciones de Variables para conseguir linealidad frente a la variable objetivo.
4. Análisis de modelos manuales de Regresión Lienal bajo el esquema training/test
Método hacia delante manual
Método hacia atrás manual
5. Comparación de los mejores modelos bajo el esquema de validación cruzada repetida.
6. Elección del modelo final
Evaluación
Interpretación

Preámbulo y lectura de datos


En primer lugar fijaremos el directorio de trabajo en el que tenemos los datos y las funciones para, a continuación,
cargar funciones y leer el conjunto de datos. En este documento, damos por depurado el archivo de entrada, ya que
esta fase ya fue completada previamente.

# Directorio de trabajo
setwd('C:/Users/Guille/Desktop/Master_Big_Data_Comercio_2020/Material para el campus/Matarial Camp
us Parte I')

# Cargo las funciones que voy a utilizar despu?s


source("Funciones_R.R")

# Cargo las librerias que me van a hacer falta (la función


# paquetes está en Funciones_R la ventaja es que instala el
# paquete en caso de necesidad)
paquetes(c('corrplot','caret','ggplot2','lmSupport','questionr','psych'))

## Loading required package: corrplot

## corrplot 0.84 loaded

## Loading required package: caret

## Loading required package: lattice

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 1/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

## Loading required package: ggplot2

## Loading required package: lmSupport

## Registered S3 methods overwritten by 'lme4':


## method from
## cooks.distance.influence.merMod car
## influence.merMod car
## dfbeta.influence.merMod car
## dfbetas.influence.merMod car

## Loading required package: questionr

## Loading required package: psych

##
## Attaching package: 'psych'

## The following object is masked from 'package:questionr':


##
## describe

## The following objects are masked from 'package:ggplot2':


##
## %+%, alpha

# Lectura del archivo previamente depurado


datos<-readRDS("datosViviendaDep")
str(datos)

## 'data.frame': 5000 obs. of 19 variables:


## $ varObjBin : Factor w/ 2 levels "0","1": 2 2 2 2 1 1 1 2 1 2 ...
## $ varObjCont : num 653450 710000 780000 795000 399950 ...
## $ year : Factor w/ 2 levels "2014","2015": 1 1 1 1 1 1 1 1 1 1 ...
## $ month : num 7 6 10 12 10 6 7 6 6 7 ...
## $ bedrooms : Factor w/ 5 levels "0-1","2","3",..: 3 2 4 3 3 2 3 3 3 4 ...
## $ bathrooms : Factor w/ 6 levels "0","1","1.5",..: 5 3 6 6 4 2 5 5 4 6 ...
## $ sqft_living : num 2070 1640 3720 2260 2050 930 2000 3350 2000 5010 ...
## $ sqft_lot : num 2982 16200 33503 35120 6833 ...
## $ floors : Factor w/ 4 levels "1","1.5","2",..: 1 2 1 3 1 1 3 3 1 3 ...
## $ waterfront : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ view : Factor w/ 2 levels "0","1": 1 1 2 1 1 1 1 1 1 2 ...
## $ condition : Factor w/ 4 levels "A","B","C","D": 3 1 2 2 1 2 3 2 3 2 ...
## $ sqft_above : num 1540 1540 3720 1880 1170 930 2000 2550 1300 4000 ...
## $ basement : Factor w/ 2 levels "0","1": 2 2 1 2 2 1 1 2 2 2 ...
## $ yr_built : num 1980 1916 2007 2003 1960 ...
## $ lat : num 47.6 47.7 47.3 47.6 47.7 ...
## $ long : num -122 -122 -122 -122 -122 ...
## $ yr_renovated_bin: Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ prop_missings : num 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625
...

Controlamos que no haya cosas raras de lectura de datos por si acaso. En este caso parece que todo es correcto.

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 2/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

Nota: En la fase de depuración previa, no es mala idea dejar las variables de naturaleza categórica en su estado
original para poder recodificarla de otra forma (que la ya decidida) en caso de necesidad.

Preparación de archivos de estudio y creación de


variables aleatorias de control
En esta primera etepa separaremos las variables objetivo de los predictores de cara a la automatización del proceso
de transformación de variables.

Un buen truco para evaluar la influencia o capacidad de discriminación de los predictores sobre las respuestas es la
generación de variables aleatorias. Una variable aleatoria no debe tener influencia alguna sobre la variable objetivo,
si se observa alguna relación puede ser espúrea o debida al puro azar. Teniendo esto en cuenta, si se observan
predictores con menos capacidad de discriminación que las variables aleatorias generadas, sospecharemos que no
es relevante para explicar la variabilidad de la variable objetivo.

# Separo las variables objetivo y genero el archivo de características input


varObjCont<-datos$varObjCont
varObjBin<-datos$varObjBin
input<-datos[,-(1:2)]

# Creo la variable aleatoria


input$aleatorio<-runif(nrow(input))
input$aleatorio2<-runif(nrow(input))

Análisis descriptivo de asociación entre pares de


variables
Para tener una idea inicial de la infuencia de las variables predictoras sobre la respuesta, el primer paso es un
análisis descriptivo de asociación entre variables.

En general,

Relaciones nominal-nominal –> Análisis Chi-Cuadrado y su extensión V d Cramer


Relaciones continua-continua –> Análisis de correlaciones. Posibilidad: Vcramer tramificando variables
Relaciones continua-nominal –> Estudio de medias de la continua por grupos de la nominal(tpo ANOVA).
Posibilidad de utilizar VCramer tramificando la continua

Hay que tener en cuenta que, cuando estudiamos la relación entre dos variables cuantitativas en términos de la
correlación, las posibles relaciones no lienales no serán captadas adecuadamente.

Para poder intuir la existencia de estas relaciones no lineales se puede optar por transformar la variable (apartado
de transformaciones) o bien discretizar la variable por tramos y realizar un estudio de tipo χ 2 /V de Cramer.

Recordemos por un momento que estos estadísticos están basados en la distribución de las frecuencias de una
tabla de contingencia fruto del cruce entre dos variables nominales. Es por ello que carecen de orden lineal.

[
]

2
ni⋅ n⋅j
k l (nij − )
n
2
χ = ∑∑
ni⋅ n⋅j

i=1 j=1
n

Así, se comparan las distribuciones observadas de frecuecias en las casillas de la tabla y se comparan con las
esperadas dadas las distribuciones marginales de cada una de las variables. Este análisis permite capturar
relaciones no lienales entre variables cuantitativas y puede ser utilizado junto al análisis de correlación lineal y la
tranformación de variables.

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 3/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

Estadístico χ 2

El estadístico χ 2 toma valor 0 cuando las variables son independientes (no hay relación entre ellas).
Matemáticamente esto equivale a decir que las frecuencias relativas de los cruces de categorías sólo dependen de
las frecuencias relativas de las categorías:
nij ni⋅ n⋅j
fij = fi⋅ f⋅j , donde fij = fi⋅ = f⋅j =
n n n

Por lo tanto, las variables que estén fuertemente relacionadas tendrán un estadístico χ 2 alto. Sin embargo, este
estadístico no está limitado, por lo que resulta complicado determinar cuando está tomando un valor
significativamente alto.

Estadístico V de Cramer

El estadístico V de Cramer está basado en el estadístico χ 2 pero tiene la ventaja de que su valor está acotado
entre 0 y 1. Viene dado por:
−−−−−−−−−−−−−−−−−
2
χ
V = √
n × min(l − 1, k − 1)

Para obtener y representar la V de Cramer para todas las variables input, usamos la función:

En este apartado vamos a estudiar las relaciones con las variables objetivo continua y binaria.
VISUALIZACIÓN Y CUANTIFICACIÓN DE RELACIONES
La variable objetivo continua es nuestro target en Regresión Lineal
Predictores continuos
Visualizacion: Scatterplot/Nube de puntos.
Cuantificación: Correlaciones/Vcramer doble tramificado
Predictores categóricos
Visualizacion: Boxplot/Histograma.
Cuantificación: Diferencia de medias de target por grupos. Vcramer tramificando target.
La variable obejtivo binaria es nuetro target en Regresión Logística
Predictores continuos
Visualizacion: Boxplot/Histograma (target binaria).
Cuantificación: Diferencia de medias por grupos. VCramer tramificando continua
Predictores categóricos
Visualizacion: Mosaico/Barras (target binaria).
Cuantificación: VCramer

#Obtengo la importancia de las variables. Falla si hay alguna


# variable cuantitativa con menos de 6 valores diferentes
graficoVcramer(input,varObjBin)

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 4/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

graficoVcramer(input,varObjCont)

Se observa en el primer gráfico el ranking de importancia de predictores en relación al valor de la métrica V de


Cramer del cruce de cada uno de ellos con la variable objetivo continua. De esta forma, se puede intuir la fuerza de
las relaciones y, por tanto, decidir las variables candidatas a formar parte de los futuros modelos de regresión lineal.

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 5/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

Nota: Es conveniente utilizar varios métodos para explorar la asociación entre variables.

Variables que parecen relevantes (bajo este criterio) para explicar la variable objetivo continua Price:

1. sqft_above
2. sqft_living
3. waterfront
4. view
5. bathrooms

En el segundo gráfico aparece el ranking de importancia de predictores en relación al valor de la métrica V de


Cramer del cruce de cada uno de ellos con la variable objetivo binaria.

Variables que parecen relevantes (bajo este criterio) para explicar la variable objetivo binaria Luxury:

1. sqft_living
2. lat
3. sqft_above
4. bathrooms
5. bedrooms

De alguna manera, ambas variables miden lo mismo ya que el lujo se encuentra estrechamente ligado al precio en
casi todo, y así es en el mecado inmobiliario. Por tanto, no es descabellado pensar que los predictores relevantes
bajo este criterio para una de ellas, puedan serlo también de la otra. No sería mala idea considerarlos para los
modelos.

Seguidamente se muestran los gráficos de visualización de la posible influencia de los predictores categóricos sobre
la variable objetivo binaria.

#Veo gr?ficamente el efecto de dos variables cualitativas sobre la binaria


par(mfrow=c(1,2))
mosaico_targetbinaria(input$waterfront,varObjBin,"Vistas al mar") #esta influye
mosaico_targetbinaria(input$bedrooms,varObjBin,"Vistas") #esta influye

DORMITORIOS

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 6/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

barras_targetbinaria(input$waterfront,varObjBin,"Vistas al mar") #esta influye

barras_targetbinaria(input$bathrooms,varObjBin,"Vistas") #esta influye

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 7/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

Se puede observar que las distribuciones de las categorías de waterfront en las subpoblaciones de viviendas de lujo
(variable objetivo binaria con valor 1) y las no consideradas de lujo (valor 0), presentan serias diferencias. Esto
implica que se podría determinar el tipo de vivienda en función de los valores de esta variable. Este es el proceso de
estudio para todas las variables.

En lo concerniente a variables continuas, se presentan los boxplot/histogramas para algunas de ellas.

#Veo gr?ficamente el efecto de dos variables cuantitativas sobre la binaria


boxplot_targetbinaria(input$sqft_above,varObjBin,"Superficie sin sotano")

boxplot_targetbinaria(input$sqft_living,varObjBin,"Superficie del salón")

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 8/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

hist_targetbinaria(input$sqft_above,varObjBin,"Superficie sin sotano")

hist_targetbinaria(input$sqft_living,varObjBin,"Superficie del salón")

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 9/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

Por último, es neceario realizar un estudio descriptivo y visual de las correlaciones entre variables continuas, en
especial, las variable objetivo cuantitativa price.

#Todas las variables num?ricas frente a la objetivo continua


graficoCorrelacion(varObjCont,input) #Nos fijamos en la forma de las l?neas rojas

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 10/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

# (si hay muchas variables num?ricas, tarda un poco)


corrplot(cor(cbind(varObjCont,Filter(is.numeric, input)), use="pairwise",
method="pearson"), method = "number",type = "upper")

El análisis de correlación revela un ranking de relevancia de variables frente a Price:

1. sqft_living
2. sqft_above
3. lat
4. sqft_lot

Así mismo, salen a la luz ciertas relaciones lineales relevantes entre los propios predictores entre ellas,

1. sqft_living - sqft_above
2. sqft_avobe - year_built

Es posible que exita efecto de interacción entre las variables o de confusión entre ellas. Esto se puede refinar al
buscar los modelos.

Transformaciones de variables
En ocasiones, es posible linealizar la relación entre la variable objetivo y las input cuantitativas para que el modelo
aproveche mejor el poder predictivo de éstas. Para ello, podemos transformar dichas variables eligiendo entre
varias transformaciones aquella que maximice dicha relación, ya sea en términos del coeficiente de correlación (si la
variable objetivo es cuantitativa) o de la V de Cramer (si la variable objetivo es cualitativa).

#Busco las mejores transformaciones para las variables num?ricas con respesto a los dos tipos de v
ariables
input_cont<-cbind(input,Transf_Auto(Filter(is.numeric, input),varObjCont))

# Cuento el número de valores diferentes para las numéricas


sapply(Filter(is.numeric, input)[,-ncol(Filter(is.numeric, input))],function(x) length(unique(x)))

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 11/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

## month sqft_living sqft_lot sqft_above yr_built


## 12 568 2880 526 116
## lat long prop_missings aleatorio
## 2985 600 3 5000

input_bin<-cbind(input,Transf_Auto(Filter(is.numeric, input)[,-8],varObjBin)) # Quito proporción d


e
## missings que da problemas puesto que solo toma 3 valores distintos y está considerada como numé
rica.
## por aquello de la v de cramer y sus problemillas con este tipo de variables

## Guardar conjuntos de datos para regresión lineal y logística.


saveRDS(data.frame(input_bin,varObjBin),"todo_bin_V")
saveRDS(data.frame(input_cont,varObjCont),"todo_cont_v")

Analisis exploratorio de modelos con el método


train/test
## Comienzo con la regresi?n lineal
todo<-data.frame(input,varObjCont)

#Obtengo la partici?n
set.seed(3465676)
trainIndex <- createDataPartition(todo$varObjCont, p=0.8, list=FALSE)
data_train <- todo[trainIndex,]
data_test <- todo[-trainIndex,]

Una vez genearados los conjuntos de training y test, se pueden seguir varias estrategias.

En primer lugar, partiendo de un modelo de regresión lineal completo con todas las variables originales, se valora el
R2 ajustado y nuestro objetivo será simplificar el modelo al máximo sin perder mucha precisión. Para ello:

Hacia delante: Empezar con las variables que parecen más relevantes en el análisis descriptivo y en el propio
modelo. Una a una, viendo el posible efecto de interacción o confusión entre ellas (si al introducir una
variable, el parámetro de una ya existente cambia significativamente, es posible que exista efecto cojunto)…
Añadiremos efectos hasta que no se produzca mejora en las métricas (r2, AIC,BIC..)
Hacia atras: Se van eliminando paulatinamente efectos no significativos en el modelo (teniendo en cuenta la
información del estudio descriptivo), evaluando los cambios producidos en parámetros hasta llegar a una
disminución significativa de las métricas de evaluación (r2, AIC,BIC..)

Es conveniente repetir el proceso con las variables continuas transformadas.

Ene ste caso vamos a desarrollar un proceso hacia delante.

#Construyo un modelo preliminar con todas las variables


modeloCompleto<-lm(varObjCont~.,data=data_train)
summary(modeloCompleto)

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 12/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ ., data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1002249 -107936 -9748 79475 5464598
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.564e+07 4.314e+06 -10.580 < 2e-16 ***
## year2015 2.636e+04 1.288e+04 2.046 0.040835 *
## month -1.855e+03 1.914e+03 -0.969 0.332386
## bedrooms2 -4.129e+04 3.976e+04 -1.038 0.299157
## bedrooms3 -9.342e+04 3.934e+04 -2.374 0.017623 *
## bedrooms4 -1.343e+05 4.022e+04 -3.340 0.000846 ***
## bedrooms5+ -1.185e+05 4.203e+04 -2.819 0.004835 **
## bathrooms1 1.663e+04 2.583e+04 0.644 0.519665
## bathrooms1.5 -4.151e+02 2.744e+04 -0.015 0.987931
## bathrooms2 1.458e+03 2.463e+04 0.059 0.952806
## bathrooms2.5 3.621e+03 2.450e+04 0.148 0.882484
## bathrooms3+ 6.288e+04 2.597e+04 2.422 0.015499 *
## sqft_living 7.259e+01 1.704e+01 4.260 2.09e-05 ***
## sqft_lot 2.540e+00 7.173e-01 3.541 0.000403 ***
## floors1.5 -1.091e+04 1.506e+04 -0.724 0.468809
## floors2 1.091e+04 1.272e+04 0.858 0.391124
## floors2+ 8.834e+04 2.270e+04 3.891 0.000101 ***
## waterfront1 5.415e+05 4.615e+04 11.733 < 2e-16 ***
## view1 1.747e+05 1.449e+04 12.055 < 2e-16 ***
## conditionB -6.587e+04 1.534e+04 -4.295 1.79e-05 ***
## conditionC -4.547e+04 1.554e+04 -2.925 0.003463 **
## conditionD -1.866e+05 1.204e+05 -1.550 0.121222
## sqft_above 2.309e+02 1.888e+01 12.232 < 2e-16 ***
## basement1 1.180e+05 1.477e+04 7.989 1.76e-15 ***
## yr_built -1.279e+03 2.094e+02 -6.107 1.11e-09 ***
## lat 6.429e+05 2.891e+04 22.240 < 2e-16 ***
## long -1.441e+05 3.258e+04 -4.422 1.01e-05 ***
## yr_renovated_bin1 5.351e+04 2.028e+04 2.639 0.008356 **
## prop_missings 2.709e+05 1.624e+05 1.668 0.095456 .
## aleatorio -8.292e+03 1.302e+04 -0.637 0.524376
## aleatorio2 1.240e+04 1.303e+04 0.952 0.341361
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 237700 on 3970 degrees of freedom
## Multiple R-squared: 0.6026, Adjusted R-squared: 0.5996
## F-statistic: 200.7 on 30 and 3970 DF, p-value: < 2.2e-16

Rsq(modeloCompleto,"varObjCont",data_train)

## $r2
## [1] 0.6026232
##
## $r2_adj
## [1] 0.5995195

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 13/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

Rsq(modeloCompleto,"varObjCont",data_test) #En test hay bastante diferencia, seguramente sobren va


riables

## $r2
## [1] 0.6820786
##
## $r2_adj
## [1] 0.6718867

# Nos fijamos en la importancia de las variables. Podemos sacar un gr?fico que muestra lo que se p
ierde en R2 en train al quitarlas del modelo
barplot(sort(modelEffectSizes(modeloCompleto)$Effects[-1,4],decreasing =T),las=2,main="Importancia
de las variables (R2)")

## lm(formula = varObjCont ~ ., data = data_train)


##
## Coefficients
## SSR df pEta-sqr dR-sqr
## (Intercept) 6.321694e+12 1 0.0274 NA
## year 2.363950e+11 1 0.0011 0.0004
## month 5.307905e+10 1 0.0002 0.0001
## bedrooms 2.380235e+12 4 0.0105 0.0042
## bathrooms 1.596967e+12 5 0.0071 0.0028
## sqft_living 1.024890e+12 1 0.0046 0.0018
## sqft_lot 7.083253e+11 1 0.0031 0.0013
## floors 9.440360e+11 3 0.0042 0.0017
## waterfront 7.775532e+12 1 0.0335 0.0138
## view 8.207863e+12 1 0.0353 0.0145
## condition 1.169177e+12 3 0.0052 0.0021
## sqft_above 8.450714e+12 1 0.0363 0.0150
## basement 3.605138e+12 1 0.0158 0.0064
## yr_built 2.106618e+12 1 0.0093 0.0037
## lat 2.793595e+13 1 0.1108 0.0495
## long 1.104227e+12 1 0.0049 0.0020
## yr_renovated_bin 3.932350e+11 1 0.0018 0.0007
## prop_missings 1.570779e+11 1 0.0007 0.0003
## aleatorio 2.289358e+10 1 0.0001 0.0000
## aleatorio2 5.114322e+10 1 0.0002 0.0001
##
## Sum of squared errors (SSE): 224220137365142.2
## Sum of squared total (SST): 564250727524675.2

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 14/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

colnames(todo)

## [1] "year" "month" "bedrooms" "bathrooms"


## [5] "sqft_living" "sqft_lot" "floors" "waterfront"
## [9] "view" "condition" "sqft_above" "basement"
## [13] "yr_built" "lat" "long" "yr_renovated_bin"
## [17] "prop_missings" "aleatorio" "aleatorio2" "varObjCont"

#[1] "year" "month" "bedrooms" "bathrooms" "sqft_living"


#[6] "sqft_lot" "floors" "waterfront" "view" "condition"
#[11] "sqft_above" "basement" "yr_built" "lat" "long"
#[16] "yr_renovated_bin" "prop_missings" "aleatorio" "aleatorio2" "varObjCont"

En el modelo completo existen varios efectos no significativos. El valor de R2 nos sirve de referencia para evaluar la
capacidad de los modelos más sencillos.

En el gráfico se puede observar el efecto sobre R2 de cada una de las variables en el modelo. Se observa una gran
influencia de la variable lat. Parece tan impresionante que vamos a crear un modelo simple con ella.

# Voy a ir poco a poco introduciendo variables


modelo0<-lm(varObjCont~lat,data=data_train)
summary(modelo0)

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 15/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ lat, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -548484 -185398 -78032 76830 6446838
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -38284795 1944649 -19.69 <2e-16 ***
## lat 816379 40887 19.97 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 358200 on 3999 degrees of freedom
## Multiple R-squared: 0.09066, Adjusted R-squared: 0.09043
## F-statistic: 398.7 on 1 and 3999 DF, p-value: < 2.2e-16

Rsq(modelo0,"varObjCont",data_train) # Bastante pobre...

## $r2
## [1] 0.09065516
##
## $r2_adj
## [1] 0.09020026

Rsq(modelo0,"varObjCont",data_test)

## $r2
## [1] 0.09086364
##
## $r2_adj
## [1] 0.08903806

Por si misma tiene efecto significativo pero explica muy poca variabilidad. Tal vez sea mejor empezar por otra
variable relevante en términos de V de Cramer como sqft_above.

# Voy a ir poco a poco introduciendo variables Minuto 34:24


modelo1<-lm(varObjCont~sqft_above,data=data_train)
summary(modelo1)

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 16/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ sqft_above, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -856247 -168489 -41012 111983 6483300
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 60835.115 11516.906 5.282 1.34e-07 ***
## sqft_above 269.982 5.858 46.091 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 303600 on 3999 degrees of freedom
## Multiple R-squared: 0.3469, Adjusted R-squared: 0.3468
## F-statistic: 2124 on 1 and 3999 DF, p-value: < 2.2e-16

Rsq(modelo1,"varObjCont",data_train) # Bastante pobre...

## $r2
## [1] 0.3469286
##
## $r2_adj
## [1] 0.3466019

Rsq(modelo1,"varObjCont",data_test)

## $r2
## [1] 0.3675198
##
## $r2_adj
## [1] 0.3662498

Minuto 35:25
# Ahora introducimos de nuevo lat
modelo2<-lm(varObjCont~lat+sqft_above,data=data_train)
summary(modelo2)

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 17/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ lat + sqft_above, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -796593 -145205 -30442 83383 6411308
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.863e+07 1.530e+06 -25.24 <2e-16 ***
## lat 8.135e+05 3.218e+04 25.28 <2e-16 ***
## sqft_above 2.697e+02 5.440e+00 49.59 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 281900 on 3998 degrees of freedom
## Multiple R-squared: 0.4369, Adjusted R-squared: 0.4367
## F-statistic: 1551 on 2 and 3998 DF, p-value: < 2.2e-16

Rsq(modelo2,"varObjCont",data_train) # Bastante pobre...

## $r2
## [1] 0.4369388
##
## $r2_adj
## [1] 0.4365162

Rsq(modelo2,"varObjCont",data_test)

## $r2
## [1] 0.4608969
##
## $r2_adj
## [1] 0.4592715

#Añado otra variable en orden de importancia Minuto 38:00


modelo3<-lm(varObjCont~lat+sqft_above+sqft_living,data=data_train)
summary(modelo3) ## Uy uy...huele a interacción!

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 18/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ lat + sqft_above + sqft_living, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -787505 -126600 -22903 78841 6497603
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.423e+07 1.439e+06 -23.790 < 2e-16 ***
## lat 7.192e+05 3.026e+04 23.768 < 2e-16 ***
## sqft_above 4.312e+01 1.056e+01 4.083 4.53e-05 ***
## sqft_living 2.357e+02 9.634e+00 24.464 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 262900 on 3997 degrees of freedom
## Multiple R-squared: 0.5103, Adjusted R-squared: 0.5099
## F-statistic: 1388 on 3 and 3997 DF, p-value: < 2.2e-16

#El parámetro de la variable anterior deja de ser significativo..


Rsq(modelo3,"varObjCont",data_train)

## $r2
## [1] 0.510268
##
## $r2_adj
## [1] 0.5097778

Rsq(modelo3,"varObjCont",data_test)

## $r2
## [1] 0.5900814
##
## $r2_adj
## [1] 0.5884318

Minuto 48:50
#Meto la interacción porque me da que va a tener efecto
modelo4<-lm(varObjCont~lat+sqft_above+sqft_living+sqft_above:sqft_living,data=data_train)
summary(modelo4) # Como se podía intuir...super significativa

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 19/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ lat + sqft_above + sqft_living + sqft_above:sqft_living,
## data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1405421 -113450 -21639 68001 6538355
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.272e+07 1.403e+06 -23.319 < 2e-16 ***
## lat 6.929e+05 2.949e+04 23.498 < 2e-16 ***
## sqft_above -1.080e+02 1.435e+01 -7.528 6.35e-14 ***
## sqft_living 1.351e+02 1.150e+01 11.742 < 2e-16 ***
## sqft_above:sqft_living 5.104e-02 3.383e-03 15.088 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 255800 on 3996 degrees of freedom
## Multiple R-squared: 0.5367, Adjusted R-squared: 0.5362
## F-statistic: 1157 on 4 and 3996 DF, p-value: < 2.2e-16

Rsq(modelo4,"varObjCont",data_train)

## $r2
## [1] 0.5366624
##
## $r2_adj
## [1] 0.5360825

Rsq(modelo4,"varObjCont",data_test) # Mejora sustancial

## $r2
## [1] 0.6089631
##
## $r2_adj
## [1] 0.6069942

Minuto 42:15
# Introducimos otra variable
modelo42<-lm(varObjCont~lat+sqft_above+sqft_living+sqft_above:sqft_living+waterfront,data=data_tra
in)
summary(modelo42) # Muy significativa

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 20/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ lat + sqft_above + sqft_living + sqft_above:sqft_living +
## waterfront, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1298903 -111426 -18988 69503 5789880
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.366e+07 1.360e+06 -24.751 < 2e-16 ***
## lat 7.125e+05 2.858e+04 24.930 < 2e-16 ***
## sqft_above -9.229e+01 1.393e+01 -6.626 3.92e-11 ***
## sqft_living 1.288e+02 1.115e+01 11.560 < 2e-16 ***
## waterfront1 7.466e+05 4.575e+04 16.320 < 2e-16 ***
## sqft_above:sqft_living 4.794e-02 3.282e-03 14.609 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 247700 on 3995 degrees of freedom
## Multiple R-squared: 0.5656, Adjusted R-squared: 0.5651
## F-statistic: 1040 on 5 and 3995 DF, p-value: < 2.2e-16

Rsq(modelo42,"varObjCont",data_train)

## $r2
## [1] 0.5656216
##
## $r2_adj
## [1] 0.564969

Rsq(modelo42,"varObjCont",data_test) # Mejora un poquito

## $r2
## [1] 0.6654695
##
## $r2_adj
## [1] 0.6634461

Minuto 43:38
# Introducimos otra variable
modelo5<-lm(varObjCont~lat+sqft_above+sqft_living+sqft_above:sqft_living+waterfront+view,data=data
_train)
summary(modelo5) # Muy significativa

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 21/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ lat + sqft_above + sqft_living + sqft_above:sqft_living +
## waterfront + view, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1347765 -106065 -17505 67631 5754770
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.402e+07 1.325e+06 -25.668 < 2e-16 ***
## lat 7.203e+05 2.785e+04 25.860 < 2e-16 ***
## sqft_above -6.145e+01 1.374e+01 -4.473 7.92e-06 ***
## sqft_living 8.905e+01 1.120e+01 7.952 2.36e-15 ***
## waterfront1 5.756e+05 4.609e+04 12.487 < 2e-16 ***
## view1 2.113e+05 1.446e+04 14.608 < 2e-16 ***
## sqft_above:sqft_living 4.766e-02 3.198e-03 14.903 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 241400 on 3994 degrees of freedom
## Multiple R-squared: 0.5877, Adjusted R-squared: 0.587
## F-statistic: 948.7 on 6 and 3994 DF, p-value: < 2.2e-16

Rsq(modelo5,"varObjCont",data_train)

## $r2
## [1] 0.5876518
##
## $r2_adj
## [1] 0.586929

Rsq(modelo5,"varObjCont",data_test) # Mejora un poquito

## $r2
## [1] 0.6901753
##
## $r2_adj
## [1] 0.6879868

Minuto 44:50
# Introducimos otra superficie en función de la latidud
modelo52<-lm(varObjCont~lat+sqft_above+sqft_living+sqft_above:sqft_living+waterfront+lat:sqft_abov
e+view,data=data_train)
summary(modelo52) # Muy significativa y no hay cambio en los parámetros..no interacción

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 22/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ lat + sqft_above + sqft_living + sqft_above:sqft_living +
## waterfront + lat:sqft_above + view, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1355072 -99858 -19325 67960 5754463
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.332e+07 3.413e+06 -3.904 9.60e-05 ***
## lat 2.850e+05 7.177e+04 3.971 7.27e-05 ***
## sqft_above -1.184e+04 1.791e+03 -6.609 4.37e-11 ***
## sqft_living 9.338e+01 1.116e+01 8.368 < 2e-16 ***
## waterfront1 5.694e+05 4.586e+04 12.417 < 2e-16 ***
## view1 2.123e+05 1.439e+04 14.755 < 2e-16 ***
## sqft_above:sqft_living 4.486e-02 3.209e-03 13.978 < 2e-16 ***
## lat:sqft_above 2.477e+02 3.767e+01 6.575 5.49e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 240100 on 3993 degrees of freedom
## Multiple R-squared: 0.5921, Adjusted R-squared: 0.5914
## F-statistic: 827.9 on 7 and 3993 DF, p-value: < 2.2e-16

Rsq(modelo52,"varObjCont",data_train)

## $r2
## [1] 0.5920686
##
## $r2_adj
## [1] 0.5912511

Rsq(modelo52,"varObjCont",data_test) # Mejora un poquito

## $r2
## [1] 0.6944474
##
## $r2_adj
## [1] 0.6919783

Minuto 46:38
# Introducimos las categóricas influyentes
modelo7<-lm(varObjCont~lat+sqft_above+sqft_living+sqft_above:sqft_living+waterfront+lat:sqft_above
+view+bathrooms,data=data_train)
summary(modelo7) # Muy significativa y no hay cambio en los parámetros..no interacción

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 23/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ lat + sqft_above + sqft_living + sqft_above:sqft_living +
## waterfront + lat:sqft_above + view + bathrooms, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1323300 -100525 -18503 68810 5708176
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.357e+07 3.409e+06 -3.981 6.98e-05 ***
## lat 2.904e+05 7.168e+04 4.051 5.19e-05 ***
## sqft_above -1.147e+04 1.791e+03 -6.402 1.72e-10 ***
## sqft_living 7.901e+01 1.282e+01 6.164 7.81e-10 ***
## waterfront1 5.728e+05 4.580e+04 12.506 < 2e-16 ***
## view1 2.090e+05 1.439e+04 14.527 < 2e-16 ***
## bathrooms1 5.828e+03 2.557e+04 0.228 0.820
## bathrooms1.5 5.431e+03 2.758e+04 0.197 0.844
## bathrooms2 1.555e+04 2.471e+04 0.629 0.529
## bathrooms2.5 1.484e+04 2.446e+04 0.607 0.544
## bathrooms3+ 6.559e+04 2.579e+04 2.544 0.011 *
## sqft_above:sqft_living 4.520e-02 3.555e-03 12.715 < 2e-16 ***
## lat:sqft_above 2.399e+02 3.767e+01 6.368 2.13e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 239600 on 3988 degrees of freedom
## Multiple R-squared: 0.5942, Adjusted R-squared: 0.5929
## F-statistic: 486.5 on 12 and 3988 DF, p-value: < 2.2e-16

Rsq(modelo7,"varObjCont",data_train)

## $r2
## [1] 0.594157
##
## $r2_adj
## [1] 0.5928337

Rsq(modelo7,"varObjCont",data_test) # Mejora un poquito

## $r2
## [1] 0.6967681
##
## $r2_adj
## [1] 0.6927661

# Hay que ver que pasa con esta..


modeloBath<-lm(varObjCont~bathrooms,data=data_train)
summary(modeloBath)

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 24/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ bathrooms, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -649272 -174272 -50531 98058 6183228
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 493256 32302 15.270 < 2e-16 ***
## bathrooms1 -148314 34536 -4.295 1.79e-05 ***
## bathrooms1.5 -92236 38119 -2.420 0.0156 *
## bathrooms2 -31725 34216 -0.927 0.3539
## bathrooms2.5 65377 33599 1.946 0.0518 .
## bathrooms3+ 386015 34595 11.158 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 332600 on 3995 degrees of freedom
## Multiple R-squared: 0.2169, Adjusted R-squared: 0.2159
## F-statistic: 221.3 on 5 and 3995 DF, p-value: < 2.2e-16

# Probaré alguna intetacción sobre esta


Minuto 54:00
modelo8<-lm(varObjCont~lat+sqft_above+sqft_living+sqft_above:sqft_living+waterfront+lat:sqft_above
+view+bathrooms+bathrooms:waterfront,data=data_train)
summary(modelo8) # Bastante significativas las interacciones..

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 25/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ lat + sqft_above + sqft_living + sqft_above:sqft_living +
## waterfront + lat:sqft_above + view + bathrooms + bathrooms:waterfront,
## data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1395492 -100317 -19672 68698 5172808
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.312e+07 3.370e+06 -3.894 0.0001 ***
## lat 2.810e+05 7.086e+04 3.965 7.45e-05 ***
## sqft_above -1.138e+04 1.771e+03 -6.427 1.46e-10 ***
## sqft_living 8.031e+01 1.266e+01 6.346 2.46e-10 ***
## waterfront1 1.116e+06 6.986e+04 15.970 < 2e-16 ***
## view1 2.116e+05 1.420e+04 14.896 < 2e-16 ***
## bathrooms1 7.894e+03 2.524e+04 0.313 0.7545
## bathrooms1.5 7.022e+03 2.723e+04 0.258 0.7965
## bathrooms2 1.886e+04 2.439e+04 0.773 0.4394
## bathrooms2.5 1.562e+04 2.414e+04 0.647 0.5177
## bathrooms3+ 5.740e+04 2.546e+04 2.254 0.0242 *
## sqft_above:sqft_living 4.504e-02 3.510e-03 12.831 < 2e-16 ***
## lat:sqft_above 2.381e+02 3.724e+01 6.392 1.82e-10 ***
## waterfront1:bathrooms1 -1.145e+06 1.534e+05 -7.463 1.03e-13 ***
## waterfront1:bathrooms1.5 -1.070e+06 2.470e+05 -4.333 1.50e-05 ***
## waterfront1:bathrooms2 -9.160e+05 1.051e+05 -8.719 < 2e-16 ***
## waterfront1:bathrooms2.5 -7.094e+05 1.266e+05 -5.605 2.22e-08 ***
## waterfront1:bathrooms3+ NA NA NA NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 236500 on 3984 degrees of freedom
## Multiple R-squared: 0.6051, Adjusted R-squared: 0.6036
## F-statistic: 381.6 on 16 and 3984 DF, p-value: < 2.2e-16

Rsq(modelo8,"varObjCont",data_train)

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

## $r2
## [1] 0.6051385
##
## $r2_adj
## [1] 0.6034532

Rsq(modelo8,"varObjCont",data_test) # Mejora un poquito

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 26/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

## $r2
## [1] 0.6874258
##
## $r2_adj
## [1] 0.6820091

Minuto 57:24
# Introducimos otra variable
modelo9<-lm(varObjCont~lat+sqft_above+sqft_living+sqft_above:sqft_living+waterfront+lat:sqft_above
+view+bathrooms+bathrooms:waterfront+sqft_lot,data=data_train)
summary(modelo9) # No es significativa..

##
## Call:
## lm(formula = varObjCont ~ lat + sqft_above + sqft_living + sqft_above:sqft_living +
## waterfront + lat:sqft_above + view + bathrooms + bathrooms:waterfront +
## sqft_lot, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1379551 -101160 -20787 67223 5134711
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.385e+07 3.384e+06 -4.094 4.33e-05 ***
## lat 2.962e+05 7.115e+04 4.164 3.20e-05 ***
## sqft_above -1.114e+04 1.773e+03 -6.285 3.63e-10 ***
## sqft_living 7.630e+01 1.277e+01 5.973 2.53e-09 ***
## waterfront1 1.107e+06 6.992e+04 15.834 < 2e-16 ***
## view1 2.109e+05 1.420e+04 14.853 < 2e-16 ***
## bathrooms1 4.591e+03 2.527e+04 0.182 0.8558
## bathrooms1.5 5.500e+03 2.722e+04 0.202 0.8399
## bathrooms2 1.714e+04 2.439e+04 0.703 0.4823
## bathrooms2.5 1.628e+04 2.413e+04 0.674 0.5001
## bathrooms3+ 5.969e+04 2.547e+04 2.344 0.0191 *
## sqft_lot 1.515e+00 6.735e-01 2.250 0.0245 *
## sqft_above:sqft_living 4.556e-02 3.516e-03 12.957 < 2e-16 ***
## lat:sqft_above 2.330e+02 3.729e+01 6.249 4.57e-10 ***
## waterfront1:bathrooms1 -1.152e+06 1.533e+05 -7.513 7.09e-14 ***
## waterfront1:bathrooms1.5 -1.090e+06 2.470e+05 -4.413 1.05e-05 ***
## waterfront1:bathrooms2 -9.077e+05 1.051e+05 -8.638 < 2e-16 ***
## waterfront1:bathrooms2.5 -7.143e+05 1.265e+05 -5.646 1.76e-08 ***
## waterfront1:bathrooms3+ NA NA NA NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 236400 on 3983 degrees of freedom
## Multiple R-squared: 0.6056, Adjusted R-squared: 0.604
## F-statistic: 359.8 on 17 and 3983 DF, p-value: < 2.2e-16

Rsq(modelo9,"varObjCont",data_train)

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 27/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

## $r2
## [1] 0.6056396
##
## $r2_adj
## [1] 0.603857

Rsq(modelo9,"varObjCont",data_test) # No mejora ---> Fuera la variable

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

## $r2
## [1] 0.6882296
##
## $r2_adj
## [1] 0.6825032

# Introducimos otra variable Minuto 58:20


modelo10<-lm(varObjCont~lat+sqft_above+sqft_living+sqft_above:sqft_living+waterfront+lat:sqft_abov
e+view+bathrooms+bathrooms:waterfront+basement,data=data_train)
summary(modelo10) # Es significativa..pero enmascara el efecto principal de las superficies

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 28/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ lat + sqft_above + sqft_living + sqft_above:sqft_living +
## waterfront + lat:sqft_above + view + bathrooms + bathrooms:waterfront +
## basement, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1451103 -105083 -18498 68155 5073485
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.254e+07 3.348e+06 -3.745 0.000183 ***
## lat 2.677e+05 7.039e+04 3.803 0.000145 ***
## sqft_above -1.118e+04 1.759e+03 -6.354 2.33e-10 ***
## sqft_living -8.687e+00 1.727e+01 -0.503 0.615080
## waterfront1 1.123e+06 6.938e+04 16.184 < 2e-16 ***
## view1 2.115e+05 1.410e+04 14.993 < 2e-16 ***
## bathrooms1 1.603e+04 2.509e+04 0.639 0.522846
## bathrooms1.5 5.239e+03 2.704e+04 0.194 0.846392
## bathrooms2 1.231e+04 2.424e+04 0.508 0.611583
## bathrooms2.5 6.517e+03 2.401e+04 0.271 0.786055
## bathrooms3+ 4.400e+04 2.535e+04 1.736 0.082678 .
## basement1 1.083e+05 1.442e+04 7.510 7.26e-14 ***
## sqft_above:sqft_living 4.281e-02 3.499e-03 12.234 < 2e-16 ***
## lat:sqft_above 2.361e+02 3.699e+01 6.385 1.92e-10 ***
## waterfront1:bathrooms1 -1.181e+06 1.524e+05 -7.752 1.14e-14 ***
## waterfront1:bathrooms1.5 -1.056e+06 2.453e+05 -4.304 1.72e-05 ***
## waterfront1:bathrooms2 -9.200e+05 1.043e+05 -8.817 < 2e-16 ***
## waterfront1:bathrooms2.5 -7.124e+05 1.257e+05 -5.668 1.55e-08 ***
## waterfront1:bathrooms3+ NA NA NA NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 234900 on 3983 degrees of freedom
## Multiple R-squared: 0.6107, Adjusted R-squared: 0.609
## F-statistic: 367.5 on 17 and 3983 DF, p-value: < 2.2e-16

Rsq(modelo10,"varObjCont",data_train)

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

## $r2
## [1] 0.6106517
##
## $r2_adj
## [1] 0.6088917

Rsq(modelo10,"varObjCont",data_test)

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 29/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

## $r2
## [1] 0.6721216
##
## $r2_adj
## [1] 0.6660994

Minuto 59:20
# Se me ocurre que puede tener interaccion con la de superficie total que parecía no significativa
modelo11<-lm(varObjCont~lat+sqft_above+sqft_living+sqft_above:sqft_living+waterfront+lat:sqft_abov
e+view+bathrooms+bathrooms:waterfront+basement*sqft_lot,data=data_train)
summary(modelo11) # Bastente interacción efectivamente!

##
## Call:
## lm(formula = varObjCont ~ lat + sqft_above + sqft_living + sqft_above:sqft_living +
## waterfront + lat:sqft_above + view + bathrooms + bathrooms:waterfront +
## basement * sqft_lot, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1424405 -102673 -18415 68759 4936926
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.347e+07 3.355e+06 -4.015 6.04e-05 ***
## lat 2.876e+05 7.054e+04 4.077 4.66e-05 ***
## sqft_above -1.084e+04 1.758e+03 -6.167 7.66e-10 ***
## sqft_living -2.368e+01 1.754e+01 -1.350 0.1771
## waterfront1 1.107e+06 6.933e+04 15.969 < 2e-16 ***
## view1 2.092e+05 1.408e+04 14.857 < 2e-16 ***
## bathrooms1 1.108e+04 2.507e+04 0.442 0.6586
## bathrooms1.5 1.569e+03 2.699e+04 0.058 0.9536
## bathrooms2 9.529e+03 2.420e+04 0.394 0.6937
## bathrooms2.5 3.930e+03 2.396e+04 0.164 0.8697
## bathrooms3+ 4.456e+04 2.531e+04 1.761 0.0784 .
## basement1 7.410e+04 1.700e+04 4.358 1.35e-05 ***
## sqft_lot -3.013e-01 8.378e-01 -0.360 0.7192
## sqft_above:sqft_living 4.298e-02 3.499e-03 12.284 < 2e-16 ***
## lat:sqft_above 2.293e+02 3.696e+01 6.204 6.08e-10 ***
## waterfront1:bathrooms1 -1.191e+06 1.520e+05 -7.832 6.14e-15 ***
## waterfront1:bathrooms1.5 -1.032e+06 2.451e+05 -4.210 2.61e-05 ***
## waterfront1:bathrooms2 -9.141e+05 1.042e+05 -8.776 < 2e-16 ***
## waterfront1:bathrooms2.5 -7.163e+05 1.254e+05 -5.712 1.20e-08 ***
## waterfront1:bathrooms3+ NA NA NA NA bastante significativa
## basement1:sqft_lot 5.162e+00 1.322e+00 3.906 9.55e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 234300 on 3981 degrees of freedom
## Multiple R-squared: 0.6127, Adjusted R-squared: 0.6109
## F-statistic: 331.5 on 19 and 3981 DF, p-value: < 2.2e-16

Rsq(modelo11,"varObjCont",data_train)

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 30/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

## $r2
## [1] 0.6127469
##
## $r2_adj
## [1] 0.6108009

Rsq(modelo11,"varObjCont",data_test)

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

## $r2
## [1] 0.6712875
##
## $r2_adj
## [1] 0.6645653

# Metemos alguna mas Minuto 1:00:55


modelo12<-lm(varObjCont~lat+sqft_above+sqft_living+sqft_above:sqft_living+waterfront+lat:sqft_abov
e+view+bathrooms+bathrooms:waterfront+basement*sqft_lot+bedrooms+floors,data=data_train)
summary(modelo12) # Bastente interacción efectivamente!

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 31/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

##
## Call:
## lm(formula = varObjCont ~ lat + sqft_above + sqft_living + sqft_above:sqft_living +
## waterfront + lat:sqft_above + view + bathrooms + bathrooms:waterfront +
## basement * sqft_lot + bedrooms + floors, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1413865 -102029 -18416 67468 4955421
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.089e+07 3.384e+06 -3.218 0.00130 **
## lat 2.333e+05 7.119e+04 3.277 0.00106 **
## sqft_above -1.165e+04 1.761e+03 -6.619 4.10e-11 ***
## sqft_living -8.617e+00 1.839e+01 -0.469 0.63943
## waterfront1 1.095e+06 6.927e+04 15.801 < 2e-16 ***
## view1 2.032e+05 1.410e+04 14.410 < 2e-16 ***
## bathrooms1 -2.235e+03 2.534e+04 -0.088 0.92974
## bathrooms1.5 -6.725e+03 2.695e+04 -0.249 0.80299
## bathrooms2 9.316e+03 2.419e+04 0.385 0.70021
## bathrooms2.5 6.009e+03 2.408e+04 0.250 0.80296
## bathrooms3+ 4.497e+04 2.538e+04 1.772 0.07653 .
## basement1 7.753e+04 1.713e+04 4.525 6.21e-06 ***
## sqft_lot 4.795e-01 8.638e-01 0.555 0.57883
## bedrooms2 4.596e+03 3.898e+04 0.118 0.90615
## bedrooms3 -3.785e+04 3.879e+04 -0.976 0.32923
## bedrooms4 -5.196e+04 3.986e+04 -1.304 0.19243
## bedrooms5+ -4.747e+04 4.148e+04 -1.144 0.25256
## floors1.5 5.836e+04 1.422e+04 4.105 4.12e-05 ***
## floors2 3.443e+03 1.209e+04 0.285 0.77589
## floors2+ 5.657e+04 2.147e+04 2.635 0.00844 **
## sqft_above:sqft_living 4.057e-02 3.693e-03 10.985 < 2e-16 ***
## lat:sqft_above 2.465e+02 3.703e+01 6.657 3.17e-11 ***
## waterfront1:bathrooms1 -1.186e+06 1.516e+05 -7.822 6.62e-15 ***
## waterfront1:bathrooms1.5 -1.051e+06 2.444e+05 -4.300 1.75e-05 ***
## waterfront1:bathrooms2 -9.248e+05 1.040e+05 -8.892 < 2e-16 ***
## waterfront1:bathrooms2.5 -7.257e+05 1.250e+05 -5.804 6.96e-09 ***
## waterfront1:bathrooms3+ NA NA NA NA
## basement1:sqft_lot 4.874e+00 1.326e+00 3.676 0.00024 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 233400 on 3974 degrees of freedom
## Multiple R-squared: 0.6162, Adjusted R-squared: 0.6137
## F-statistic: 245.4 on 26 and 3974 DF, p-value: < 2.2e-16

Rsq(modelo12,"varObjCont",data_train)

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

## $r2
## [1] 0.61623
##
## $r2_adj
## [1] 0.613622

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 32/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

Rsq(modelo12,"varObjCont",data_test)

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

## $r2
## [1] 0.6757247
##
## $r2_adj
## [1] 0.6667078

# Modelo propuesto por Manu en clase Minuto 1:02:00


modeloManu<-lm(varObjCont~sqft_above+sqft_living+waterfront+view +bathrooms+lat
+lat*sqft_above,data=data_train)
summary(modeloManu) # Significativo en su mayoría

##
## Call:
## lm(formula = varObjCont ~ sqft_above + sqft_living + waterfront +
## view + bathrooms + lat + lat * sqft_above, data = data_train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -918424 -105833 -16845 77495 5663894
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.054e+07 3.469e+06 -3.040 0.00238 **
## sqft_above -1.365e+04 1.819e+03 -7.504 7.56e-14 ***
## sqft_living 1.809e+02 1.020e+01 17.730 < 2e-16 ***
## waterfront1 5.952e+05 4.668e+04 12.750 < 2e-16 ***
## view1 2.080e+05 1.467e+04 14.173 < 2e-16 ***
## bathrooms1 5.172e+04 2.582e+04 2.003 0.04522 *
## bathrooms1.5 1.521e+04 2.812e+04 0.541 0.58864
## bathrooms2 1.310e+04 2.520e+04 0.520 0.60311
## bathrooms2.5 -1.757e+04 2.481e+04 -0.708 0.47892
## bathrooms3+ 4.988e+04 2.627e+04 1.899 0.05764 .
## lat 2.213e+05 7.290e+04 3.036 0.00241 **
## sqft_above:lat 2.886e+02 3.823e+01 7.551 5.31e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 244400 on 3989 degrees of freedom
## Multiple R-squared: 0.5777, Adjusted R-squared: 0.5765
## F-statistic: 496.1 on 11 and 3989 DF, p-value: < 2.2e-16

Rsq(modeloManu,"varObjCont",data_train)

## $r2
## [1] 0.5777053
##
## $r2_adj
## [1] 0.5764346

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 33/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

Rsq(modeloManu,"varObjCont",data_test) # No tiene mala pinta

## $r2
## [1] 0.6828719
##
## $r2_adj
## [1] 0.6790123
Minuto 1:02:47
Como resumen solicitamos una lista de los valores de R^2 ajustado en el conjunto de test.

Rsq(modelo2,"varObjCont",data_test)

## $r2
## [1] 0.4608969
##
## $r2_adj
## [1] 0.4592715

Rsq(modelo3,"varObjCont",data_test)

## $r2
## [1] 0.5900814
##
## $r2_adj
## [1] 0.5884318

Rsq(modelo4,"varObjCont",data_test)

## $r2
## [1] 0.6089631
##
## $r2_adj
## [1] 0.6069942

Rsq(modelo42,"varObjCont",data_test)

## $r2
## [1] 0.6654695
##
## $r2_adj
## [1] 0.6634461

Rsq(modelo5,"varObjCont",data_test)

## $r2
## [1] 0.6901753
##
## $r2_adj
## [1] 0.6879868

Rsq(modelo52,"varObjCont",data_test)

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 34/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

## $r2
## [1] 0.6944474
##
## $r2_adj
## [1] 0.6919783

Rsq(modelo7,"varObjCont",data_test)

## $r2
## [1] 0.6967681
##
## $r2_adj
## [1] 0.6927661

Rsq(modelo8,"varObjCont",data_test)

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

## $r2
## [1] 0.6874258
##
## $r2_adj
## [1] 0.6820091

Rsq(modelo9,"varObjCont",data_test)

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

## $r2
## [1] 0.6882296
##
## $r2_adj
## [1] 0.6825032

Rsq(modelo10,"varObjCont",data_test)

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

## $r2
## [1] 0.6721216
##
## $r2_adj
## [1] 0.6660994

Rsq(modelo11,"varObjCont",data_test)

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 35/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

## $r2
## [1] 0.6712875
##
## $r2_adj
## [1] 0.6645653

Rsq(modelo12,"varObjCont",data_test)

## Warning in predict.lm(modelo, datos): prediction from a rank-deficient fit may


## be misleading

## $r2
## [1] 0.6757247
##
## $r2_adj
## [1] 0.6667078

Rsq(modeloManu,"varObjCont",data_test)

## $r2
## [1] 0.6828719
##
## $r2_adj
## [1] 0.6790123

Comparación de modelos por Validación Cruzada


Repetida Minuto 1:03:35
Una vez generados los modelos manuales hasta observar una estabilización de las métricas de evaluación, se
procede a compararlos por validación cruzada repetida (todos o los que se consideren mejores).

Este proceso de validación permite evitar el efecto de la semilla de inicialización en la construcción de las
particiones training/test. Debido a la aleatoreidad de la partición, es posible que en ocasiones se consigan conjuntos
de test muy representativos del training y no así en otras. Puede sucesder que se tengan en test ejemplos no
cubiertos en test, por ejemplo cuando hay clases minoritarias, entre otros problemas.

Se divide el archivo en n partes iguales y se utilizan n-1 para construir el modelo y la restante para probarlo,
repitiendo el proceso en todas las permutaciones. Así se obtienen n modelos. De nuevo, aunque con menor
incidencia, puede seguir estando presente el efecto de la semilla de particion del conjunto. Para minimizarlo al
másximo, se repite todo el proceso de partición-modelado mútliple k veces.

Así, se obtienen finalmente kxn modelos creados a partir de todas las observaciones y probados tambien en todas
ellas pero no simultanemante. Se consiguen modelos más robustos ante pequeños cambios en los conjuntos de
training/test.

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 36/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

# Validación cruzada repetida


total<-c()
modelos<-sapply(list(modeloCompleto,modelo2,modelo3,modelo4,modelo42,modelo5,modelo52,
modelo7,modelo8,modelo9,modelo10,modelo11,modelo12,modeloManu),formula)

for (i in 1:length(modelos)){
set.seed(1712)
vcr<-train(as.formula(modelos[[i]]), data = todo,
method = "lm",
trControl = trainControl(method="repeatedcv", number=5, repeats=20,returnResamp="all"
)
)
total<-rbind(total,data.frame(vcr$resample,modelo=rep(paste("Modelo",i),
nrow(vcr$resample))))
}
boxplot(Rsquared~modelo,data=total,main="Precisión de los modelos")

aggregate(Rsquared~modelo, data = total, mean)

modelo Rsquared
<fctr> <dbl>

Modelo 1 0.6124120

Modelo 2 0.4483066

Modelo 3 0.5332846

Modelo 4 0.5556739

Modelo 5 0.5849917

Modelo 6 0.6077290

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 37/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

modelo Rsquared
<fctr> <dbl>

Modelo 7 0.6118857

Modelo 8 0.6128341

Modelo 9 0.6139382

Modelo 10 0.6136451

1-10 of 14 rows Previous 1 2 Next

aggregate(Rsquared~modelo, data = total, sd) #muy similar

modelo Rsquared
<fctr> <dbl>

Modelo 1 0.04843317

Modelo 2 0.04621905

Modelo 3 0.06247911

Modelo 4 0.07039286

Modelo 5 0.05902189

Modelo 6 0.05782782

Modelo 7 0.05788808

Modelo 8 0.05668458

Modelo 9 0.05180580

Modelo 10 0.05098553

1-10 of 14 rows Previous 1 2 Next

length(coef(modeloCompleto))

## [1] 31

Modelo 7
length(coef(modelo52))

## [1] 8

length(coef(modelo8))

## [1] 18

length(coef(modelo10))

## [1] 19

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 38/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

length(coef(modelo12))

## [1] 28

length(coef(modeloManu))

## [1] 12

Es todo cuestion de sesgo y varianza en primer lugar. Seleccionamos los de mejor relación y decidimos finalmente
con el número de parámetros (cuanto menor, mejor).

En este caso parece adecuado quedarse ocn el modelo 52 ya que tiene una media muy similar a los modelos
complejos con un poquito más de varianza pero sólamente 8 parámetros que estimar!!

Interpretación y Evaluación del modelo ganador


Una vez decidido cual es el mejor modelo de entre los propuestos, el paso más importante es la la construcción de
la función de predicción, la interpretación de los parámetros y sus efectos sobre la respuesta.

# Vemos los coeficientes del modelo ganador


coef(modelo52)

## (Intercept) lat sqft_above


## -1.332479e+07 2.850200e+05 -1.183626e+04
## sqft_living waterfront1 view1
## 9.337572e+01 5.694340e+05 2.123238e+05
## sqft_above:sqft_living lat:sqft_above
## 4.485927e-02 2.476806e+02

La expresión matemática del hiparplano de regresión para el modelo ganador es:

^
P rice = −13324790 + 285020Lat − 11836S qf t_above + 93.37S qf t_living + 569434(W aterf ront = 1)

+212323.8(view = 1) + 247.68Lat ∗ S qf t_above + 0.048S qf t_above ∗ S qf t_living

Interpretación de parámetros.
Es muy importante saber interpretar el efecto de las variables sobre la respuesta. cada β se interpreta en fución del
tipo de variable que acompañe.

Variable Cuantitativa: Por cada aumento unitario de la variable, la respuesta aumenta (+) o disminuye (-) en β
unidades)
Varianle Binaria: La presencia de la característica (valor 1) aumenta o disminuye la respuesta en β unidades

Nota: La constante del modelo no se puede interpretar como la media de la respuesta ya que está influenciada por
la presencia de todas las demás variables y actúa como ordenada en el origen de la recta (hiperplano) de
regresión. Eso quiere decir que la respuesta tomaría ese valor en caso de que todas las variables implicadas
tomaran el valor 0 (Puede no darse el caso..)

Ejemplos:

1. Una aumento unitario del valor de Latitud produce un aumento de 285020 unidades en el precio de la
vivienda. (para casas con las mismas superficies (above y living) y mismas condiciones de vistas y vistas al
mar)
2. Tener vistas a mar tiene un valor añadido de 569434 unidades. (para viviendas con las mismas superficies y
condiciones de vistas, situadas en la misma latitud)

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 39/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

3. Interacciones:
El aumento unitario de la superficie por encima del sótano produce una disminución de

−11836 + 247.68 + 0.048

unidades de precio. (para casas con la misma superficie de salón, condiciones de vistas y mar y
situadas en la misma latitud…condiciones muy específicas…)

Así se interprestarían los parámetros. En este caso parece extraña relación la de las superficies…se puede pensar
en crear una variable que mida el efecto conjunto de ambas características como la variable superficie del salón en
función de la superficie por encima del sótano…habría que probar esto.
Minuto 6:10
#Evaluamos la estabilidad del modelo a partir de las diferencias en train y test:
Rsq(modelo52,"varObjCont",data_train)

## $r2
## [1] 0.5920686
##
## $r2_adj
## [1] 0.5912511

Rsq(modelo52,"varObjCont",data_test)

## $r2
## [1] 0.6944474
##
## $r2_adj
## [1] 0.6919783

## Generamos los modelos por cv


set.seed(1712)
vcr<-train(as.formula(formula(modelo52)), data = todo,
method = "lm",
trControl = trainControl(method="repeatedcv", number=5, repeats=20,returnResamp="all"
))

# Importancia de las variables en los múltiples modelos generado


# con caret. Esto nos da una idea de las más relevantes para interpretar
varImp(vcr)

## lm variable importance Ranking de importancia


## de las variables
## Overall con respecto a la primera
## view1 100.00
## `sqft_above:sqft_living` 90.86
## waterfront1 88.19
## sqft_living 55.45
## sqft_above 24.87
## `lat:sqft_above` 24.50
## lat 0.00

Otras posibilidades no contempladas


Es evidente que este no llega a ser un análisis completo de modelos pues no se han llegado a explorar cieryas
posibilidades de mejora:

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 40/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas

1. Estudio con variables transformadas


2. Cambio de niveles de referencia y, en su caso, ecategorización de variables categóricas con categorías no
significativas
3. Tramificación de variables continuas
4. Dado el extraño efecto de sqft_above en consonancia con sqft_living, probar con la inclusión de una variable
resultado de agregar ambas, por ejemplo un cociente que resulta facilmente interpretable.

Es posible que el efecto de las variables categóricas bedroom y bathrooms mejore al recategorizar/cambiar niveles
de referencia.

Lo ideal sería probar el mayor número de posibilidades para intentar capturar de la forma más adecuada las
relaciones subyacentes entre las variables que son capaces de modelizar la mayor parte del comportamiento
(variabilidad) de la vairbale respuesta.

file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 41/41

También podría gustarte