Estrutura e tipos de dados

R
Estrutura de dados
Tipos de dados
Análise de dados
Descrição de diferentes estruturas de dados e tipos de variáveis, com foco em níveis de mensuração e tratamento de valores ausentes em tabelas.

Neste tópico exploramos os conceitos fundamentais de estrutura e tipos de dados, focando na organização de unidades amostrais e descritores em tabelas de dados. Também discutiremos diferentes tipos de variáveis, suas transformações e como lidar com valores ausentes (NA) em tabelas de dados. Para ilustrar esses conceitos, usaremos a tabela penguins_raw do pacote palmerpenguins em R, fornecendo tanto explicações teóricas quanto exemplos práticos de código em R.

library(tidyverse)
library(gt)
library(palmerpenguins)

1 Palmer Penguins dataset

A tabela penguins_raw inclui observações de nidificação, dados de morfometria e tamanho dos pinguins e medidas de isótopos de amostras de sangue de pinguins adultos das espécies Adélie (Pygoscelis adeliae), Chinstrap (Pygoscelis antarctica) e Gentoo (Pygoscelis papua).

data(penguins_raw)
penguins_raw |> 
  head() |>
  gt()
Tabela 1: Primeiras linhas da tabela penguins_raw.
studyName Sample Number Species Region Island Stage Individual ID Clutch Completion Date Egg Culmen Length (mm) Culmen Depth (mm) Flipper Length (mm) Body Mass (g) Sex Delta 15 N (o/oo) Delta 13 C (o/oo) Comments
PAL0708 1 Adelie Penguin (Pygoscelis adeliae) Anvers Torgersen Adult, 1 Egg Stage N1A1 Yes 2007-11-11 39.1 18.7 181 3750 MALE NA NA Not enough blood for isotopes.
PAL0708 2 Adelie Penguin (Pygoscelis adeliae) Anvers Torgersen Adult, 1 Egg Stage N1A2 Yes 2007-11-11 39.5 17.4 186 3800 FEMALE 8.94956 -24.69454 NA
PAL0708 3 Adelie Penguin (Pygoscelis adeliae) Anvers Torgersen Adult, 1 Egg Stage N2A1 Yes 2007-11-16 40.3 18.0 195 3250 FEMALE 8.36821 -25.33302 NA
PAL0708 4 Adelie Penguin (Pygoscelis adeliae) Anvers Torgersen Adult, 1 Egg Stage N2A2 Yes 2007-11-16 NA NA NA NA NA NA NA Adult not sampled.
PAL0708 5 Adelie Penguin (Pygoscelis adeliae) Anvers Torgersen Adult, 1 Egg Stage N3A1 Yes 2007-11-16 36.7 19.3 193 3450 FEMALE 8.76651 -25.32426 NA
PAL0708 6 Adelie Penguin (Pygoscelis adeliae) Anvers Torgersen Adult, 1 Egg Stage N3A2 Yes 2007-11-16 39.3 20.6 190 3650 MALE 8.66496 -25.29805 NA

A tabela penguins_raw contém 344 linhas e 17 colunas, cada uma representando diferentes aspectos dos dados coletados sobre os pinguins. Cada linha representa uma unidade amostral (UA) e cada coluna representa uma variável (VAR) que descreve um atributo específico da unidade amostral (Tabela 2).

Tabela 2: Descrição dos atributos da tabela penguins_raw.
Variável Tipo Descrição
studyName Categórica Expedição de amostragem de onde os dados foram coletados, gerados, etc.
Sample Number Quantitativa Discreta Um número inteiro indicando a sequência contínua de numeração para cada amostra
Species Categórica Uma string de caracteres indicando a espécie de pinguim
Region Categórica Uma string de caracteres indicando a região da grade de amostragem Palmer LTER
Island Categórica Uma string de caracteres indicando a ilha perto da Estação Palmer onde as amostras foram coletadas
Stage Categórica Uma string de caracteres indicando o estágio reprodutivo no momento da amostragem
Individual ID Categórica Uma string de caracteres indicando o ID único para cada indivíduo no conjunto de dados
Clutch Completion Categórica Uma string de caracteres indicando se o ninho estudado foi observado com uma ninhada completa, ou seja, 2 ovos
Date Egg Categórica Ordinal Uma data indicando a data em que o ninho estudado foi observado com 1 ovo (amostrado)
Culmen Length Quantitativa Contínua Um número indicando o comprimento da crista dorsal do bico de um pássaro (milímetros)
Culmen Depth Quantitativa Contínua Um número indicando a profundidade da crista dorsal do bico de um pássaro (milímetros)
Flipper Length Quantitativa Discreta Um número inteiro indicando o comprimento da nadadeira do pinguim (milímetros)
Body Mass Quantitativa Discreta Um número inteiro indicando a massa corporal do pinguim (gramas)
Sex Categórica Uma string de caracteres indicando o sexo do animal
Delta 15 N Quantitativa Contínua Um número indicando a medida da razão dos isótopos estáveis 15N:14N
Delta 13 C Quantitativa Contínua Um número indicando a medida da razão dos isótopos estáveis 13C:12C
Comments Categórica Uma string de caracteres com texto fornecendo informações adicionais relevantes para os dados

