Disponível no Kaggle.
Obs.: Os dados estão divididos em dois arquivos, mas por questões didáticas iremos utilizar apenas o “train.csv”.
library(tidyverse)
library(DT)
df <- read.csv(file="C:/Workspace/markdown_exercise/train.csv", sep = ";", dec = ".", header = TRUE)
Transformar os valores numericos da coluna season em sua respectiva estação, em inglês, para manter a coerência.
df$season <- factor(
df$season,
levels = c(1, 2, 3, 4),
labels = c("Winter", "Spring", "Summer", "Autumn")
)
df %>%
group_by(season) %>%
summarise(sum = sum(count)) %>%
arrange(desc(sum)) %>%
select(season, sum)
## # A tibble: 4 × 2
## season sum
## <fct> <int>
## 1 Summer 456228
## 2 Spring 420895
## 3 Autumn 375998
## 4 Winter 218703
É possível observar que no verão (Summer) é quando há a maior ocorrência de aluguéis.
df %>%
filter(weather == 1) %>%
mutate(
workingday = ifelse(workingday == 1,
"Dia útil",
"Feriado/Fim de semana")
) %>%
group_by(workingday) %>%
summarise(media = mean(count, na.rm = TRUE))
## # A tibble: 2 × 2
## workingday media
## <chr> <dbl>
## 1 Dia útil 207.
## 2 Feriado/Fim de semana 201.
O resultado sugere que, em dias úteis e com clima agradável, há uma tendência de ocorrer mais aluguéis de bicicletas.
Mostrar a tabela utilizando a biblioteca DT, com visualização máxima de 10 linhas por página.
datatable(df,
options = list(pageLength = 10))
Podemos verificar também qual é a média de aluguel nos dias de clima ruim (4), em dias úteis ou feriados/fim de semana.
Conforme visto no item 3 da seção Manipulação, foi calculada a média de alugueis em dias de clima agradável, tanto para dias de semana quanto para feriados e finais de semana.
A fórmula utilizada para chegar a este resultado é:
\(\overline{x} = \dfrac{\sum_{i=1}^{n}x_i}{n} = \dfrac{x_{1}+x_{2}+x_{3}+\cdots+x_{n}}{n}\).
Trata-se da média aritmética, ou seja a soma todos os valores dos dados divida pelo número de valores existentes. A única diferença entre a média populacional e a média amostral é o símbolo utilizado para representá-las: \(\mu\) para a população e \(\overline{x}\) para a amostra.
Aplicando a fórmula no dataset proposto, encontramos uma temperatura média de 20.2670854ºC.
Adicionalmente podemos encontrar também o desvio padrão dos valores de temperatura, dado pela fórmula:
\(\sigma = \sqrt{\dfrac{\sum_{i=1}^{n}(x_i - \mu)^{2}}{n}}\).
O desvio padrão é uma medida estatística que indica o grau de dispersão dos dados em relação à média do conjunto de dados.
Um baixo valor de desvio padrão indica que os valores tendem a estar próximos da média. Já um valor alto de desvio padrão indica que os dados estão mais espalhados, apresentando maior variabilidade em relação à média.
Temos que o desvio padrão para a variável temp do dataset é de 7.8240659, o que pode parecer alto, mas devemos levar em consideração que o calculo inclui todas as estações do ano.
Se utilizarmos um filtro para selecionar apenas uma das estações (Winter/Inverno) obemos os valores de 12.4984219ºC, e desvio padrão 5.1486973.
(Townsend 1971; Silva 2009)
Outra fórmula que podemos aplicar no dataset de aluguéis de bicicleta é o do Coeficiente de Pearson:
\(\begin{equation} r = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{n} (x_i - \bar{x})^2} \sqrt{\sum_{i=1}^{n} (y_i - \bar{y})^2}} \end{equation}\).
Esta fórmula é aplicada com o objetivo de determinar correlação entre duas variáveis, seja positiva ou negativa. Podemos utilizar para calcular a correlação entre duas variáveis que conhecidamente possuem correlação positiva: temperatura e sensação térmica.
correlation <- cor(df$temp, df$atemp, method = 'pearson')
Obtemos assim o valor de 0.9850874, indicando uma correlação muito forte.
(Benesty et al. 2009)
Finalmente, há duas fórmulas que podem ter sido utilizadas na criação do conjunto de dados: a fórmula da Sensação Térmica (Wind Chill) e a fórmula do Índice de Calor (Heat Index), respectivamente:
\(T_{wc} = 13.12 + 0.6215T - 11.37V^{0.16} + 0.3965TV^{0.16}\)
\(HI = -8.784695 + 1.61139411T + 2.338549RH - 0.14611605TRH\)
A fórmula do Índice de Calor, diferentemente da fórmula de Sensação Térmica, leva em consideração a umidade relativa do ar, enquanto a fórmula de Sensação Térmica utiliza a velocidade do vento como variável adicional.
A seguir, as duas fórmulas são implementadas em R utilizando como parâmetros as médias de temperatura, umidade relativa do ar e velocidade do vento durante a estação Autumn/Outono.
T <- mean(df$temp[df$season == "Autumn"])
V <- mean(df$windspeed[df$season == "Autumn"])
Twc <- 13.12 + 0.6215*T - 11.37*(V^0.16) + 0.3965*T*(V^0.16)
T <- mean(df$temp[df$season == "Autumn"])
RH <- mean(df$humidity[df$season == "Autumn"])
HI <- -8.784695 + 1.61139411 * T + 2.338549 * RH -0.14611605 * T * RH
Obtemos então os valores estimados de Sensação Térmica 16.3837606 e Índice de Calor 11.9710694, que diferem da média da coluna atemp para a estação Autumn 20.0492597. Isso sugere que outro método pode ter sido utilizado no cálculo da variável atemp.
(Osczevski 1995; Rothfusz 1990)