#=============================================================================== #. Título: Inferência Estatística - Origem distribuição F (Snedecor) #. Curso : Introdução à estatística #. Autor : José Cláudio Faria/UESC/DCET # Data : 2026-01-10 11:37:49 # Pacote necessário: fdth #=============================================================================== # Objetivos gerais #=============================================================================== # a) Apresentar os recursos básicos do R para a IE; # b) Fundamentar o estudante nos mecanismos básicos da IE. #=============================================================================== # Objetivos específicos #=============================================================================== # a) Amostrar repetidamente pares de amostras (tamanhos definidos pelo usuário) # de uma população normal qualquer: Y ~ N(Mu, Sigma); # b) Estimar a variância a partir de cada amostra e calcular a razão entre as # duas estimativas; # c) Plotar o histograma dos valores, que deve ser semelhante a função F # (para os tamanhos de amostras defindos pelo usuário) se o número de # repetições do processo for suficiente para se aproximar do limite; # d) Sobrepor ao histograma a função densidade de probabilidade específica. #=============================================================================== #.. ___Ini opções___ mostrar_curva_F <- T #... Tamanho das amostras nN <- 4 # Tamanho da amostra (n_sim) do Numerador (N) nD <- 13 # Tamanho da amostra (n_sim) do Denominador (D) #... Características da população #... Normal Mu <- 10 Sigma <- 2 #... Normal padrão #Mu <- 0 #Sigma <- 1 #... Número de simulações n_sim <- 1e4 # Usar: # 1e3, 1e4, 1e5 para modelar # 1e1 para estudar detalhadamente #... Erro adotado na inferência erro <- 5/100 #.. ___Fim opções___ #. Simulação #.. Estimativas da variância do numerador s2N <- apply(matrix(rnorm(n_sim*nN, Mu, Sigma), ncol=nN), 1, var) #.. Estimativas da variância do denominador s2D <- apply(matrix(rnorm(n_sim*nD, Mu, Sigma), ncol=nD), 1, var) #.. Razão entre as duas estimativas da variância de uma Normal F_sim <- s2N/s2D #.. Graus de liberdade df1 <- nN-1 df2 <- nD-1 #. Visualização #.. Observando a distribuição da razão das estimativas da variância: observacional def.par <- par(no.readonly=TRUE) # Salva default require(fdth) titulo <- bquote("Simulação da origem da distribuição F via razão (" ~ s[1]^2/s[2]^2 ~ ") de variáveis" ~ eta) plot(fdt(F_sim, k=150), ty='d', xlim=c(0, round(max(F_sim))), ylim=c(0, 1.2), main=titulo, xlab='F', ylab='Densidade') #.. Sobrepondo a curva de densidade de probabilidades: teórica if(mostrar_curva_F) { curve(df(x, df1, df2), n=1e4, col='darkblue', add=TRUE, lwd=3) } # F limite F_lim <- qf(erro, df1, df2, lower=FALSE) # Linha decisão segments(x0=F_lim, y0=0, x1=F_lim, y1=1, col='red', lty=3) # Texto das hipóteses text(x=c(F_lim, F_lim), y=.8, col=c('darkgreen', 'red'), labels=c('RAH0', 'RRH0'), pos=c(2, 4)) # Texto do erro l_1 <- bquote("Erro tipo I (" * alpha * ") =" ~ .(100 * erro) * "%") text(x=F_lim, y=.3, col='red', pos=4, labels=l_1) # Valor do erro l_2 <- substitute(paste('F (', df[1], '=', s1, ', ', df[2], '=', s2, ')', ' = ', s3 ), list(s1=df1, s2=df2, s3=F_lim)) text(x=F_lim, y=1, pos=3, col='red', label=l_2) if (mostrar_curva_F) { # Achuras sob a curva xa1 <- seq(0, F_lim, len=1e3) ya1 <- df(xa1, df1=df1, df2=df2) # Para evitar Inf no caso da amostra do numerador ser de tamanho 2 ya1 <- sub(Inf, 1e2, ya1) polygon(x=c(0, xa1, F_lim), y=c(0, ya1, 0), col=adjustcolor('darkgreen', alpha.f=.2), border='darkgreen') xa2 <- seq(F_lim, 20, len=1e3) ya2 <- df(xa2, df1=df1, df2=df2) polygon(x=c(F_lim, xa2), y=c(0, ya2), col=adjustcolor('red', alpha.f=.2), border='red') } #.. Síntese # Em poucas palavras: # A distribuição F (de Snedecor) descreve como se distribui a razão # entre duas estimativas da variância # de uma distribuição normal X~N(Mu, Sigma) qualquer!