Uma nota sobre workspaces: Antes de comerçarmos este laborátorio vamos relembrar o objetivo de utilizarmos o R Markdown. A área de trabalho (workspace) do console e a área de trabalho do R Markdown não são as mesmas. Portanto, se você definir uma variável apenas no Console e tentar usá-la em um documento R Markdown, você obterá um erro. Isso pode parecer um pouco frustrante no começo, mas na verdade esse mecanismo irá ajudá-lo em longas linhas de comando. Para garantir que o seu relatório seja completamente reproduzível, tudo deve ser definido no seu documento R Markdown.

É de sua reponsabilidade, e um importante objetivo de aprendizagem, que você domine as habilidades de se criar relatórios de análise de dados completamente reproduzíveis. Abaixo seguem algumas dicas para alcançar este objetivo:


Seu relatório reprodutível: Antes de iniciarmos o laboratório, lembre-se de mudar seu “working directory” para a pasta que contém os arquivos necessários para a realização do laboratório. Em seguida, baixe o modelo de relatório R Markdown que será utilizado neste laboratório, por meio do comando abaixo, e abra o documento correspondente; basta clicar no arquivo lab3.Rmd. Lembre-se que todos os seus códigos e respostas devem estar neste documento.:

download.file("https://passeioaleatorio.com/datalab/labs/rmd/lab3.Rmd", destfile = "lab3.Rmd")

Mãos Quentes (Hot Hands)

Jogadores de basquete que pontuam várias vezes seguidas costumam ser descritos como tendo as mãos quentes. Fãs e jogadores acreditam há muito tempo no fenômeno das mãos quentes, que refuta o pressuposto de que cada lance é independente do próximo. Contudo, um artigo de 1985 escrito por Gilovich, Vallone e Tversky coletou evidências que contradizem essa crença e mostrou que lances sucessivos são eventos independentes. Este artigo iniciou uma grande controvérsia que continua até hoje, como você pode verificar se procurar por hot hand basketball no Google.

Não temos a expectativa de resolver esta controvérsia hoje. Entretanto, neste laboratório nós aplicaremos um procedimento para responder a questões como essa. Os objetivos deste laboratório são (1) refletir sobre o efeito de eventos independentes e dependentes, (2) aprender como simular sequências de lances no R, e (3) comparar a simulação com os dados efetivos para determinar se o fenômeno das mãos quentes parece ser real.

Começando

Nossa investigação terá como foco a performance de um jogador: Kobe Bryant do Los Angeles Lakers. Sua performance contra o Orlando Magic nas finais de 2009 da NBA lhe deram o título de Jogador Mais Valioso (ou, em inglês, Most Valuable Player) e vários espectadores comentaram como ele parecia demonstrar a característica de mãos quentes. Vamos carregar alguns dados desses jogos que iremos utilizar durante este laboratório.

load(url("https://passeioaleatorio.com/datalab/dados/hot_hand.RData"))

Uma nota sobre os dados: Embora os dados estejam no seu idioma originário que é o inglês, durante o laboratório serão feitas as traduções necessárias para o prosseguimento da análise de dados. As variáveis vs, game, quarter, time, description e shoot podem ser traduzidas como contra, jogo, quarto, tempo, descrição e arremesso, respectivamente.

Você deve ver dois objetos na aba Environment: kobe_basket e calc_streak:

Apenas olhando para a sequência de acertos e erros pode ser difícil de auferir se é provável que Kobe estava arremessando com as mãos quentes. Uma possível maneira de abordarmos este problema é supormos que arremessadores com as mãos quentes tendem a conseguir uma longa sequências de acertos. Para este laboratório, definiremos o comprimento de uma sequência de acertos como o número de cestas consecutivas até acontecer um erro.

Por exemplo, no Jogo 1 Kobe teve a seguinte sequência de acertos e erros de suas nove tentativas de arremessos no primeiro quarto:

\[ \textrm{H M | M | H H M | M | M | M} \]

Para verificar esta informação, use o seguinte comando:

kobe_basket %>%
  filter(game == 1, quarter == 1) %>%
  select(shot)

