Menu
CoddyTech

A distribuição amostral

Parte da seção Estatística para ML do Journey de Machine Learning da Coddy. Lição 21 de 64.

As sessões de vídeo têm assimetria à direita: a maioria dura alguns minutos, e algumas chegam a duas horas. Ainda assim, as médias de 1000 amostras de 40 sessões formam uma curva em sino:

Dois histogramas em um gráfico. As sessões individuais em cinza se concentram perto de 0 minutos, com uma longa cauda até 120. As médias de 40 sessões formam uma curva azul estreita em sino em torno da média populacional de 30 minutos

O histograma de muitas médias amostrais é a distribuição amostral. Com valores suficientes em cada amostra, ele tem formato de sino centrado na média da população, mesmo para dados assimétricos:

means = sample_means(sessions, 40, 1000)  # sua função de Sample Means Vary
ax.hist(means, bins=12)

Esse é o teorema central do limite. Ele torna as médias previsíveis: o erro médio de um modelo em um conjunto de teste também é aproximadamente normal.

challenge icon

Desafio

Médio

Os tamanhos dos 6000 arquivos de um drive na nuvem em files (MB) têm assimetria à direita: muitos documentos e alguns vídeos. O programa lê um tamanho de amostra; o código inicial tem sample_means e dois gráficos.

  1. Obtenha 500 médias amostrais desse tamanho.
  2. Imprima a média menos a mediana dos arquivos e, em seguida, das médias (2 casas decimais).
  3. Crie um histograma dos arquivos em axs[0] e das médias em axs[1], com bins=12, e exiba os gráficos.

Para outro drive e 60:

Files: mean - median = 25.28 MB
Sample means: mean - median = 0.55 MB

Dois histogramas lado a lado. Todos os arquivos: uma primeira barra alta e uma cauda longa e fina à direita. Médias amostrais: uma curva de sino simétrica

Em seguida, Coddy relata cada gráfico. Uma diferença próxima de 0 significa que a assimetria desapareceu.

Experimente você mesmo

import numpy as np
import matplotlib.pyplot as plt

size = int(input())

# Não altere as linhas abaixo: o tamanho em MB de cada arquivo na unidade
rng = np.random.default_rng(21)
files = np.round(rng.random(6000) ** 4 * 300 + 5, 2)


# Sua função de Sample Means Vary: as médias de count amostras
def sample_means(data, size, count):
    means = []
    for i in range(count):
        sample = rng.choice(data, size=size, replace=False)
        means.append(sample.mean())
    return np.array(means)


fig, axs = plt.subplots(1, 2)
axs[0].set_title("All Files")
axs[0].set_xlabel("File size (MB)")
axs[1].set_title("Sample Means")
axs[1].set_xlabel("Mean file size (MB)")

# Escreva seu código abaixo
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Estatística para ML

Pratique por conta própria: Compilador de Python online