Mini Projeto 2

Rene, Wesley,

Introdução

O teorema central do limite

Esse teorema é um importante resultado da estátistica que afirma que quando o tamanho da amostra aumenta, a distribuição da sua média aproxima-se cada vez mais de uma distribuição normal. Isso que vamos tentar mostrar nesse mini projeto 2.

In [12]:
%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import os
from scipy import stats

lambp=10
dist= stats.poisson(lambp)
x= stats.poisson.rvs(mu=lambp, loc=0, size=1000000)
media= np.mean(x)
var= np.var(x)

In [23]:
media2=[]
for i in range (0,10001):
    valores = np.random.choice(x,2)
    media2.append(np.mean(valores))
    
plt.hist(media2)
plt.title("n valendo 2")
media = np.mean(media2)
variancia = np.var(media2)
print("Media:{}".format(media))
print("Variancia:{}".format(variancia))


10.0114988501
4.97891987124

In [15]:
mediaVal=[]
for i in range (0,10001):
    valores = np.random.choice(x,4)
    mediaVal.append(np.mean(valores))
    
plt.hist(mediaVal)
media = np.mean(mediaVal)
plt.title("n valendo 4")
variancia = np.var(mediaVal)
print("Media:{}".format(media))
print("Variancia:{}".format(variancia))


9.98295170483
2.4719246341

In [21]:
media20=[]
for i in range (0,10001):
    valores = np.random.choice(x,20)
    media20.append(np.mean(valores))
    
plt.hist(media20)
plt.title("n valendo 20")
media = np.mean(media20)
variancia = np.var(media20)
print("Media:{}".format(media))
print("Variancia:{}".format(variancia))


10.00219978
0.506592501234

In [28]:
media50=[]
for i in range (0,10001):
    valores = np.random.choice(x,50)
    media50.append(np.mean(valores))
    
plt.hist(media50)
plt.title("n valendo 50")
media = np.mean(media50)
variancia = np.var(media50)
print("Media:{}".format(media))
print("Variancia:{}".format(variancia))


10.0037676232
0.201843779218

Resultado

Podemos perceber que a medida que aumentamos o n, a amostra acaba tendendo a normal e para isso bastou apenas o n = 50. A correlaçao que foi mostrada entre o primeiro e o nono numero foi quase igual a 0, o que significa que essas duas variaveis não tem relação nenhuma entre elas, mostrando que o nosso experimento foi um sucesso.


In [45]:
media50=[]
primeiro= []
nono = []

for i in range (0,10001):
    valores = np.random.choice(x,50)
    primeiro.append(valores[0])
    nono.append(valores[9])
    media50.append(np.mean(valores))

media = np.mean(media50)
variancia = np.var(media50)
print("Media:{}".format(media))
print("Variancia:{}".format(variancia))
plt.hist(media50)
plt.title("n valendo 50")
plt.show()

dp1= (np.var(primeiro))**1/2
dp9=(np.var(nono))**1/2
cov = np.cov(primeiro,nono)
plt.hist(primeiro)
plt.title("primeiro")
plt.show()

plt.hist(nono)
plt.title("nono")
plt.show()

print(cov/(dp1*dp9))


Media:9.996726327367263
Variancia:0.19828637335846458
[[ 0.39550621  0.00236138]
 [ 0.00236138  0.40301327]]

Imagem e video complementar

https://upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Teorema_central_do_limite.svg/2000px-Teorema_central_do_limite.svg.png

Essa imagem é bem conceitual e consegue mostrar

https://www.youtube.com/watch?v=YGhL0ltpuo0

Esse video é bem didatico e mesmo que não mostre a representação em python, ele consegue explicar bem o que e como funciona esse teorema.


In [ ]: