Luis Lemus 20 de octubre de 2016

Los sistemas de renta de bicycletas se basan en kioskos que son puestos en diferentes ????reas de una ciudad. En estos kioskos las personas pueden suscribirse, rentar y devolver las bicicletas. Esto permite que el usurio rente un bicicleta y la pueda devolver en otro lado. Actualmente hay mas de 500 de estos proyectos alrededor del mundo. Estos kioskos se vuelven sensores del flujo de personas dentro de ciudades. Su tarea es contestar las siguientes preguntas basadas en la data que se presenta en el siguiente link. http://www.academatica.com/econometria1/hour.csv Variables datetime - hourly date + timestamp season - 1 = spring, 2 = summer, 3 = fall, 4 = winter holiday - whether the day is considered a holiday workingday - whether the day is neither a weekend nor holiday weather - 1: Clear, Few clouds, Partly cloudy, Partly cloudy 2: Mist + Cloudy, Mist + Broken clouds, Mist + Few clouds, Mist 3: Light Snow, Light Rain + Thunderstorm + Scattered clouds, Light Rain + Scattered clouds 4: Heavy Rain + Ice Pallets + Thunderstorm + Mist, Snow + Fog temp - temperature in Celsius atemp - “feels like” temperature in Celsius humidity - relative humidity windspeed - wind speed casual - number of non-registered user rentals initiated registered - number of registered user rentals initiated count - number of total rentals Preguntas 1. ??Que mes es el que tiene la mayor demanda? 2. ??Que rango de hora es la de mayor demanda? 3. ??Que temporada es la mas alta? 4. ??A que temperatura baja la demanda? 5. ??A que humedad baja la demanda? ??Que condiciones serian ideales para nuestra demanda?

setwd("~/Desktop/chino")
bici_data<-read.csv(file = "hour.csv")
## Crear un data frame con las columnas relacionadas a los meses y la demanda
bici_data_mnth_cnt<-bici_data[,c("mnth","cnt")]
bici_data_mnth_cnt

## Encontrar dentro del data frame bici_data_mnth_cnt la sumatoria de la demanda de cada mes
bici_data_mnth_cnt_1<-subset(bici_data_mnth_cnt, subset = mnth < 2)
str(subset(bici_data_mnth_cnt, subset = mnth < 2))
data_cnt_1<-sum(bici_data_mnth_cnt_1$cnt)

bici_data_mnth_cnt_2<-subset(bici_data_mnth_cnt, subset = mnth < 3 & mnth > 1)
str(subset(bici_data_mnth_cnt, subset = mnth < 3 & mnth > 1))
data_cnt_2<-sum(bici_data_mnth_cnt_2$cnt)

bici_data_mnth_cnt_3<-subset(bici_data_mnth_cnt, subset = mnth < 4 & mnth > 2)
str(subset(bici_data_mnth_cnt, subset = mnth < 4 & mnth > 2))
data_cnt_3<-sum(bici_data_mnth_cnt_3$cnt)

bici_data_mnth_cnt_4<-subset(bici_data_mnth_cnt, subset = mnth < 5 & mnth > 3)
str(subset(bici_data_mnth_cnt, subset = mnth < 5 & mnth > 3))
data_cnt_4<-sum(bici_data_mnth_cnt_4$cnt)

bici_data_mnth_cnt_5<-subset(bici_data_mnth_cnt, subset = mnth < 6 & mnth > 4)
str(subset(bici_data_mnth_cnt, subset = mnth < 6 & mnth > 4))
data_cnt_5<-sum(bici_data_mnth_cnt_5$cnt)

bici_data_mnth_cnt_6<-subset(bici_data_mnth_cnt, subset = mnth < 7 & mnth > 5)
str(subset(bici_data_mnth_cnt, subset = mnth < 7 & mnth > 5))
data_cnt_6<-sum(bici_data_mnth_cnt_6$cnt)

bici_data_mnth_cnt_7<-subset(bici_data_mnth_cnt, subset = mnth < 8 & mnth > 6)
str(subset(bici_data_mnth_cnt, subset = mnth < 8 & mnth > 6))
data_cnt_7<-sum(bici_data_mnth_cnt_7$cnt)

bici_data_mnth_cnt_8<-subset(bici_data_mnth_cnt, subset = mnth < 9 & mnth > 7)
str(subset(bici_data_mnth_cnt, subset = mnth < 9 & mnth > 7))
data_cnt_8<-sum(bici_data_mnth_cnt_8$cnt)