2 Unidades amostrais e descritores: formato geral

A tabela Tabela 1 está organizada no formato em que cada linha representa uma unidade amostral (UA) e cada coluna representa uma variável (VA). As variáveis são os descritores ou atributos que descrevem as características de cada unidade amostral.

Tabela 3: Estrutura geral de uma base de dados. As linhas representam as unidades amostrais (ou observações) e as colunas representam as variáveis (ou atributos).
ID VA 1 VA 2 VA 3 VA 4 VA 5 VA 6 VA 7
UA 1
UA 2
UA 3
UA 4
UA 5
UA 6
UA 7
UA 8
UA 9
UA 10

3 Dados ausentes

Valores não preenchidos são comuns em conjuntos de dados. Na tabela penguins_raw, diversas colunas apresentam dados ausentes, indicados como NA. A seguir, são apresentadas algumas estratégias para lidar com esses dados faltantes:

  1. Remover valores faltantes: Exclua linhas com dados ausentes usando a função drop_na().
penguins_limpo <- drop_na(penguins_raw)

nrow(penguins_limpo)
[1] 34

Restaram apenas 344 linhas na tabela, o que indica a necessidade de avaliar cuidadosamente quais colunas terão seus valores NA removidos. Para isso, é útil verificar a quantidade de dados ausentes em cada coluna. Observando a tabela Tabela 1, nota-se que a maioria dos dados ausentes está na variável Comments. Como essa coluna não será incluída nas análises, os valores ausentes nela não precisam ser removidos. Podemos, portanto, excluir as linhas que contêm NA em outras colunas, preservando apenas a coluna Comments.

penguins_limpo <- penguins_raw |> 
  drop_na(-Comments)

nrow(penguins_limpo)
[1] 324

Agora, restaram 344 linhas na tabela. A remoção de linhas deve ser feita com cautela, avaliando caso a caso. Como alternativa, pode-se considerar a imputação de valores para as células ausentes, o que pode permitir a preservação de mais dados para análise.

  1. Inserir valores faltantes: Preencha valores faltantes usando métodos estatísticos, como substituição pela média.
penguins_lpch <- penguins_raw |> 
  mutate(`Culmen Length (mm)` = if_else(
    is.na(`Culmen Length (mm)`),
    mean(`Culmen Length (mm)`, na.rm = TRUE),
    `Culmen Length (mm)`
  ))

Neste caso, os valores ausentes foram substituídos pela média aritmética da variável Culmen Length (mm).

DicaTécnicas Avançadas de Imputação

Uma alternativa à substituição pela média simples é a imputação múltipla, que pode utilizar agrupamentos mais detalhados (por exemplo, por espécie e ilha) e considerar a associação com outras variáveis da tabela. Outra opção é empregar métodos mais sofisticados, como o k-Nearest Neighbors (kNN).

4 Tipos de dados

Uma tabela de dados pode ser composta por variáveis quantitativas ou qualitativas.

Variáveis qualitativas

São variáveis não-numéricas como categorias ou rótulos. Dentre as variáveis qualitativas temos aquelas do tipo categóricas não-ordenadas e do tipo categóricas ordenadas.

Variável categórica não-ordenada: a variável Island classifica cada penguim de acordo com a ilha em que foi registrado. Os níveis da variável Island são: Torgersen, Biscoe, Dream. A variável é do tipo categórica não-ordenada, pois os níveis não possuem qualquer relação de ordenação natural entre si.

