#=============================================================================== #. Título: Simulação da Origem distribuição F (Snedecor) #. Curso : Introdução à estatística #. Autor : José Cláudio Faria/UESC/DCET # Data : 2026-01-09 12:03:20 # Pacote necessário: fdth #=============================================================================== # Objetivos gerais #=============================================================================== # a) Apresentar os recursos básicos do R para a Inferência Estatística - IE; # b) Fundamentar o estudante nos mecanismos básicos da IE. #=============================================================================== # O que o código faz #=============================================================================== # a) Simula o numerador: gera df1 variáveis normais (m=0, sd=1), eleva ao quadrado e as soma (formando uma Qui-quadrado) # b) Simula o denominador: faz o mesmo com df2 variáveis # c) Cria a razão: divide cada Qui-quadrado pelo respectivo grau de liberdade e calcula a razão entre elas # d) Compara: o histograma mostra os dados gerados 'do zero', enquanto a linha vermelha é a função df() nativa do R, # provando que a origem da distribuição F é a razão entre duas variáveis com distribuição Qui-quadrado #. Origem distribuição F (Snedecor) #.. ___Ini opções___ mostrar_curva_F <- T n_sim <- 1e4 # Número de simulações #... Tamanho das amostras df1 <- 3 # Graus de liberdade do numerador df2 <- 12 # Graus de liberdade do denominador #.. ___Fim opções___ #.. Gerando a Distribuição F 'na mão' # Passo A: Gerar amostras da Normal Padrão Z ~ N(0,1) # Passo B: Elevar ao quadrado e somar para obter Qui-quadrado generate_chisq <- function(n, df) { replicate(n, sum(rnorm(df)^2)) } g_chisq_1 <- generate_chisq(n_sim, df1) g_chisq_2 <- generate_chisq(n_sim, df2) chisq_sim_1 <- g_chisq_1 / df1 chisq_sim_2 <- g_chisq_2 / df2 # Passo C: Calcular a razão F=(Qui-quadrado_1/df1)/(Qui-quadrado_2/df2) f_sim <- chisq_sim_1/chisq_sim_2 #.. Visualização def.par <- par(no.readonly=TRUE) # Salva default layout(matrix(c(1, 1, 2, 1, 1, 3), nc=3, byrow=T)) require(fdth) titulo <- bquote("Simulação da origem da distribuição F via razão (" ~ chi[1]^2/chi[2]^2 ~ ") de variáveis" ~ chi^2) plot(fdt(f_sim, k=150), typ='d', col='lightblue', xlab='F', ylab='Densidade', xlim=c(0, max(f_sim)), main=titulo) # Sobrepor a curva teórica do R para conferência if (mostrar_curva_F) { curve(df(x, df1, df2), add=TRUE, n=1e3, col='red', lwd=3) } # Legenda l_1 <- expression(X[1]^2 / X[2]^2) l_2 <- substitute(paste('F (', df[1], '=', s1, ', ', df[2], '=', s2, ')' ), list(s1=df1, s2=df2)) legend('topright', legend=c(l_1, l_2), col=c('lightblue', 'red'), lwd=c(6, 3)) plot(fdt(g_chisq_1, k=50), main=expression(X[1]^2), typ='d', col='lightblue', xlab=expression(X^2), ylab='Densidade', xlim=c(0, max(g_chisq_1))) # Sobrepor a curva teórica do R para conferência curve(dchisq(x, df=df1), add=TRUE, n=1e3, col='red', lwd=3) plot(fdt(g_chisq_2, k=50), main=expression(X[2]^2), typ='d', col='lightblue', xlab=expression(X^2), ylab='Densidade', xlim=c(0, max(g_chisq_2))) # Sobrepor a curva teórica do R para conferência curve(dchisq(x, df=df2), add=TRUE, n=1e3, col='red', lwd=3) par(def.par) # Restabelece default #.. Síntese # Em poucas palavras: # A distribuição F (de Snedecor) descreve como se distribui a razão # entre duas variáveis com distribuição Qui-quadrado cada uma dividida # pelos resectivos graus de liberdade. Que em outras palavras, é o mesmo # que descrever a razão entre duas estimativas da variância de uma normal qualquer.