bici_data_mnth_cnt_9<-subset(bici_data_mnth_cnt, subset = mnth < 10 & mnth > 8)
str(subset(bici_data_mnth_cnt, subset = mnth < 10 & mnth > 8))
data_cnt_9<-sum(bici_data_mnth_cnt_9$cnt)

bici_data_mnth_cnt_10<-subset(bici_data_mnth_cnt, subset = mnth < 11 & mnth > 9)
str(subset(bici_data_mnth_cnt, subset = mnth < 11 & mnth > 9))
data_cnt_10<-sum(bici_data_mnth_cnt_10$cnt)

bici_data_mnth_cnt_11<-subset(bici_data_mnth_cnt, subset = mnth < 12 & mnth > 10)
str(subset(bici_data_mnth_cnt, subset = mnth < 12 & mnth > 10))
data_cnt_11<-sum(bici_data_mnth_cnt_11$cnt)

bici_data_mnth_cnt_12<-subset(bici_data_mnth_cnt, subset = mnth < 13 & mnth > 11)
str(subset(bici_data_mnth_cnt, subset = mnth < 13 & mnth > 11))
data_cnt_12<-sum(bici_data_mnth_cnt_12$cnt)

## Se crea un nuevo data frame resumen

mes<-c(1,2,3,4,5,6,7,8,9,10,11,12)
demanda<-c(data_cnt_1,data_cnt_2,data_cnt_3,data_cnt_4,data_cnt_5,data_cnt_6,data_cnt_7,data_cnt_8,data_cnt_9,data_cnt_10,data_cnt_11,data_cnt_12)
data_cnt_total<-data.frame(mes,demanda)
data_cnt_total
position<-order(data_cnt_total$demanda)
data_cnt_total[position,]
tail(data_cnt_total[position,])

RESPUESTA 1: El mes con mayor demanda es el mes 8 con una cantidad de 351194.

Crear una data frame que tenga la columna de horas y demanda relacionadas

bici_data_hr_cnt<-bici_data[,c("hr","cnt")]
str(bici_data[,c("hr","cnt")])
## 'data.frame':    17379 obs. of  2 variables:
##  $ hr : int  0 1 2 3 4 5 6 7 8 9 ...
##  $ cnt: int  16 40 32 13 1 1 2 3 8 14 ...
bici_data_hr_cnt0<-subset(bici_data_hr_cnt, subset = hr < 1)
data_hr0_cnt<-sum(bici_data_hr_cnt0$cnt)
bici_data_hr_cnt1<-subset(bici_data_hr_cnt, subset = hr < 2 & hr > 0)
data_hr1_cnt<-sum(bici_data_hr_cnt1$cnt)
bici_data_hr_cnt2<-subset(bici_data_hr_cnt, subset = hr < 3 & hr > 1)
data_hr2_cnt<-sum(bici_data_hr_cnt2$cnt)
bici_data_hr_cnt3<-subset(bici_data_hr_cnt, subset = hr < 4 & hr > 2)
data_hr3_cnt<-sum(bici_data_hr_cnt3$cnt)
bici_data_hr_cnt4<-subset(bici_data_hr_cnt, subset = hr < 5 & hr > 3)
data_hr4_cnt<-sum(bici_data_hr_cnt4$cnt)
bici_data_hr_cnt5<-subset(bici_data_hr_cnt, subset = hr < 6 & hr > 4)
data_hr5_cnt<-sum(bici_data_hr_cnt5$cnt)
bici_data_hr_cnt6<-subset(bici_data_hr_cnt, subset = hr < 7 & hr > 5)
data_hr6_cnt<-sum(bici_data_hr_cnt6$cnt)
bici_data_hr_cnt7<-subset(bici_data_hr_cnt, subset = hr < 8 & hr > 6)
data_hr7_cnt<-sum(bici_data_hr_cnt7$cnt)
bici_data_hr_cnt8<-subset(bici_data_hr_cnt, subset = hr < 9 & hr > 7)
data_hr8_cnt<-sum(bici_data_hr_cnt8$cnt)
bici_data_hr_cnt9<-subset(bici_data_hr_cnt, subset = hr < 10 & hr > 8)
data_hr9_cnt<-sum(bici_data_hr_cnt9$cnt)
bici_data_hr_cnt10<-subset(bici_data_hr_cnt, subset = hr < 11 & hr > 9)
data_hr10_cnt<-sum(bici_data_hr_cnt10$cnt)
bici_data_hr_cnt11<-subset(bici_data_hr_cnt, subset = hr < 12 & hr > 10)
data_hr11_cnt<-sum(bici_data_hr_cnt11$cnt)
bici_data_hr_cnt12<-subset(bici_data_hr_cnt, subset = hr < 13 & hr > 11)
data_hr12_cnt<-sum(bici_data_hr_cnt12$cnt)
bici_data_hr_cnt13<-subset(bici_data_hr_cnt, subset = hr < 14 & hr > 12)
data_hr13_cnt<-sum(bici_data_hr_cnt13$cnt)
bici_data_hr_cnt14<-subset(bici_data_hr_cnt, subset = hr < 15 & hr > 13)
data_hr14_cnt<-sum(bici_data_hr_cnt14$cnt)
bici_data_hr_cnt15<-subset(bici_data_hr_cnt, subset = hr < 16 & hr > 14)
data_hr15_cnt<-sum(bici_data_hr_cnt15$cnt)
bici_data_hr_cnt16<-subset(bici_data_hr_cnt, subset = hr < 17 & hr > 15)
data_hr16_cnt<-sum(bici_data_hr_cnt16$cnt)
bici_data_hr_cnt17<-subset(bici_data_hr_cnt, subset = hr < 18 & hr > 16)
data_hr17_cnt<-sum(bici_data_hr_cnt17$cnt)
bici_data_hr_cnt18<-subset(bici_data_hr_cnt, subset = hr < 19 & hr > 17)
data_hr18_cnt<-sum(bici_data_hr_cnt18$cnt)
bici_data_hr_cnt19<-subset(bici_data_hr_cnt, subset = hr < 20 & hr > 18)
data_hr19_cnt<-sum(bici_data_hr_cnt19$cnt)
bici_data_hr_cnt20<-subset(bici_data_hr_cnt, subset = hr < 21 & hr > 19)
data_hr20_cnt<-sum(bici_data_hr_cnt20$cnt)
bici_data_hr_cnt21<-subset(bici_data_hr_cnt, subset = hr < 22 & hr > 20)
data_hr21_cnt<-sum(bici_data_hr_cnt21$cnt)
bici_data_hr_cnt22<-subset(bici_data_hr_cnt, subset = hr < 23 & hr > 21)
data_hr22_cnt<-sum(bici_data_hr_cnt22$cnt)
bici_data_hr_cnt23<-subset(bici_data_hr_cnt, subset = hr < 24 & hr > 22)
data_hr23_cnt<-sum(bici_data_hr_cnt23$cnt)
bici_data_hr_cnt24<-subset(bici_data_hr_cnt, subset = hr < 25 & hr > 23)
data_hr24_cnt<-sum(bici_data_hr_cnt24$cnt)

