Como calcular média, variância, mediana, desvio padrão e modo de distribuição? Se eu gerar aleatoriamente números que formam a distribuição normal, especifiquei a média como m=24.2
desvio padrão como sd=2.2
:
> dist = rnorm(n=1000, m=24.2, sd=2.2)
Então eu posso fazer o seguinte:
Significar:
> mean(dist)
[1] 24.17485
Variação:
> var(dist)
[1] 4.863573
Mediana:
> median(dist)
[1] 24.12578
Desvio padrão:
> sqrt(var(dist))
[1] 2.205351
Modo aka Modus (retirado daqui ):
> names(sort(-table(dist)))[1]
[1] "17.5788181686221"
- Essa é toda a mágica ou há algo mais que eu não percebi?
- De alguma forma, posso visualizar minha distribuição normal em forma de sino com linhas verticais representando (média, mediana ...)?
- O que esses atributos dizem sobre distribuição?
PS: o código está em R
r
distributions
mean
Wakan Tanka
fonte
fonte
Respostas:
Primeiro, um comentário geral sobre o modo:
Você não deve usar essa abordagem para obter o modo de (pelo menos nocionalmente) dados continuamente distribuídos; é improvável que você tenha valores repetidos (a menos que você tenha amostras realmente grandes, seria um pequeno milagre, e mesmo assim vários problemas numéricos podem fazê-lo se comportar de maneiras um tanto inesperadas), e geralmente você obtém apenas o valor mínimo que caminho. Seria uma maneira de encontrar um dos modos globais em dados discretos ou categóricos, mas eu provavelmente não faria dessa maneira ainda. Aqui estão várias outras abordagens para obter o modo para dados discretos ou categóricos:
Se você deseja apenas o valor e não a contagem ou posição,
names()
obtém-o daquelesPara identificar modos (pode haver mais de um modo local) para dados contínuos de uma maneira básica, você pode classificar os dados (como em um histograma) ou suavizá-los (usando,
density
por exemplo) e tentar encontrar um ou mais modos dessa maneira.Menos caixas de histograma tornarão sua estimativa de um modo menos sujeita a ruído, mas o local não será fixado em uma posição melhor que a largura da lixeira (ou seja, você só recebe um intervalo). Mais compartimentos podem permitir mais precisão dentro de um compartimento, mas o ruído pode fazê-lo saltar por muitos desses compartimentos; uma pequena alteração na origem ou largura da bandeja pode produzir alterações relativamente grandes no modo. (Existe a mesma troca de desvio-desvio em todas as estatísticas.)
Observe que
summary
você fornecerá várias estatísticas básicas.[Você deve usar em
sd(x)
vez desqrt(var(x))
; é mais claro para uma coisa]-
Em relação ao q.2 sim; você certamente poderia mostrar a média e a mediana dos dados em uma exibição, como um histograma ou um gráfico de caixa. Veja aqui alguns exemplos e códigos que você deve poder generalizar para os casos que precisar.
fonte
Algumas estatísticas descritivas adicionais e não muito conhecidas.
Tenho certeza de que você pode encontrar muitos outros em um desses
R
manuais disponíveis gratuitamente .fonte
Como o @Glen_b descreveu, o modo de uma distribuição contínua não é tão simples quanto para um vetor de números inteiros.
Esse código R obterá o modo para uma distribuição contínua, usando a
hist()
função incrivelmente útil da base R. Como o @Glen_b descreveu, isso envolve colocar observações em compartimentos - categorias discretas em que, se a observação cair dentro do intervalo do compartimento, será contada como uma instância de esse compartimento, que contorna o problema de ser altamente improvável em uma distribuição contínua observar exatamente o mesmo valor duas vezes.Agora, tratamos o ponto médio do intervalo da lixeira que possui a contagem máxima como o modo
Voila! O modo.
ps, você também pode tratar o início do intervalo como o modo via
h$breaks[which.max(h$counts)]
. Como os modos discutidos para distribuições contínuas não são simples e exigem decisões a serem tomadas, é por isso que não há uma função simples para elas como existe commean()
emedian()
fonte