#file.choose()
bd <- read.csv("/Users/dannaperez/Desktop/R/bases de datos/rentadebicis.csv")
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
#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")
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
regresion <- lm(rentas_totales ~ hora + mes + sensacion_termica + humedad, data=bd)
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
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.