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

数据学习(九)-参数估计实践

程序员文章站 2022-03-09 09:12:00
...
#导入包
import pandas as pd
import numpy as np
from scipy import stats
#读取数据
data=pd.read_excel('G:\Datasets\data.xlsx')
data

结果如下:
数据学习(九)-参数估计实践

#取数据中的age列,并求该列的平均值
age=data['Age']
age.mean()

结果如下:
数据学习(九)-参数估计实践

#从总的数据中抽取一百个样本
age_sample=age.sample(100)
x1=age_sample.mean()
age_sample.describe()

结果如下:
数据学习(九)-参数估计实践

#求正态分布下的置信区间
#置信水平为95%
def norm_conf(data,confidence=0.95):
    sample_mean=np.mean(data)
    sample_std=np.std(data,ddof=1)
    sample_size=len(data)
    conf_intveral=stats.norm.interval(confidence,loc=sample_mean,scale=sample_std)
    print(conf_intveral)
    
norm_conf(age_sample)

结果如下:
数据学习(九)-参数估计实践

# 在同一数据下求T分布下的置信区间

def t_conf(data,conference=0.95):
    sample_mean=np.mean(data)
    sample_std=np.std(data,ddof=1)
    sample_size=len(data)
    conf_intveral=stats.t.interval(conference,df=(sample_size-1),loc=sample_mean,scale=sample_std)
    print(conf_intveral)
    
t_conf(age_sample)

结果如下:
数据学习(九)-参数估计实践

#这里将随即取1000次的100个样本,求每次的平均值
#将平均值存储在数组中
scale_means=[]
for _ in range(1000):
    scale_sample=age.sample(100,replace=True)
    mean=scale_sample.mean()
    print(mean)
    scale_means.append(mean)

结果如下:
数据学习(九)-参数估计实践

#求取1000次下的正太分布置信区间估计
norm_conf(scale_means)

结果如下:
数据学习(九)-参数估计实践

#求取1000次下的T分布置信区间估计
t_conf(scale_means)

结果如下:
数据学习(九)-参数估计实践

#导入绘图工具包
import seaborn as sbn
import matplotlib.pyplot as plt
#将数据进行绘图显示
sbn.set_palette("hls")   #设置所有图的颜色,使用hls色彩空间
sbn.distplot(scale_means,color="g",bins=15,kde=True)
plt.title('Age')
plt.xlim(25,35)
plt.grid(True)
plt.show()

结果如下:
数据学习(九)-参数估计实践

相关标签: 数据