A análise de dados do Campeonato Brasileiro Série A oferece insights valiosos sobre o desempenho das equipes e jogadores ao longo das temporadas. Essa análise é crucial para compreender tendências, padrões de pontuação e classificação, e contribui para aprimorar estratégias de treinamento e recrutamento. Vamos explorar os dados para extrair informações fundamentais sobre a competição.
Esta análise faz uso de dados obtidos através do portal de dados abertos https://basedosdados.org/. A fonte primária desses dados é a Confederação Brasileira de Futebol (CBF), responsável pela organização e gestão do Campeonato Brasileiro de Futebol - Série A. O https://basedosdados.org/ é um repositório abrangente que reúne uma variedade de informações provenientes de diversas fontes, incluindo dados essenciais fornecidos pela CBF.
Este projeto tem como propósito conduzir uma análise de dados do Campeonato Brasileiro de Futebol - Série A. Para alcançar esse objetivo, serão empregados dados obtidos a partir de fontes oficiais, com ênfase nas estatísticas e registros da Confederação Brasileira de Futebol (CBF), a entidade responsável pela organização e gestão do torneio.
Os dados para esta análise serão obtidos a partir de fontes oficiais da Confederação Brasileira de Futebol (CBF), responsável por centralizar e manter registros detalhados do Campeonato Brasileiro de Futebol - Série A.
A análise dos dados será conduzida utilizando os seguintes métodos:
Estatística descritiva: Esta abordagem será empregada para resumir as características fundamentais dos dados.
Visualização gráfica: Gráficos e visualizações serão utilizados para representar padrões e tendências.
Avaliação de desempenho: Métricas específicas serão aplicadas para avaliar o desempenho de equipes e jogadores.
Estatística Descritiva
Nesta etapa, serão realizados cálculos e análises para compreender as principais características dos dados do Campeonato Brasileiro Série A.
Medidas de Tendência Central: nos fornecem uma visão sobre o valor central dos dados, destacando onde a maioria das observações se concentra.
Medidas de Variabilidade: nos ajudam a entender o quão dispersos ou concentrados os dados estão em torno da medida central.
Medidas de Posição: dividem o conjunto de dados em partes iguais, ajudando a entender a distribuição em diferentes percentis.
Medidas de Assimetria e Curtose: indica se a distribuição dos dados é simétrica ou inclinada para um dos lados. A curtose avalia a forma das caudas da distribuição, indicando se os dados são mais ou menos afunilados em relação à distribuição normal.
Essas análises proporcionarão insights valiosos sobre a distribuição e variabilidade dos dados do Campeonato Brasileiro Série A.
A apresentação dos resultados da análise será feita através de tabelas, gráficos e análises descritivas. A fim de avaliar os aspectos fundamentais do desempenho no Campeonato Brasileiro Série A, serão consideradas as seguintes variáveis:
Variáveis Qualitativas
Variáveis Quantitativas
Análise dos Dados Serão utilizados dados de dois tipos distintos: qualitativos e quantitativos. Os dados qualitativos, que não são expressos em valores numéricos, servem para descrever características ou atributos dos jogos. Por outro lado, os dados quantitativos, que são expressos em valores numéricos, serão empregados para quantificar aspectos relevantes do desempenho das equipes e jogadores no Campeonato Brasileiro Série A.
A análise das variáveis qualitativas incluirá uma investigação detalhada sobre o impacto do estádio, bem como a performance dos times, tanto como mandantes quanto visitantes. Por sua vez, as variáveis quantitativas serão exploradas para compreender a distribuição de idades dos jogadores, a eficiência ofensiva em termos de gols por partida e a participação do público nos jogos.
Analisando as variáveis Qualitativas
Verificando maximo e minimo das variáveis qualitativas
#Estadio
maximo_estadio <- max(estadio)
minimo_estadio <- min(estadio)
# Mandante
maximo_mandante<- max(mandante)
minimo_mandante <- min(mandante)
# Visitante
maximo_visitante<- max(visitante)
minimo_visitante <- min(visitante)
# Verificando
estadio_maximo <- rownames(estadio)[which(estadio == maximo_estadio)]
estadio_minimo <- rownames(estadio)[which(estadio == minimo_estadio)]
mandante_maximo <- rownames(mandante)[which(mandante == maximo_mandante)]
mandante_minimo <- rownames(mandante)[which(mandante == minimo_mandante)]
visitante_maximo <- rownames(visitante)[which(visitante == maximo_visitante)]
visitante_minimo <- rownames(visitante)[which(visitante == minimo_visitante)]
Imprimindo resultados
Estádio
## O estádio que mais recebeu jogos foi Estádio Jornalista Mário Filho com 512 jogos durante o período de 2007 a 2023 .
## Os estádios tiveram menos jogos foram Arena da Amazônia,Arena das Dunas,Estádio Benedito Teixeira,Estádio Elmo Serejo Farias,Estádio Érton Coelho de Queiroz,Estádio Estadual Jornalista Edgar Augusto Proença,Estádio Estadual Lourival Baptista,Estádio Governador João Castelo - Castelão,Estádio Municipal Parque do Sabiá,Estadio Parque Maracaná,Estádio Universitário Pedro Pedrossian,Estádio Valmir Campelo Bezerra com apenas 1 jogo durante o mesmo período.
Mandante
## Os times que realizaram mais jogos como mandante foi Flamengo,Fluminense com 264 jogos como mandante.
## Os times que menos jogaram como mandante foi Ipatinga FC com apenas 3 jogo com seu mando.
Visitante
## Os times que realizaram mais jogos como visitante foi Flamengo com 263 jogos como visitante.
## Os times que menos jogaram como visitante foi Ipatinga FC com apenas 11 jogo como visitante.
Analisando as variáveis quantitativas
As variáveis analisadas no Campeonato Brasileiro de Futebol - Série A são: Idade dos Jogadores, Gols por Partida e Público Presente.
Variável quantitativa: Idade dos Jogadores
Medidas
# Cálculo Medida de Tendência Central
idade_jogadores<-as.numeric(tabela$idade_jogadores)#Tratamento de Erro
media_idade<-mean(idade_jogadores)
moda_idade<-mode(idade_jogadores)
mediana_idade<-median(idade_jogadores)
# Cálculo Medida de Variância
idade_jogadores<-c(tabela$idade_jogadores)#Fazendo um vetor
variancia_idade<-var(idade_jogadores)
desvio_padrao_idade<-sd(idade_jogadores)
coeficiente_angular_idade<-coef(lm(idade_jogadores ~ 1))
amplitude <- diff(range(idade_jogadores))
# Cálculo Medidas de Posição
# Quartil
q25 <- quantile(idade_jogadores, 0.25)
q50 <- quantile(idade_jogadores, 0.5)
q75 <- quantile(idade_jogadores, 0.75)
# Decil
d1 <- quantile(idade_jogadores, 0.1)
d2 <- quantile(idade_jogadores, 0.2)
d3 <- quantile(idade_jogadores, 0.3)
# Percentil
pb1 <- c(0.1)#Probabilidade
pb4 <- c(0.4)#Probabilidade
pb8 <- c(0.8)#Probabilidade
p1 <- quantile(idade_jogadores, pb1)
p4<- quantile(idade_jogadores, pb4)
p8 <- quantile(idade_jogadores, pb8)
# Cálculo Medidas de Assimetria e Curtose (Não Foi possivel Identificar, erro com função)
#assimetria_idade <- skewness(idade_jogadores)
#curtose_idade <- kurtosis(idade_jogadores)
Resultado: Medida de Tendência Central
## A média das idades dos jogadores é de 27 anos, indicando a idade média por jogador. A mediana, que é de 27 , representa a idade central, dividindo os jogadores em duas metades iguais. A moda, situada em numeric , representa a idade mais frequente nos dados.
Resultado: Medida de Variabilidade
## A variância das idades é de 2 indicando a dispersão dos valores em relação à média. A amplitude, que é de 12.5 , representa a diferença entre o maior e o menor valor das idades. O desvio padrão, de 2 , indica que, em média, os valores estão a aproximadamente 2 anos da média.
Resultado: Medida de Posição:
## O primeiro quartil (Q1) está em 26 o que indica que 25% dos jogadores têm uma idade menor ou igual a essa. O segundo quartil (Q2) é 27 , representando a mediana, o ponto em que 50% dos jogadores têm uma idade inferior. O terceiro quartil (Q3), situado em 28 , indica que 75% dos jogadores têm uma idade inferior a essa.
## Os decis dividem o conjunto de dados em 10 partes iguais. O primeiro decil representa o valor em que 10% dos jogadores têm uma idade menor. O segundo decil indica que 20% dos jogadores têm idade inferior a esse valor, e assim por diante. Podemos interpretar os resultados da seguinte maneira: 10% dos jogadores têm uma idade menor que 25 , 20% têm uma idade menor que 26 , e 30% têm uma idade menor que 26 . Os dados revelam uma variabilidade nas idades de estudo. A maioria dos jogadores possui uma idade mais jovem, enquanto um pequeno grupo apresenta idades mais avançadas.
## Os percentis calculados demonstram que 10% dos jogadores têm uma idade inferior a 25 , 40% têm uma idade inferior a 27 , e 80% têm uma idade inferior a 28 .
##
## Esses resultados indicam uma diversidade de idades. A maioria dos jogadores possui pelo menos 27 anos, enquanto um grupo reduzido tem idades mais avançadas.
Resultado: Assimetria e Curtose
## Não foi possivel realizar a amostra dos resultados de assimetria e curtose, devido ao erro de função intratavel. Mas os mesmo estão feitos e comentados para evitar erro.
Tabela de distribuição de Frequência - Idade Jogadores
##
## Attaching package: 'fdth'
## The following objects are masked from 'package:stats':
##
## sd, var
minimo <-min(idade_jogadores)#verificandoo valor minimo
maximo <-max(idade_jogadores)#verificando o valor maximo
k <-nclass.Sturges(idade_jogadores)
amplitudetotal<-maximo-minimo#calculo da amplitude total
h<-round(amplitudetotal/k, digits = 1)#Calculo da amplitude de classe
tdf<-fdt(idade_jogadores, start = minimo, end = maximo, h=h)#exibe a tabela de frequencia
tdf
## Class limits f rf rf(%) cf cf(%)
## [20.4,21.3) 1 0.00 0.02 1 0.02
## [21.3,22.2) 2 0.00 0.04 3 0.06
## [22.2,23.1) 10 0.00 0.20 13 0.26
## [23.1,24) 75 0.01 1.49 88 1.74
## [24,24.9) 249 0.05 4.93 337 6.68
## [24.9,25.8) 528 0.10 10.46 865 17.14
## [25.8,26.7) 896 0.18 17.75 1761 34.89
## [26.7,27.6) 1150 0.23 22.79 2911 57.68
## [27.6,28.5) 1048 0.21 20.76 3959 78.44
## [28.5,29.4) 632 0.13 12.52 4591 90.96
## [29.4,30.3) 303 0.06 6.00 4894 96.97
## [30.3,31.2) 113 0.02 2.24 5007 99.21
## [31.2,32.1) 34 0.01 0.67 5041 99.88
Gráficos - Idade Jogadores
plot(idade_jogadores, main = "Idade Jogadores", xlab = "Variável idade jogadores.")
barplot(table(idade_jogadores), main = "Frequência de Idades", xlab = "Idade", ylab = "Frequência")
Variável quantitativa: Gols por Partida
Medidas
# Cálculo Medida de Tendência Central
gols_partida<-as.numeric(tabela$gols_partida)#Tratamento de Erro
media_gols_partida<-mean(gols_partida)
moda_gols_partida<-mode(gols_partida)
mediana_gols_partida<-median(gols_partida)
# Cálculo Medida de Variância
gols_partida<-c(tabela$gols_partida)#Fazendo um vetor
variancia_gols_partida<-var(gols_partida)
desvio_padrao_gols_partida<-sd(gols_partida)
coeficiente_angular_gols_partida<-coef(lm(gols_partida ~ 1))
amplitude <- diff(range(gols_partida))
# Cálculo Medidas de Posição
# Quartil
q25 <- quantile(gols_partida, 0.25)
q50 <- quantile(gols_partida, 0.5)
q75 <- quantile(gols_partida, 0.75)
# Decil
d1 <- quantile(gols_partida, 0.1)
d2 <- quantile(gols_partida, 0.2)
d3 <- quantile(gols_partida, 0.3)
# Percentil
pb1 <- c(0.1)#Probabilgols_partida
pb4 <- c(0.4)#Probabilgols_partida
pb8 <- c(0.8)#Probabilgols_partida
p1 <- quantile(gols_partida, pb1)
p4<- quantile(gols_partida, pb4)
p8 <- quantile(gols_partida, pb8)
# Cálculo Medidas de Assimetria e Curtose (Não Foi possivel Identificar, erro com função)
#assimetria_gols_partida <- skewness(gols_partida)
#curtose_gols_partida <- kurtosis(gols_partida)
Resultado: Medida de Tendência Central
## A média das gol por partida é de 2.5 , indicando a média de gol por jogo. A mediana, que é de 2 , representa a quantidade de gols central, dividindo os gols em duas metades iguais. A moda, situada em numeric , representa a quantidade de gols mais frequente nos dados.
Resultado: Medida de Variabilidade de Gols por Partida
## A variância dos gols é de 2.5 indicando a dispersão dos valores em relação à média. A amplitude, que é de 10 , representa a diferença entre o maior e o menor valor dos gols. O desvio padrão, de 1.6 , indica que, em média, os valores estão a aproximadamente 1.6 gols da média.
Resultado: Medida de Posição:
## O primeiro quartil (Q1) está em 1 o que indica que 25% dos gols é menor ou igual a esse valor. O segundo quartil (Q2) é 2 , representando a mediana, o ponto em que 50% dos gols têm um valor inferior. O terceiro quartil (Q3), situado em 3 , indica que 75% dos gols têm um valor a esse.
## Os decis dividem o conjunto de dados em 10 partes iguais. O primeiro decil representa o valor em que 10% dos jogos têm menos gols. O segundo decil indica que 20% dos jogos têm gols inferior a esse valor, e assim por diante. Podemos interpretar os resultados da seguinte maneira: 10% dos jogos têm quantgols_partida de gols menor que 1 , 20% têm quantidade de gols menor que 1 , e 30% têm quantidade de gols menor que 1 .
## Os dados revelam uma que ão há uma grande variância na quantidade de gols por partida. A maioria dos jogos possui gols continuos.
## Os percentis calculados demonstram que 10% dos jogos têm quantidade de gols inferior a 1 , 40% têm quantidade de gols inferior a 2 , e 80% têm quantidade de gols inferior a 4 .
##
## Esses resultados indicam uma leve variância de quantidade de gols por partida. A maioria possui entre 1 e 4 gols por partida.
Tabela de distribuição de Frequência - Gols por Partida
## Class limits f rf rf(%) cf cf(%)
## [0,0.7) 429 0.09 8.50 429 8.50
## [0.7,1.4) 1098 0.22 21.76 1527 30.26
## [1.4,2.1) 1241 0.25 24.59 2768 54.84
## [2.1,2.8) 0 0.00 0.00 2768 54.84
## [2.8,3.5) 1087 0.22 21.54 3855 76.38
## [3.5,4.2) 675 0.13 13.37 4530 89.76
## [4.2,4.9) 0 0.00 0.00 4530 89.76
## [4.9,5.6) 312 0.06 6.18 4842 95.94
## [5.6,6.3) 136 0.03 2.69 4978 98.63
## [6.3,7) 0 0.00 0.00 4978 98.63
## [7,7.7) 49 0.01 0.97 5027 99.60
## [7.7,8.4) 15 0.00 0.30 5042 99.90
## [8.4,9.1) 4 0.00 0.08 5046 99.98
## [9.1,9.8) 0 0.00 0.00 5046 99.98
Gráficos - Gols por Partida
Variável quantitativa: Publico
Medidas
# Cálculo Medida de Tendência Central
publico<-as.numeric(tabela$publico)#Tratamento de Erro
media_publico<-mean(publico)
moda_publico<-mode(publico)
mediana_publico<-median(publico)
# Cálculo Medida de Variância
publico<-c(tabela$publico)#Fazendo um vetor
variancia_publico<-var(publico)
desvio_padrao_publico<-sd(publico)
coeficiente_angular_publico<-coef(lm(publico ~ 1))
amplitude <- diff(range(publico))
# Cálculo Medidas de Posição
# Quartil
q25 <- quantile(publico, 0.25)
q50 <- quantile(publico, 0.5)
q75 <- quantile(publico, 0.75)
# Decil
d1 <- quantile(publico, 0.1)
d2 <- quantile(publico, 0.2)
d3 <- quantile(publico, 0.3)
# Percentil
pb1 <- c(0.1)#Probabilpublico
pb4 <- c(0.4)#Probabilpublico
pb8 <- c(0.8)#Probabilpublico
p1 <- quantile(publico, pb1)
p4<- quantile(publico, pb4)
p8 <- quantile(publico, pb8)
# Cálculo Medidas de Assimetria e Curtose (Não Foi possivel Identificar, erro com função)
#assimetria_publico <- skewness(publico)
#curtose_publico <- kurtosis(publico)
Resultado: Medida de Tendência Central
## A média do publico por partida é de 18000.7 , indicando a média de publico por jogo. A mediana, que é de 14382 , representa a quantidade de publico central, dividindo os publico em duas metades iguais. A moda, situada em numeric , representa a quantidade de publico mais frequente nos dados.
Resultado: Medida de Variabilidade de publico por Partida
## A variância do publico é de 173904000 indicando a dispersão dos valores em relação à média. A amplitude, que é de 81758 , representa a diferença entre o maior e o menor valor do publico . O desvio padrão, de 13187.3 , indica que, em média, os valores estão a aproximadamente 13187.3 da média.
Resultado: Medida de Posição:
## O primeiro quartil (Q1) está em 8417 o que indica que 25% do publico é menor ou igual a esse valor. O segundo quartil (Q2) é 14382 , representando a mediana, o ponto em que 50% dos publico têm um valor inferior. O terceiro quartil (Q3), situado em 24370 , indica que 75% dos publico têm um valor a esse.
## Os decis dividem o conjunto de dados em 10 partes iguais. O primeiro decil representa o valor em que 10% dos jogos têm menos publico. O segundo decil indica que 20% dos jogos têm publico inferior a esse valor, e assim por diante. Podemos interpretar os resultados da seguinte maneira: 10% dos jogos têm publico menor que 4719.4 , 20% têm quantidade de publico menor que 7308.2 , e 30% têm quantidade de publico menor que 9484 .
## Os dados revelam uma que não há uma grande variância na quantidade de publico por partida. A maioria dos jogos possui publico continuos.
## Os percentis calculados demonstram que 10% dos jogos têm quantidade de publico inferior a 4719.4 , 40% têm quantidade de publico inferior a 11805.6 , e 80% têm quantidade de publico inferior a 28009.2 .
##
## Esses resultados indicam uma leve variância de quantidade de publico por partida. A maioria possui entre 4719.4 e 28009.2 por partida.
Tabela de distribuição de Frequência - Publico
## Class limits f rf rf(%) cf cf(%)
## [286,6125.9) 774 0.15 15.34 774 15.34
## [6125.9,11966) 1276 0.25 25.28 2050 40.62
## [11966,17806) 1040 0.21 20.61 3090 61.22
## [17806,23646) 647 0.13 12.82 3737 74.04
## [23646,29486) 395 0.08 7.83 4132 81.87
## [29486,35325) 332 0.07 6.58 4464 88.45
## [35325,41165) 253 0.05 5.01 4717 93.46
## [41165,47005) 146 0.03 2.89 4863 96.35
## [47005,52845) 64 0.01 1.27 4927 97.62
## [52845,58685) 47 0.01 0.93 4974 98.55
## [58685,64525) 41 0.01 0.81 5015 99.37
## [64525,70365) 23 0.00 0.46 5038 99.82
## [70365,76205) 2 0.00 0.04 5040 99.86
Gráficos - Publico
A continuidade das análises ao longo das temporadas é importante para monitorar tendências e ajustar estratégias conforme necessário. Dessa forma, o Campeonato Brasileiro de Futebol - Série A poderá continuar sendo uma das competições mais emocionantes e competitivas do país.
Exemplos de como os insights podem ser usados:
Esses insights fornecem uma base sólida para tomadas de decisão estratégicas por parte das equipes e gestores do campeonato. Recomenda-se a continuidade das análises ao longo das temporadas para monitorar tendências e ajustar estratégias conforme necessário.