Média e Mediana
Os dois resumos mais usados de toda a estatística são uma chamada de função cada:
mean() soma tudo e divide pela contagem. median() ordena os valores e escolhe o do meio (ou a média dos dois centrais quando a contagem é par). Para os 32 carros do mtcars, o consumo médio é cerca de 20,1 mpg e a mediana é 19,2 - próximos, o que indica que os dados não são muito assimétricos. Quando os dois discordam bastante, isso também é informação; chegaremos lá no final.
Uma coisa que surpreende todo mundo: se o vetor contiver ao menos um NA, as duas funções retornam NA:
Isso é deliberado - o R se recusa a fingir silenciosamente que o valor ausente não está lá. na.rm = TRUE diz "calcule sobre os valores que você tem". Quase toda função de resumo deste artigo o aceita. A história completa de como o NA se propaga está em valores ausentes.
Desvio Padrão e Variância
sd() mede a dispersão: grosso modo, o quão longe um valor típico está da média, nas mesmas unidades dos dados. var() é o seu quadrado:
Um desvio padrão de cerca de 6 mpg significa que os carros costumam ficar a uns 6 mpg da média de 20,1. Como sd() está nas unidades dos próprios dados, é ele que você reporta; var() aparece principalmente dentro de outras fórmulas.
Aqui está o detalhe que importa nos trabalhos de faculdade: sd() e var() calculam a estatística amostral - eles dividem a soma dos desvios ao quadrado por n − 1, não por n:
Por que n − 1? Porque você estimou a média a partir dos mesmos dados, e os desvios em torno dessa média estimada são sistematicamente um pouco pequenos demais; dividir por n − 1 corrige isso. Como seus dados quase sempre são uma amostra de algo maior, a versão com n − 1 é a que você quer. Se você genuinamente tem a população inteira (todo aluno da turma, todo produto do catálogo), multiplique: var(x) * (n - 1) / n.
Erro Padrão da Média
Desvio padrão e erro padrão são confundidos o tempo todo, então mantenha-os separados: o sd descreve os dados, o EP descreve sua estimativa da média. O R não tem uma se() embutida, mas a fórmula é uma linha:
O erro padrão encolhe conforme a amostra cresce - colete quatro vezes mais dados e o EP cai pela metade - porque uma amostra maior fixa a média com mais precisão. O sd não encolhe com o tamanho da amostra; os carros são tão variados quanto são, não importa quantos você meça. O EP é o bloco de construção dos intervalos de confiança, e é lá que ele mostra seu valor.
summary() - a Visão Geral em Uma Chamada
summary() te dá o resumo de cinco números mais a média de uma só vez, e funciona em data frames inteiros:
Chamado em um data frame, ele resume toda coluna - colunas numéricas recebem mín/quartis/média/máx, e fatores recebem contagens por nível. É a primeira coisa a rodar em qualquer conjunto de dados que você acabou de carregar: valores impossíveis (uma idade negativa, um máximo de 9999) saltam aos olhos na hora.
Quantis, Amplitude e IQR
quantile() generaliza a mediana para qualquer ponto de corte:
Sem argumentos ele retorna o mínimo, os quartis e o máximo. Passe probs = para pontos de corte específicos - os percentis 10 e 90 acima delimitam onde vive o grosso dos dados. IQR() (a distância entre os percentis 25 e 75) é uma medida de dispersão que, ao contrário de sd(), não é arrastada por outliers. range() retorna o mínimo e o máximo como um par.
A Moda: o mode() do R NÃO Faz Isso
Essa pega todo mundo exatamente uma vez. O R tem uma função chamada mode(), e ela não tem nada a ver com estatística - ela reporta o tipo de armazenamento de um objeto:
O idioma a memorizar: table(x) conta com que frequência cada valor aparece, which.max() encontra a maior contagem, e names() extrai o valor em si. Repare que ele volta como uma string de caracteres (nomes de tabela sempre são); envolva-o em as.numeric() se precisar calcular com ele. Se dois valores empatarem, which.max() silenciosamente retorna apenas o primeiro - confira a tabela você mesmo quando empates forem plausíveis.
Média vs Mediana: Qual Reportar
A média usa todos os valores, o que é sua força e sua fraqueza - um único valor extremo a arrasta. A mediana só se importa com o meio, então outliers mal a tocam:
Um único valor acrescentado empurra a média de cerca de 49.300 para mais de 155.000 - um número que não descreve ninguém nos dados - enquanto a mediana vai apenas de 48.000 para 49.500. É por isso que renda, preços de imóveis e tempos de internação são reportados como medianas: dados assimétricos com uma cauda longa tornam a média enganosa. Para dados aproximadamente simétricos os dois concordam e a média está ótima (e é estatisticamente mais eficiente). Um histograma rápido te diz em qual situação você está - e comparar sua média com sua mediana já é, por si só, um teste de assimetria de uma linha.
O Que Você Leva Daqui
mean(x)emedian(x)- acrescentena.rm = TRUEquando houver valores ausentes.sd(x)evar(x)calculam a estatística amostral (denominadorn − 1) - que é o que você quer.- O erro padrão é
sd(x) / sqrt(length(x))- ele mede o quão bem você conhece a média, não o quão dispersos estão os dados. summary()em um data frame recém-carregado é a verificação de sanidade mais rápida do R.- A moda é
names(which.max(table(x)))- omode()do R é sobre tipos de armazenamento. - Dados assimétricos ou com outliers: reporte a mediana. Dados simétricos: a média está ótima.
A seguir: medir como duas variáveis se movem juntas - correlação com cor() e cor.test().
Perguntas frequentes
Como calcular o desvio padrão no R?
Com sd(x). Note que ele calcula o desvio padrão amostral - divide por n − 1, não por n. É isso que você quer em praticamente toda análise real, porque seus dados quase sempre são uma amostra, não a população inteira.
Como encontrar a média e a mediana no R?
mean(x) e median(x). Se o vetor contiver valores ausentes, ambos retornam NA - acrescente na.rm = TRUE para calcular sobre os valores presentes: mean(x, na.rm = TRUE).
Como encontrar a moda no R?
Não com mode() - essa função retorna o tipo de armazenamento de um objeto, não o valor mais frequente. Use o idioma da tabela: names(which.max(table(x))) retorna o valor que aparece com mais frequência.
O que é o erro padrão no R?
Não existe função embutida. Calcule-o como sd(x) / sqrt(length(x)). O desvio padrão descreve a dispersão dos seus dados; o erro padrão descreve com que precisão você estimou a média, e ele encolhe conforme a amostra cresce.