RESPUESTA 2: La hora en que m??s demanda existe es en la hora 17.

Crear una data frame con las columnas de temporada y demanda relacionadas

bici_data_season_cnt<-bici_data[,c("season","cnt")]

Crear la data frame con los sub-conjuntos de las temporadas

bici_data_season1_cnt<-subset(bici_data_season_cnt, subset = season < 2 & season > 0)
data_season1<-sum(bici_data_season1_cnt$cnt)
bici_data_season2_cnt<-subset(bici_data_season_cnt, subset = season < 3 & season > 1)
data_season2<-sum(bici_data_season2_cnt$cnt)
bici_data_season3_cnt<-subset(bici_data_season_cnt, subset = season < 4 & season > 2)
data_season3<-sum(bici_data_season3_cnt$cnt)
bici_data_season4_cnt<-subset(bici_data_season_cnt, subset = season < 5 & season > 3)
data_season4<-sum(bici_data_season4_cnt$cnt)

RESPUESTA 3: La temporada que m??s demanda tiene es la de Oto??o.

Crear una data frame que relacione las temperaturas con la demanda y ordenarlos.

bici_data_temp_cnt<-bici_data[,c("temp","cnt")]
ordenar_demanda_temperatura<-order(bici_data_temp_cnt$cnt)
data_temp_cnt<-bici_data_temp_cnt[ordenar_demanda_temperatura,]
head(data_temp_cnt)
##     temp cnt
## 5   0.24   1
## 6   0.24   1
## 31  0.40   1
## 50  0.16   1
## 72  0.14   1
## 119 0.16   1
head(data_temp_cnt,100)
##      temp cnt
## 5    0.24   1
## 6    0.24   1
## 31   0.40   1
## 50   0.16   1
## 72   0.14   1
## 119  0.16   1
## 141  0.20   1
## 142  0.20   1
## 166  0.18   1
## 190  0.08   1
## 191  0.08   1
## 192  0.10   1
## 211  0.12   1
## 213  0.12   1
## 258  0.14   1
## 304  0.10   1
## 305  0.10   1
## 330  0.16   1
## 353  0.26   1
## 355  0.26   1
## 378  0.18   1
## 435  0.26   1
## 436  0.26   1
## 459  0.22   1
## 460  0.22   1
## 508  0.04   1
## 527  0.04   1
## 528  0.04   1
## 529  0.02   1
## 552  0.14   1
## 575  0.20   1
## 599  0.20   1
## 646  0.14   1
## 667  0.22   1
## 715  0.22   1
## 716  0.22   1
## 739  0.18   1
## 761  0.14   1
## 762  0.14   1
## 811  0.26   1
## 812  0.26   1
## 833  0.20   1
## 857  0.28   1
## 904  0.14   1
## 951  0.12   1
## 1020 0.22   1
## 1042 0.20   1
## 1043 0.20   1
## 1091 0.46   1
## 1139 0.22   1
## 1162 0.32   1
## 1202 0.12   1
## 1318 0.32   1
## 1342 0.22   1
## 1366 0.20   1
## 1387 0.24   1
## 1389 0.20   1
## 1390 0.16   1
## 1413 0.18   1
## 1414 0.18   1
## 1438 0.30   1
## 1483 0.20   1
## 1484 0.20   1
## 1485 0.20   1
## 1506 0.24   1
## 1554 0.34   1
## 1601 0.24   1
## 1645 0.26   1
## 1646 0.26   1
## 1693 0.30   1
## 1811 0.34   1
## 1833 0.44   1
## 1835 0.42   1
## 1881 0.28   1
## 1882 0.28   1
## 2024 0.32   1
## 2047 0.24   1
## 2143 0.38   1
## 2192 0.24   1
## 2216 0.34   1
## 2239 0.34   1
## 2240 0.34   1
## 2311 0.46   1
## 2334 0.58   1
## 2356 0.40   1
## 2862 0.42   1
## 2911 0.36   1
## 3870 0.50   1
## 3990 0.64   1
## 4304 0.62   1
## 5166 0.66   1
## 5550 0.58   1
## 5637 0.62   1
## 5848 0.54   1
## 6135 0.44   1
## 6854 0.44   1
## 6901 0.50   1
## 7118 0.30   1
## 7119 0.26   1
## 7356 0.32   1
summary(head(data_temp_cnt,100))
##       temp             cnt   
##  Min.   :0.0200   Min.   :1  
##  1st Qu.:0.1800   1st Qu.:1  
##  Median :0.2400   Median :1  
##  Mean   :0.2636   Mean   :1  
##  3rd Qu.:0.3250   3rd Qu.:1  
##  Max.   :0.6600   Max.   :1
summary(head(data_temp_cnt,100))
##       temp             cnt   
##  Min.   :0.0200   Min.   :1  
##  1st Qu.:0.1800   1st Qu.:1  
##  Median :0.2400   Median :1  
##  Mean   :0.2636   Mean   :1  
##  3rd Qu.:0.3250   3rd Qu.:1  
##  Max.   :0.6600   Max.   :1