Variáveis quantitativas

São variáveis numéricas que também podem ser sub-divididas em dois grupos: discretas e contínuas.

  • Variáveis quantitativas discretas: envolvem quantias enumeráveis. Na tabela penguins_raw não há nenhum exemplo deste tipo de variável, mas exemplos podem ser a contagem de barcos que saem para pescar em um determinado dia, o número de peixes de um cardume o número de ovos no ninho de ave.

  • Variáveis quantitativas contínuas: envolvem quantias não-enumeráveis como a vazão em \(m^3/seg\) que verte de uma cachoeira, o volume de chuva em um determinado dia, altura da maré ou a velocidade do vento. O limite de precisão que utilizamos para representá-las depende basicamente da capacidade de mensuração dos aparelhos disponíveis. Na tabela penguins_raw existem diversos exemplos deste tipo de variável como

Em nosso exemplo, temos diversas variáveis deste tipo como Culmen Length, Culmen Depth, Flipper Length, Body Mass, Delta 15 N e Delta 13 C.

NotaTransformando variáveis

Sempre é possível transformar variáveis quantitativas em qualitativas. Se temos uma variável medindo o comprimento de peixes desembarcados em centímetros (variável quantitativa), é possível expressá-la de forma categórica em peixes grandes e peixes pequenos (variável qualitativa). Por outro lado, se tivermos somente a informação de que um peixe é grande ou pequeno, não podemos recuperar as quantias numéricas originais. Ao transformar uma variável de quantitativa em qualitativa, algumas propriedades são perdidas.

5 Níveis de mensuração

Podemos organizar uma variável a partir de seu nível de mensuração (Figura 1), dado em: nominal, ordinal, intervalar e razão.

Nível nominal: é característico de variáveis que possuem níveis não ordenaveis. Ex. cor, grupo taxonômico, nomes de cidades, etc.

  • Nível ordinal: é aquele em que os níveis podem ser ordenados, embora não seja possível quantificar as diferenças entre dois níveis. Ex. i - Ordem de chegada de maratonistas em uma competição (\(1^o\),\(2^o\),\(3^o\),\(\cdots\)). ii - Condição de saneamento das cidades (ótimo, bom, ruim, péssimo). iii - Condição de saneamento das praias da baixada santista (próprio, imprórpio). No nível ordinal podemos ordenar os elementos porém não podemos quantificar as diferenças entre eles.

  • Nível intervalar: é aquele em que além ser possível ordenar, é possível quantificar as diferenças entre duas observações. No entanto, não há um ponto inicial natural, ou seja, um ponto zero que indique ausência da quantia. Ex. i – Temperatura: \(0^oC\) não indica ausência de temperatura, assim como \(10^oC\) não é duas vezes mais quente que \(5^oC\). Essas características são somente uma convenção relacionada à escala de mensuração da temperatura. ii - Ano do calendário: o ano zero é uma convenção do calendário, não significa ausência de tempo.

  • Nível de razão: é como o intervalar, porém existe um ponto zero natural. Peso igual a \(0\) kg indica ausência de peso e dez quilogramas é duas vezes mais pesado que \(5\) kg. O mesmo vale para comprimento, distância, velocidade, número de ovos.


Figura 1: Tipos de variáveis e níveis de mensuração.

A depender do nível de mensuração, algumas operações matemáticas podem ou não fazer sentido. Por exemplo, se uma espécie tem \(N_A = 100\) indivíduos na região A e \(N_B = 200\) na região B, a segunda região é duas vezes mais populosa pois \(\frac{N_B}{N_A} = 2\). Por outro lado, se a temperatura na região A é de \(T_A = 10^oC\) enquanto na B é de \(T_B = 20^oC\) não faz sentido fazer \(\frac{T_B}{T_A} = 2\) e dizer que B seja duas vezes mais quente que A. Ainda que matematicamente a operação seja possível nos dois exemplos, no último sua interpretação física não tem sentido.

NotaTipos de dados vs níveis de mensuração

Existe uma relação entre tipo de dados e nível de mensuração. Os níveis nominal e ordinal de mensuração se referem a variáveis qualitativas não-ordenadas e qualitativas ordenadas respectivamente. Já os níveis intervalar e razão se referem a variáveis quantitativas, podendo ser discretas ou contínuas.