Copia todo el código de aquí abajo en tu sesión de RStudio
# codigo para ecobici en R
library(tidyverse)
library(lubridate)
# leer csv
file.choose()
raw_data <- read_csv("C:\\ruta_carpeta\\2020-02.csv")
# head(raw_data)
# procesamiento de datos
viajes_diarios <- raw_data %>%
mutate(fecha_hora = dmy_hms(paste(Fecha_Retiro, Hora_Retiro))) %>%
filter(fecha_hora >= as.Date('2020-02-24'),
fecha_hora <= as.Date('2020-02-27')) %>%
group_by(horas = floor_date(fecha_hora, unit = 'hour')) %>%
summarise(conteo = n())
# rellenando los ceros
horas_completas <- data.frame(
horas = seq(
floor_date(min(viajes_diarios$horas), unit = 'hour'),
floor_date(max(viajes_diarios$horas), unit = 'hour'),
by = 'hour'
))
# left join con horas
viajes_hora <- horas_completas %>%
group_by(horas_readondeadas = floor_date(horas, unit = 'hour')) %>%
left_join(viajes_diarios) %>%
mutate(conteo = ifelse(is.na(conteo), 0, conteo))
# grafica de lineas inicial
ggplot(data = viajes_diarios,
aes(x = horas,
y = conteo)) +
geom_line()
# creando objeto ts para modelo
conteo_ts <- ts(viajes_hora$conteo,
start = 1,
frequency = 24)
conteo_ts
# haciendo modelo ARIMA
# install.packages('forecast')
library(forecast)
ajuste <- auto.arima(y = conteo_ts)
summary(ajuste)
predicciones <- forecast(ajuste)
min(predicciones[['lower']])
max(predicciones[['upper']])
p_predict <- autoplot(predicciones)
p_predict
# graficando toda la semana
# procesamiento de datos
viajes_diarios <- raw_data %>%
mutate(fecha_hora = dmy_hms(paste(Fecha_Retiro, Hora_Retiro))) %>%
filter(fecha_hora >= as.Date('2020-02-24'),
fecha_hora <= as.Date('2020-02-29')) %>%
group_by(horas = floor_date(fecha_hora, unit = 'hour')) %>%
summarise(conteo = n())
# rellenando los ceros
horas_completas <- data.frame(
horas = seq(
floor_date(min(viajes_diarios$horas), unit = 'hour'),
floor_date(max(viajes_diarios$horas), unit = 'hour'),
by = 'hour'
))
# left join con horas
viajes_hora <- horas_completas %>%
group_by(horas_readondeadas = floor_date(horas, unit = 'hour')) %>%
left_join(viajes_diarios) %>%
mutate(conteo = ifelse(is.na(conteo), 0, conteo))
# grafica de lineas inicial
ggplot(data = viajes_diarios,
aes(x = horas,
y = conteo)) +
geom_line()+
ylim(-551.5396, 4103.783) +
labs(title = 'Realidad')