O que são os dados

## Observations: 12,299
## Variables: 17
## $ TaskNumber           <chr> "1735", "1742", "1971", "2134", "2251", "22…
## $ Summary              <chr> "Flag RI on SCM Message Summary screen usin…
## $ Priority             <dbl> 1, 1, 2, 5, 10, 1, 5, 5, 6, 5, 2, 1, 3, 1, …
## $ RaisedByID           <chr> "58", "58", "7", "50", "46", "13", "13", "1…
## $ AssignedToID         <chr> "58", "42", "58", "42", "13", "13", "13", "…
## $ AuthorisedByID       <chr> "6", "6", "6", "6", "6", "58", "6", "6", "6…
## $ StatusCode           <chr> "FINISHED", "FINISHED", "FINISHED", "FINISH…
## $ ProjectCode          <chr> "PC2", "PC2", "PC2", "PC2", "PC2", "PC9", "…
## $ ProjectBreakdownCode <chr> "PBC42", "PBC21", "PBC75", "PBC42", "PBC21"…
## $ Category             <chr> "Development", "Development", "Operational"…
## $ SubCategory          <chr> "Enhancement", "Enhancement", "In House Sup…
## $ HoursEstimate        <dbl> 14.00, 7.00, 0.70, 0.70, 3.50, 7.00, 7.00, …
## $ HoursActual          <dbl> 1.75, 7.00, 0.70, 0.70, 3.50, 7.00, 7.00, 7…
## $ DeveloperID          <chr> "58", "42", "58", "42", "13", "13", "43", "…
## $ DeveloperHoursActual <dbl> 1.75, 7.00, 0.70, 0.70, 3.50, 7.00, 7.00, 7…
## $ TaskPerformance      <dbl> 12.25, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, …
## $ DeveloperPerformance <dbl> 12.25, 0.00, 0.00, 0.00, 0.00, 0.00, NA, 0.…

Entendendo os dados

Data summary
Name Piped data
Number of rows 12299
Number of columns 4
_______________________
Column type frequency:
character 2
numeric 2
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
ProjectCode 0 1 3 4 0 20 0
TaskNumber 0 1 4 5 0 10266 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
HoursEstimate 0 1 10.15 28.84 0.01 1 3 7.0 910.00 ▇▁▁▁▁
HoursActual 0 1 13.18 68.72 0.01 1 3 8.5 2490.16 ▇▁▁▁▁

Temos 20 projetos, com 12299 estimativas_raw. Não há apenas uma estimativa por tarefa, já que há apenas 10266 valores distintos de TaskNumber.

## # A tibble: 1,384 x 2
## # Groups:   TaskNumber [1,384]
##    TaskNumber     n
##    <chr>      <int>
##  1 10605          8
##  2 6889           8
##  3 10089          7
##  4 10974          7
##  5 11056          7
##  6 11270          7
##  7 13124          7
##  8 13190          7
##  9 13253          7
## 10 3812           7
## # … with 1,374 more rows

1 estimativa por task

Para nossa análise, usaremos uma estimativa por task. Caso haja mais de uma usaremos a média das estimativas_raw:

Antes de investigar as relações, vejamos como se comportam nossos dados. Como nosso interesse é na relação entre as horas estimadas e horas reais, vamos explorar essas duas variáveis.

Queremos ver, primeiramente, a diferença entre as horas estimadas e as reais. Para isso, temos o erro absoluto, que nos diz quão distante estão as duas variáveis.

Vemos que os dados estão bem distorcidos devido a presença de outliers. Vejamos como se comportam os dados ao filtrarmos esses outliers.

Foram filtrados cerca de 151 outliers. A partir daqui, iremos considerar os dados sem outliers.

Como podemos observar, a maior parte das tarefas tem uma diferença de horas absolutas próximas ou iguais a 0, o que significa que as horas estimadas para essas tarefas é bem próxima da quantidade real de horas utilizadas.

