Por que esperamos que o valor de $\chi^2$ seja próximo ao NGL ($\nu$)?

Dedução

Antes da conta: o que significa valor esperado?

Antes de deduzir por que o valor esperado de uma variável qui-quadrado é igual ao número de graus de liberdade, vale fixar uma ideia mais básica: o que é valor esperado?

O valor esperado de uma variável aleatória é a média que esperamos obter quando um mesmo experimento é repetido muitas vezes nas mesmas condições. Ele não precisa ser o valor observado em uma tentativa específica, nem o valor mais provável. Ele representa a média estatística de longo prazo.

Um exemplo mais intuitivo do que “idades em uma sala” é o tempo de espera na fila do bandejão. Suponha que, ao chegar em um certo horário, o tempo de espera $T$ seja:

- 2 min com probabilidade 0,2

- 5 min com probabilidade 0,5

- 12 min com probabilidade 0,3

Nesse caso, o valor esperado é

$$\langle T \rangle = 2(0{,}2) + 5(0{,}5) + 12(0{,}3) = 6{,}5 \text{ min}$$

Isso não quer dizer que, em um dia específico, você necessariamente esperará 6,5 minutos. Quer dizer que, se essa situação fosse repetida muitas vezes, a média dos tempos observados tenderia a 6,5 minutos.

De forma geral, para uma variável discreta $X$,

$$\langle X \rangle = \sum_x x\,P(X=x)$$

Essa é a ideia central que vamos usar no caso da distribuição qui-quadrado.

1. Como a estatística $\chi^2$ aparece em física experimental

Em física experimental, a estatística qui-quadrado aparece naturalmente quando queremos medir o desvio entre os dados observados e os valores previstos por um modelo. Uma forma comum de escrevê-la é

$$\chi^2 = \sum_{i=1}^{N} \frac{(y_i - f_i)^2}{\sigma_i^2}$$

onde:

- $y_i$ é o valor medido no ponto $i$;

- $f_i$ é o valor previsto pelo modelo;

- $\sigma_i$ é a incerteza associada a esse ponto.

Cada termo da soma mede o tamanho do desvio entre dado e modelo em unidades da própria incerteza. Se definirmos o resíduo normalizado

$$r_i = \frac{y_i - f_i}{\sigma_i},$$

então a estatística fica

$$\chi^2 = \sum_{i=1}^{N} r_i^2.$$

Se o modelo estiver correto e os erros forem gaussianos, independentes e bem estimados, então cada resíduo normalizado se comporta como uma variável normal padrão. Em outras palavras, podemos pensar que

$$Z_i \sim N(0,1)$$

e, em alto nível, a variável qui-quadrado pode ser construída como

$$X = \sum_{i=1}^{\nu} Z_i^2,$$

com $Z_1$, $Z_2$, $\ldots$, $Z_\nu$ independentes.

Aqui, $\nu$ é o número de graus de liberdade. Em muitos ajustes experimentais,

$$\nu = N - p,$$

onde $N$ é o número de dados e $p$ é o número de parâmetros ajustados.

2. O objetivo da dedução

Agora queremos calcular o valor esperado de $X$, isto é,

$$\langle X \rangle.$$

Usando a linearidade do valor esperado, temos

$$\langle X \rangle = \left\langle \sum_{i=1}^{\nu} Z_i^2 \right\rangle = \sum_{i=1}^{\nu} \langle Z_i^2 \rangle.$$

Portanto, toda a dedução se reduz a descobrir quanto vale $\langle Z_i^2 \rangle$.

3. Relação com a variância

Para qualquer variável aleatória $Y$, a variância é definida por

$$ \langle (Y-\langle x\rangle)^2 \rangle\equiv \mathrm{Var}(Y) = \langle Y^2 \rangle - \langle Y \rangle^2.$$

Reorganizando a expressão, obtemos

$$\langle Y^2 \rangle = \mathrm{Var}(Y) + \langle Y \rangle^2.$$

