Adelie Chinstrap Gentoo
152 68 124
EST212 - Bioestatística
Antes de iniciar nossa aula:
Abra o RStudio.
Crie um novo script.
Crie uma pasta na área de trabalho com seu nome.
Defina a pasta como diretório de trabalho
Salve o script criado na pasta com o nome "aula18_est212.R"
.
Baixe do Moodle o arquivo penguins.csv
.
Leia o arquivo listado acima para o objetos penguins
.
Até o momento, todas as análises foram realizadas com variáveis numéricas ou, no mínimo, em escala ordinal.
Ou seja, as técnicas estão limitadas aos dados que podemos mensurar, ou na pior das hipóteses, ordenar.
Entretanto, existe uma categoria de suma importância na estatística, que não pertence à escala intervalar ou ordinal. São os dados categóricos, ou qualitativos, em escala nominal.
Definição: uma variável é dita categórica nominal (ou qualitativa nominal), quando seus valores expressam um atributo que não pode ser ordenado.
Exemplos:
sexo
religião
profissão
espécie
presença de doença
tipo de tratamento
tipo de intervenção
local de origem, etc.
Como os dados em escala nominal não apresentam valores numéricos, sua análise não pode ser realizada diretamente em seus valores.
De modo geral, sua análise se dá por meio de frequências, proporções e medidas congêneres.
Desse modo, é bastante comum a utilização de tabelas e gráficos específicos para este tipo de dados, como gráficos de barras, tabelas de frequência e contingência, por exemplo.
Vamos relembrar alguns conceitos vistos na disciplina de Bioestatística 1 e aprender a calculá-los no R.
Uma tabela de frequência é uma tabela que agrupa seus elementos em classes, categorias, atributos, etc.
Como a partir dessa aula trataremos de dados em escala nominal, ilustraremos uma tabela de frequência cujos elementos são categorias ou atributos. Vamos utilizar nosso conjunto de dados penguins
mais uma vez.
Em nosso conjunto de dados, se observarmos as espécies de penguins, chegaremos às seguintes contagens, de um total de 344 animais:
Adelie: 152
Chinstrap: 68
Gentoo: 124
Vamos organizar esses dados em uma tabela de frequência. Para isso, vamos definir as frequências absoluta e relativa.
Para definir uma tabela de frequência, precisamos definir as seguintes quantidades:
Com essas quantidades, podemos construir uma tabela de frequências padrão.
Usualmente, uma tabela de frequências para variáveis categóricas é ordenada de forma crescente ou decrescente, mas nada impede a utilização de outros ordenamentos, como alfabético por exemplo.
Espécie | Frequência Absoluta (\(n_i\)) | Frequencia Relativa (\(f_i\)) |
---|---|---|
Adelie | 152 | 0,442 |
Gentoo | 124 | 0,360 |
Chinstrap | 68 | 0,198 |
Total | 344 | 1 |
Nessa tabela podemos observar que a maior parte da amostra é composta por penguins da espécie Adelie, seguidos pelos penguins Gentoo. Os penguins Chinstrap são os que apresentam menor frequência.
No R, podemos gerar as frequências absolutas de uma variável categórica por meio da função table
. Vamos gerar as frequências absolutas por espécie de penguim:
Adelie Chinstrap Gentoo
152 68 124
Esse tipo de tabela será a base de nossas análises e testes de hipóteses daqui por diante.
Entretanto, se o objetivo for gerar uma tabela de frequências como a vista acima, mais completa, as funções base do R são um pouco mais limitadas e dependem de um conhecimento maior para gerá-las.
Para construir a tabela de frequências utilizaremos a função tabyl
, do pacote janitor
.
Ela é utilizada da seguinte forma: tabyl(var1 = x, dat = dados)
possui os seguintes parâmetros:
dat
- conjunto de dados em estudo
var1
- variável para a qual se quer construir a tabela de frequências
Vamos refazer a tabela de espécies de penguins usando a função tabyl
:
Ao salvar nossa tabela como objeto, podemos usar as funções adorn_
para customizar nossa tabela. As principais funções adorn para tabelas de frequência são:
adorn_totals
- Adiciona os totais por linha, coluna ou ambos
adorn_rounding(digits = n)
- arredonda as porcentagens para o número de dígitos desejados
adorn_pc_formating
- converte as frequências relativas para porcentagens
A seguir, algumas customizações em nossa tabela.
Vamos usar as funções adorn_
para customizar a tabela:
#Tabela de frequência de espécies com a função tabyl
tabela <- tabyl(var1 = especie, dat = penguins)
#Adicionando totais
adorn_totals(tabela)
especie n percent
Adelie 152 0.4418605
Chinstrap 68 0.1976744
Gentoo 124 0.3604651
Total 344 1.0000000
especie n percent
Adelie 152 0.44
Chinstrap 68 0.20
Gentoo 124 0.36
especie n percent
Adelie 152 44.2%
Chinstrap 68 19.8%
Gentoo 124 36.0%
Podemos também aplicar todas as formatações à nossa tabela. Basta salvar o objeto formatado e aplicar a nova formatação a ele:
#Tabela de frequência de espécies com a função tabyl
tabela <- tabyl(var1 = especie, dat = penguins)
#Adicionando totais
tabela <- adorn_totals(tabela)
#Conversão para porcentagem
tabela <- adorn_pct_formatting(tabela)
#Arredondamento das proporções para 2 dígitos
tabela <- adorn_rounding(tabela, digits = 2)
#Resultado final
tabela
especie n percent
Adelie 152 44.2%
Chinstrap 68 19.8%
Gentoo 124 36.0%
Total 344 100.0%
Assim como o boxplot é a visualização padrão quando queremos visualizar uma variável contínua, seja de forma isolada, ou separada por categorias, no caso de dados categóricos, o gráfico padrão é o gráfico de barras.
Para gerar um gráfico de barras no R, precisamos de uma tabela simples e a função barplot(height)
. O parâmetro height
é um objeto que repasse a contagem de cada categoria, usualmente uma tabela gerada pela função table
.
Ele possui uma série de parâmetros. Os principais são semelhantes aos da função boxplot:
main
- Título do gráfico
col
- cor(es) do gráfico
xlab
e ylab
- Títulos dos eixos x e y, respectivamente
Vamos gerar o gráfico de barras de nossa tabela de penguins por espécie:
Adelie Chinstrap Gentoo
152 68 124
Podemos deixar ele mais sofisticado adicionando alguns detalhes:
O gráfico exprime as mesmas as mesmas informações da tabela de frequências.
Construa a tabela de frequência simples e a tabela de frequências completa.
Utilize a tabela de frequência simples para gerar gráfico de barras com a frequência de penguins por ilha.
Primeiramente, vamos construir a tabela de frequências simples:
Biscoe Dream Torgersen
168 124 52
Agora a tabela de frequências completa:
Agora vamos gerar o gráfico de barras
A ilha mais populosa é a ilha Biscoe, seguida pelas ilhas Dream e Torgersen.
As tabelas de frequência são úteis para verificar o comportamento de uma variável qualitativa nominal. Entretanto, sua abordagem é fundamentalmente descritiva.
O objetivo principal desse curso está na análise inferencial, que é explorar relações entre variáveis e estender a conclusão para a população de interesse.
De modo geral, quando se trata de variáveis nominais, o principal interesse é analisar como se dá a interação entre duas variáveis qualitativas. Por exemplo:
Verificar se existe relação entre sexo e ocorrência de infarto.
Analisar se entre três tipos de tratamento algum deles cura mais indivíduos.
Checar se existe alguma atividade predominante em uma espécie animal por período do dia, dentre outras possibilidades.
Porém, conforme mencionado no início da aula, não há um valor numérico para ser diretamente analisado. Ambas as variáveis são qualitativas nominais:
Sexo - Masculino e Feminino. Ocorrência de Infarto - Sim e Não
Tipo de tratamento: tratamento 1, tratamento 2 e tratamento 3. Cura: Sim e Não
Atividade predominante: alimentação, socialização, migração. Período: Matutino, vespertino, noturno
Em situações como essa, não há uma variável quantitativa explicita. O que pode ser observado são as quantidades que ocorrem em cada uma das categorias.
Vamos utilizar novamente o exemplo dos golfinhos. Uma amostra de 15 observações foi extraída de nosso banco de dados, contendo a espécie e a ilha em que os penguins residem:
especie ilha
1 Gentoo Biscoe
2 Gentoo Biscoe
3 Adelie Dream
4 Adelie Biscoe
5 Adelie Torgersen
6 Adelie Dream
7 Gentoo Biscoe
8 Chinstrap Dream
9 Adelie Biscoe
10 Adelie Torgersen
11 Gentoo Biscoe
12 Adelie Biscoe
13 Adelie Biscoe
14 Gentoo Biscoe
15 Gentoo Biscoe
Podemos contar quantos penguins de cada tipo vivem em cada ilha:
Os resultados da contagem seguem na tabela a seguir:
Biscoe | Dream | Torgersen | |
---|---|---|---|
Adelie | 4 | 2 | 2 |
Chinstrap | 0 | 1 | 0 |
Gentoo | 6 | 0 | 0 |
A tabela acima representa a contagem de cada tipo de penguim segmentada pela ilha na qual ele reside.
Tabelas desse tipo são ditas tabelas de contingência.
Definição: Uma tabela de contingência é uma tabela que relaciona a frequência de duas (ou mais) variáveis categóricas. Também são conhecidas como tabelas cruzadas ou tabelas bidirecionais.
Uma tabela de contingência tem m linhas e k colunas, em que m e k são a quantidade de níveis das variáveis qualitativas presentes nas linhas e colunas da tabela, respectivamente. Consequentemente, a tabela terá \(m \times k\) elementos.
\(C_1\) | \(C_2\) | \(\cdots\) | \(C_k\) | |
\(R_1\) | \(n_{11}\) | \(n_{12}\) | \(\cdots\) | \(n_{1k}\) |
\(R_2\) | \(n_{21}\) | \(n_{22}\) | \(\cdots\) | \(n_{2k}\) |
\(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | |
\(R_m\) | \(n_{m1}\) | \(n_{m2}\) | \(\cdots\) | \(n_{mk}\) |
A tabela acima tem duas variáveis, a primeira com \(m\) níveis e a segunda com \(k\) níveis.
Em nosso exemplo, temos uma tabela \(3\times 3\):
Biscoe | Dream | Torgersen | |
---|---|---|---|
Adelie | 4 | 2 | 2 |
Chinstrap | 0 | 1 | 0 |
Gentoo | 6 | 0 | 0 |
Espécie - Níveis: Adelie, Chinstrap e Gentoo.
Ilhas: Biscoe, Torgersen e Dream.
Importante perceber que o tamanho da amostra é igual à soma das frequências, ou seja: \(n = \sum\limits_{i = 1}^m\sum\limits_{j = 1}^k n_{ij}\).
No nosso exemplo, o tamanho da amostra é \(n = 2 + 2 + 4 + 3 + 4 = 15\).
Para construir uma tabela de contingência no R, também utilizamos a função table
. Entretanto, informamos as duas variáveis de interesse: table (dados$x, dados$y)
, em que:
dados
- conjunto de dados em análise
x
- primeira variável de interesse
y
- segunda variável de interesse
A seguir, vamos fazer a tabela de contingência de penguins por espécie para nossa base de dados completa.
O código a seguir gera a tabela de contingência de penguins por espécie:
Biscoe Dream Torgersen
Adelie 44 56 52
Chinstrap 0 68 0
Gentoo 124 0 0
Perceba que apenas os penguins da espécie Adelie vivem nas três ilhas. Penguins Chinstrap vivem apenas nas ilhas Dream e penguins Gentoo vivem somente na ilha Torgersen.
Podemos também adicionar totais à nossa tabela de contingência, por meio da função addmargins
:
Biscoe | Dream | Torgersen | Sum | |
---|---|---|---|---|
Adelie | 44 | 56 | 52 | 152 |
Chinstrap | 0 | 68 | 0 | 68 |
Gentoo | 124 | 0 | 0 | 124 |
Sum | 168 | 124 | 52 | 344 |
Além da informação que já tinhamos, o quantitativo de penguins por espécie e por ilha, agora temos as informações marginais: total por espécie e total por ilha.
A ilha mais povoada é a Biscoe e a menos povoada a Torgersen, na qual apenas penguins Adelie vivem.
Existem várias opções para visualizar dados em tabelas de contingência. As duas principais são gráficos de barras agrupados e empilhados.
No gráfico de barras empilhadas, o total da categoria principal fica evidenciado.
No gráfico de linhas agrupadas, os totais por grupo são destacados.
Ambos são gerados com a função barplot
, e usam uma tabela de contingências como fonte de dados. A única diferença é o parâmetro beside = T
, que indica que as barras serão agrupadas:
Gráfico de barras empilhadas: barplot(tabela, legend.text = T)
.
Gráfico de barras agrupadas: barplot(tabela, legend.text = T, beside = T)
.
Vamos usar os gráficos de barras para visualizar nossos dados.
Usaremos como base nossa tabela anterior, tab_especie_ilha
:
Aqui é fácil perceber que a ilha Biscoe é a mais povoada, com maioria de penguins Gentoo. Também fica claro que só há penguins Adelie em Torgersen.
Usaremos novamente nossa tabela anterior, tab_especie_ilha
:
O gráfico de barras agrupadas evidencia melhor a distribuiçã das espécies por ilha. Note que os parâmetros de formatação também funcionam nesse gráfico.
Crie uma tabela de contingência de sexo por espécie. Depois adicione os totais a ela.
Gere os gráficos de barras empilhadas e agrupadas com base na tabela de contingência de sexo por espécie.
Primeiramente, a tabela de contingência simples e a tabela com totais.
#Tabela de contingência simples
tab_sexo_especie <- table(penguins$especie, penguins$sexo)
tab_sexo_especie
female male
Adelie 73 73
Chinstrap 34 34
Gentoo 58 61
female male Sum
Adelie 73 73 146
Chinstrap 34 34 68
Gentoo 58 61 119
Sum 165 168 333
É fácil ver que existe um equilíbrio entre os sexos dos penguins por espécie na amostra em estudo.
Vamos usar nossa tabela tab_sexo_especie
como base para os gráficos:
Nesse gráfico, o Equilíbrio entre os sexos por espécie fica bastante evidente.
Vamos usar nossa tabela tab_sexo_especie
como base para os gráficos:
Já nesse segundo gráfico, percebe-se que a distribuição das espécies por sexo é bastante semelhante também.
Hoje começamos a visualizar modos de analizar dados qualitativos por meio de tabelas de frequência e suas relações por meio das tabelas de contingência. Entretanto, se tratam de técnicas descritivas, ou seja, cujas conclusões valem apenas para a amostra em estudo.
A partir da próxima aula, estudaremos os métodos que permitem que testemos tais relações a nível populacional, dadas duas amostra.