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\) é \[R = 20-4 = 16.\]

temp <- c(6,4,9,20,7,12)  # Dados
max(temp)-min(temp)       # Pela Eq. (2.29)
## [1] 16
R <- range(temp) # A função 'range' retorna o mínimo e o máximo
diff(R)          # 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\) é \[R = 20-(-4) = 24.\]

temp <- c(6,-4,9,20,7,12) # Dados
diff(range(temp))         # Funções aninhadas ('nested functions')
## [1] 24

Exemplo 2.75 Em Python.

import numpy as np

# Dados
temp = np.array([6, -4, 9, 20, 7, 12])

# Calculando a amplitude
amplitude = np.ptp(temp)
print(amplitude)  # Output: 24

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+ \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}\]

# (Variância amostral)*(1/fator de correção)
(var.p <- var(c(186,402,191,20,7,124))*(5/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+ \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\]

# 'var' calcula a variância amostral
(var.a <- var(c(186,402,191,20,7,124)))
## [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ções13 (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,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
all.equal(dp.p, sqrt(var.p)) # 'dp.p' é igual à raiz quadr. de 'var.p'
## [1] TRUE
all.equal(dp.p^2, var.p) # 'dp.p' ao quadrado é igual a 'var.p'
## [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,124\) é \(s^{2}_{6}= 20871.2\). Assim, o desvio padrão amostral é \[s_{6} = \sqrt{20871.2} \approx 144.4687.\]

dat <- c(186,402,191,20,7,124) # dados
(dp.a <- sd(dat)) # 'sd' calcula o desvio padrão amostral
## [1] 144.4687
all.equal(dp.a, sqrt(var.a)) # 'dp.a' é igual à raiz quadr. de 'var.a'
## [1] TRUE
all.equal(dp.a^2, var.a) # 'dp.a' ao quadrado é igual a 'var.a'
## [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\).

# Coeficiente de variação de X
mx <- 0.0045
dx <- 0.0056
round(gx <- dx/mx, 2)
## [1] 1.24
# Coeficiente de variação de Y
my <- 3549
dy <- 419
round(gy <- dy/my, 2)
## [1] 0.12

Exemplo 2.85 Em Python.

import numpy as np

# Coeficiente de variação de X
mx = 0.0045
dx = 0.0056
gx = dx / mx
print(round(gx, 2))  # Output: 1.24

# Coeficiente de variação de Y
my = 3549
dy = 419
gy = dy / my
print(round(gy, 2))  # Output: 0.12

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.

x <- c(186,402,191,20,7,124)
IQR(x)
## [1] 143.75
quantile(x,3/4)-quantile(x,1/4)
##    75% 
## 143.75

Exemplo 2.87 Em Python.

import numpy as np

x = np.array([186, 402, 191, 20, 7, 124])

# Calculando a amplitude interquartil (IQR)
iqr = np.quantile(x, 0.75) - np.quantile(x, 0.25)
print(iqr)  # Output: 163.5

# Calculando o IQR usando a função IQR() do numpy
print(np.quantile(x, 3/4) - np.quantile(x, 1/4))  # Output: 163.5

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\).

Passo 1: Calcular a mediana dos dados.

\(Md = \frac{124+186}{2}=155\)

Passo 2: Tomar a diferença dos dados para a mediana.

\(186-155=31,402-155=247,191-155=36,20-155=-135,7-155=-148,124-155=-31\)

Passo 3: Obter o valor absoluto da diferença dos dados para a mediana.

\(31,247,36,135,148,31\)

Passo 4: Obter a mediana do valor absoluto da diferença dos dados para a mediana.

\(|x - Md|_{\left( \frac{1+n}{2} \right)} = \frac{36+135}{2} = 85.5\)

Passo 5: Multiplicar o resultado do passo anterior pela constante 1.4826.

\(MAD = 1.4826 \times 85.5 = 126.7623\)

x <- c(186,402,191,20,7,124)
mad(x)
## [1] 126.7623
1.4826*median(abs(x-median(x)))
## [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).

  1. Quais as consequências se \(X_i\) não for distribuído como \(\mathcal{N}(\mu, \sigma^2)\)?
  2. O que seria \(n\) grande?
  3. Quais as consequências se \(n\) não for grande?
  4. Quais as associações entre a violação simultânea da normalidade de \(X_i\) e o tamanho do \(n\)?

2.4.7 Coeficiente de Gini

O coeficiente de Gini é a diferença média de todas as quantidades observadas, e foi proposto por Gini (1912). De acordo com Ceriani and Verme (2012), Corrado Gini “apresentou nada menos que 13 formulações de seu índice”, indicando “também que Gini antecipou alguns dos desenvolvimentos que surgiram do estudo de seu índice”.

References

Ceriani, Lidia, and Paolo Verme. 2012. “The Origins of the Gini Index: Extracts from Variabilità e Mutabilità (1912) by Corrado Gini.” The Journal of Economic Inequality 10 (3): 421–43.
DeGroot, Morris H, and Mark J Schervish. 2012. Probability and Statistics. Pearson Education.
Gini, Corrado. 1912. Variabilità e Mutabilità (Variability and Mutability). Vol. 156. Tipografia di Paolo Cuppini, Bologna, Italy.
Hyndman, Rob J, and Yanan Fan. 1996. “Sample Quantiles in Statistical Packages.” The American Statistician 50 (4): 361–65. https://d1wqtxts1xzle7.cloudfront.net/51448589/Sample_Quantiles_in_Statistical_Packages20170120-21949-1uaj3m0-libre.pdf?1484951274=&response-content-disposition=inline%3B+filename%3DSample_Quantiles_In_Statistical_Packages.pdf&Expires=1735588403&Signature=aMof~CkpTDuG2evlTMQdWfAEirK0crSxUOyOJD7Gu0hnvNlWoxor5xzN27UMPnfZzODyW3mZih4fKTfbxVNnV9GUfolcx8jQcRmfMBOAcIFx5c0G4Ad91hecAv~orHpjC1D-b8WPanW9cYsbzmhc9lqScfS0a-eqXUq2aRVdhPz3iL1uPUFCwKOQKFRuITvfMnxPKqUejlrbpgtKCaAp0O~UjL81MbvthPvIINbzm4DC9GkZaUKsHeXcaAEffZhvh~t3g8hCg1MOcsm37CfbsPFwOou8hUchYdqmJNgGujw~iq7dGqSZvE4Otf71uNPNMlyfx91ipR4w6UbTilPxGQ__&Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA.
Upton, Graham, and Ian Cook. 2008. A Dictionary of Statistics. 2nd ed. Oxford University Press, USA.

  1. 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.↩︎