library(tidyverse)
## -- Attaching packages ----------------------------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 2.2.1 v purrr 0.2.4
## v tibble 1.4.2 v dplyr 0.7.4
## v tidyr 0.8.0 v stringr 1.3.0
## v readr 1.1.1 v forcats 0.3.0
## -- Conflicts -------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(here)
## here() starts at C:/Users/PC/Desktop/lab2-cp4-emanuelIFPB-master/lab2-cp4-emanuelIFPB-master
library(lubridate)
##
## Attaching package: 'lubridate'
## The following object is masked from 'package:here':
##
## here
## The following object is masked from 'package:base':
##
## date
library(knitr)
library(ggplot2)
theme_set(theme_bw())
dados = read_csv(here::here("data/search_data.csv")) %>%
head(100000)
## Parsed with column specification:
## cols(
## session_id = col_character(),
## search_index = col_integer(),
## session_start_timestamp = col_double(),
## session_start_date = col_datetime(format = ""),
## group = col_character(),
## results = col_integer(),
## num_clicks = col_integer(),
## first_click = col_integer()
## )
head(dados)
## # A tibble: 6 x 8
## session_id search_index session_start_time~ session_start_date group
## <chr> <int> <dbl> <dttm> <chr>
## 1 0000cbcb67c1~ 1 20160303152045. 2016-03-03 15:20:45 b
## 2 0001382e027b~ 1 20160307084955. 2016-03-07 08:49:55 b
## 3 0001e8bb9044~ 1 20160305092415. 2016-03-05 09:24:15 b
## 4 000216cf18ae~ 1 20160308161946. 2016-03-08 16:19:46 a
## 5 000216cf18ae~ 2 20160308161953. 2016-03-08 16:19:53 a
## 6 000216cf18ae~ 3 20160308162032. 2016-03-08 16:20:32 a
## # ... with 3 more variables: results <int>, num_clicks <int>,
## # first_click <int>
names(dados)
## [1] "session_id" "search_index"
## [3] "session_start_timestamp" "session_start_date"
## [5] "group" "results"
## [7] "num_clicks" "first_click"
{r} group : Um marcador (“a” ou “b”);
{r} results : Número de ocorrências retornadas para o usuário;
{r} num_clicks : Número de ocorrências clicadas pelo usuário;
{r} first_click : Posição da ocorrência que o usuário clicou primeiro.
{r} session_start_date: Data e hora do início da pesquisa.
Primeiro vamos analisar os quartis da variável {r} num_clicks
with(dados, tapply(num_clicks, group, summary))
## $a
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0000 0.0000 0.3583 1.0000 36.0000
##
## $b
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0000 0.0000 0.1526 0.0000 3.0000
Podemos observar que em média o grupo A tem maior número de clicks que o grupo B. Porém, o número diferente de ocorrências (pesquisas no site de busca) do grupo A e B podem estar enviesando o resultado. Precisamos nos aprofundar na análise.
Na Figura 01 podemos observar a distribuição da quantidade de clicks para cada grupo
dados %>%
ggplot(aes(x = group, y = num_clicks)) +
geom_jitter(alpha = .4, size = 2) + labs(y= "Numero de Clicks", x="Grupos", title="Figura 1 - Numero de clicks para os grupos A e B")
Podemos observar que existem mais ocorrências de buscas no grupo A em relação ao grupo B. Para finalizar nossa análise, vamos avaliar dia após dia o comportamento da variável {r} num_clicks
dados %>%
group_by(round_date(session_start_date , unit="day"), group) %>%
summarise(somatorio = sum(num_clicks)) %>%
head()
## # A tibble: 6 x 3
## # Groups: round_date(session_start_date, unit = "day") [3]
## `round_date(session_start_date, unit = "day")` group somatorio
## <dttm> <chr> <int>
## 1 2016-03-01 00:00:00 a 1748
## 2 2016-03-01 00:00:00 b 199
## 3 2016-03-02 00:00:00 a 4198
## 4 2016-03-02 00:00:00 b 540
## 5 2016-03-03 00:00:00 a 4271
## 6 2016-03-03 00:00:00 b 541
Como podemos observar, em nossa amostra de três dias (01, 02 e 03 de Março de 2016) sempre o número de clicks do grupo A superou do grupo B.
Primeiro vamos analisar os quartis da variável {r} first_click
with(dados, tapply(first_click, group, summary))
## $a
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 1.00 1.00 1.00 4.85 2.00 4103.00 48454
##
## $b
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 1.000 1.000 1.000 1.983 2.000 35.000 27278
Podemos observar que em pesquisas realizadas no grupo B os usuários clicam em resultados mais iniciais (Mean 1.983) em relação as pesquisas do grupo A (Mean 4.85)
Como isso muda no dia-a-dia?
ggplot(data=dados, aes(x=day(session_start_date), y=first_click, fill=group)) + geom_bar(stat="identity", position=position_dodge()) + labs(y= "Quantidade primeiros clicks", x="Dia", title="Figura 2 - Análise do primeiro click por dia e grupo ")
Podemos observar qua na maioria dos casos o usuário clica no primeiro link após a busca
Inicialmente vamos analisar independente de grupos: