# -*- coding: utf-8 -*-
"""
Created on Wed Jun 12 16:12:06 2019
@author: User
"""
import numpy as np
#import pandas as pd
#from scipy import stats
import statsmodels.api as sm
#import matplotlib.pyplot as plt
'''
验证置信度、置信区间
1、首先创建一个3.25万个数字的numpy数组,65%的数据为1,其余数据为0
'''
love_soccer_prop = 0.65 # 实际足球爱好者比例
total_population = 325*10**2 # 总人口
num_people_love_soccer = int(total_population * love_soccer_prop)
num_people_dont_love_soccer = int(total_population * (1 - love_soccer_prop))
people_love_soccer = np.ones(num_people_love_soccer)
people_dont_love_soccer = np.zeros(num_people_dont_love_soccer)
all_people = np.hstack([people_love_soccer, people_dont_love_soccer])
print("\n 取得总体平均值:")
print(np.mean(all_people))
'''
2、现在抽取几组容量为1000的样本,看看得到的百分比是多少
'''
print("\n 10次,随机抽取1000个样本,分别计算平均值:")
for i in range(10):
aa = np.mean(np.random.choice(all_people, size=1000))
print(aa)
'''
3、扩大抽样次数,看看得到的百分比是多少
应该是更接近65%了
'''
print("\n 进行10000次,随机抽取1000个样本,计算所有数据的平均值:")
values=[]
for i in range(10000):
sample=np.random.choice(all_people, size=1000)
mean=np.mean(sample)
values.append(mean)
print(np.mean(values))
'''
4、抽样100次,分别计算置信区间
这100个区间中,至少有95个区间包含上面计算出总体平均值
'''
print("\n 进行100次,随机抽取1000个样本,置信度95%,计算置信区间:")
for i in range(100):
sample=np.random.choice(all_people, size=1000)
zms=sm.stats.DescrStatsW(sample).zconfint_mean(alpha=0.05)
print(zms)
# mean=np.mean(sample)
# values.append(mean)
#print(np.mean(values))
运行:
取得总体平均值:
0.65
10次,随机抽取1000个样本,分别计算平均值:
0.611
0.662
0.689
0.672
0.63
0.663
0.641
0.633
0.688
0.69
进行10000次,随机抽取1000个样本,计算所有数据的平均值:
0.6498676
进行100次,随机抽取1000个样本,置信度95%,计算置信区间:
(0.6224621577513706, 0.6815378422486295)
(0.634710023361846, 0.6932899766381541)
(0.5970115835533862, 0.6569884164466138)
(0.6275628953558257, 0.6864371046441744)
(0.6173650062532229, 0.6766349937467772)
(0.6234820172276823, 0.6825179827723178)
(0.5959953673090452, 0.6560046326909548)
(0.6031117674236027, 0.6628882325763973)
(0.6183841513770971, 0.6776158486229029)
(0.6071813226637061, 0.666818677336294)
(0.6020947253459545, 0.6619052746540455)
(0.6224621577513706, 0.6815378422486295)
(0.5980279368674143, 0.6579720631325857)
(0.6020947253459545, 0.6619052746540455)
(0.6041289479539222, 0.6638710520460778)
(0.6071813226637061, 0.666818677336294)
(0.6000610556048598, 0.6599389443951402)
(0.5909163344402105, 0.6510836655597895)
(0.616346003161798, 0.675653996838202)
(0.6306250745429138, 0.6893749254570862)
(0.6428870036929194, 0.7011129963070807)
(0.601077821484412, 0.660922178515588)
(0.6234820172276823, 0.6825179827723178)
(0.634710023361846, 0.6932899766381541)
(0.6285834764284977, 0.6874165235715024)
(0.599044427475616, 0.658955572524384)
(0.6469790783979154, 0.7050209216020847)
(0.6173650062532229, 0.6766349937467772)
(0.616346003161798, 0.675653996838202)
(0.63164609220248, 0.69035390779752)
(0.6398195219351056, 0.6981804780648945)
(0.634710023361846, 0.6932899766381541)
(0.614308421987498, 0.673691578012502)
(0.654146046347707, 0.7118539536522931)
(0.6204228688274824, 0.6795771311725176)
(0.6234820172276823, 0.6825179827723178)
(0.6500497212147895, 0.7079502787852106)
(0.6051462671759474, 0.6648537328240526)
(0.6224621577513706, 0.6815378422486295)
(0.634710023361846, 0.6932899766381541)
(0.6204228688274824, 0.6795771311725176)
(0.635731627540867, 0.6942683724591331)
(0.614308421987498, 0.673691578012502)
(0.6224621577513706, 0.6815378422486295)
(0.6041289479539222, 0.6638710520460778)
(0.6265424591993299, 0.6854575408006701)
(0.6245020204322308, 0.6834979795677693)
(0.6051462671759474, 0.6648537328240526)
(0.6285834764284977, 0.6874165235715024)
(0.6081990594200168, 0.6678009405799832)
(0.6122714057037356, 0.6717285942962644)
(0.6224621577513706, 0.6815378422486295)
(0.6173650062532228, 0.6766349937467773)
(0.6153271418299413, 0.6746728581700587)
(0.6490260217554791, 0.706973978244521)
(0.6306250745429138, 0.6893749254570862)
(0.6061637253311999, 0.6658362746688001)
(0.6183841513770971, 0.6776158486229029)
(0.614308421987498, 0.673691578012502)
(0.6275628953558257, 0.6864371046441744)
(0.63164609220248, 0.69035390779752)
(0.6387973260199371, 0.697202673980063)
(0.6408418666235737, 0.6991581333764264)
(0.63164609220248, 0.69035390779752)
(0.594979287912269, 0.655020712087731)
(0.6204228688274824, 0.6795771311725176)
(0.648002474273168, 0.705997525726832)
(0.6296042027217293, 0.6883957972782707)
(0.6041289479539222, 0.6638710520460778)
(0.614308421987498, 0.673691578012502)
(0.6285834764284977, 0.6874165235715024)
(0.6031117674236027, 0.6628882325763973)
(0.6204228688274824, 0.6795771311725176)
(0.6122714057037356, 0.6717285942962644)
(0.634710023361846, 0.6932899766381541)
(0.608199059420017, 0.6678009405799831)
(0.6051462671759474, 0.6648537328240526)
(0.6122714057037356, 0.6717285942962644)
(0.6214424417135864, 0.6805575582864136)
(0.6153271418299413, 0.6746728581700587)
(0.6204228688274824, 0.6795771311725176)
(0.616346003161798, 0.675653996838202)
(0.5858406959811542, 0.6461593040188458)
(0.5980279368674143, 0.6579720631325857)
(0.5838113852785758, 0.6441886147214242)
(0.6092169358492262, 0.6687830641507738)
(0.614308421987498, 0.673691578012502)
(0.6092169358492262, 0.6687830641507738)
(0.6092169358492262, 0.6687830641507738)
(0.6122714057037356, 0.6717285942962644)
(0.6408418666235737, 0.6991581333764264)
(0.6132898433670182, 0.6727101566329818)
(0.6234820172276823, 0.6825179827723178)
(0.634710023361846, 0.6932899766381541)
(0.614308421987498, 0.673691578012502)
(0.6408418666235737, 0.6991581333764264)
(0.6255221676576116, 0.6844778323423885)
(0.6367533791568799, 0.6952466208431202)
(0.6224621577513706, 0.6815378422486295)
(0.6061637253311999, 0.6658362746688001)