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
LS0tDQp0aXRsZTogIlJlbnRhQmljaXMiDQphdXRob3I6ICJBdnJpbCBMb2JhdG8gLSBBMDA4MzMxMTMiDQpkYXRlOiAiMjAyMy0wMy0xNyINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KLS0tDQoqKk1vZGVsbyBwcmVkaWN0aXZvKiogIA0KPGltZyBzcmM9IkM6XFxVc2Vyc1xcQVZSSUxcXFBpY3R1cmVzXFxCaWNpc0NvbXBhcnRpZGFzX1BvcnRhZGEtNzY4eDUxMi5qcGciPg0KDQpfSW1wb3J0YXIgbGEgYmFzZSBkZSBkYXRvc18NCmBgYHtyfQ0KZmlsZS5jaG9vc2UoKQ0KYmQ8LXJlYWQuY3N2KCJDOlxcVXNlcnNcXEFWUklMXFxEb3dubG9hZHNcXHJlbnRhZGViaWNpcy5jc3YiKQ0KYGBgDQoNCl9FbnRlbmRlciBsYSBiYXNlIGRlIGRhdG9zXw0KYGBge3J9DQpzdW1tYXJ5KGJkKQ0KDQpgYGANCg0KX0NvbWVudGFyaW9zXw0KYGBge3J9DQojMS7Cv1BvciBxdcOpIGxhIHZhcmlhYmxlIGRlbCBkaWEgbGxlZ2EgaGFzdGEgMTkgeSBubyBoYXN0YSAzMT8NCiMyLsK/UXXDqSBzaWduaWZpY2FuIGxvcyBudW1lcm9zIGRlIGxhcyBlc3RhY2lvbmVzPyAxIGVzIHByaW1hdmVyYSwgMiB2ZXJhbm8sIDMgb3Rvw7HDsW8geSA0IGludmllcm5vDQojMy7Cv1F1w6kgZMOtYSBpbmljaWEgbGEgc2VtYW5hPyAxIGVzIERvbWluZ28uIDEgZXMgYXN1ZXRvDQpgYGANCg0KX0dyw6FmaWNhXw0KYGBge3J9DQpwbG90KGJkJHRlbXBlcmF0dXJhLGJkJHJlbnRhc190b3RhbGVzLG1haW49ImluZmx1ZW5jaWEgZGUgbGEgdGVtcGVyYXR1cmEgQ8KwIHNvYnJlIGxhcyByZW50YXMgdG90YWxlcyIsIHhsYWI9IlRlbXBlcmF0dXJhIiwgeWxhYj0iUmVudGFzIHRvdGFsZXMiKQ0KcGxvdA0KYGBgDQoNCl9SZWdyZXNpb24gKG1vZGVsbyBsaW5lYWwpXw0KYGBge3J9DQpyZWdyZXNpb24gPSBsbShiZCRyZW50YXNfdG90YWxlc35ob3JhK2RpYSttZXMrYcOxbytlc3RhY2lvbitkaWFfZGVfbGFfc2VtYW5hK2FzdWV0byt0ZW1wZXJhdHVyYStzZW5zYWNpb25fdGVybWljYStodW1lZGFkK3ZlbG9jaWRhZF9kZWxfdmllbnRvK3JlbnRhc19kZV9ub19yZWdpc3RyYWRvcytyZW50YXNfZGVfcmVnaXN0cmFkb3MrcmVudGFzX3RvdGFsZXMsZGF0YT1iZCkNCnJlZ3Jlc2lvbg0Kc3VtbWFyeShyZWdyZXNpb24pDQpgYGANCg0KX0V2YWx1YXIgeSBlbiBjYXNvIG5lY2VzYXJpbywgYWp1c3RhciBsYSByZWdyZXNpb25fDQpgYGB7cn0NCnJlZ3Jlc2lvbl9hanVzdGFkYTwtbG0oYmQkcmVudGFzX3RvdGFsZXN+aG9yYSttZXMrYcOxbytzZW5zYWNpb25fdGVybWljYStodW1lZGFkK3ZlbG9jaWRhZF9kZWxfdmllbnRvLGRhdGE9YmQpDQpzdW1tYXJ5KHJlZ3Jlc2lvbl9hanVzdGFkYSkNCmBgYA0KDQpfQ29uc3RydWlyIG1vZGVsbyBkZSByZWdyZXNpb25fDQpgYGB7cn0NCmRhdG9zX251ZXZvczwtZGF0YS5mcmFtZShob3JhPTEyLG1lcz0xOjEyLGHDsW89MjAxMyxzZW5zYWNpb25fdGVybWljYT0yLGh1bWVkYWQ9NjIsdmVsb2NpZGFkX2RlbF92aWVudG89MTMpDQpwcmVkaWN0KHJlZ3Jlc2lvbl9hanVzdGFkYSxkYXRvc19udWV2b3MpDQpgYGANCg==