Documentos de Académico
Documentos de Profesional
Documentos de Cultura
# Directorio de trabajo
setwd('C:/Users/Guille/Desktop/Master_Big_Data_Comercio_2020/Material para el campus/Matarial Camp
us Parte I')
file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 1/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas
##
## Attaching package: 'psych'
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.
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.
En general,
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
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)
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
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.
DORMITORIOS
file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 6/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas
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.
file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 8/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas
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.
file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 10/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas
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))
file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 11/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas
#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..)
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
## $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)")
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)
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.
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
## $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.
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
## $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
## $r2
## [1] 0.4369388
##
## $r2_adj
## [1] 0.4365162
Rsq(modelo2,"varObjCont",data_test)
## $r2
## [1] 0.4608969
##
## $r2_adj
## [1] 0.4592715
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
## $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
## $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
## $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
## $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
## $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
## $r2
## [1] 0.6967681
##
## $r2_adj
## [1] 0.6927661
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
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)
## $r2
## [1] 0.6051385
##
## $r2_adj
## [1] 0.6034532
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)
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
## $r2
## [1] 0.6882296
##
## $r2_adj
## [1] 0.6825032
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)
## $r2
## [1] 0.6106517
##
## $r2_adj
## [1] 0.6088917
Rsq(modelo10,"varObjCont",data_test)
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)
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)
## $r2
## [1] 0.6712875
##
## $r2_adj
## [1] 0.6645653
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)
## $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)
## $r2
## [1] 0.6757247
##
## $r2_adj
## [1] 0.6667078
##
## 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
## $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)
## $r2
## [1] 0.6874258
##
## $r2_adj
## [1] 0.6820091
Rsq(modelo9,"varObjCont",data_test)
## $r2
## [1] 0.6882296
##
## $r2_adj
## [1] 0.6825032
Rsq(modelo10,"varObjCont",data_test)
## $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
## $r2
## [1] 0.6712875
##
## $r2_adj
## [1] 0.6645653
Rsq(modelo12,"varObjCont",data_test)
## $r2
## [1] 0.6757247
##
## $r2_adj
## [1] 0.6667078
Rsq(modeloManu,"varObjCont",data_test)
## $r2
## [1] 0.6828719
##
## $r2_adj
## [1] 0.6790123
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
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")
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
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
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!!
^
P rice = −13324790 + 285020Lat − 11836S qf t_above + 93.37S qf t_living + 569434(W aterf ront = 1)
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
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
file:///C:/Users/antho/Downloads/RL_VentaViviendas.html 40/41
21/2/2020 Modelos Regresión Lineal para predecir el precio de viviendas
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