RESPUESTA 4: La temperatura en la cual la demanda es baja es entre 0.02 grados Celsius y 0.66 grados Celsius. Con un promedio de 0.2636 y una mediana de 0.24.

Crear una data frame que relaciona la informaci??n de humedad relativa y demanda.

bici_data_hum_cnt<-bici_data[,c("hum","cnt")]

Crear una data frame con la demanda ordenada.

ordenar_demanda_humedad<-order(bici_data_hum_cnt$cnt)
data_hum_cnt<-bici_data_hum_cnt[ordenar_demanda_humedad,]
head(data_hum_cnt,100)
##       hum cnt
## 5    0.75   1
## 6    0.75   1
## 31   0.76   1
## 50   0.47   1
## 72   0.63   1
## 119  0.64   1
## 141  0.69   1
## 142  0.69   1
## 166  0.55   1
## 190  0.53   1
## 191  0.53   1
## 192  0.49   1
## 211  0.50   1
## 213  0.50   1
## 258  0.86   1
## 304  0.54   1
## 305  0.54   1
## 330  0.59   1
## 353  0.56   1
## 355  0.56   1
## 378  0.43   1
## 435  0.56   1
## 436  0.56   1
## 459  0.80   1
## 460  0.87   1
## 508  0.57   1
## 527  0.45   1
## 528  0.45   1
## 529  0.48   1
## 552  0.74   1
## 575  0.86   1
## 599  0.75   1
## 646  0.93   1
## 667  0.64   1
## 715  0.93   1
## 716  0.93   1
## 739  0.43   1
## 761  0.63   1
## 762  0.63   1
## 811  0.60   1
## 812  0.60   1
## 833  0.86   1
## 857  0.93   1
## 904  0.59   1
## 951  0.74   1
## 1020 0.37   1
## 1042 0.47   1
## 1043 0.51   1
## 1091 0.67   1
## 1139 0.44   1
## 1162 0.45   1
## 1202 0.50   1
## 1318 0.93   1
## 1342 0.69   1
## 1366 0.75   1
## 1387 0.30   1
## 1389 0.27   1
## 1390 0.31   1
## 1413 0.74   1
## 1414 0.74   1
## 1438 0.93   1
## 1483 0.80   1
## 1484 0.80   1
## 1485 0.75   1
## 1506 0.52   1
## 1554 0.00   1
## 1601 0.65   1
## 1645 0.65   1
## 1646 0.65   1
## 1693 0.93   1
## 1811 0.71   1
## 1833 0.94   1
## 1835 0.82   1
## 1881 1.00   1
## 1882 1.00   1
## 2024 0.57   1
## 2047 0.93   1
## 2143 0.66   1
## 2192 0.65   1
## 2216 0.76   1
## 2239 0.76   1
## 2240 0.86   1
## 2311 0.94   1
## 2334 0.56   1
## 2356 1.00   1
## 2862 0.88   1
## 2911 0.71   1
## 3870 0.68   1
## 3990 0.89   1
## 4304 0.83   1
## 5166 0.89   1
## 5550 0.68   1
## 5637 0.83   1
## 5848 0.94   1
## 6135 0.77   1
## 6854 0.94   1
## 6901 0.82   1
## 7118 0.81   1
## 7119 0.93   1
## 7356 0.87   1
summary(head(data_hum_cnt,100))
##       hum              cnt   
##  Min.   :0.0000   Min.   :1  
##  1st Qu.:0.5575   1st Qu.:1  
##  Median :0.6900   Median :1  
##  Mean   :0.6854   Mean   :1  
##  3rd Qu.:0.8375   3rd Qu.:1  
##  Max.   :1.0000   Max.   :1

