Teste de hipóteses em R: Explorando os dados MLB 2017

Introdução

Neste projeto, tive como objetivo praticar diferentes testes de hipóteses em R; enquanto explora os dados da temporada 2017 da MLB. Percorrerei brevemente a exploração e limpeza de dados, mas me concentrarei nos testes estatísticos. Depois de explorar os dados, escolhi as seguintes perguntas para fazer, levando a quatro testes estatísticos diferentes.

Organização e exploração de dados

Vamos primeiro carregar todos os dados no ambiente. Aqui, trabalharemos com dois arquivos Rdata diferentes. Um com dados sobre os jogadores (pls2017) e outro sobre os jogos (gls2017).

Vamos dar uma olhada nisso; começando com os dados dos jogadores (pls2017).

Ok sim, então temos uma lista com 168 itens. O que essas listas contêm?

Ok, então é uma lista de listas … hmm. vamos explorar um pouco mais.

A imagem abaixo é uma captura de tela de como os dados são organizados. ( mesmo que view(pls201))

Como você pode ver, os dados são organizados como uma lista de listas de dataframes. Onde cada lista contém os mesmos 4 dataframes:
1. ligas
2. playing_positions
3. equipes
4. jogadores

<”notas: se você olhar as descrições à direita, você pode ver que cada dataframe equivalente tem o mesmo número de colunas. Embora não seja necessário agregar todos os dataframes semelhantes em um dataframe. Isso apenas tornará mais fácil para mim explorar os dados e realizar meus testes.

Começando com os dados dos jogadores
Primeiro criaremos os quadros de dados vazios, nos quais organizaremos os dados.

Agora criaremos um loop for para iterar por meio de cada sublista e vincular os dataframes semelhantes aos dataframes vazios inicializados acima.

Por segurança, removeremos todas as entradas duplicadas.

Ok, ótimo, agora temos todos os dados dos jogadores organizados em 4 frames de dados.

agora vamos repetir o processo com os dados dos jogos
Os dados dos jogos são organizados exatamente da mesma maneira, porém existem 12 frames de dados diferentes. – & gt; Mesmas etapas acima:

Agora temos todos os nossos dados carregados em quadros de dados fáceis de ler e navegar. Descobri que os dados game_log ( gls.17.game_logs ) tinham os dados mais interessantes, pois cada linha representava um jogo específico da perspectiva de um jogador individual. Eu escolhi fundir este dataframe com o dataframe dos jogadores ( pls.17.players ) para obter um único dataframe com as informações mais interessantes. E eu conduzi meus testes a partir desse quadro de dados maior.

Apenas para mostrar com o que estamos realmente trabalhando aqui: aqui estão todas as variáveis ​​do dataframe dos jogadores ( pls.17.players ).

E aqui estão todas as variáveis ​​nos dados game_log ( gls.17.game_logs ).

Mesclar as informações do jogador e as informações de registro do jogo
Mesclar esses dois dataframes foi fácil de fazer, pois cada jogador tinha seu próprio ID de jogador exclusivo.

Ótimo, agora temos a maioria dos dados interessantes em um único dataframe.

A maior parte desse processo foi explorar esses dados e procurar coisas interessantes para testar. No entanto, decidi cortar isso para me concentrar no teste de hipótese real. Vamos começar.

1] Salário x Total_Wins: Z-Test

Os jogadores bem pagos ganham, em média, mais jogos do que a população?

Ho : vitórias médias de players_paid & lt; = vitórias médias de jogadores
H1 : vitórias médias de players_paid & gt; média de vitórias dos jogadores
Teste : teste Z de uma amostra com nível de confiança de 95%.

Vamos começar tentando ver se os jogadores mais bem pagos (players_paid) realmente ganham mais jogos. Precisamos começar criando o atributo total de ganhos, pois ele ainda não existe.

Adicionando o atributo Total Wins
Para esta etapa, tudo o que precisamos fazer é usar a função which () dentro de um loop for para selecionar cada log do jogo para aquele jogador específico que foi uma vitória. Em seguida, some o número de instâncias.

Ótimo, então parece que temos um intervalo de 0 a 99 vitórias.

Agora, vamos dar uma olhada nos dados de salários:

Portanto, existem apenas 914 jogadores com salários diferentes de zero ou NA dos 1357 originais, e todos os salários estão em dólares americanos. Decidi apenas remover esses jogadores todos juntos, pois estou simplesmente procurando comparar o salário e o total de ganhos para fins de prática, portanto, não há um grande risco de apenas remover dados. Parece que o salário máximo foi de quase 35 milhões, uau, louco.

Há algum NA na coluna de vitórias no jogo?

Legal, então não há jogadores sem wins_total.

