library("janitor")
##
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
bd <-read.csv("C:\\Users\\chema\\Downloads\\rentadebicis.csv")
bd <- clean_names(bd)
summary(bd)
## hora dia mes ano
## 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
Área: Ventas. Mes con mayor ventas.
Visión / Segmentación / Personalización / Contextualización
Necesitamos estudiar la relación que existe entre las ventas y el clima para poder así predecir las ventas que habrá en cada mes del proximo año. Esto por medio de una regresión lineal. ## Paso 4. Reunir los datos requeridos. Ya se cuenta con la información necesaria.
Los primeros tres meses del año son los meses con menos ventas, por lo que se podría realizar estrategias de promoción para poder aumentar las ventas de ese mes. Un ejemplo de esto sería promociones de pareja 2x1 o descuentos en la renta de bicicletas en ciertos días de la semana. Se podría analizar qué días de la cuentan con mayor número de rentas y aprovecharse así para la promoción de estas.
temperatura <- bd$temperatura
#temperatura
rentas_totales <-bd$rentas_totales
#rentas_totales
plot(temperatura,rentas_totales, main="Influencia de la temperatura/rentas totales", xlab="Temperatura (C)", ylab= "Rentas Totales")
regresion <- lm (rentas_totales ~hora + dia + mes + ano + dia_de_la_semana + temperatura + sensacion_termica + estacion + dia_de_la_semana + asueto + temperatura + sensacion_termica + humedad + velocidad_del_viento, data=bd)
summary (regresion)
##
## Call:
## lm(formula = rentas_totales ~ hora + dia + mes + ano + dia_de_la_semana +
## temperatura + sensacion_termica + estacion + dia_de_la_semana +
## asueto + temperatura + sensacion_termica + humedad + velocidad_del_viento,
## data = bd)
##
## Residuals:
## Min 1Q Median 3Q Max
## -305.52 -93.64 -27.70 61.85 649.10
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.661e+05 5.496e+03 -30.217 < 2e-16 ***
## hora 7.735e+00 2.070e-01 37.368 < 2e-16 ***
## dia 3.844e-01 2.482e-01 1.549 0.12150
## mes 9.996e+00 1.682e+00 5.943 2.89e-09 ***
## ano 8.258e+01 2.732e+00 30.225 < 2e-16 ***
## dia_de_la_semana 4.393e-01 6.918e-01 0.635 0.52545
## temperatura 1.582e+00 1.038e+00 1.524 0.12752
## sensacion_termica 4.748e+00 9.552e-01 4.971 6.76e-07 ***
## estacion -7.774e+00 5.177e+00 -1.502 0.13324
## asueto -4.864e+00 8.365e+00 -0.582 0.56089
## humedad -2.115e+00 7.884e-02 -26.827 < 2e-16 ***
## velocidad_del_viento 5.582e-01 1.809e-01 3.086 0.00203 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 141.7 on 10874 degrees of freedom
## Multiple R-squared: 0.3891, Adjusted R-squared: 0.3885
## F-statistic: 629.6 on 11 and 10874 DF, p-value: < 2.2e-16
regresion <- lm (rentas_totales ~hora + mes + ano + sensacion_termica + humedad + velocidad_del_viento, data=bd)
summary (regresion)
##
## Call:
## lm(formula = rentas_totales ~ hora + mes + ano + 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 ***
## ano 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
datos_nuevos <-data.frame(hora=12, mes=1:12, ano=2013, sensacion_termica=24, humedad=62, velocidad_del_viento=13)
predict(regresion,datos_nuevos)
## 1 2 3 4 5 6 7 8
## 279.1478 286.7215 294.2952 301.8690 309.4427 317.0164 324.5901 332.1638
## 9 10 11 12
## 339.7375 347.3112 354.8849 362.4587
En esta base de datos se utilizó un modelo predictivo para poder realizar un forecast de ventas. Para esto principalmente se interpretaron y analizaron datos de la base que se nos fue brindada. Una vez que se realizó el modelo predictivo (tomando en cuenta mes y temperatura), pudimos notar que el mayor número de rentas se realizaba cuando las temperaturas oscilaban entre los 20 y 30 grados. Ahora, al agregar más variables como sensación térmica, humedad, hora, mes y año, obtuvimos que diciembre sería el mes con mayor número de rentas.