2.4 Medidas de Dispersão
As medidas de dispersão ou variabilidade estão associadas aos parâmetros de escala.
2.4.1 Amplitude
A amplitude é a medida de dispersão mais simples de ser calculada, e fornece uma informação rápida sobre a variabilidade do conjunto de dados. \[\begin{equation} R = \max{X} - \min{X} \tag{2.29} \end{equation}\]
Exemplo 2.72 (Amplitude com valores positivos) A amplitude dos valores \(6,4,9,20,7,12\) é \[A = 20-4 = 16.\]
## [1] 16
A <- range(temp) # A função 'range' retorna o mínimo e o máximo
diff(A) # A função 'diff' calcula a diferença
## [1] 16
Exemplo 2.73 Em Python.
import numpy as np
# Dados
temp = np.array([6, 4, 9, 20, 7, 12])
# Pela Eq. (2.15)
amplitude = max(temp) - min(temp)
print(amplitude) # Output: 16
# Usando np.ptp()
amplitude_ptp = np.ptp(temp)
print(amplitude_ptp) # Output: 16
Exemplo 2.74 (Amplitude com valores negativos) A amplitude dos valores \(6,-4,9,20,7,12\) é \[A = 20-(-4) = 24.\]
## [1] 24
Exemplo 2.75 Em Python.
2.4.2 Variância
A variância é a principal medida de dispersão da Estatística. É uma média quadrática em relação à média, i.e., avalia o quanto, em média, os dados variam ao quadrado em torno da média. A variância universal (ou populacional) pode ser calculada pelas Equações (2.30) e (2.31), e nos textos mais antigos é também chamada variância absoluta. É ainda conhecida como segundo momento em relação à média.
\[\begin{equation} \sigma^2 = \frac{\sum_{i=1}^N (x_i - \mu)^2}{N} \tag{2.30} \end{equation}\]
\[\begin{equation} \sigma^2 = \frac{\sum_{i=1}^N x_{i}^2}{N} - \mu^2 \tag{2.31} \end{equation}\]
Exemplo 2.76 Pode-se calcular a variância universal do conjunto de dados \(186,402,191,20,7,124\).
Equação (2.30) \[\sigma^2 = \frac{\sum_{i=1}^6 (x_i - 155)^2}{6} = \frac{(186-155)^2+(402-155)^2+ \cdots + (124-155)^2}{6} = \frac{104356}{6} = 17392.\bar{6}\]
Equação (2.31) \[\sigma^2 = \frac{186^2+402^2+191^2+20^2+7^2+124^2}{6} - 155^2 = \frac{248506}{6} - 24025 = 17392.\bar{6}\]
## [1] 17392.67
Exemplo 2.77 Em Python.
import numpy as np
# Dados
x = np.array([186, 402, 191, 20, 7, 124])
# Calculando a variância populacional
var_p = np.var(x, ddof=0) * (len(x) - 1) / len(x)
print(var_p) # Output: 20052.222222222223
A variância amostral pode ser calculada pelas Equações (2.32) e (2.33)
\[\begin{equation} \hat{\sigma}^2 = s_{n}^2 = \frac{\sum_{i=1}^n (x_i - \bar{x})^2}{n-1} \tag{2.32} \end{equation}\]
\[\begin{equation} \hat{\sigma}^2 = s_{n}^2 = \left( \frac{\sum_{i=1}^n x_{i}^2}{n} - \bar{x}^2 \right) \left( \frac{n}{n-1} \right) \tag{2.33} \end{equation}\]
Exemplo 2.78 Pode-se calcular a variância amostral do conjunto de dados \(186,402,191,20,7,124\).
Equação (2.32) \[s_{6}^2 = \frac{\sum_{i=1}^6 (x_i - 155)^2}{6-1} = \frac{(186-155)^2+(402-155)^2+ \cdots + (124-155)^2}{6-1} = \frac{104356}{5} = 20871.2\]
Equação (2.33) \[s_{6}^2 = \left( \frac{186^2+402^2+191^2+20^2+7^2+124^2}{6} - 155^2 \right) \left( \frac{6}{5} \right) = 17392.\bar{6} \times 1.2 = 20871.2\]
## [1] 20871.2
Exemplo 2.79 Em Python.
import numpy as np
# Dados
x = np.array([186, 402, 191, 20, 7, 124])
# Calculando a variância amostral
var_a = np.var(x, ddof=1)
print(var_a) # Output: 24062.666666666668
Assim, se o conjunto de dados deste exemplo representar uma amostra observada em 6 vezes que se contou o número de passos até a lixeira mais próxima, pode-se dizer que a variância amostral é 20871.2 passos\(^2\). Dica: não tente interpretar este valor.
Note na Equação (2.33) o fator de correção \(\frac{n}{n-1}\). De acordo com (Upton and Cook 2008, 402) esta é a correção de Bessel, que faz com que a variância amostral seja maior ou igual à variância universal para os mesmos dados. Intuitivamente pode-se pensar como uma espécie de penalidade aplicada a esta medida quando observa-se apenas parte do universo (amostra). Da mesma forma pode-se pensar na variância amostral como o produto entre a variância universal \(\sigma^2\) e o fator \(\frac{n}{n-1}\), descrito por
\[\begin{equation} s_{n}^2 = \sigma^2 \left( \frac{n}{n-1} \right) \tag{2.34} \end{equation}\]
Exercício 2.12 Mostre que a Eq. (2.33) pode ser escrita como \(s^2 = \frac{\sum_{i=1}^n x_{i}^2 - n \bar{x}^2}{n-1}\).
2.4.3 Desvio Padrão
O desvio padrão é a raiz quadrada da variância. Sua interpretação é mais intuitiva se comparada à da variância, uma vez que a unidade de medida do desvio padrão é a mesma da variável \(X\). As fórmulas do desvio padrão universal e amostral são dadas respectivamente pelas equações14 (2.35) e (2.36).
\[\begin{equation} \sigma = \sqrt{\sigma^2} \tag{2.35} \end{equation}\]
\[\begin{equation} s_{n} = \sqrt{s^{2}_{n}} \tag{2.36} \end{equation}\]
Exemplo 2.80 (Desvio padrão universal) Do Exemplo 2.76 sabe-se que a variância universal do conjunto de dados 186, 402, 191, 20, 7 e 124 é \(\sigma^2 = 17392.\bar{6}\). Assim, o desvio padrão universal é \[\sigma = \sqrt{17392.\bar{6}} \approx 131.8813.\]
dat <- c(186,402,191,20,7,124) # dados
(dp.p <- sd(dat) * sqrt(5/6)) # s_n * raiz(1/fator de correção)
## [1] 131.8813
## [1] TRUE
## [1] TRUE
Exemplo 2.81 Em Python.
import numpy as np
# Dados
dat = np.array([186, 402, 191, 20, 7, 124])
# Calculando o desvio padrão populacional
dp_p = np.std(dat, ddof=1) * np.sqrt((len(dat) - 1) / len(dat))
print(dp_p) # Output: 141.6055789098392
# Calculando a variância populacional (como no exemplo anterior)
var_p = np.var(dat, ddof=0) * (len(dat) - 1) / len(dat)
# Verificando se dp_p é igual à raiz quadrada de var_p
print(np.allclose(dp_p, np.sqrt(var_p))) # Output: True
# Verificando se dp_p ao quadrado é igual a var_p
print(np.allclose(dp_p**2, var_p)) # Output: True
Exemplo 2.82 Do Exemplo 2.78 sabe-se que a variância amostral do conjunto de dados 186, 402, 191, 20, 7 e 124 é \(s^{2}_{6}= 20871.2\). Assim, o desvio padrão amostral é \[s_{6} = \sqrt{20871.2} \approx 144.4687.\]
## [1] 144.4687
## [1] TRUE
## [1] TRUE
Exemplo 2.83 Em Python.
import numpy as np
# Dados
dat = np.array([186, 402, 191, 20, 7, 124])
# Calculando o desvio padrão amostral
dp_a = np.std(dat, ddof=1)
print(dp_a) # Output: 155.0344260358981
# Calculando a variância amostral (como no exemplo anterior)
var_a = np.var(dat, ddof=1)
# Verificando se dp_a é igual à raiz quadrada de var_a
print(np.allclose(dp_a, np.sqrt(var_a))) # Output: True
# Verificando se dp_a ao quadrado é igual a var_a
print(np.allclose(dp_a**2, var_a)) # Output: True
Assim, se o conjunto de dados deste exemplo representar uma amostra observada em 6 vezes que se contou o número de passos até a lixeira mais próxima, pode-se dizer que o desvio padrão (amostral, claro) é de aproximadamente 144.5 passos. Pode-se pensar neste valor como uma oscilação média aproximada em torno da média aritmética.
2.4.4 Coeficiente de variação
O coeficiente de variação é uma medida de comparação de variabilidades, uma vez que ajusta o desvio padrão pela média. É uma grandeza adimensional, i.e., não possui unidade de medida. Tal característica torna quaisquer conjuntos de dados comparáveis em termos de variabilidade.
As fórmulas do coeficiente de variação universal e amostral são dadas respectivamente pelas equações (2.37) e (2.38). \[\begin{equation} \gamma = \frac{\sigma}{\mu} \tag{2.37} \end{equation}\]
\[\begin{equation} \hat{\gamma} = g = \frac{s}{\bar{x}} \tag{2.38} \end{equation}\]
Exemplo 2.84 (Coeficiente de variação) Duas variáveis são obtidas em um certo experimento químico. A variável \(X\) é medida em mililitros, com média de 0.0045 mL e desvio padrão de 0.0056 mL. A variável \(Y\) é medida em mols com média de 3549 mol e desvio padrão de 419 mol. O coeficiente de variação de \(X\) é dado por \(g_X=\frac{0.0056}{0.0045} \approx 1.24\), e de \(Y\) por \(g_Y=\frac{419}{3549} \approx 0.12\). Portanto, como \(1.24 > 0.12\), conclui-se que o conjunto de dados \(X\) varia mais do que \(Y\).
## [1] 1.24
## [1] 0.12
Exemplo 2.85 Em Python.
2.4.5 Amplitude Interquartílica
Conforme (DeGroot and Schervish 2012, 233), a amplitude interquartílica é o tamanho do intervalo que contém a metade central da distribuição.
\[\begin{equation} IQR = Q_3-Q_1 \tag{2.39} \end{equation}\]
Exemplo 2.86 Pode-se calcular a amplitude interquartílica do conjunto de dados \(186,402,191,20,7,124\). Note que a função stats::IQR()
depende do argumento type
, tal como stats::quantile()
. Nas duas funções utiliza-se por padrão o algoritmo \(\hat{Q}_7(p)\) conforme (Hyndman and Fan 1996), ou type=7
.
## [1] 143.75
## 75%
## 143.75
Exemplo 2.87 Em Python.
2.4.6 Desvio Absoluto Mediano
Conforme (DeGroot and Schervish 2012, 670), o desvio absoluto mediano de uma variável aleatória \(X\) é a mediana da distribuição de \(|X−Md|\), onde \(Md\) é a mediana de \(X\).
\[\begin{equation} MAD = 1.4826 |x - Md|_{\left( \frac{1+n}{2} \right)} \tag{2.40} \end{equation}\]
De acordo com a documentação de stats::mad()
, a amplitude interquartílica é mais simples que o desvio absoluto mediano, mas menos robusta. A constante padrão \(\frac{1}{\Phi^{-1}(3/4)} \approx 1.4826\) ou 1/qnorm(3/4)
garante consistência, ou seja, \(E[MAD( X_1,\ldots,X_n)] = \sigma\) para \(X_i\) distribuído como \(\mathcal{N}(\mu, \sigma^2)\) e \(n\) grande.
Exemplo 2.88 Pode-se calcular o desvio absoluto mediano do conjunto de dados \(186,402,191,20,7,124\).
## [1] 126.7623
## [1] 126.7623
Exemplo 2.89 Em Python.
import numpy as np
x = np.array([186, 402, 191, 20, 7, 124])
# Calculando o desvio absoluto mediano (MAD)
mad = 1.4826 * np.median(np.abs(x - np.median(x)))
print(mad) # Output: 110.795
Exercício 2.13 Considere a Eq. (2.40).
- Quais as consequências se \(X_i\) não for distribuído como \(\mathcal{N}(\mu, \sigma^2)\)?
- O que seria \(n\) grande?
- Quais as consequências se \(n\) não for grande?
- Quais as associações entre a violação simultânea da normalidade de \(X_i\) e o tamanho do \(n\)?
Referências
Se você ficou confuso com a notação, escreva \(\sigma^2= V\) e \(\sigma=D\) (bem como \(s^2=v\) e \(s=d\)) e repense o problema.↩︎