Aula 09 — Módulo 2: Inferência Estatística
O que significa dizer que um estimador é “melhor”?
Continuação do estudo da massa corporal dos pinguins Palmer.
Na Aula 08, caracterizamos um estimador por sua distribuição amostral:
Hoje precisamos transformar essas propriedades em um critério de escolha.
A estimativa será usada para alguma ação:
O custo de errar depende dessa decisão.
body_mass_g;O objetivo agora não é estimar apenas a média, mas escolher uma regra adequada ao custo do erro.
Para resumir uma variável numérica, poderíamos usar:
Sem definir o custo dos erros, “melhor” não tem significado.
Considere as massas, em gramas:
\[ 3100,\ 3300,\ 3500,\ 3700,\ 3900,\ 4200,\ 6100 \]
Qual valor representa melhor o grupo?
Uma função de perda atribui um custo à diferença entre estimativa e observação:
\[ L(\widehat{\theta},x) \]
Duas escolhas comuns:
\[ (\widehat{\theta}-x)^2 \qquad\text{e}\qquad |\widehat{\theta}-x| \]
Subestimar a massa necessária de alimento pode ser mais grave que superestimar.
Em outros problemas, ocorre o contrário:
Exemplo completo: dados 1, 2 e 3
Escolhemos uma estimativa \(a\) para representar \(x_1=1\), \(x_2=2\) e \(x_3=3\). Com perda quadrática simétrica,
\[ R(a)=\sum_{i=1}^{3}(a-x_i)^2, \qquad R'(a)=2(a-1)+2(a-2)+2(a-3)=6a-12. \]
Portanto, \(R'(a)=0\) em \(a^*=2\), a média dos dados.
Agora, suponha que subestimar (\(a<x\)) custe três vezes mais:
\[ L(a,x)= \begin{cases} 3(a-x)^2, & a<x,\\ (a-x)^2, & a\geq x. \end{cases} \qquad R(a)=\sum_{i=1}^{3}L(a,x_i). \]
No intervalo \(2<a<3\), \(a\) superestima 1 e 2, mas subestima 3. Por isso,
\[ \begin{aligned} R(a)&=(a-1)^2+(a-2)^2+3(a-3)^2,\\ R'(a)&=2(a-1)+2(a-2)+6(a-3)=10a-24. \end{aligned} \]
Assim,
\[ R'(a)=0 \quad\Longrightarrow\quad a^*=\frac{24}{10}=2{,}4. \]
A solução é coerente com o intervalo assumido, pois \(2<2{,}4<3\). Como cada parcela de \(R(a)\) é convexa, esse ponto estacionário é o mínimo global. O ótimo sobe de 2 para 2,4: aceitamos erros um pouco maiores para 1 e 2 a fim de reduzir a subestimação mais cara de 3.
errors = np.linspace(-3, 3, 500)
symmetric = errors ** 2
asymmetric = np.where(errors < 0, 3 * errors ** 2, errors ** 2)
plt.figure(figsize=(9, 5.2))
plt.plot(errors, symmetric, color=BLUE, lw=3, label="quadrática simétrica")
plt.plot(errors, asymmetric, color=ORANGE, lw=3, label="subestimar custa 3×")
plt.axvline(0, color=INK, lw=1.5)
plt.xlabel("Erro = estimativa − valor real")
plt.ylabel("Perda")
plt.title("O contexto pode tornar os erros assimétricos")
plt.legend()
finish("perda-assimetrica.png")\[ L_2(\widehat{\theta}) =\frac{1}{n}\sum_{i=1}^{n}(\widehat{\theta}-x_i)^2 \]
Como \(x_i\) é constante em relação a \(\widehat\theta\), cada termo satisfaz:
\[ \frac{d}{d\widehat\theta}(\widehat\theta-x_i)^2 =2(\widehat\theta-x_i). \]
Aplicando ao somatório:
\[ \frac{dL_2}{d\widehat\theta} =\frac{2}{n}\sum_{i=1}^{n}(\widehat\theta-x_i) =\frac{2}{n}\left(n\widehat\theta-\sum_{i=1}^{n}x_i\right). \]
No ponto estacionário, a derivada é zero:
\[ \begin{aligned} 0 &=\frac{2}{n}\left(n\widehat\theta-\sum_{i=1}^{n}x_i\right),\\[4pt] n\widehat\theta &=\sum_{i=1}^{n}x_i,\\[4pt] \widehat\theta &=\frac{1}{n}\sum_{i=1}^{n}x_i =\bar{x}. \end{aligned} \]
Para qualquer valor de \(\widehat\theta\):
\[ \frac{d^2L_2}{d\widehat{\theta}^2}=2>0. \]
Logo, \(L_2\) é estritamente convexa. O ponto estacionário \(\widehat\theta=\bar{x}\) é o único mínimo global.
A média não foi escolhida por convenção: ela resolve exatamente o problema de minimizar erros quadráticos.
\[ \operatorname{MAE}(\widehat{\theta}) =\frac{1}{n}\sum_{i=1}^{n}|\widehat{\theta}-x_i| \]
MAE significa Mean Absolute Error — erro absoluto médio.
Aqui, \(x_i\) é a observação, \(\widehat\theta\) é o valor usado para representá-la e \(n\) é o número de observações.
Fora dos pontos \(x_i\), podemos derivar cada termo:
\[ \frac{d}{d\widehat\theta}|\widehat\theta-x_i| = \begin{cases} -1, & \widehat\theta<x_i,\\ +1, & \widehat\theta>x_i. \end{cases} \]
Assim:
\[ \frac{dL_1}{d\widehat\theta} =\frac{N_{<}(\widehat\theta)-N_{>}(\widehat\theta)}{n}. \]
À esquerda da mediana, a derivada é negativa; à direita, é positiva.
Nos pontos \(x_i\), usamos a condição de subgradiente:
\[ 0\in\partial L_1(\widehat\theta). \]
Neste problema, isso equivale a:
\[ N_{<}(\widehat\theta)\leq n/2 \quad\text{e}\quad N_{>}(\widehat\theta)\leq n/2. \]
As medianas satisfazem essa condição. Se \(n\) é par, todo valor entre as duas observações centrais também minimiza a perda.
Selecione as associações corretas.
Média e mediana resolvem problemas de otimização diferentes.
example = np.array([3100, 3300, 3500, 3700, 3900, 4200, 6100])
candidates = np.linspace(2800, 6400, 500)
mse = np.array([np.mean((example - t) ** 2) for t in candidates])
mae = np.array([np.mean(np.abs(example - t)) for t in candidates])
fig, axes = plt.subplots(1, 2, figsize=(11, 4.8))
axes[0].plot(candidates, mse / 1e6, color=BLUE, lw=3)
axes[0].axvline(example.mean(), color=ORANGE, lw=2.5, ls="--")
axes[0].set_title("Erro quadrático → média")
axes[0].set_ylabel("Perda média (milhões)")
axes[1].plot(candidates, mae, color="#6a4c93", lw=3)
axes[1].axvline(np.median(example), color=ORANGE, lw=2.5, ls="--")
axes[1].set_title("Erro absoluto → mediana")
axes[1].set_ylabel("Perda média (g)")
for ax in axes:
ax.set_xlabel("Estimativa θ̂ (g)")
finish("funcoes-perda.png")Iguala resumos do modelo aos resumos observados.
Objetivo: reproduzir características como média e variância.
Escolhe o parâmetro sob o qual os dados observados são mais compatíveis.
Objetivo: ajustar um modelo probabilístico.
Escolhe o parâmetro que minimiza uma penalização definida.
Objetivo: reduzir os erros relevantes para a decisão.
Nesta aula, construímos média e mediana por mínima perda. Esse é apenas um dos caminhos para estimar parâmetros: uma mesma estimativa pode surgir de princípios diferentes.
No erro quadrático, dobrar o erro multiplica o custo por quatro:
\[ (2e)^2=4e^2 \]
Mover a média em direção ao extremo pode reduzir muito essa penalidade.
Robustez é a capacidade de resistir a pequenas contaminações ou valores extremos.
base = penguins["body_mass_g"].dropna().sample(24, random_state=7).to_numpy()
outliers = np.arange(6000, 16001, 500)
mean_values = np.array([np.append(base, x).mean() for x in outliers])
median_values = np.array([np.median(np.append(base, x)) for x in outliers])
plt.figure(figsize=(9, 5.2))
plt.plot(outliers, mean_values, lw=3, color=ORANGE, label="média")
plt.plot(outliers, median_values, lw=3, color=BLUE, label="mediana")
plt.xlabel("Massa do valor extremo adicionado (g)")
plt.ylabel("Estimativa de centro (g)")
plt.title("A média acompanha o outlier; a mediana resiste")
plt.legend()
finish("robustez-outlier.png")Considere a regra:
\[ \widehat{\mu}=4.000\text{ g} \]
Ela tem variância zero porque ignora a amostra.
Baixa variância, sozinha, não garante uma boa estimativa.
Ordenamos os dados, removemos uma fração de cada cauda e calculamos a média do restante.
Ela troca um pouco de viés por menor sensibilidade a extremos.
Cada regra tem centro, dispersão e formato próprios.
plt.figure(figsize=(9, 5.2))
for (name, vals), color in zip(estimators.items(), [BLUE, ORANGE, "#6a4c93"]):
sns.kdeplot(vals, lw=3, label=name, color=color)
plt.axvline(mu, color=INK, lw=2, ls="--", label="μ")
plt.xlabel("Estimativa da massa média (g)")
plt.ylabel("Densidade")
plt.title("Estimadores diferentes produzem distribuições diferentes")
plt.legend()
finish("comparacao-estimadores.png")O centro da distribuição amostral fica próximo de \(\theta\).
As estimativas ficam próximas umas das outras.
Uma regra pode melhorar uma propriedade e piorar a outra.
Viés desloca o centro; variância espalha as estimativas.
fig, axes = plt.subplots(2, 2, figsize=(8, 7.2), sharex=True, sharey=True)
settings = [
(0, .25, "baixo viés\nbaixa variância"),
(0, .75, "baixo viés\nalta variância"),
(1.2, .25, "alto viés\nbaixa variância"),
(1.2, .75, "alto viés\nalta variância"),
]
for ax, (center, spread, title) in zip(axes.flat, settings):
vals = rng.normal(center, spread, 45)
ax.scatter(vals, rng.normal(0, .05, len(vals)), s=28, color=BLUE, alpha=.75)
ax.axvline(0, color=ORANGE, lw=3)
ax.set_title(title)
ax.set_yticks([])
ax.set_xlim(-2.2, 2.8)
fig.supxlabel("erro da estimativa (alvo em zero)")
fig.suptitle("Viés desloca; variância espalha", fontweight="bold")
finish("vies-variancia-quadrantes.png")
print(f"Figuras geradas em {OUT}")
print(metrics.round(1).to_string(index=False))Entre dois estimadores não viesados de \(\theta\), preferimos o de menor variância:
\[ \operatorname{Var}(\widehat{\theta}_1)<\operatorname{Var}(\widehat{\theta}_2) \]
Nesse caso, \(\widehat{\theta}_1\) é mais eficiente.
Eficiência sempre depende do modelo e das suposições.
Acerta em média para um tamanho \(n\) específico.
Converge para o parâmetro quando \(n\to\infty\).
Uma pequena correção viesada pode reduzir muito o risco em amostras finitas.
O risco é a perda esperada ao repetir a amostragem:
\[ R(\widehat{\theta},\theta) =E\left[L(\widehat{\theta},\theta)\right] \]
Para perda quadrática:
\[ R=E[(\widehat{\theta}-\theta)^2] \]
\[ \operatorname{MSE}(\widehat{\theta}) =E[(\widehat{\theta}-\theta)^2] \]
Ele mede o erro quadrático médio que esperamos antes de observar a amostra.
Unidade: o quadrado da unidade do parâmetro.
Em amostragens repetidas, o erro absoluto médio de um estimador é:
\[ \operatorname{MAE}(\widehat\theta) =E\left[|\widehat\theta-\theta|\right]. \]
Com \(B\) simulações, podemos estimá-lo por:
\[ \widehat{\operatorname{MAE}} =\frac{1}{B}\sum_{b=1}^{B}|\widehat\theta^{(b)}-\theta|. \]
O MAE fica na unidade original e penaliza o erro linearmente. Diferentemente do MSE, ele não possui a decomposição simples \(\text{variância}+\text{viés}^2\).
\[ \operatorname{RMSE}(\widehat{\theta})=\sqrt{\operatorname{MSE}(\widehat{\theta})} \]
Se estimamos massa em gramas:
Defina \(m=E[\widehat\theta]\). Somamos e subtraímos \(m\) no erro:
\[ \begin{aligned} \widehat\theta-\theta &=(\widehat\theta-m)+(m-\theta),\\[2mm] E[(\widehat\theta-\theta)^2] &=E[(\widehat\theta-m)^2] +2(m-\theta)E[\widehat\theta-m] +(m-\theta)^2,\\ &=\operatorname{Var}(\widehat\theta)+0+B(\widehat\theta)^2. \end{aligned} \]
O termo cruzado desaparece porque \(E[\widehat\theta-m]=0\); além disso, \(B(\widehat\theta)=m-\theta\).
Risco = variância + viés².
Um estimador tem viés pequeno, mas variância muito alta. O que a decomposição do MSE implica?
Neste problema e sob amostragem aleatória, a média tem o menor MSE.
reps = 5000
samples = rng.choice(masses, size=(reps, 20), replace=True)
estimators = {
"média": samples.mean(axis=1),
"mediana": np.median(samples, axis=1),
"média aparada 10%": np.sort(samples, axis=1)[:, 2:-2].mean(axis=1),
}
rows = []
for name, vals in estimators.items():
bias = vals.mean() - mu
variance = vals.var()
rows.append((name, bias, variance, bias ** 2 + variance))
metrics = pd.DataFrame(rows, columns=["estimador", "vies", "variancia", "mse"])
x = np.arange(len(metrics))
plt.figure(figsize=(9, 5.2))
plt.bar(x, metrics["variancia"], color=BLUE, label="variância")
plt.bar(x, metrics["vies"] ** 2, bottom=metrics["variancia"], color=ORANGE, label="viés²")
plt.xticks(x, metrics["estimador"])
plt.ylabel("Erro quadrático esperado")
plt.title("O risco combina viés e variância")
plt.legend()
finish("risco-estimadores.png")Na população Palmer completa:
Com contaminação severa, o resultado pode mudar.
Substitua uma fração \(\varepsilon\) da amostra por valores extremos e observe:
\[ \widehat{\theta}(\varepsilon) \]
É a menor fração de contaminação capaz de levar a estimativa arbitrariamente longe.
| Estimador | Ponto de ruptura aproximado |
|---|---|
| Média | \(0\%\) |
| Média aparada 10% | \(10\%\) |
| Mediana | \(50\%\) |
Robustez tem custo: frequentemente, maior variância sob dados bem comportados.
Quando a teoria é difícil, simular ajuda a enxergar a distribuição amostral.
Com poucas repetições, o MSE simulado também oscila.
Boas práticas:
Uma simulação herda nossas suposições:
Warning
Resultados precisos para uma simulação errada continuam errados.
Para a média amostral:
\[ B(\bar{X})=0, \qquad \operatorname{Var}(\bar{X})=\frac{\sigma^2}{n} \]
Aumentar \(n\) reduz a variância, mas não altera um viés provocado pelo mecanismo de coleta.
Ao prever \(Y\) a partir de \(X\):
O trade-off viés–variância reaparece em aprendizado de máquina.
Uma balança apresenta leituras extremas em cerca de 8% das medições.
Não existe “o melhor estimador” fora de um problema bem definido.
Uma escolha defensável conecta parâmetro, coleta, perda, viés, variância e contexto.
parulpandey/palmer-archipelago-antarctica-penguin-data.ICD: Aula 09 — Escolhendo estimadoresvoltar para a Aula