5. Cálculo de medidas de dispersão (variância e desvio padrão)
Algumas vezes, nas análises epidemiológicas, necessitamos avaliar se os valores apresentados em um conjunto de dados estão dispersos ou não e o quão distantes um do outro eles podem estar, ou seja, estamos falando da variância e do desvio padrão que são medidas estratégias para esta avaliação.
Estes cálculos nos apoiam a responder, por exemplo, se a maior parte dos casos de notificações de Rosas tem idade maior ou menor que a média das idades. Afinal, podem ter médias aritméticas idênticas e, ao mesmo tempo, possuir valores distribuídos de forma diferentes em relação à média. Para isso calculamos estas medidas:
- Variância: leva em conta todos os valores de uma distribuição para seu cálculo. Ela é estimada a partir do somatório do quadrado da distância de cada valor em relação à média, dividido pelo total de observações menos um.
- Desvio Padrão: é estimativa do quanto, em média, cada valor se distancia da própria média aritmética de uma distribuição. Para calculá-lo, basta extrair a raiz quadrada da fórmula da variância.
No R
, essas medidas de dispersão podem ser calculadas
facilmente utilizando as seguintes funções: var()
e
sd()
, respectivamente. Observe o script abaixo com
atenção e faça você também:
# criando uma nova tabela (dataframe) chamada {`dados_var`} a partir da tabela
# {`dados`}
dados_var <- dados |>
# filtrando os agravos de dengue (código "A90") e hepatite viral
# (código "B19") com a função filter()
filter(ID_AGRAVO %in% c("A90", "B19")) |>
# utilizando a função mutate() para modificar a coluna ID_AGRAVO, removendo as
# categorias (levels) em branco após o filtro usando a função droplevels()
mutate(ID_AGRAVO = droplevels(ID_AGRAVO)) |>
# criando uma nova coluna chamada IDADE_ANOS com a função mutate() e, nela,
# calculando a idade em anos. Primeiro, fazendo a diferença em dias entre
# data de primeiros sintomas e data de notificação e transformando em
# número inteiro com a função as.integer(), seguido da divisão por 365.25,
# e, no final, arredondamento para o menor número inteiro com uso da função
# floor()
mutate(IDADE_ANOS = floor(as.integer(DT_SIN_PRI - DT_NASC) / 365.25)) |>
# agrupando com a função group_by() os agravos (coluna ID_AGRAVO)
group_by(ID_AGRAVO) |>
# calculando novos dados a partir das colunas agrupadas com o uso da função
# summarise()
summarise(
# calculando a variância da idade com a função var() na coluna IDADE_ANOS
variancia_idade = var(IDADE_ANOS, na.rm = TRUE),
# calculando o desvio padrão da idade com a função sd() na coluna IDADE_ANOS
desvio_padrao_idade = sd(IDADE_ANOS, na.rm = TRUE)
)
Agora, vamos visualizar a tabela criada digitando o nome da tabela e clicando no botão “Run”.
# visualizando a tabela {`dados_var`}
dados_var
#> # A tibble: 2 × 3
#> ID_AGRAVO variancia_idade desvio_padrao_idade
#> <fct> <dbl> <dbl>
#> 1 A90 344. 18.6
#> 2 B19 323. 18.0
Observe que ao estudar a dengue e as hepatites de origem
desconhecidas, o agravo A90
possui uma variância de 344
casos com idades acima da média (26,9 anos) e 18,6 é o desvio padrão da
idade, enquanto o B19
possui 323 casos com idades acima da
média (42,9 anos) e podendo variar +ou- 18 anos nesta amostra (desvio
padrão encontrado).

Lembre-se que o desvio padrão, é a raiz quadrada da variância.