Menu
CoddyTech

Distribuzione campionaria

Fa parte della sezione Statistica per il machine learning del percorso Machine Learning di Coddy. Lezione 21 di 64.

Le sessioni video hanno una distribuzione asimmetrica a destra: la maggior parte dura pochi minuti, alcune durano due ore. Eppure, le medie di 1000 campioni di 40 sessioni formano una campana:

Due istogrammi su un unico grafico. Le singole sessioni in grigio si concentrano vicino a 0 minuti, con una lunga coda fino a 120. Le medie di 40 sessioni formano una stretta campana blu intorno alla media della popolazione di 30 minuti

L’istogramma di molte medie campionarie è la distribuzione campionaria. Con un numero sufficiente di valori in ogni campione, ha una forma a campana centrata sulla media della popolazione, anche per dati asimmetrici:

means = sample_means(sessions, 40, 1000)  # la tua funzione da Sample Means Vary
ax.hist(means, bins=12)

Questo è il teorema del limite centrale. Rende prevedibili le medie: l’errore medio di un modello su un insieme di test è anch’esso approssimativamente normale.

challenge icon

Sfida

Medio

Le dimensioni dei 6000 file di un'unità cloud in files (MB) hanno una distribuzione asimmetrica a destra: molti documenti, pochi video. Il programma legge una dimensione del campione; il codice iniziale contiene sample_means e due grafici.

  1. Calcola 500 medie campionarie di quella dimensione.
  2. Stampa la media meno la mediana dei file, poi quella delle medie (2 decimali).
  3. Rappresenta con un istogramma i file su axs[0] e le medie su axs[1], con bins=12, e mostra i grafici.

Per un'altra unità e 60:

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

Due istogrammi affiancati. Tutti i file: una prima barra alta e una lunga coda sottile verso destra. Medie campionarie: una campana simmetrica

Quindi Coddy mostra ciascun grafico. Una differenza vicina a 0 significa che l'asimmetria è scomparsa.

Provalo tu

import numpy as np
import matplotlib.pyplot as plt

size = int(input())

# Non modificare le righe seguenti: la dimensione in MB di ogni file nell'unità
rng = np.random.default_rng(21)
files = np.round(rng.random(6000) ** 4 * 300 + 5, 2)


# La tua funzione da Sample Means Vary: le medie di count campioni
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)")

# Scrivi il tuo codice qui sotto
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Statistica per il machine learning

Esercitati da solo: Compilatore Python online