欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

中心极限定理-通俗理解

程序员文章站 2024-03-18 09:50:34
...

中心极限定理-通俗理解:

1、大量相互独立的随机变量,其求和后的平均值服从正态分布,分布是指按照每个平均值的出现频数去判断分布

2、给定一个任意分布的总体。每次从这些总体中随机抽取 n 个抽样,一共抽 m 次。

然后把这 m 组抽样分别求出平均值。 这些平均值的分布接近正态分布。

 

本文的例子通过扔骰子,模拟实现,思路如下:

1、进行了5000组实验,每个实验,扔100次骰子并求和,

2、然后对这个和进行分布统计,按照这个和值出现的频数进行统计,然后画图出来

3、改变骰子的1-6数字出现的概率,比如骰子6个面是123416,发现和值仍然服从正态分布

import matplotlib.pyplot as plt
import numpy as np
import matplotlib


# 统计次数
def count_times(count,num):
    if (str(num) in count.keys()):
        count[str(num)] = count[str(num)] + 1
    else:
        count[str(num)] = 1
    # return count

# 随机扔n次骰子,并求点数和
def random_and_sum(n):
    total = 0;
    count = {}
    for i in range(n):
        num = np.random.randint(1,7)
        # print("第", i, "次", num)

        # 即使分布不同,定理也成立
        # if num == 5:
        #    num = 1
        count_times(count,num)
        total = num + total
    # print("count=",count)
    return total

# Test 随机扔100次骰子,并求点数和
# total = random(100) # max 600
# print("total=",total)

# 进行m组实验,每次实验扔n次骰子,并求点数和,并统计

def ramdom_outside(m,n):
    global all_sum
    count = {}
    for i in range(m):
        total = random_and_sum(n)
        count_times(count,total//10)
    return count

total_times = ramdom_outside(5000,100)
print("total_times1=",total_times)

# 字典 按key排序
total_times = sorted(total_times.items(), key = lambda k: k[0])
print("total_times2=",total_times)


# 整理出 画图的 x y值
label_list = [];
num_list1 = [];

for tup in total_times:
    label_list.append(tup[0])     # 横坐标值
    num_list1.append(tup[1])       # 纵坐标值

print("label_list=",label_list)
print("num_list1=",num_list1)


# 设置中文字体和负号正常显示
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False

x = range(len(total_times))
plt.bar(left=x, height=num_list1, width=0.5, alpha=0.8, color='red', label="次数",tick_label = label_list)
plt.ylabel("频次")
plt.title('中心极限定理')
plt.legend()     # 设置题注
plt.show()

中心极限定理-通俗理解

现实中的应用

现在我们要统计全国的人的体重,看看我国平均体重是多少。当然,我们把全国所有人的体重都调查一遍是不现实的,而且体重和每个人的生活的各种因素都有关系,无法量化。所以我们打算一共调查1000组,每组50个人。 然后,我们求出第一组的体重平均值、第二组的体重平均值,一直到最后一组的体重平均值。中心极限定理说:这些平均值是呈现正态分布的。并且,随着组数的增加,效果会越好。

 

上例中,人的体重是正态分布的。但如果是掷一个骰子(平均分布),甚至是一个不均衡的骰子,

最后每组的平均值也会组成一个正态分布。