Lors de l'étude des statistiques, un théorème avec un nom plutôt rigide, la théorie de la limitation du pôle central, apparaît. Selon l'enseignant de Wikipédia
Selon la loi des grands nombres, la moyenne de l'échantillon prélevé au hasard dans une population se rapproche de la vraie moyenne à mesure que la taille de l'échantillon augmente. D'autre part, la théorie de la limitation du pôle central examine l'erreur entre la moyenne de l'échantillon et la moyenne réelle. Dans de nombreux cas, quelle que soit la distribution de la population, l'erreur suivra approximativement une distribution normale lorsque la taille de l'échantillon est augmentée. http://ja.wikipedia.org/wiki/中心極限定理
C'est écrit, mais je ne suis pas sûr ^^; Quelle que soit la forme de la distribution originale, la moyenne de l'échantillon des échantillons prélevés sera proche de la distribution normale. Il semble que la variance de l'échantillon sera également proche de la distribution normale. (Pour être précis, s'il y a beaucoup de N selon la distribution du chi carré, il peut être approché par une distribution normale) Même si je l'explique avec des mots, même si je le prouve avec une formule mathématique (en quelque sorte la matrice du rapport de produit correspond), je pense que cela ne peut pas être compris intuitivement, donc le but de cet article est de dessiner un graphique et d'essayer de le comprendre. est.
Je vais dessiner un graphique en utilisant Python, mais le processus préparatoire est le suivant. Nous préparons l'importation de diverses bibliothèques et fonctions de dessin graphique.
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import numpy.random as rd
import matplotlib.mlab as mlab
import scipy.stats as st
#Exemple de paramètres
n = 10000
sample_size = 10000
#Fonction pour calculer la moyenne et la variance pour chaque échantillon
def sample_to_mean_var(sample):
mean = np.mean(sample)
var = np.var(sample)
return [mean, var]
#Une fonction qui trace un histogramme de moyenne et de variance
def plot_mean_var(stats, dist_name=""):
mu = stats[:,0]
var = stats[:,1]
bins = 40
#Exemple d'histogramme moyen
plt.figure(figsize=(7,5))
plt.hist(mu, bins=bins, normed=True, color="plum")
plt.title("mu from %s distribution"%(dist_name))
plt.show()
#Exemple d'histogramme de distribution
plt.figure(figsize=(7,5))
plt.hist(var, bins=bins, color="lightblue", normed=True)
plt.title("var from %s distribution"%(dist_name))
plt.show()
def plot_dist(data, bins, title =""):
plt.figure(figsize=(7,5))
plt.title(title)
plt.hist(data, bins, color="lightgreen", normed=True)
plt.show()
Tout d'abord, essayez [Distribution exponentielle](http://qiita.com/kenmatsu4/items/c1a64cf69bc8c9e07aa2#geometricp-sizenone --- distribution géométrique). Le paramètre de distribution d'index $ \ lambda $ est 0,1, et 10 000 échantillons sont générés et un graphique est dessiné ci-dessous. C'est une distribution complètement asymétrique avec un long ourlet à droite.
#Dessin graphique de distribution exponentielle
lam = 0.1
x = rd.exponential(1./lam, size=sample_size)
plot_dist(x, 100, "exponential dist")
Avec ces 10 000 échantillons en un seul ensemble, la moyenne de l'échantillon et la variance de l'échantillon sont calculées à partir de cela. Répétez cette opération 10 000 fois et écrivez un histogramme de la moyenne de l'échantillon et de la variance de l'échantillon comme indiqué ci-dessous.
#Générer beaucoup de distribution exponentielle et dessiner un histogramme de la moyenne et de la variance de l'échantillon
lam = 0.1
stats = np.array([sample_to_mean_var(rd.exponential(1./lam, size=sample_size)) for i in range(n)])
plot_mean_var(stats, dist_name="exponential")
Que diriez-vous, la distribution d'origine était assez déformée, mais la moyenne de l'échantillon et la dispersion de l'échantillon semblent être une belle forme de cloche symétrique. La limitation du pôle central est que cela suit une distribution normale.
Ci-dessous, je vais essayer d'autres graphiques déformés.
Vient ensuite [Kai](http://qiita.com/kenmatsu4/items/c1a64cf69bc8c9e07aa2#chisquaredf-sizenone---Kai-square distribution). Ceci est également assez déformé.
#Distribution du chi carré avec 5 degrés de liberté
df = 5
x = rd.chisquare(df, sample_size)
plot_dist(x, 50, "chi square dist")
#Moyenne de distribution du chi carré, histogramme de variance
df = 5 #Degré de liberté
#Générer de nombreuses distributions du chi carré
chi_stats = np.array([sample_to_mean_var(rd.chisquare(df, sample_size)) for i in range(n)])
plot_mean_var(chi_stats, dist_name="chi square")
Encore une fois, vous pouvez voir qu'un histogramme en forme de cloche symétrique peut être écrit.
J'essaierai également une distribution de forme étrange avec deux pics.
#Distribution normale de la Futamine
def generate_bimodal_norm():
x = np.random.normal(0, 4, sample_size)
y = np.random.normal(25, 8, sample_size)
return np.append(x,y)
z = generate_bimodal_norm()
plot_dist(z, 70, "bi-modal normal dist")
#Moyenne de distribution normale bimodale, histogramme de variance
#Génère de nombreuses distributions normales bimodales
binorm_stats = np.array([sample_to_mean_var(generate_bimodal_norm()) for i in range(n)])
plot_mean_var(binorm_stats, dist_name="bi-modal normal")
Même avec une telle distribution, la moyenne et la variance de l'échantillon sont normalement distribuées. C'est incroyable, limitation du pôle central w
C'est donc une limitation du pôle central qui semble difficile lorsque l'on regarde des formules mathématiques et des preuves, mais j'ai essayé de la comprendre intuitivement en regardant le graphique. Cela semble être la raison pour laquelle la distribution normale est importante dans les statistiques: sourire:
Recommended Posts