首页 > 编程知识 正文

求统计量的分布函数,求统计量的分布例题

时间:2023-05-04 01:40:02 阅读:264878 作者:4961

一、常用统计量

数理统计学中常用的统计量有:样本均值、样本方差、顺序统计量、中位数、众数等。
其中可以反映总体位置特征的有数据的中心位置是均值(Mean),中位数(Median),众数(Mode)。其中均值和中位数用于定量的数据,众数用于定性的数据。
随机抽取了78位同学的语文成绩如下:
grades=[131,131,127,123,126,129,116,114,115,116,123,122,118, ,126,121,126,121,111,119,124,124,121,116,114,116,116,118,112,109,114,116,116,118,112,109,114,110,114,110,113,117,113,121,105,127,110,105,111,112,104,103,130,102,118,101,112,109,107,94,107,106,105,101,85,95, 97,99,83,87,82,79,99,90,78,86,75,66]
Python代码
numpy模块

import numpy as nparr=[131,131,127,123,126,129,116,114,115,116,123,122,118,121,126,121,126,121,111,119,124,124,121,116,114,116,116,118,112,109,114,116,116,118,112,109,114,110,114,110,113,117,113,121,105,127,110,105,111,112,104,103,130,102,118,101,112,109,107,94,107,106,105,101,85,95,97,99,83,87,82,79,99,90,78,86,75,66];np.sum(arr)#求和np.mean(arr)#求平均值np.std(arr)#求标准差np.var(arr)#求方差np.min(arr)#最小值np.max(arr)#最大值np.argmax(arr)#最大值下标,有多个时返回第一个最值下标np.argmin(arr)#最小值下标np.median(arr)#求中位数


pandas模块

import pandas as pdarr=[131,131,127,123,126,129,116,114,115,116,123,122,118,121,126,121,126,121,111,119,124,124,121,116,114,116,116,118,112,109,114,116,116,118,112,109,114,110,114,110,113,117,113,121,105,127,110,105,111,112,104,103,130,102,118,101,112,109,107,94,107,106,105,101,85,95,97,99,83,87,82,79,99,90,78,86,75,66];d=pd.Series(arr)d.count()#非空元素计算d.min() #最小值d.max() #最大值d.idxmin() #最小值的位置,类似于R中的which.min函数d.idxmax() #最大值的位置,类似于R中的which.max函数d.quantile(0.1) #10%分位数d.sum() #求和d.mean() #均值d.median()#中位数d.mode()#众数d.var() #方差d.std() #标准差d.mad() #平均绝对偏差d.skew() #偏度d.冷酷的香菇() #峰度d.describe()#一次性输出多个描述性统计指标

二、经验分布函数

选取某届女生的身高数据,绘制该届女生身高数据的经验分布函数图,将该届学生身高与其所在年龄段女生身高做对比,从而判断该届女生身高是否符合标准

1. 数据源

选取某专业本科班31名女生的身高数据为本实践的数据源,具体数据如下:160,160,163,160,168,155,160,169,156,165,163,153,160,168,159,170,162,166,155,165,163,155,172,170,162,153,173,158,165,160.

2.绘制经验分布函数图 #导入所需数据包import numpy as np #将numpy命名为npimport matplotlib.pyplot as plt #将matplotlib.pyplot命名为pltfrom matplotlib import mlab #从matplotlib调用mlabfrom matplotlib import rcParams #从matplotlib调用 rcParamsrates = [0,6,8,9,4,4]; #身高数对应的频数 mids=[151,155,159,163,167,171]; #身高样本值# 绘制经验分布函数图rates1=[0,0,0,0,0,0]; #设置rates的初值for i in range(len(rates)): #形成从i到rates的长度的列表 rates1[i] =sum(rates[0:i+1])/31.0; #将本组的频数与以上所有频数迭代相加rates1fig3=plt.figure(3) #画出图3身高的经验分布图rects=plt.bar(x=mids,height=rates1,width=4,align="center",yerr=0.000001)


由以上图形显示,这些女生的身高主要分布在158-165厘米之间。

3.与总体分布函数的对比分析

经过计算得到这部分女生的平均身高为157cm,方差为851,下面验证这些女生是否来自于均值为157cm,方差为851的正态总体。
利用Python产生均值为157cm方差为851的正态分布的随机数,并绘制该随机数的经验分布函数,然后与这些女生身高的经验分布函数做对比。

#正态分布总体随机数的经验分布函数图import numpy as np #将numpy命名为npimport matplotlib.pyplot as plt #将matplotlib.pyplot命名为pltfrom matplotlib import mlab #从matplotlib调用mlabfrom matplotlib import rcParams #从matplotlib调用 rcParamsrates1=[0,0,0,0,0,0];for i in range(len(rates)): rates1[i] =sum(rates[0:i+1])/31.0;rates1fig1=plt.figure(1)rects=plt.bar(x=mids,height=rates1,width=4,align="center",yerr=0.000001)

4.经验分布函数图形的对比结果 #将两经验分布函数图进行对比import numpy as np #将numpy命名为npimport matplotlib.pyplot as plt #将matplotlib.pyplot命名为pltfrom matplotlib import mlab #从matplotlib调用mlabfrom matplotlib import rcParams #从matplotlib调用 rcParamsrates = [0,0,0,19,12,0]; #身高数对应的频数 mids=[128,138,148,158,168,178]; #身高数 # 绘制经验分布函数图rates3=[0,0,0,0,0,0]; #设置rates的初值for i in range(len(rates)): #形成从i到rates的长度的列表 rates3[i] =sum(rates[0:i+1])/31.0; #将本组的频数与以上所有频数迭代相加 rates3rates2 = [0,3,6,9,8,5]; mids2=[130,140,150,160,170,180];rates4=[0,0,0,0,0,0];for i in range(len(rates2)): rates4[i] =sum(rates2[0:i+1])/31.0; rates4fig3=plt.figure(3) #画出图3身高的经验分布图rects=plt.bar(x=mids,height=rates3,width=10,align="center",yerr=0.000001)rects=plt.bar(x=mids,height=rates4,width=10,align="center",yerr=0.000001)


由其上图所示,发现这些女生身高的经验分布函数与正态总体经验分布函数拟合效果较好,可以这些女生身高看作来自于均值为157方差为851的正态分布。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。