RESPUESTA 5: La humedad relativa en la cual la demanda es baja se encuentra entre 0 y 1 con una mediana de 0.69.

An??lisis del comportamiento de la demanda en la tabla completa.

bici_data["cnt"]
summary(bici_data["cnt"])

Se crea una data frame con las 4326 observaciones en donde la demanda se mueve entre 281 y 977 que son los mejores registros de la tabla completa. Posteriormente se hace el an??lisis.

data_demanda_ideal<-subset(bici_data,subset = cnt > 281)
str(data_demanda_ideal)
## 'data.frame':    4326 obs. of  17 variables:
##  $ instant   : int  1071 1104 1306 1635 1674 1721 1730 1731 1753 1754 ...
##  $ dteday    : Factor w/ 731 levels "1/01/11","1/01/12",..: 195 219 459 101 149 197 197 197 221 221 ...
##  $ season    : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ yr        : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ mnth      : int  2 2 2 3 3 3 3 3 3 3 ...
##  $ hr        : int  8 17 14 15 8 8 17 18 17 18 ...
##  $ holiday   : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ weekday   : int  4 5 0 0 2 4 4 4 5 5 ...
##  $ workingday: int  1 1 0 0 1 1 1 1 1 1 ...
##  $ weathersit: int  1 1 1 1 1 1 1 2 1 1 ...
##  $ temp      : num  0.32 0.66 0.44 0.48 0.26 0.36 0.5 0.46 0.7 0.68 ...
##  $ atemp     : num  0.333 0.621 0.439 0.47 0.288 ...
##  $ hum       : num  0.57 0.34 0.47 0.39 0.7 0.66 0.42 0.59 0.37 0.39 ...
##  $ windspeed : num  0.0896 0.3582 0.0896 0.3284 0.0896 ...
##  $ casual    : int  18 52 105 149 23 17 48 50 95 84 ...
##  $ registered: int  267 275 177 155 259 282 265 260 237 247 ...
##  $ cnt       : int  285 327 282 304 282 299 313 310 332 331 ...

RESPUESTA 6: Las condiciones ideales para que la demanda sea alta son las siguientes: Se debe tener una humedad relativa de 0.53. La velocidad del viento debe ser de 0.1940. La temperatura debe estar a 0.64 grados Celsius.El clima debe estar claro y con pocas nubes. D??a no festivo. En la hora 16 del d??a. En el mes 8.