Essa identidade será aplicada às variáveis $Z_i$.

4. Propriedades da normal padrão

Como cada $Z_i$ segue uma distribuição normal padrão,

$$Z_i \sim N(0,1),$$

sabemos que

$$\langle Z_i \rangle = 0$$

e

$$\mathrm{Var}(Z_i) = 1.$$

Substituindo esses valores na relação anterior, obtemos

$$\langle Z_i^2 \rangle = \mathrm{Var}(Z_i) + \langle Z_i \rangle^2 = 1 + 0^2 = 1.$$

Esse resultado é o ponto-chave da dedução: o quadrado de uma variável normal padrão contribui, em média, com 1.

5. Conclusão da dedução

Voltando à expressão para $\langle X \rangle$,

$$\langle X \rangle = \sum_{i=1}^{\nu} \langle Z_i^2 \rangle,$$

e usando o fato de que $\langle Z_i^2 \rangle = 1$, segue que

$$\langle X \rangle = \sum_{i=1}^{\nu} 1 = \underbrace{1 + 1 + \cdots + 1}_{\nu \text{ vezes}} = \nu.$$

Como $X$ é justamente uma variável com distribuição qui-quadrado com $\nu$ graus de liberdade, concluímos que

$$\boxed{\langle \chi^2 \rangle = \nu.}$$

6. Interpretação física do resultado

Esse resultado tem uma interpretação importante. Cada termo da soma representa a contribuição quadrática de um desvio normalizado. Como cada um desses termos vale, em média, 1, então a soma de $\nu$ deles vale, em média, $\nu$.

Por isso, quando um ajuste está consistente com os dados e com as incertezas experimentais, esperamos que o valor de $\chi^2$ esteja na ordem do número de graus de liberdade.

Isso também explica por que é tão comum analisar o qui-quadrado reduzido,

$$\chi^2_{\mathrm{red}} = \frac{\chi^2}{\nu}.$$

Se tudo estiver consistente, espera-se que

$$\langle \chi^2_{\mathrm{red}} \rangle = 1.$$

7. Um detalhe importante: “próximo de $\nu$” não significa “igual a $\nu$”

É importante não interpretar esse resultado de forma rígida demais. A relação

$$\langle \chi^2 \rangle = \nu$$

fala sobre o valor esperado, isto é, sobre a média de muitas repetições. Em um experimento específico, o valor observado de $\chi^2$ pode ser maior ou menor que $\nu$.

Em outras palavras, não esperamos que todo ajuste produza exatamente $\chi^2 = \nu$. O que esperamos é que, em média, a estatística esteja nessa escala. É justamente isso que a simulação numérica abaixo vai ajudar a visualizar.


Simulação para demonstração

A dedução analítica mostrou que, para uma variável aleatória com distribuição qui-quadrado com $\nu$ graus de liberdade, o valor esperado é

$$\langle \chi^2 \rangle = \nu.$$

Mas essa afirmação fala sobre uma média estatística de muitas repetições, e não sobre o resultado de uma única realização. É justamente por isso que uma simulação numérica é tão útil: ela permite enxergar, de forma concreta, o que significa valor esperado.

A ideia do código é reproduzir numericamente a própria construção da variável qui-quadrado. Em cada experimento simulado, geramos $\nu$ variáveis aleatórias independentes com distribuição normal padrão, elevamos cada uma ao quadrado e somamos os resultados. Em símbolos,

$$\chi^2 = \sum_{i=1}^{\nu} Z_i^2,$$

com $Z_1$, $Z_2$, $\ldots$, $Z_\nu$ independentes e distribuídas como $N(0,1)$.

Ao repetir esse procedimento muitas vezes, obtemos uma coleção de valores de $\chi^2$. A partir dela, podemos observar três aspectos complementares:

- como um único valor de $\chi^2$ é construído;

- como a distribuição de $\chi^2$ aparece quando acumulamos muitas amostras;

- como a média acumulada dos valores simulados converge para $\nu$.