Dentre as nove tentativas de arremesso existem seis sequências, que são separadas por um “|” acima. Seus comprimentos são um, zero, dois, zero, zero, zero (em ordem de ocorrência).

  1. O que uma sequência de comprimento 1 significa, ou seja, quantos acertos e erros existem dentro de uma sequência de comprimento 1? E de uma sequência de comprimento 0?

Contar os comprimentos de todas as 133 sequências manualmente seria extremamente tedioso, então iremos utilizar a função calc_streak para realizar este trabalho para nós. Os resultados serão armazenados em um conjunto de dados chamado kobe_streak como a variável length (comprimento em inglês).

kobe_streak <- kobe_basket %>%
  select(shot) %>%
  calc_streak()

Nós podemos dar uma olhada na distribuição desses comprimentos com o comando abaixo.

qplot(data = kobe_streak, x = length, geom = "histogram", binwidth = 1)
  1. Descreva a distribuição do comprimento das sequências de Kobe nas finais de 2009 da NBA. Qual foi seu comprimento de sequência típico? Qual foi o comprimento de sua maior sequência de cestas? Não esqueça de incluir o gráfico obtido em sua resposta.

Ao que comparar?

Nós mostramos que Kobe teve algumas sequências longas de arremesso, mas elas são longas o suficiente para apoiar a crença de que ele tinha mãos quentes? Com o que podemos compará-las?

Para responder a essa pergunta, vamos retornar ao conceito de independência. Dois eventos são independentes se o resultado de um evento não afeta o resultado do outro. Se cada arremesso do jogador for um evento independente, acertar ou errar o primeiro arremesso não afetará a probabilidade de ele converter ou errar o segundo arremesso.

Um arremessador com as mãos quentes terá arremessos que não são independentes um do outro. Mais especificamente, se o arremessador converte seu primeiro arremesso, o modelo acerca das mãos quentes afirma que ele terá uma probabilidade maior de converter seu segundo arremesso.

Vamos supor por um momento que o modelo das mãos quente é válido para Kobe. Durante sua carreira, o percentual de vezes que Kobe acertou uma cesta (ou seja, seu percentual de arremessos convertidos) é de cerca de 45%, ou, em notação de probabilidade,

\[ P(\textrm{arremesso 1 = H}) = 0.45 \]

Se ele converte o primeiro arremesso e tem as mãos quentes (arremessos não independentes), então a probabilidade de ele converter seu segundo arremesso deveria aumentar para, digamos, 60%,

\[ P(\textrm{arremesso 2 = H} \, | \, \textrm{arremesso 1 = H}) = 0.60 \]

Como um resultado do aumento da probabilidade, seria esperado que Kobe obtivesse sequências mais longas. Compare com a perspectiva cética de que Kobe não tenha as mãos quentes, ou seja, que cada arremesso é independente do próximo. Se ele acerta seu primeiro arremesso, a probabilidade de ele acertar o segundo continua sendo 0.45.

\[ P(\textrm{arremesso 2 = H} \, | \, \textrm{arremesso 1 = H}) = 0.45 \]

Em outras palavras, converter o primeiro arremesso não afeta de maneira alguma a probabilidade de ele converter o segundo arremesso. Se os arremessos de Kobe forem independentes, então ele teria a mesma probabilidade de acertar cada arremesso independentemente de seus arremessos anteriores: 45%.

Agora que reformulamos a situação em termos de arremessos independentes, vamos retornar à questão: como podemos saber se as sequências de arremessos de Kobe são longas o suficiente para indicar que ele tem mãos quentes? Podemos comparar o tamanho de suas sequências a alguém que não tem as mãos quentes: um arremessador independente.

Simulações no R

Embora não tenhamos dados de um “arremessador independente”, esse tipo de dado é muito fácil de ser simulado no R. Numa simulação, você define as regras básicas de um processo aleatório e então o computador utiliza números aleatórios para gerar um resultado fiel a essas regras. Como um exemplo simples, vamos simular o lançamento de uma moeda honesta onde K simboliza cara e C simboliza coroa:

