# -*- 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