Ok, agora vamos dar uma olhada e ver se há uma correlação com o salário e o número total de vitórias
Existem algumas maneiras de fazer isso, vamos primeiro olhar para o gráfico e ver se podemos ver alguma correlação nós mesmos.

Podemos ver que não parece haver nenhuma correlação aqui. agora vamos tentar usar a função `cor ()` que realmente nos dará o coeficiente de correlação.

Ok, então com 0,17 podemos reforçar o fato de que não há realmente uma correlação entre o salário e o número de vitórias.

No entanto, quero fazer um teste estatístico, então vou dividir a população em dois grupos, vamos rotular jogadores que ganham mais de US $ 5.000.000 como jogadores bem pagos ou jogadores_pagos.

Podemos comparar esses jogadores bem pagos à população em geral e ver se o total de suas vitórias é estatisticamente maior do que a população. observação: escolhi o número $ 5.000.000, pois representa a maior parte do quartil superior e é um bom número redondo para discutir.

Vamos subdividir esses jogadores bem pagos.

Ok, então parece que temos aproximadamente o quarto melhor dos jogadores mais bem pagos.

Executando o Teste Z

Ho: ganhos médios de jogadores pagos & lt; = ganhos médios de todos os jogadores
H1: ganhos médios de jogadores pagos & gt; média de vitórias de todos os jogadores

Vamos primeiro retirar os números de que precisaremos para o teste; a média populacional e o desvio padrão.

Podemos ver que o número médio de vitórias no jogo é maior para os jogadores bem pagos. Vamos prosseguir e realizar o teste Z para ver se as médias são estatisticamente diferentes.

notação: Eu escolhi realizar um teste Z de uma amostra aqui porque com um tamanho de amostra de n = 215, é grande o suficiente para representar o população sobre a distribuição T de alunos.

Conclusão
O valor p é claramente menor que 0,05 e podemos rejeitar a hipótese nula. Portanto, podemos afirmar com segurança que os jogadores bem pagos ganham, em média, mais jogos do que a população em geral. Espero que seja esse o caso, caso contrário, os times de beisebol estariam fazendo um trabalho ruim ao alocar seus fundos.

2] Vantagem da cidade natal: qui-quadrado

O fato de um jogo ser em casa ou fora de casa independente desse time está ganhando ou perdendo o jogo?

Ho : se algum jogo em particular é ou não um jogo em casa para uma equipe, isso é independente de uma equipe que venceu um jogo
H1 : eles não são independentes
Teste : teste de qui-quadrado para independência com nível de confiança de 95%.

Aqui, vamos simplesmente verificar se a vantagem da cidade natal realmente ajuda uma equipe a vencer. Vou começar removendo todos os jogos de um site neutro:

Então, na verdade, não havia jogos em sites neutros, ótimo.

Fazendo a tabela de contingência
Para executar o teste qui-quadrado de independência, tudo que preciso fazer é criar uma tabela de contingência com casa / fora x vitória / derrota. Para fazer isso, primeiro vou criar uma matriz vazia e, em seguida, preenchê-la contando a duração das vitórias / derrotas selecionadas.

Como você pode ver, usei cada jogo nos logs de jogo como dois pontos de dados, um para o time da casa e outro para o time visitante. Provavelmente não é uma boa ideia, pois outros fatores que podem ter entrado em jogo em um determinado jogo seriam duplicados. No entanto, para fins de prática, decidi usar apenas cada jogo da perspectiva de cada equipe.

Execução do teste qui-quadrado de independência

Ho: Se algum jogo em particular é ou não um jogo em casa para uma equipe, isso é independente de uma equipe que venceu um jogo
H1: Eles não são independentes

Conclusão
Podemos rejeitar claramente a hipótese nula e concluir que a vantagem da cidade natal é real!

3] Home run x strike outs

Os jogadores que mais rebatem, acertam mais home runs em média do que a população?

Ho : a média de home runs de players_strikers é igual ou menor que a média de home runs de todos os jogadores
H1 : a média de home runs de players_strikers é maior que a média de home runs de todos os jogadores
Teste : teste T de uma amostra com nível de confiança de 95%.

Vamos ver se as pessoas que rebatem mais também acertam mais home runs. Primeiro, vou adicionar colunas à tabela de jogadores e obter todos os atributos corretos.

Agora, vamos remover quaisquer NA’s e examinar o resumo das duas variáveis.

Uau, só restam 710 após a remoção dos NA, o que é um pouco mais de 50% do total de jogadores. Isso é uma chatice, mas estávamos apenas indo com ele.

Vamos fazer um gráfico rápido para ver se podemos ver alguma correlação visualmente.

Legal, então você pode ver claramente que os jogadores que atacam mais também acertam mais homeruns, novamente sem surpresas aqui. agora vamos dar uma olhada no coeficiente de correlação. * observação: caso você esteja se perguntando, Aaron Judge teve a maior quantidade de eliminações, com 209 eliminações gritantes na temporada de 2017 (de acordo com este conjunto de dados). *