Essa terceira observação é a mais importante do ponto de vista conceitual, porque ela traduz visualmente o significado de valor esperado.

0. Estrutura geral da simulação

O código foi organizado para responder a três perguntas didáticas:

1. Como nasce uma única amostra de $\chi^2$?

2. Como fica a distribuição de $\chi^2$ após muitas repetições?

3. Como a média das simulações se aproxima do valor teórico $\nu$?

Em vez de tratar a distribuição qui-quadrado como uma expressão abstrata, a simulação a constrói diretamente a partir de suas variáveis de origem. Isso torna visível a relação entre a definição matemática e o comportamento estatístico observado.

============================================================
SIMULAÇÃO DIDÁTICA DA DISTRIBUIÇÃO QUI-QUADRADO
============================================================
Graus de liberdade (nu)     = 20
Número de simulações        = 50000
Valor esperado teórico      = <chi^2> = nu = 20
Variância teórica           = Var(chi^2) = 2*nu = 40
============================================================

1. Construção de uma única realização de $\chi^2$

O primeiro gráfico mostra uma única realização da soma

$$\chi^2 = Z_1^2 + Z_2^2 + \cdots + Z_\nu^2.$$

Nele, cada barra representa a contribuição individual de um termo $Z_i^2$. Além disso, o gráfico exibe uma linha horizontal em $1$, que corresponde ao valor esperado de cada uma dessas contribuições:

$$\langle Z_i^2 \rangle = 1.$$

Esse gráfico é importante porque ele mostra que os termos individuais flutuam bastante. Alguns podem ficar abaixo de $1$, outros acima, e alguns podem até ser bem grandes. Ou seja: em uma realização específica, não há motivo para esperar que cada termo seja exatamente igual a $1$.

O ponto central é outro: quando olhamos para muitos termos independentes, a soma deles tende a produzir um valor total cuja média, ao longo de muitas repetições, será $\nu$.

Gráfico 1: contribuições individuais para uma única realização de $\chi^2$

[ETAPA 1] Construção de UMA única amostra de chi^2
------------------------------------------------------------
i        Z_i              Z_i^2
------------------------------------------------------------
 1      -1.231665         1.516999
 2       0.267119         0.071353
 3      -0.006926         0.000048
 4       0.501535         0.251538
 5      -1.326728         1.760208
 6       1.107768         1.227150
 7       0.093755         0.008790
 8      -1.170818         1.370815
 9      -1.358240         1.844817
10      -1.306564         1.707110
11      -0.717615         0.514972
12       1.185621         1.405698
13       0.894534         0.800191
14      -0.544048         0.295988
15      -0.546588         0.298758
16       1.929588         3.723309
17       0.902789         0.815027
18      -0.803391         0.645436
19      -0.149712         0.022414
20      -0.430292         0.185151
------------------------------------------------------------
Somatório dos Z_i^2 = chi^2 = 18.465770

2. Histograma da distribuição simulada de $\chi^2$

O segundo gráfico mostra o histograma dos muitos valores de $\chi^2$ gerados pela simulação. Cada experimento fornece um único número, e o histograma mostra como esses números se distribuem.

Esse gráfico ajuda a perceber duas coisas importantes.

Primeiro, a distribuição não é simétrica como uma gaussiana. Para valores relativamente pequenos de $\nu$, ela costuma apresentar assimetria e uma cauda à direita. Isso já mostra que o valor esperado não deve ser confundido com “o centro geométrico” no sentido visual mais ingênuo.

Segundo, o gráfico marca com linhas verticais tanto o valor teórico esperado quanto a média obtida numericamente. Em uma simulação bem feita, essas duas linhas devem ficar muito próximas. Isso mostra que os dados simulados reproduzem a propriedade

$$\langle \chi^2 \rangle = \nu.$$

Esse gráfico é útil para enxergar a forma global da distribuição, mas sozinho ainda não comunica completamente o significado de valor esperado. Para isso, o gráfico mais instrutivo é o próximo.

