11 Distribuição Qui-Quadrado
Se \(Z\sim N(0,1)\), então \(Z^{2}\sim \chi^2\), como provado por transformação de variáveis aleatórias
Se \(W\sim \chi^{2}_{k}\), então sua função densidade de probabilidade é dada por \[ \begin{cases} \frac{1}{\Gamma\left(\frac{k}{2}\right)\cdot 2 ^{\frac{k}{2}}}\cdot w^{\frac{k}{2} -1} \cdot e^{-\frac{1}{2}w},& w > 0 \\ 0,& cc \end{cases} \] Sendo assim, \[ \begin{cases} E(W) = k \\ \mathrm{Var}(W) = 2k \end{cases} \] Se \(Z_{1},Z_{2,}\dots,Z_{N}\stackrel{\text{iid}}{\sim} N(0,1)\), então \[Z_{1}^{2}+\dots+Z_{n}^{2}\sim \chi^{2}_{n}\] Prova por função característica
Se \(X_{1},\dots,X_{n} \stackrel{\text{iid}}{\sim}N(\mu,\sigma^{2}),\) então \[ \frac{(X_{1}-\mu)^{2}+\dots+(X_{n}-\mu)^{2}}{\sigma^{2}} \sim \chi^{2}_{n} \] Se \(X_{1},\dots,X_{n} \stackrel{\text{iid}}{\sim}N(\mu,\sigma^{2}),\) então \[ \frac{(X_{1}-\bar{X})^{2}+\dots+(X_{n}-\bar{X})^{2}}{\sigma^{2}} \sim \chi^{2}_{n-1} \]
Ademais, se \(Y\sim \chi^2_{\nu}\), então \[ \frac{Y-\nu}{\sqrt{2\nu}} \stackrel{a}{\approx} N(0,1) \] para \(\nu > 30\)
11.1 Visualizando a Qui-Quadrado
using Plots, StatsPlots, Distributions, LaTeXStrings
plotqui(n) = plot(Chisq(n),
title="Qui-Quadrado visualizada",
label=L"\nu = %$n",
xlims=(0, 1500),
ylims=(0.000000000001, :auto)
)
@gif for i in 1:1_000
plotqui(i)
end every 9import numpy as np
import matplotlib.pyplot as plt # Gráficos pelo matplotlib
from matplotlib.animation import FuncAnimation # Animação pelo matplotlib
from scipy.stats import chi2 # Qui-quadrado do pacote scipy
from IPython.display import HTML # Para exibir na Web
fig, ax = plt.subplots()
x = np.linspace(0, 1500, 1000)
line, = ax.plot([], [])
def update(n):
y = chi2.pdf(x, df=n)
line.set_data(x, y)
ax.set_title(f"Qui-Quadrado: $\\nu = {n}$")
ax.set_xlim(0, 1500)
ax.set_ylim(0, 0.1)
return line,
ani = FuncAnimation(fig, update, frames=range(1, 1001, 15), blit=True)
# Necessário para exibir na página web
HTML(ani.to_jshtml())library(ggplot2)
library(gganimate)
frames <- seq(1, 1000, by = 15)
x_vals <- seq(0, 1500, length.out = 300)
data <- do.call(rbind, lapply(frames, function(n) {
data.frame(x = x_vals, y = dchisq(x_vals, df = n), nu = n)
}))
p <- ggplot(data, aes(x = x, y = y)) +
geom_line(color = "steelblue", size = 1) +
transition_states(nu) +
labs(title = 'Graus de Liberdade: {closest_state}') +
theme_minimal()
p