Uau, 0,87 é um coeficiente de correlação bastante alto. Agora, embora possamos ver claramente que há uma correlação entre os dois atributos, ainda quero executar um teste estatístico …

Para fins deste projeto; Vou novamente dividir os jogadores com base em quantos strike outs eles acertam. Vou simplesmente verificar se os jogadores que foram eliminados mais de 150 vezes na temporada de 2017 também acertaram mais home runs do que a população.

Ok, então existem 24 jogadores que eliminaram mais de 150 vezes. perfeito para um teste T.

Realizando o Teste T

Vamos pegar os números de que precisamos para fazer o teste.

Bem, os meios são extremamente diferentes, vamos prosseguir e realizar o teste T para ver se eles são significativamente diferentes.

Hipótese:
Ho: Home Runs médios de Players_strikers é igual ou menor que a média de home runs de todos os jogadores
H1: Home Runs médios de Players_strikers é maior que a média home runs de todos os jogadores
Teste: Teste T de uma amostra com nível de confiança de 95%.

Conclusão
Ótimo, então podemos rejeitar novamente a hipótese nula e afirmar que os jogadores que rebatem mais de 150 vezes, em média, acertam mais home runs do que a população em geral.

4] Anos de experiência x corridas rebatidas: ANOVA

Os jogadores com diferentes níveis de experiência têm RBIs diferentes?

Ho : o RBI médio é o mesmo nos três níveis de experiência
H1 : o RBI médio não é o mesmo nos três níveis de experiência
Teste : ANOVA unilateral com nível de confiança de 95%. mais um post-hoc tukey.

Agora vamos explorar como os anos de experiência podem afetar o rbi de um jogador. Vamos novamente subconectar todos os jogadores com base em seus anos de experiência e comparar os RBIs médios desses grupos. Dividirei o nível de experiência em três grupos explicados abaixo.

Vamos dar uma olhada na variável de experiência

Ok, então tenho 557 pontos de dados com um intervalo de 0 a 17 anos de experiência e uma média de 3,4 anos.

Vou dividir os dados em três grupos
1. Experiência baixa = menor ou igual a 5 anos
2. Experiência moderada = maior que 5 e menor ou igual a 10 anos
3. Alta experiência = mais de 10 anos de experiência

Farei um loop for simples para fazer isso:

Vamos ver esses grupos diferentes:

Portanto, há diferenças claras nos meios. Vamos criar um gráfico de barra simples para comparar as médias visualmente.

Você pode ver que os jogadores dentro da classe de experiência moderada têm o RBI médio mais alto. Acho que isso faz sentido considerando sua experiência e idade relativa. agora vamos ver se essas médias são estatisticamente diferentes.

Execução de uma ANOVA unilateral

Hipótese :
Ho: RBI médio é o mesmo nos três níveis de experiência
H1: RBI médio não é o mesmo nos três níveis de experiência
Teste: Um- Way ANOVA com nível de confiança de 95%. mais um post-hoc tukey.

Conclusão
Rejeitamos a hipótese nula; e declare que as médias do rbi total não são as mesmas para os diferentes níveis de experiência.

Agora vamos fazer um post-hoc para determinar quais médias foram estatisticamente diferentes:


alta experiência

5] Atendimento noturno vs. atendimento diurno

Mais pessoas vão a mais jogos noturnos?

Ho : médiaa frequência dos jogos noturnos é igual à frequência média de todos os jogos
H1 : a frequência média dos jogos noturnos NÃO é igual à frequência média de todos os jogos
Teste : Teste Z de uma amostra com nível de confiança de 95%.

No meu último teste, vou explorar se as pessoas vão ou não mais jogos noturnos do que jogos diurnos. Outra pergunta simples de fazer, que posso fazerum teste estatístico em.

Temos 2.421 jogos em 2.431, então perdemos 10jogos que devem ter NA’s.

Agora vamos subdividir os jogos em jogos noturnos e diurnos:

Huh, então a freqüência média aos jogos diurnos é na verdade maior do que à noite. Isso é estranho, vamos fazer um gráfico de barras rápido para comparar esses meios visualmente.

Execução de um teste Z para comparar as médias

Ho :presença de jogos noturnos = frequência de todos os jogos
H1 : frequência de jogos noturnos! = frequência de todos os jogos
Teste : Teste Z de uma amostra com 95%nível de confiança.

Conclusão
Podemos novamenterejeito a hipótese nula de que as médias são as mesmas, embora a frequência média de jogos noturnos seja na verdade menor do que a frequência média de jogos diurnos, o que me surpreendeu. Acho que a maioria das pessoas não trabalha.