El siguiente proyecto consiste en una ventana 4 semanas de un conductor que maneja UBer y trataremos de responder preguntas tales como si la taza de rechazo tiene alguna relacion con el dia o la hora, si los ingresos tienen algun tipo de relación al dia o el horario en el que se realizá el viaje

library(tidyverse)
-- Attaching packages --------------------------------------- tidyverse 1.2.1 --
v ggplot2 3.1.0     v purrr   0.2.5
v tibble  1.4.2     v dplyr   0.7.8
v tidyr   0.8.2     v stringr 1.3.1
v readr   1.1.1     v forcats 0.3.0
-- Conflicts ------------------------------------------ tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
glimpse(data_viaje)
Observations: 117
Variables: 8
$ hora      <fct> 2018/09/23 22:11, 2018/09/23 21:38, 2018/09/22 22:45, 2018/09/22 22:16, 2018/09/22 21:47, 2018/09/22 21:...
$ conductor <fct> conductor1, conductor1, conductor1, conductor1, conductor1, conductor1, conductor1, conductor1, conducto...
$ tarifa    <dbl> 22.24, 23.76, 22.69, 39.79, 22.66, 22.38, 15.95, 25.06, 29.58, 142.36, 24.40, 15.66, 49.01, 18.78, 17.81...
$ tiempohh  <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
$ tiempomm  <int> 9, 12, 6, 20, 9, 10, 5, 12, 26, 20, 14, 10, 56, 11, 10, 20, 7, 13, 2, 30, 0, 36, 12, 19, 37, 22, 46, 10,...
$ tiemposs  <int> 17, 28, 23, 26, 20, 9, 39, 17, 12, 49, 59, 15, 47, 25, 4, 50, 9, 22, 45, 59, 0, 41, 49, 14, 48, 1, 4, 43...
$ km        <dbl> 3.86, 5.55, 4.50, 11.10, 5.08, 5.47, 2.79, 4.74, 4.78, 31.92, 4.73, 1.90, 12.04, 2.96, 2.02, 7.35, 2.12,...
$ estado    <fct> completo, completo, completo, completo, completo, completo, completo, completo, completo, completo, comp...

Primero notamos que nuestra data necesita preparse, por ejemplo la hora no tiene formato de fecha , los tiempos no estan expresados en un tipo de dimension

vamos a agregar la fecha hora de salida, la hora de salida, y a calcular el tiempo de viaje

Vamos a graficar la relación que existe entre la hora y la tarifa posible generada

Como podes ver en esta grafica la tarifa mas alta esta entre 2 y 4 de la tarde

ahora veamos el rechazo

Como podemos observar si la duracion del viaje no es mayor de los 30 minutos la tarifa no crece significativamente

Veamos desde esta perspectiva la hora que genera mas ingresos

mean de tarifa:

Interesantemente vemos que las primeras horas de la mañana generá mas ingreso, pero se incrementa la cantidad de viajes, lo que implica el precio debe de bajar en las primera horas, Sin embargo como en la grafica de tarifa/hora salida vemos que de 12 a 1 el precio se va a incrementar

con relación a esta data veamos el comportamiento de la tarifa y de los viajes por hora Hora salida:

summary(data_prepared$horasalida)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   7.00    8.00   13.00   13.32   18.00   23.00 

Tarifa

summary(data_prepared$tarifa)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00   17.43   23.59   28.18   35.00  142.36 
summary(data_prepared$duracionviaje)

Veamos si una regresion lineal nos permite determinar la tarifa basado en la hora de salida

summary(a)

Call:
lm(formula = tarifa ~ horasalida + duracionviaje, data = data_prepared)

Residuals:
    Min      1Q  Median      3Q     Max 
-24.214  -5.523  -0.400   3.766  51.640 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)    8.41517    2.90403   2.898  0.00451 ** 
horasalida     0.06280    0.18712   0.336  0.73779    
duracionviaje  1.00676    0.05653  17.810  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 10.38 on 114 degrees of freedom
Multiple R-squared:  0.7356,    Adjusted R-squared:  0.731 
F-statistic: 158.6 on 2 and 114 DF,  p-value: < 2.2e-16