Histograma mostrando a distribuições de chi quadrado e a linha de média simulada acumulada

Gráfico 2: histograma da distribuição simulada de $\chi^2$

[ETAPA 2] Estatísticas obtidas após muitas simulações
------------------------------------------------------------
Média teórica          = 20.000000
Média simulada         = 19.998291

Variância teórica      = 40.000000
Variância simulada     = 39.756755
------------------------------------------------------------

3. Média acumulada e o significado de valor esperado

O terceiro gráfico é o mais didático de todos. Ele mostra a média acumulada dos valores simulados de $\chi^2$ à medida que o número de experimentos aumenta.

Se chamarmos de $\chi_1^2, \chi_2^2, \ldots, \chi_N^2$ os valores obtidos nas simulações, então a média acumulada após $N$ experimentos é

$$\overline{\chi^2}_N = \frac{1}{N}\sum_{k=1}^{N} \chi_k^2.$$

À medida que $N$ cresce, essa média acumulada oscila cada vez menos e se aproxima de $\nu$. É exatamente isso que devemos entender por valor esperado: não o resultado de uma única realização, mas o valor para o qual a média de muitas realizações tende.

Esse gráfico materializa, de forma visual, a afirmação teórica

$$\langle \chi^2 \rangle = \nu.$$

Em outras palavras, ele mostra numericamente a ideia central de que o valor esperado é uma propriedade de longo prazo.

Convergência do chi quadrado conforme as simulações vão ocorrendo

Gráfico 3: convergência da média acumulada para $\nu$

[ETAPA 3] Conclusão numérica
------------------------------------------------------------
Erro relativo da média      = 0.0085%
Erro relativo da variância  = 0.6081%
------------------------------------------------------------
Interpretação:
À medida que o número de simulações cresce,
a média dos valores simulados de chi^2 tende a nu.
Isso é a manifestação numérica da ideia de valor esperado.

4. O que esta simulação ensina, afinal?

O papel desta simulação não é “provar” a matemática, porque a prova já foi feita analiticamente. O papel dela é complementar a dedução com uma visualização concreta.

Ela mostra que:

- uma única realização de $\chi^2$ pode flutuar bastante;

- a distribuição de $\chi^2$ tem uma forma característica, que depende de $\nu$;

- quando repetimos o processo muitas vezes, a média dos valores simulados tende ao valor esperado teórico.

Isso ajuda a corrigir uma confusão comum: o fato de $\langle \chi^2 \rangle = \nu$ não significa que todo experimento produzirá exatamente $\chi^2 = \nu$. Significa que, em média, os valores obtidos tenderão a essa escala.

5. Relação com a prática experimental

Na prática da física experimental, essa interpretação é essencial. Quando ajustamos um modelo a um conjunto de dados, o valor de $\chi^2$ obtido em um caso particular pode ficar acima ou abaixo de $\nu$. Isso é normal. O que importa é saber se ele está em uma faixa compatível com as flutuações esperadas para a distribuição.

Por isso, a simulação também prepara o terreno para interpretar melhor o qui-quadrado reduzido,

$$\chi^2_{\mathrm{red}} = \frac{\chi^2}{\nu},$$

cujo valor esperado é

$$\langle \chi^2_{\mathrm{red}} \rangle = 1.$$

A leitura física é direta: se os resíduos são compatíveis com o modelo e com as incertezas, espera-se que o qui-quadrado reduzido fique da ordem de $1$.

6. Como ler o código que vem a seguir

Com essa interpretação em mente, o código abaixo pode ser lido em três blocos:

- primeiro, ele constrói uma única amostra de $\chi^2$ para mostrar a soma dos termos $Z_i^2$;

- depois, ele gera muitas amostras para formar a distribuição simulada;

- por fim, ele calcula a média acumulada para mostrar numericamente a ideia de valor esperado.

Assim, o código deixa de ser apenas uma implementação computacional e passa a funcionar como uma ponte entre definição matemática, interpretação estatística e intuição física.


