§13.6概率统计实验[学习目标]1. 会用Mathematica 求概率、均值与方差;2. 能进行常用分布的计算;3. 会用Mathematica 进行期望和方差的区间估计;4. 会用Mathematica 进行回归分析。
概率统计是最需要使用计算机的领域,过去依靠计算器进行统计计算,由于计算机的普及得以升级换代。
本节介绍Mathematica 自带的统计程序包,其中有实现常用统计计算的各种外部函数。
一、 样本的数字特征1. 一元的情况Mathematica 的内部没有数理统计方面的功能,但是带有功能强大的数理统计外部程序,由多个程序文件组成。
它们在标准扩展程序包集的Statistic 程序包子集中,位于目录D :\Mathematica\4.0\AddOns\StandardPackages\Statistics下。
通过查看Help ,可以找到包含所需外部函数的程序文件名。
在程序文件DescriptiveStatistics.m 中,含有实现一元数理统计基本计算的函数,常用的有:SampleRange[data] 求表data 中数据的极差(最大数减最小数)。
Median[data] 求中值。
Mean[data] 求平均值∑=ni i x n 11。
Variance[data] 求方差(无偏估计)∑=--ni i x x n 12)(11。
StandardDeviation[data] 求标准差(无偏估计)∑=--n i i x x n 12)(11。
VarianceMLE[data] 求方差∑=-ni i x x n 12)(1。
StandardDeviationMLE[data] 求标准差∑=-ni i x x n 12)(1。
实际上程序文件中的函数很多,这里只列出了最常用的函数,其它计算函数可以通过Help 浏览。
例1 给出一组样本值:6.5,3.8,6.6,5.7,6.0,6.4,5.3,计算样本个数、最大值、最小值、均值、方差、标准差等。
解:In[1]:= << Statistics `DescriptiveStatistics`In[2]:= data = {6.5,3.8,6.6,5.7,6.0,6.4,5.3};In[3]:=Length[data]Out[3]=7In[4]:=Min[data]Out[4]= 3.8In[5]:=Max[data]Out[5]= 6.6In[6]:=SampleRange[data]Out[6]= 2.8In[7]:=Median[data]Out[7]= 6.In[8]:=Mean[data]Out[8]= 5.75714In[9]:=Variance[data]Out[9]= 0.962857In[10]:=StandardDeviation[data]Out[10]= 0.981253In[11]:=VarianceMLE[data]Out[11]= 0.825306In[12]:= StandardDeviationMLE[data]Out[12]= 0.908464说明:在上例中,In[1]首先调入程序文件,求数据个数、最大值和最小值使用内部函数。
2.多元的情况在程序文件MultiDescriptiveStatistics.m中,含有实现多元数理统计基本计算的函数,常用的有:SampleRange[data] 求表data中数据的极差。
Median[data] 求中值。
Mean[data] 求平均值。
Variance[data] 求方差(无偏估计)。
StandardDeviation[data] 求标准差(无偏估计)。
VarianceMLE[data] 求方差。
StandardDeviationMLE[data] 求标准差。
Covariance[xlist,ylist] 求x,y的协方差(无偏估计)∑=---ni i i y y x x n 1))((11。
CovarianceMLE[xlist ,ylist] 求x ,y 的协方差∑=--n i i i y y x x n 1))((1。
Correlation[xlist ,ylist] 求x ,y 的相关系数∑∑∑===----n i n i n i i i i i y y x x y y x x11122)()(/))((。
实际上程序文件中的函数很多,这里只列出了最常用的函数,其它计算函数可以通过Help 浏览。
例2 给出4个样本值:{1.1,2.0,3.2},{1.3,2.2,3.1},{1.15,2.05,3.35},{1.22,2.31,3.33},计算样本个数、均值、方差、标准差等。
解:In[1]:= << Statistics `MultiDescriptiveStatistics `In[2]:= data = {{1.1,2.0,3.2},{1.3,2.2,3.1},{1.15,2.05,3.35},{1.22,2.31,3.33}};Length[data]Out[3]=4In[4]:=SampleRange[data]Out[4]= {0.2,0.31,0.25}In[5]:=Median[data]Out[5]= {1.185,2.125,3.265}In[6]:=Mean[data]Out[6]= {1.1925,2.14,3.245}In[7]:=Variance[data]Out[7]= {0.00755833,0.0200667,0.0137667}In[8]:=VarianceMLE[data]Out[8]= {0.00566875,0.01505,0.010325}In[9]:=CentralMoment[data ,2]Out[9]= {0.00566875,0.01505,0.010325}In[10]:=x=data[[All ,1]];y=data[[All ,2]];z=data[[All ,3]];In[11]:=Covariance[x ,y]Out[11]=0.0093In[12]:=Covariance[z ,z]Out[12]=0.0137667In[13]:=CovarianceMLE[y,y]Out[13]=0.01505In[14]:=Correlation[y,z]Out[14]=0.0521435In[15]:=Correlation[x,x]Out[15]=1.二、常用分布的计算在计算机出现以前,统计计算总是依赖一堆函数表。
使用本节介绍的函数可以取代查表,为实现各种统计计算的自动化做好了底层准备工作。
1.离散分布程序文件DiscreteDistributions.m中,含有用于离散分布计算的函数。
其中常用的离散分布有:BernoulliDistribution[p] 贝努利分布。
BinomialDistribution[n,p] 二项分布。
GeometricDistribution[p] 几何分布。
HypergeometricDistribution[n,M,N] 超几何分布。
PoissonDistribution[λ] 泊松分布。
DiscreteUniformDistribution[n] 离散的均匀分布。
NegativeBinomialDistribution[n,p] 负二项分布。
以上函数中的参数,既可以是数值的,也可以是符号的。
使用这些函数只能按用户给出的参数建立一个表达式,并不能返回任何其它结果。
真正进行计算的是下面的求值函数,它们使用以上的分布表达式作为一个参数。
常用的求值函数有:Domain[dist] 求dist的定义域。
PDF[dist,x] 求点x处的分布dist的密度值。
CDF[dist,x] 求点x处的分布函数值。
Quantile[dist,q] 求x,使CDF[dist,x]达到q。
Mean[dist] 求分布dist的期望。
Variance[dist] 求方差。
StandardDeviation[dist] 求标准差。
ExpectedValue[f,dist,x] 求E f(x)。
CharacteristicFunction[dist,t] 求特征函数φ(t)。
Random[dist] 求具有分布dist的伪随机数。
RandomArray[dist,dims] 求维数为dims的伪随机数的数组。
例3观察下面二项分布的各种基本计算。
In[1]:= << Statistics `DiscreteDistributions`In[2]:= b=BinomialDistribution[n,p]Out[2]=BinomialDistribution[n,p]In[3]:=Mean[b]Out[3]=npIn[4]:=Variance[b]Out[4]= n(1-p)pIn[5]:=CharacteristicFunction[b,t]Out[5]= (1-p+e it p)nIn[6]:=b=BinomialDistribution[10,0.3]Out[6]= BinomialDistribution[10,0.3]In[7]:=Domain[b]Out[7]= {0,1,2,3,4,5,6,7,8,9,10}In[8]:=PDF[b,4]Out[8]= 0.200121In[9]:=CDF[b,3.9]Out[9]= 0.649611In[10]:=CDF[b,4]Out[10]= 0.849732In[11]:=Variance[b]Out[11]= 2.1说明:在上例中,首先调入程序文件。
In[2]用b表示具有符号参数的二项分布,这一步只是为了后面输入时方便,并非必需的,也可以使用嵌套省略这一步。
In[3]~In[5]进行的是符号运算,可以得到期望、方差等的一般公式。
这是本程序与一般统计软件的不同之处,充分体现了Mathematica的特色。
接下来给出具体的参数值,进行数值计算,这些计算取代了查表。
以下是一些更广泛、深入的例子。
例4观察下面离散分布的各种计算。
In[1]:= << Statistics `DiscreteDistributions`In[2]:= h=HypergeometricDistribution[n,M,N];Mean[h]MnOut[3]=NIn[4]:=Variance[h]Out[4]=N N N n N M Mn )1())(1(+-+-- In[5]:= p=PoissonDistribution[5];PDF[p ,2]Out[6]=5225e In[7]:=N[%]Out[7]=0.0842243In[8]:=PDF[p ,20] //NOut[8]=2.64121×10-7In[9]:=N[CDF[p ,20],20]Out[9]=0.99999991890749540112In[10]:=ExpectedValue[x^2,p ,x]Out[10]=30In[11]:=RandomArray[p ,{2,10}]Out[11]={{3,4,6,10,2,5,7,2,5,5},{4,3,2,11,5,4,2,2,4,6}}说明:在上例中表明,超几何分布的参数按我国教科书的习惯来表示,这里求出的期望和方差公式就与教科书上的相同了。