Como podemos ver el Pvalue es muy pequeño esto implica que uno de los predictores esta fuertemente relacionado con nuestra variable tarifa que es la respuesta Consideremos entonces que el RSE(Error residual standar) es de 10.38 /28.17 = 36.8%

coef(a)
  (Intercept)    horasalida duracionviaje 
   8.41517058    0.06279909    1.00676166 

datos a predecir

predict(object = a, data_predict )
       1        2        3        4        5        6 
26.97647 31.00352 28.99000 27.35327 31.38032 29.36679 

como podemos ver apesar que una de las variables no permite ser tan preciso el algoritmo, este calcula la tarifa con montos aceptable.

LS0tDQp0aXRsZTogIlJlbmRpbWllbnRvIFVCZXIgcG9yIGhvcmEiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCg0KRWwgc2lndWllbnRlIHByb3llY3RvIGNvbnNpc3RlIGVuIHVuYSB2ZW50YW5hIDQgc2VtYW5hcyBkZSB1biBjb25kdWN0b3IgcXVlIG1hbmVqYSBVQmVyIHkgdHJhdGFyZW1vcyBkZSByZXNwb25kZXIgcHJlZ3VudGFzIHRhbGVzIGNvbW8gc2kgbGEgdGF6YSBkZSByZWNoYXpvIHRpZW5lIGFsZ3VuYSByZWxhY2lvbiBjb24gZWwgZGlhIG8gbGEgaG9yYSwgc2kgbG9zIGluZ3Jlc29zIHRpZW5lbiBhbGd1biB0aXBvIGRlIHJlbGFjacOzbiBhbCBkaWEgbyBlbCBob3JhcmlvIGVuIGVsIHF1ZSBzZSByZWFsaXrDoSBlbCB2aWFqZQ0KDQoNCmBgYHtyfQ0KI2luc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpDQojaW5zdGFsbC5wYWNrYWdlcygibHVicmlkYXRlIikNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpgYGANCg0KYGBge3J9DQpkYXRhX3ZpYWplIDwtIHJlYWQuY3N2KCJkYXRhYnlyLmNzdiIpDQpkYXRhX3ByZWRpY3QgPC0gcmVhZC5jc3YoInRlc3RwcmVkaWN0LmNzdiIpDQpnbGltcHNlKGRhdGFfdmlhamUpDQpgYGANCg0KUHJpbWVybyBub3RhbW9zIHF1ZSBudWVzdHJhIGRhdGEgbmVjZXNpdGEgcHJlcGFyc2UsIHBvciBlamVtcGxvIGxhIGhvcmEgbm8gdGllbmUgZm9ybWF0byBkZSBmZWNoYSAsIGxvcyB0aWVtcG9zIG5vIGVzdGFuIGV4cHJlc2Fkb3MgZW4gdW4gdGlwbyBkZSBkaW1lbnNpb24NCg0KdmFtb3MgYSBhZ3JlZ2FyIGxhIGZlY2hhIGhvcmEgZGUgc2FsaWRhLCBsYSBob3JhIGRlIHNhbGlkYSwgeSBhIGNhbGN1bGFyIGVsIHRpZW1wbyBkZSB2aWFqZQ0KYGBge3J9DQpkYXRhX3ByZXBhcmVkPC0gZGF0YV92aWFqZSU+JSANCiAgbXV0YXRlKHdlZWtkYXk9d2Vla2RheXMoYXMuRGF0ZSgiMjAxNy0xMi0wMiIpKSkgJT4lDQogIG11dGF0ZShmZWNoYWhvcmE9YXMuUE9TSVhjdChob3JhLHR6PVN5cy50aW1lem9uZSgpKSApJT4lDQogIG11dGF0ZShob3Jhc2FsaWRhPWFzLm51bWVyaWMoZm9ybWF0KGZlY2hhaG9yYSwgIiVIIikpICklPiUNCiAgbXV0YXRlKGR1cmFjaW9udmlhamU9dGllbXBvaGgqNjArdGllbXBvbW0rdGllbXBvc3MvNjAgICkNCiAgDQpkYXRhX3ByZXBhcmVkDQpgYGANCg0KVmFtb3MgYSBncmFmaWNhciBsYSByZWxhY2nDs24gcXVlIGV4aXN0ZSBlbnRyZSBsYSBob3JhIHkgbGEgdGFyaWZhIHBvc2libGUgZ2VuZXJhZGENCg0KDQpgYGB7cn0NCg0KZ2dwbG90KGRhdGFfcHJlcGFyZWQsIG1hcHBpbmcgPSBhZXMoeCA9ICBob3Jhc2FsaWRhICwgeSA9dGFyaWZhLGNvbG91ciA9IGhvcmFzYWxpZGEgKSApICsgDQogIGdlb21fcG9pbnQoKSArIA0KICBnZW9tX3Ntb290aChzZSA9IFRSVUUpDQoNCg0KYGBgDQpDb21vIHBvZGVzIHZlciBlbiBlc3RhIGdyYWZpY2EgbGEgdGFyaWZhIG1hcyBhbHRhIGVzdGEgZW50cmUgMiB5IDQgZGUgbGEgdGFyZGUNCg0KYWhvcmEgdmVhbW9zIGVsIHJlY2hhem8NCg0KYGBge3J9DQoNCmdncGxvdChkYXRhX3ByZXBhcmVkLCBtYXBwaW5nID0gYWVzKHggPSAgZHVyYWNpb252aWFqZSAgLCB5ID10YXJpZmEsY29sb3VyID0gaG9yYXNhbGlkYSApICkgKyANCiAgZ2VvbV9wb2ludCgpICsgDQogIGdlb21fc21vb3RoKHNlID0gVFJVRSkNCmBgYA0KDQoNCg0KYGBge3J9DQoNCmRhdGFfcHJlcGFyZWQlPiVnZ3Bsb3QoYWVzKHggPSAgaG9yYXNhbGlkYSAgLCB5ID10YXJpZmEgKSApICsgDQogZ2VvbV9iYXIoc3RhdD0iaWRlbnRpdHkiKSAgICANCiAgDQpgYGANCg0KQ29tbyBwb2RlbW9zIG9ic2VydmFyIHNpIGxhIGR1cmFjaW9uIGRlbCB2aWFqZSBubyBlcyBtYXlvciBkZSBsb3MgMzAgbWludXRvcyBsYSB0YXJpZmEgbm8gY3JlY2Ugc2lnbmlmaWNhdGl2YW1lbnRlDQoNClZlYW1vcyBkZXNkZSBlc3RhIHBlcnNwZWN0aXZhIGxhIGhvcmEgcXVlIGdlbmVyYSBtYXMgaW5ncmVzb3MNCg0KDQpgYGB7cn0NCmFjdW11bGF0aXZvX3BvcmhvcmE8LWRhdGFfcHJlcGFyZWQgJT4lDQogICBncm91cF9ieShob3Jhc2FsaWRhKSAlPiUNCiAgICAgc3VtbWFyaXplKGNudCA9IG4oKSwgaW5ncmVzbz0gc3VtKCB0YXJpZmEpLCBtZWFuKHRhcmlmYSksIG1lYW4oZHVyYWNpb252aWFqZSkgKQ0KDQphY3VtdWxhdGl2b19wb3Job3JhDQoNCmBgYA0KbWVhbiBkZSB0YXJpZmE6DQpgYGB7cn0NCmRhdGFfcHJlcGFyZWQgJT4lDQogICBzdW1tYXJpemUoIG1lYW4odGFyaWZhKSkNCg0KDQpgYGANCg0KSW50ZXJlc2FudGVtZW50ZSB2ZW1vcyBxdWUgbGFzIHByaW1lcmFzIGhvcmFzIGRlIGxhIG1hw7FhbmEgZ2VuZXLDoSBtYXMgaW5ncmVzbywgcGVybyBzZSBpbmNyZW1lbnRhIGxhIGNhbnRpZGFkIGRlIHZpYWplcywgbG8gcXVlIGltcGxpY2EgZWwgcHJlY2lvIGRlYmUgZGUgYmFqYXIgZW4gbGFzIHByaW1lcmEgaG9yYXMsIFNpbiBlbWJhcmdvIGNvbW8gZW4gbGEgZ3JhZmljYSBkZSB0YXJpZmEvaG9yYSBzYWxpZGEgdmVtb3MgcXVlIGRlIDEyIGEgMSBlbCBwcmVjaW8gc2UgdmEgYSBpbmNyZW1lbnRhcg0KDQoNCmNvbiByZWxhY2nDs24gYSBlc3RhIGRhdGEgdmVhbW9zIGVsIGNvbXBvcnRhbWllbnRvIGRlIGxhIHRhcmlmYSB5IGRlIGxvcyB2aWFqZXMgcG9yIGhvcmENCkhvcmEgc2FsaWRhOg0KYGBge3J9DQpzdW1tYXJ5KGRhdGFfcHJlcGFyZWQkaG9yYXNhbGlkYSkNCmBgYA0KVGFyaWZhDQpgYGB7cn0NCnN1bW1hcnkoZGF0YV9wcmVwYXJlZCR0YXJpZmEpDQpgYGANCg0KYGBge3J9DQpzdW1tYXJ5KGRhdGFfcHJlcGFyZWQkZHVyYWNpb252aWFqZSkNCmBgYA0KDQpWZWFtb3Mgc2kgdW5hIHJlZ3Jlc2lvbiBsaW5lYWwgbm9zIHBlcm1pdGUgZGV0ZXJtaW5hciBsYSB0YXJpZmEgYmFzYWRvIGVuIGxhIGhvcmEgZGUgc2FsaWRhIA0KYGBge3J9DQogYTwtbG0odGFyaWZhfmhvcmFzYWxpZGErZHVyYWNpb252aWFqZSwgZGF0YT1kYXRhX3ByZXBhcmVkKQ0Kc3VtbWFyeShhKQ0KYGBgDQpDb21vIHBvZGVtb3MgdmVyIGVsIFB2YWx1ZSBlcyBtdXkgcGVxdWXDsW8gZXN0byBpbXBsaWNhIHF1ZSB1bm8gZGUgbG9zIHByZWRpY3RvcmVzIGVzdGEgZnVlcnRlbWVudGUgcmVsYWNpb25hZG8gY29uIG51ZXN0cmEgdmFyaWFibGUgdGFyaWZhIHF1ZSBlcyBsYSByZXNwdWVzdGENCkNvbnNpZGVyZW1vcyBlbnRvbmNlcyBxdWUgZWwgUlNFKEVycm9yIHJlc2lkdWFsIHN0YW5kYXIpIGVzIGRlIDEwLjM4IC8yOC4xNyA9ICAzNi44JQ0KDQpgYGB7cn0NCmNvZWYoYSkNCmBgYA0KZGF0b3MgYSBwcmVkZWNpcg0KYGBge3J9DQpkYXRhX3ByZWRpY3QNCg0KYGBgDQoNCmBgYHtyfQ0KcHJlZGljdChvYmplY3QgPSBhLCBkYXRhX3ByZWRpY3QgKQ0KYGBgDQpjb21vIHBvZGVtb3MgdmVyIGFwZXNhciBxdWUgdW5hIGRlIGxhcyB2YXJpYWJsZXMgbm8gcGVybWl0ZSBzZXIgdGFuIHByZWNpc28gZWwgYWxnb3JpdG1vLCBlc3RlIGNhbGN1bGEgbGEgdGFyaWZhIGNvbiBtb250b3MgYWNlcHRhYmxlLg==