face_moeda <- c("K", "C")
sample(face_moeda, size = 1, replace = TRUE)

Primeiramente registramos os possíveis resultados no vetor face_moeda. O comando sample realiza uma amostra do experimento ao selecionar aleatoriamente um dos valores K ou C. O vetor face_moeda pode ser entendido como um chapéu com duas tiras de papel dentro dele: numa tira está escrito K e na outra C. A função sample sorteia uma tira de dentro do chapéu e revela se ela é cara ou coroa.

Execute o segundo comando listado acima várias vezes. Da mesma maneira quando jogamos uma moeda, algumas vezes você obterá cara, algumas vezes você obterá coroa, mas a longo prazo você esperaria obter um número mais ou menos igual de cada possível resultado.

Se você quisesse simular o lançamento de uma moeda honesta 100 vezes, você poderia rodar a função 100 vezes ou, de forma mais simples, ajustar o argumento size (tamanho), que regula quantas amostras retirar. O argumento replace indica se há (TRUE) ou não (FALSE) reposição dos possíveis valores. Voltando à analogia do chapéu, TRUE indica que nós recolocamos a tira de papel de volta no chapéu antes de retirar as amostras seguintes. Salve o vetor resultante de caras e coroas num novo objeto denominado sim_moeda_honesta.

sim_moeda_honesta <- sample(face_moeda, size = 100, replace = TRUE)

Para visualizar os resultados desta simulação, digite o nome do objeto e então use o comando table pra contar o número de caras e coroas.

sim_moeda_honesta
table(sim_moeda_honesta)

Uma vez que há apenas dois elementos no vetor face_moeda, a probabilidade de que um lançamento dê o resultado cara é 0,5. Digamos que estamos tentando simular uma moeda viciada, onde a probabilidade de sair cara é 20%. Podemos ajustar a amostra adicionando um argumento denominado prob, que fornece um vetor com as respectivas probabilidades.

sim_moeda_viciada <- sample(face_moeda, size = 100, replace = TRUE, prob = c(0.2, 0.8))

prob=c(0.2, 0.8) indica que, para os dois elementos no vetor face_moeda, nós queremos selecionar o primeiro (cara) com probabilidade 0,2, e o segundo (coroa), com probabilidade 0,8. Outra maneira de pensar sobre esse cenário é imaginar o espaço amostral como um saco contendo 10 fichas, sendo 2 marcadas como “cara” e 8 como “coroa”. Portanto, a cada seleção, a probabilidade de retirar uma ficha escrito “cara” é 20%, e “coroa” é 80%.

  1. Em sua simulação de lançar uma moeda viciada 100 vezes, quantos lances deram cara? Inclua o código para a amostra da moeda viciada em sua resposta. Como o documento markdown irá rodar o código, e gerar uma nova amostra cada vez que você apertar o Knit, você deve também especificar uma semente (set a seed) antes de amostrar. Leia mais sobre a especificação de uma semente abaixo.

Uma nota sobre sementes: Especificar um semente irá fazer com que o R obtenha a mesma amostra cada vez que você aperta o botão Knit. Isso garante a reprodutibilidade do seu trabalho, uma vez que os seus resultados serão os mesmos cada vez que você compilar os seus comandos. Você pode especificar uma semente com o comando abaixo:

set.seed(9102015)                 # utilize uma semente diferente desta em seu relatório

O número acima é completamente arbitrário. Se você precisar de inspiração, poderá utilizar sua identidade, data de nascimento, ou apenas uma sequência qualquer de números. O importante é que você utilize cada semente apenas uma vez. Lembre-se de fazer isso antes de amostrar para o exercício acima

Num certo sentido, nós reduzimos o tamanho da tira de papel que diz “cara”, tornando-o menos provável de ser escolhido, e nós aumentamos o tamanho da tira de papel que diz “coroa”, tornando-o mais provável de ser retirado. Quando simulamos a moeda honesta, ambas as tiras de papel tinham o mesmo tamanho. Isso acontece de maneira padrão se você não fornecer o argumento prob; todos os elementos no vetor face_moeda terão igual probabilidade de serem escolhidos.

