# -*- coding: utf-8 -*-
"""
Created on Tue Jun 11 19:15:48 2019
@author: User
"""
# from 中国统计出版社 《Python数据分析基础》
import numpy as np
import pandas as pd
#from scipy import stats
import statsmodels.api as sm
#import matplotlib.pyplot as plt
# 第一步 生成10000条70~100的随机数作为数学成绩,并保存为excel文件
#numfram = 3 * np.random.randn(10000, 1) + 85
#framnum = pd.DataFrame(numfram,columns=['fdata'])
#framnum.to_excel('data\\test_tuiduan.xlsx')
# 第二步 读出保存的成绩数据
fram_all = pd.read_excel('data\\test_tuiduan.xlsx')
'''
statsmodels zconfint_mean(alpha=0.05)
zconfint_mean
参数:
alpha:置信区间的显着性水平
返回值:
lower,upper:浮点数或ndarray,置信区间的下限和上限
'''
print("\n 对10000条数据进行 置信度95% Z估计 显示置信区间为:")
zm=sm.stats.DescrStatsW(fram_all['fdata']).zconfint_mean(alpha=0.05)
print(zm)
#print("\n 对10000条数据进行 置信度95% t估计 显示置信区间为:")
#tm=sm.stats.DescrStatsW(fram_all['fdata']).tconfint_mean(alpha=0.05)
#print(tm)
s1=pd.Series([1.000001])
s1.name='samp_mean'
df_ms_all=pd.DataFrame(s1)
df_ms_one=pd.DataFrame(s1)
'''
从10000条数据进行样本数为100的抽样,生成平均值保存在 df_ms_all 中
'''
print("\n 对10000条数据进行样本数为100的抽样并显示平均值:")
for i in range(10):
samp_mean=np.mean(fram_all['fdata'].sample(n=100,replace=False))
print(samp_mean)
df_ms_one['samp_mean']=samp_mean
df_ms_all.append(df_ms_one)
运行:
对10000条数据进行 置信度95% Z估计 显示置信区间为:
(84.90591589104501, 85.02308278725054)
对10000条数据进行样本数为100的抽样并显示平均值:
85.58964005580674
85.1512935271646
84.6032348324715
85.12447142700454
84.91518940764854
84.62399607891646
84.45461910721126
84.8048054850222
85.07767693841332
84.89363482437375