Importar base de datos

#file.choose()

bd <- read.csv("/Users/dannaperez/Desktop/R/bases de datos/rentadebicis.csv")

Entender la base de datos

resumen <- summary(bd)
resumen
##       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

Observaciones

#1. porque los dias llegan hasta el 19 y no hasta el 31? #2. que significan los numeros en las estaciones? R: 1 es primavera, 2 es verano, 3 es otoño, 4 es invierno

plot(bd$temperatura,bd$rentas_totales, type = "p", main = "influencias de la temp. sobre las ventas", xlab = "temperatura", ylab = "rentas totales")

Generar regresion lineal

regresion <- lm(rentas_totales ~ hora + mes + estacion + dia_de_la_semana + asueto + temperatura + sensacion_termica + humedad + velocidad_del_viento,año,data=bd)
summary (regresion)
## 
## Call:
## lm(formula = rentas_totales ~ hora + mes + estacion + dia_de_la_semana + 
##     asueto + temperatura + sensacion_termica + humedad + velocidad_del_viento, 
##     data = bd, subset = año)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -1.035e-08  0.000e+00  0.000e+00  2.000e-12  2.000e-12 
## 
## Coefficients: (8 not defined because of singularities)
##                        Estimate Std. Error    t value Pr(>|t|)    
## (Intercept)          -4.217e+03  3.141e-11 -1.342e+14   <2e-16 ***
## hora                  2.840e+02  1.903e-12  1.493e+14   <2e-16 ***
## mes                          NA         NA         NA       NA    
## estacion                     NA         NA         NA       NA    
## dia_de_la_semana             NA         NA         NA       NA    
## asueto                       NA         NA         NA       NA    
## temperatura                  NA         NA         NA       NA    
## sensacion_termica            NA         NA         NA       NA    
## humedad                      NA         NA         NA       NA    
## velocidad_del_viento         NA         NA         NA       NA    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 9.926e-11 on 10884 degrees of freedom
## Multiple R-squared:      1,  Adjusted R-squared:      1 
## F-statistic: 2.228e+28 on 1 and 10884 DF,  p-value: < 2.2e-16

Evaluar y en caso necesario ajustar la regresion lineal

regresion <- lm(rentas_totales ~ hora + mes + sensacion_termica + humedad, data=bd)

Construir modelo predictivo

datos_nuevos <- data.frame(hora=12, mes=1:12, año=2013, sensacion_termica=24, humedad=62, velocidad_del_viento=13)
predict(regresion,datos_nuevos)
##        1        2        3        4        5        6        7        8 
## 156.0421 163.4588 170.8755 178.2922 185.7089 193.1256 200.5423 207.9590 
##        9       10       11       12 
## 215.3757 222.7924 230.2091 237.6259

Conclusiones

Los primeros pasos era entender la base de datos, lo cual se considera importante porque en algunos casos las bases de datos estan “sucias” y hay datos que no tienen información lógica. En este caso, hicimos lo que es la regresión lineal para observar que relación tiene la temperatura con las rentas totales.