Neste relatório serão discutidos tópicos e curiosidades estatísticas relacionadas ao Teorema Central do Limite, a partir da realização de experimentos para o comparativo de características da distribuição original e da distribuição das médias amostrais. Para tanto, foram utilizados dados abertos oficiais da atividade parlamentar brasileira, os quais estão disponíveis neste link. A descrição de cada coluna do dataset pode ser consultada aqui.
Antes de iniciar as análises, foi escolhida a coluna “vlrLiquido” do dataset, cujos valores serão utilizados em todos os experimentos deste relatório. Esta escolha foi realizada de forma arbitrária, de modo que quaisquer outra coluna numérica poderia ter sido selecionada.
Uma vez determinados os dados que serão utilizados, observemos a sua função de distribuição de probabilidade através do gráfico abaixo.
library(dplyr)
library(ggplot2)
dataset <- read.csv(file = "AnoAtual.csv", header=TRUE, sep=",")
vlrLiquido <-select(dataset, vlrLiquido)
ggplot(vlrLiquido, aes(x=vlrLiquido)) + geom_density()
summary(vlrLiquido)
## vlrLiquido
## Min. :-2679.4
## 1st Qu.: 46.0
## Median : 110.9
## Mean : 549.4
## 3rd Qu.: 319.0
## Max. :50215.0
Imediatamente, pode-se perceber que a distribuição apresenta a característica “long tail” (ou calda grande, em português) e que seus dados estão fortemente concentrados do lado esquerdo do gráfico. Ainda que o intervalo de valores possíveis seja grande, 75% destes pontos encontram-se entre os valores 2679.4 e 319, sendo 50% só entre os valores 46 e 319. Apenas 25% dos pontos têm valor superior à 319.
Outro dado importante para o nosso experimento é a média da população (549.4), que pode ser observada no output da função summary executada acima.
O Teorema Central do Limite (TCL) é um dos resultados mais importantes da estatística, tem diversas aplicações e é fundamental para a demonstração de vários outros teoremas. Segundo ele, quando o tamanho de uma amostra aumenta, independente de qual seja a população original, a distribuição de suas médias amostrais tendem a se aproximar de uma distribuição normal. Este fato é muito interessante pois, a partir dele, pode-se inferir diversas informações a respeito da população original, como média populacional e desvio padrão.
Para observarmos o TCL na prática, coletamos 10 amostras com 100 observações cada, calculamos suas médias amostrais e plotamos a distribuição dessas médias no gráfico abaixo.
mean = summarise(sample_n(vlrLiquido, 100), mean = mean(vlrLiquido))
final_data <- mean
for (i in 1:9) {
mean = summarise(sample_n(vlrLiquido, 100), mean = mean(vlrLiquido))
final_data <- rbind(final_data, mean)
}
ggplot(final_data, aes(x=mean)) + geom_density()
summarise(final_data, media = mean(mean))
## media
## 1 561.5366
summarise(vlrLiquido, media = mean(vlrLiquido))
## media
## 1 549.4232
Mesmo com uma pequena quantidade de amostras, é possivel observar alguma semelhança entre a distribuição das médias amostrais e a distribuição normal. Se aumentarmos o tamanho dessas amostras, esta semelhança tende a se tornar cada vez maior, ainda que não fique perfeitamente igual, visto que, para isto, seriam necessarias amostras de tamanho infinito.
Outra fato relevante é a existência de uma aproximação considerável entre a média populacional e a média da distribuição das médias amostrais. Vejamos então o que ocorre se aumentarmos o número de amostras de 10 para 1000.
mean = summarise(sample_n(vlrLiquido, 100), mean = mean(vlrLiquido))
final_data2 <- mean
for (i in 1:999) {
mean = summarise(sample_n(vlrLiquido, 100), mean = mean(vlrLiquido))
final_data2 <- rbind(final_data2, mean)
}
ggplot(final_data2, aes(x=mean)) + geom_density()
summarise(final_data2, media = mean(mean))
## media
## 1 558.2365
summarise(vlrLiquido, media = mean(vlrLiquido))
## media
## 1 549.4232
Com o novo número de amostras, pode-se observar mais claramente a semelhança entre as distribuições normal e de médias amostrais, bem como entre as médias populacional e de distribuição das médias amostrais.
Para confirmar estas afirmações, vejamos o que acontece se realizarmos o mesmo experimento com 10000 amostras.
mean = summarise(sample_n(vlrLiquido, 100), mean = mean(vlrLiquido))
final_data3 <- mean
for (i in 1:9999) {
mean = summarise(sample_n(vlrLiquido, 100), mean = mean(vlrLiquido))
final_data3 <- rbind(final_data3, mean)
}
ggplot(final_data3, aes(x=mean)) + geom_density()
summarise(final_data3, media = mean(mean))
## media
## 1 549.3713
summarise(vlrLiquido, media = mean(vlrLiquido))
## media
## 1 549.4232
Como esperado, a distribução resultante se aproxima cada vez mais de uma distribuição normal e o mesmo ocorre entre sua média e a média populacional. Desta forma, podemos concluir que, quanto maior for o número de amostras coletadas, mais próximas TENDEM a estar a distribuição resultante da distribuição normal e a média desta distribuição resultante da média populacional. É importante ressaltar que, em alguns experimentos, a aproximação entre as médias da distribuição das médias amostrais e populacional foi maior para os experimentos com 10 amostras do que para os de 1000 amostras. É possivel que isto ocorra devido a enorme extensão do intervalo de valores possíveis e a aleatoriedade da escolha de um número muito pequeno (10) de observações.
Segundo o TCL, se aumentarmos o tamanho das amostra, consequentemente teremos o desvio padrão reduzido. Para comprovar esta afirmação, façamos agora experimentos aumentando o tamanho das amostras ao invés do número de amostras.
mean = summarise(sample_n(vlrLiquido, 1000), mean = mean(vlrLiquido))
final_data3 <- mean
for (i in 1:9) {
mean = summarise(sample_n(vlrLiquido, 1000), mean = mean(vlrLiquido))
final_data3 <- rbind(final_data3, mean)
}
ggplot(final_data3, aes(x=mean)) + geom_density()
summarise(final_data3, desvio = sd(mean))
## desvio
## 1 41.07079
mean = summarise(sample_n(vlrLiquido, 10000), mean = mean(vlrLiquido))
final_data3 <- mean
for (i in 1:9) {
mean = summarise(sample_n(vlrLiquido, 10000), mean = mean(vlrLiquido))
final_data3 <- rbind(final_data3, mean)
}
ggplot(final_data3, aes(x=mean)) + geom_density()
summarise(final_data3, desvio = sd(mean))
## desvio
## 1 14.12425
Como esperado, quando aumentamos o tamanho das amostras para 1000, tivemos uma redução no desvio padrão da distribuição resultante. O mesmo ocorreu ao aumentarmos o tamanho das amostras para 10000, confirmando, desta forma, a afirmação do Teorema Central do Limite.