Qual a relação entre as estimativas e horas reais tomadas na empresa como um todo e em diferentes categorias de tarefa?

Mesmo descartando os outliers, as observações ficam muito concentradas, dificuldade na tarefa de encontrar uma relação. Vejamos quando aplicamos uma escala logarítmica.

Parece existir uma relação positiva e forte entre as horas estimadas e as horas reais. Mas pode ser precipitado assumir que existe uma relação expressiva baseando-se apenas no gráfico, por isso então iremos utilizar algumas medidas estatísticas para invesigar melhor essas relações.

Coeficientes de correlação

Os coeficientes de correlação são métodos estatísticos utilizados para medir as relações entre variáveis. A partir dos valores deles é possível identificar a força e o sinal da relação. Iremos, aqui, utilizar 3 desses coeficientes:

O coeficiente de correlação de Pearson, também chamado de correlação linear ou r de Pearson, é um grau de relação entre duas variáveis quantitativas e exprime o grau de correlação através de valores situados entre -1 e 1.

O coeficiente de correlação de postos de Spearman é uma medida de correlação não paramétrica também avaliado no intervalo entre -1 e 1.

O coeficiente de correlação de Kendall é uma medida de associação para variáveis ordinais.

Vejamos, então, os valores dos coeficientes para nossas variáveis HoursEstimate e HoursActual.

## # A tibble: 1 x 3
##   Pearson Spearman Kendall
##     <dbl>    <dbl>   <dbl>
## 1   0.780    0.826   0.696

Encontramos valores semelhantes para os 3 coeficientes. Embora o coeficiente de Pearson seja mais sensível à outliers que os outros dois, como realizamos uma filtragem, seus valores tendem a se aproximar.

Confirmando nossas suspeitas levantadas pelo gráfico, podemos concluir que existe uma relação forte e positiva ([0.7, 1[) entre as as horas estimadas e as horas reais. Ou seja, novamente, as horas estimadas para essas tarefas é bem próxima da quantidade real de horas utilizadas.

Vejamos se isso se repete quando separamos as tasks por categoria.

O gráfico nos levar a crer que existe uma relação forte e positiva entre as variáveis para as 3 categorias. Vejamos se os coeficientes confirmam isso:

## # A tibble: 3 x 4
##   Category    Pearson Spearman Kendall
##   <chr>         <dbl>    <dbl>   <dbl>
## 1 Development   0.773    0.832   0.698
## 2 Management    0.841    0.759   0.641
## 3 Operational   0.716    0.850   0.735

De acordo com o coeficiente de Pearson, em todas as categorias existe uma relação positiva e forte entre as horas estimadas e as horas reais. O mesmo para o coeficiente de Spearman. Já no coeficiente de Kendall, as variáveis na categoria Management possuem um relação moderada, enquanto as outras categorias possuem uma relação forte. Todas positivas.

Concluimos que existe uma relação positiva e forte entre as variáveis HoursEstimate e HoursActual para as 3 categorias de tasks, com exceção da categoria Management quando consideramos o coeficiente de Kendall.

Equipes com mais desenvolvedores produzem estimativas com mais ou menos erro que equipes menores?

Para responder essa pergunta, iremos utilizar os mesmo método que usamos anteriormente. Iremos explorar a relação entre as variáveis agregadas dev que indica a quantidade de desenvolvedores de uma equipe e erro_medio_abs que é a média absoluta do erro (HoursEstimate - HoursActual) estimado pela equipe.

Pelo gráfico não parece existir uma relação expressiva entre as variáveis. Vejamos se os coeficientes nos dizem algo mais:

## # A tibble: 1 x 3
##   Pearson Spearman Kendall
##     <dbl>    <dbl>   <dbl>
## 1 -0.0892    0.124  0.0873

Todos os coeficientes estão próximos de 0. Isso nos deixa concluir que não existe relação expressiva entre as variáveis. Ou seja, não podemos dizer se equipes com mais desenvolvedores produzem estimativas com mais ou menos erro que equipes menores.