Código

# ============================================================
# SIMULAÇÃO DIDÁTICA DA DISTRIBUIÇÃO QUI-QUADRADO
# ============================================================
# Objetivo:
# 1) Mostrar como um único valor de chi^2 é construído
# 2) Simular muitos valores de chi^2
# 3) Verificar numericamente que <chi^2> = nu
# 4) Mostrar a média acumulada convergindo para nu
#
# Requisitos:
#   pip install numpy matplotlib
# ============================================================

import numpy as np
import matplotlib.pyplot as plt

# Configuração global de alta resolução
plt.rcParams['figure.dpi'] = 100
plt.rcParams['savefig.dpi'] = 300  # Resolução ainda maior ao salvar arquivos

# ============================================================
# 1. PARÂMETROS DA SIMULAÇÃO
# ============================================================
nu = 20                # número de graus de liberdade
n_simulacoes = 50000   # número de experimentos simulados
fator_convergencia=0.05 # % de convergência
convergencia_limite=(1-fator_convergencia)*nu,(1+fator_convergencia)*nu # limite de convergência
# A seed era 42 (resposta sobre a vida, o universo e tudo mais),
# mas mudei para 41 para ficar mais "bonitinho", rs
seed = 41              # semente para reprodutibilidade
salvar_imagens = True   # Toggle: True para salvar .png, False para apenas mostrar

rng = np.random.default_rng(seed)
# rng = np.random.default_rng()

print("=" * 60)
print("SIMULAÇÃO DIDÁTICA DA DISTRIBUIÇÃO QUI-QUADRADO")
print("=" * 60)
print(f"Graus de liberdade (nu)     = {nu}")
print(f"Número de simulações        = {n_simulacoes}")
print(f"Valor esperado teórico      = <chi^2> = nu = {nu}")
print(f"Variância teórica           = Var(chi^2) = 2*nu = {2 * nu}")
print("=" * 60)


# ============================================================
# 2. UMA ÚNICA AMOSTRA: COMO NASCE UM VALOR DE chi^2
# ============================================================
# Geramos nu variáveis normais padrão independentes Z_i ~ N(0,1)
z_exemplo = rng.normal(loc=0.0, scale=1.0, size=nu)

# Elevamos cada uma ao quadrado
z2_exemplo = z_exemplo**2

# Somamos tudo: esse é um único valor da variável chi^2
chi2_exemplo = np.sum(z2_exemplo)

print("\n[ETAPA 1] Construção de UMA única amostra de chi^2")
print("-" * 60)
print("i        Z_i              Z_i^2")
print("-" * 60)
for i, (z, z2) in enumerate(zip(z_exemplo, z2_exemplo), start=1):
    print(f"{i:2d}   {z:12.6f}     {z2:12.6f}")
print("-" * 60)
print(f"Somatório dos Z_i^2 = chi^2 = {chi2_exemplo:.6f}")


# ============================================================
# 3. MUITAS SIMULAÇÕES: GERANDO A DISTRIBUIÇÃO chi^2
# ============================================================
# Em vez de fazer um loop com append, geramos tudo de uma vez.
# Cada linha da matriz representa um experimento completo.
z_todos = rng.normal(loc=0.0, scale=1.0, size=(n_simulacoes, nu))

# Cada valor de chi^2 é a soma dos quadrados em uma linha
chi2_valores = np.sum(z_todos**2, axis=1)

# Estatísticas simuladas
media_simulada = np.mean(chi2_valores)
var_simulada = np.var(chi2_valores)

# Estatísticas teóricas
media_teorica = nu
var_teorica = 2 * nu

print("\n[ETAPA 2] Estatísticas obtidas após muitas simulações")
print("-" * 60)
print(f"Média teórica          = {media_teorica:.6f}")
print(f"Média simulada         = {media_simulada:.6f}")
print()
print(f"Variância teórica      = {var_teorica:.6f}")
print(f"Variância simulada     = {var_simulada:.6f}")
print("-" * 60)