Se você quiser saber mais sobre a função sample ou qualquer outra, lembre-se que você pode sempre conferir seu arquivo de ajuda.

?sample

Simulando o Arremessador Independente

Para simular um jogador de basquete que arremessa de forma independente, utilizamos o mesmo mecanismo que empregamos para simular o lançamento de uma moeda. Para simular um único arremesso de um arremessador independente, com um percentual de acerto de 50%, digitamos

arremesso <- c("H", "M")
sim_cesta <- sample(arremesso, size = 1, replace = TRUE)

Para fazermos uma comparação válida entre Kobe e nosso arremessador independente simulado, precisamos alinhar tanto seus percentuais de arremesso quanto seus números de arremessos tentados.

  1. Qual mudança precisa ser feita para que a função sample reflita o percentual de arremessos de 45%? Faça esse ajuste, e então rode a simulação para uma amostra de 133 arremessos. Atribua o resultado dessa simulação a um novo objeto chamado sim_cesta.

Observe que nomeamos o novo vetor como sim_cesta, com o mesmo nome que demos ao vetor anterior correspondente a um percentual de arremesso de 50%. Nessa situação, o R sobrescreve o objeto antigo com o novo, portanto sempre se certifique que você não precisa da informação no vetor antigo antes de atribuir um novo objeto ao seu nome.

Com os resultados da simulação salvos como sim_cesta, temos os dados necessários para comparar Kobe ao nosso arremessador independente. Podemos visualizar os dados de Kobe em conjunto com os nossos dados simulados.

Ambos os conjuntos de dados representam o resultado de 133 tentativas de arremessos, cada uma com o mesmo percentual de arremesso de 45%. Sabemos que nossos dados simulados são de uma arremessador que arremessa de forma independente. Quer dizer, sabemos que o arremessador simulado não tem as mãos quentes.


Por sua conta

Comparando Kobe Bryant ao Arremessador Independente

  • Utilizando a função calc_streak, calcule os comprimentos de sim_cesta e salve os resultados em um conjunto de dados chamado sim_streak. Note que sim_streak é apenas um vetor e não uma variável de um conjunto de dados como o que utilizamos para calcular as sequências de Kobe. Desse modo, não é preciso selecionar a variável dentro de um conjunto de dados bastando apenas aplicar a função ao vetor.

  • Descreva a distribuição das sequências de arremessos. Qual é o comprimento de sequência típico para o arremessador independente simulado com um percentual de arremesso de 45%? Qual o comprimento da sequência mais longa de cestas em 133 arremessos? Não esqueça de incluir um gráfico à sua resposta.

  • Se você rodasse a simulação do arremessador independente uma segunda vez, como você acha que seria a distribuição de sequências em relação à distribuição da questão acima? Exatamente a mesma? Mais ou menos parecida? Completamente diferente? Explique seu raciocínio.

  • Como a distribuição dos comprimentos das sequências de Kobe Bryant se comparam à distribuição dos comprimentos das sequências do arremessador independente? Utilizando essa comparação, você possui evidências de que o modelo das mãos quentes se ajusta aos padrões de arremessos de Kobe? Explique.

  • Quais conceitos do livro são abordados neste laboratório? Quais conceitos, se houver algum, não são abordados no livro? Você viu esses conceitos em algum outro lugar, p.e. aulas, seções de discussão, laboratórios anteriores, ou tarefas de casa? Seja específico em sua resposta.

Este é um produto da OpenIntro que é liberado sob uma Creative Commons Attribution-ShareAlike 3.0 Unported. Este laboratório foi adaptado para a OpenIntro por Andrew Bray e Mine Çetinkaya-Rundel da Duke University de um laboratório escrito por Mark Hansen da UCLA Statistics e readaptado por Jhames Sampaio ao curso de Probabilidade e Estatística da Universidade de Brasília à partir de uma primeira tradução de Erikson Kaszubowski da Universidade Federal de Santa Catarina