Modelo predictivo
Importar la base de datos
file.choose()
## [1] "C:\\Users\\AVRIL\\Downloads\\rentadebicis.csv"
bd<-read.csv("C:\\Users\\AVRIL\\Downloads\\rentadebicis.csv")
Entender la base de datos
summary(bd)
## hora dia mes año
## Min. : 0.00 Min. : 1.000 Min. : 1.000 Min. :2011
## 1st Qu.: 6.00 1st Qu.: 5.000 1st Qu.: 4.000 1st Qu.:2011
## Median :12.00 Median :10.000 Median : 7.000 Median :2012
## Mean :11.54 Mean : 9.993 Mean : 6.521 Mean :2012
## 3rd Qu.:18.00 3rd Qu.:15.000 3rd Qu.:10.000 3rd Qu.:2012
## Max. :23.00 Max. :19.000 Max. :12.000 Max. :2012
## estacion dia_de_la_semana asueto temperatura
## Min. :1.000 Min. :1.000 Min. :0.00000 Min. : 0.82
## 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:0.00000 1st Qu.:13.94
## Median :3.000 Median :4.000 Median :0.00000 Median :20.50
## Mean :2.507 Mean :4.014 Mean :0.02857 Mean :20.23
## 3rd Qu.:4.000 3rd Qu.:6.000 3rd Qu.:0.00000 3rd Qu.:26.24
## Max. :4.000 Max. :7.000 Max. :1.00000 Max. :41.00
## sensacion_termica humedad velocidad_del_viento
## Min. : 0.76 Min. : 0.00 Min. : 0.000
## 1st Qu.:16.66 1st Qu.: 47.00 1st Qu.: 7.002
## Median :24.24 Median : 62.00 Median :12.998
## Mean :23.66 Mean : 61.89 Mean :12.799
## 3rd Qu.:31.06 3rd Qu.: 77.00 3rd Qu.:16.998
## Max. :45.45 Max. :100.00 Max. :56.997
## rentas_de_no_registrados rentas_de_registrados rentas_totales
## Min. : 0.00 Min. : 0.0 Min. : 1.0
## 1st Qu.: 4.00 1st Qu.: 36.0 1st Qu.: 42.0
## Median : 17.00 Median :118.0 Median :145.0
## Mean : 36.02 Mean :155.6 Mean :191.6
## 3rd Qu.: 49.00 3rd Qu.:222.0 3rd Qu.:284.0
## Max. :367.00 Max. :886.0 Max. :977.0
Comentarios
#1.¿Por qué la variable del dia llega hasta 19 y no hasta 31?
#2.¿Qué significan los numeros de las estaciones? 1 es primavera, 2 verano, 3 otoñño y 4 invierno
#3.¿Qué día inicia la semana? 1 es Domingo. 1 es asueto
Gráfica
plot(bd$temperatura,bd$rentas_totales,main="influencia de la temperatura C° sobre las rentas totales", xlab="Temperatura", ylab="Rentas totales")
plot
## function (x, y, ...)
## UseMethod("plot")
## <bytecode: 0x000001f7133c2450>
## <environment: namespace:base>
Regresion (modelo lineal)
regresion = lm(bd$rentas_totales~hora+dia+mes+año+estacion+dia_de_la_semana+asueto+temperatura+sensacion_termica+humedad+velocidad_del_viento+rentas_de_no_registrados+rentas_de_registrados+rentas_totales,data=bd)
regresion
##
## Call:
## lm(formula = bd$rentas_totales ~ hora + dia + mes + año + estacion +
## dia_de_la_semana + asueto + temperatura + sensacion_termica +
## humedad + velocidad_del_viento + rentas_de_no_registrados +
## rentas_de_registrados + rentas_totales, data = bd)
##
## Coefficients:
## (Intercept) hora dia
## 6.458e-10 2.434e-14 1.050e-15
## mes año estacion
## -4.499e-14 -3.213e-13 2.089e-14
## dia_de_la_semana asueto temperatura
## 3.565e-14 5.722e-14 -4.247e-15
## sensacion_termica humedad velocidad_del_viento
## 5.971e-15 -1.111e-15 -1.179e-15
## rentas_de_no_registrados rentas_de_registrados rentas_totales
## 1.000e+00 1.000e+00 NA
summary(regresion)
##
## Call:
## lm(formula = bd$rentas_totales ~ hora + dia + mes + año + estacion +
## dia_de_la_semana + asueto + temperatura + sensacion_termica +
## humedad + velocidad_del_viento + rentas_de_no_registrados +
## rentas_de_registrados + rentas_totales, data = bd)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.016e-11 -1.500e-14 3.000e-15 2.000e-14 2.017e-11
##
## Coefficients: (1 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.458e-10 2.393e-11 2.698e+01 < 2e-16 ***
## hora 2.434e-14 9.189e-16 2.649e+01 < 2e-16 ***
## dia 1.050e-15 1.037e-15 1.012e+00 0.31158
## mes -4.499e-14 7.043e-15 -6.387e+00 1.76e-10 ***
## año -3.213e-13 1.190e-14 -2.700e+01 < 2e-16 ***
## estacion 2.089e-14 2.164e-14 9.650e-01 0.33433
## dia_de_la_semana 3.565e-14 3.154e-15 1.130e+01 < 2e-16 ***
## asueto 5.722e-14 3.539e-14 1.617e+00 0.10594
## temperatura -4.247e-15 4.338e-15 -9.790e-01 0.32763
## sensacion_termica 5.971e-15 4.002e-15 1.492e+00 0.13572
## humedad -1.111e-15 3.472e-16 -3.199e+00 0.00138 **
## velocidad_del_viento -1.179e-15 7.561e-16 -1.560e+00 0.11885
## rentas_de_no_registrados 1.000e+00 1.614e-16 6.197e+15 < 2e-16 ***
## rentas_de_registrados 1.000e+00 4.902e-17 2.040e+16 < 2e-16 ***
## rentas_totales NA NA NA NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.92e-13 on 10872 degrees of freedom
## Multiple R-squared: 1, Adjusted R-squared: 1
## F-statistic: 7.841e+31 on 13 and 10872 DF, p-value: < 2.2e-16
Evaluar y en caso necesario, ajustar la regresion
regresion_ajustada<-lm(bd$rentas_totales~hora+mes+año+sensacion_termica+humedad+velocidad_del_viento,data=bd)
summary(regresion_ajustada)
##
## Call:
## lm(formula = bd$rentas_totales ~ hora + mes + año + sensacion_termica +
## humedad + velocidad_del_viento, data = bd)
##
## Residuals:
## Min 1Q Median 3Q Max
## -308.60 -93.85 -28.34 61.05 648.09
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.662e+05 5.496e+03 -30.250 < 2e-16 ***
## hora 7.734e+00 2.070e-01 37.364 < 2e-16 ***
## mes 7.574e+00 4.207e-01 18.002 < 2e-16 ***
## año 8.266e+01 2.732e+00 30.258 < 2e-16 ***
## sensacion_termica 6.172e+00 1.689e-01 36.539 < 2e-16 ***
## humedad -2.121e+00 7.858e-02 -26.988 < 2e-16 ***
## velocidad_del_viento 6.208e-01 1.771e-01 3.506 0.000457 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 141.7 on 10879 degrees of freedom
## Multiple R-squared: 0.3886, Adjusted R-squared: 0.3883
## F-statistic: 1153 on 6 and 10879 DF, p-value: < 2.2e-16
Construir modelo de regresion
datos_nuevos<-data.frame(hora=12,mes=1:12,año=2013,sensacion_termica=2,humedad=62,velocidad_del_viento=13)
predict(regresion_ajustada,datos_nuevos)
## 1 2 3 4 5 6 7 8
## 143.3672 150.9409 158.5146 166.0883 173.6620 181.2358 188.8095 196.3832
## 9 10 11 12
## 203.9569 211.5306 219.1043 226.6780