# ============================================================
# 4. MÉDIA ACUMULADA: A IDEIA DE VALOR ESPERADO EM AÇÃO
# ============================================================
# A média acumulada mostra como a média das simulações vai
# se aproximando do valor esperado teórico à medida que o
# número de experimentos aumenta.
media_acumulada = np.cumsum(chi2_valores) / np.arange(1, n_simulacoes + 1)


# ============================================================
# 5. GRÁFICO 1 — CONTRIBUIÇÕES Z_i^2 DE UMA ÚNICA AMOSTRA
# ============================================================
# Proporção 10x5 (2:1) para melhor visualização horizontal das barras
plt.figure(figsize=(16, 8))
plt.bar(np.arange(1, nu + 1), z2_exemplo)
plt.axhline(1, linestyle='--', linewidth=2, label=r'Valor esperado de cada $Z_i^2$: $\langle Z_i^2 \rangle = 1$')
plt.title(r'Uma única realização: contribuições individuais para $\chi^2$')
plt.xlabel(r'Índice $i$')
plt.ylabel(r'Valor de $Z_i^2$')
plt.xticks(np.arange(1, nu + 1))
plt.legend()
plt.tight_layout()

if salvar_imagens:
    plt.savefig('fig1_contribuicoes.png')

plt.show()


# ============================================================
# 6. GRÁFICO 2 — HISTOGRAMA DA DISTRIBUIÇÃO chi^2
# ============================================================
plt.figure(figsize=(16, 9))
plt.hist(chi2_valores, bins=60, density=True, alpha=0.8)
plt.axvline(media_teorica, linestyle='--', linewidth=2,
            label=rf'Média teórica: $\langle \chi^2 \rangle = \nu = {media_teorica}$')
plt.axvline(media_simulada, linestyle=':', linewidth=2,
            label=rf'Média simulada: {media_simulada:.3f}')
plt.title(rf'Distribuição simulada de $\chi^2$ com $\nu={nu}$')
plt.xlabel(r'Valor de $\chi^2$')
plt.ylabel('Densidade de probabilidade')
plt.legend()
plt.tight_layout()

if salvar_imagens:
    plt.savefig('fig2_histograma.png')

plt.show()


# ============================================================
# 7. GRÁFICO 3 — CONVERGÊNCIA DA MÉDIA ACUMULADA
# ============================================================
plt.figure(figsize=(16, 9))
plt.plot(media_acumulada, linewidth=1.5,
         label=r'Média acumulada das simulações')
plt.axhline(media_teorica, linestyle='--', linewidth=2,
            label=rf'Valor esperado teórico: $\nu={media_teorica}$')
plt.ylim(convergencia_limite[0], convergencia_limite[1])
plt.title(r'A média acumulada mostra numericamente o valor esperado')
plt.xlabel('Número de simulações')
plt.ylabel(r'Média acumulada de $\chi^2$')
plt.legend()
plt.tight_layout()

if salvar_imagens:
    plt.savefig('fig3_convergencia.png')

plt.show()


# ============================================================
# 8. CONCLUSÃO NUMÉRICA
# ============================================================
erro_relativo_media = abs(media_simulada - media_teorica) / media_teorica
erro_relativo_var = abs(var_simulada - var_teorica) / var_teorica

print("\n[ETAPA 3] Conclusão numérica")
print("-" * 60)
print(f"Erro relativo da média      = {100 * erro_relativo_media:.4f}%")
print(f"Erro relativo da variância  = {100 * erro_relativo_var:.4f}%")
print("-" * 60)
print("Interpretação:")
print("À medida que o número de simulações cresce,")
print("a média dos valores simulados de chi^2 tende a nu.")
print("Isso é a manifestação numérica da ideia de valor esperado.")
Anterior
Anterior

Inovando na Detecção de Luz IR: Meu Projeto de Mestrado com Fotodetectores em GaAs

Próximo
Próximo

MathJax no <footer> $\int x dx$