数理统计中的数据预测及参数估计(2019.5.20)

  数理统计中的数据预测及参数估计

摘要

置身于当下信息爆炸的时代,如何对数据有效的处理即在最短的时间以最高的收益,获取为我所用的信息成为当下热门的研究方向。本文主要概述数理统计中具有广泛应用的数据处理基本方法及运用计算机数据处理软件对总体(一般是未知分布F)进行关键参数估计(如标准差,期望)从而对总体有大致的把握及预测未来的走向趋势。

   关键词:方差分析;回归分析;线性回归;bootstrap方法;Visual Basic语言编写Excel宏

引言

在科学实验和生产实践中,影响某一事物因素多种多样,往往我们由于时间或精力财力受限,不可能对所有因素面面俱到的分析,这就需要我们找出关键因素,这就引入了两种用途广泛的统计模型:方差分析和回归分析模型。而在近代统计中我们又引入了非参数和参数bootstrap方法,利用Microsoft公司开发的Excel软件处理已有样本,编写宏来解决一系列特定的问题。

                            原理

方差分析(Analysis of Variance,ANOVA),又称“变异数分析”,1920年由波兰数学家R.A.Fisher发明,通常用于两个以上的样本参数差别的显著性检验。

要求:各组观察值服从正态分布或近似正态分布,并且各组之间的方差具有齐性。

基本思想:将所有测量值间的总变异按照其变异的来源分解为多个部份,然后进行比较,评价由某种因素所引起的变异是否具有统计学意义。

方差分析包括单因素方差分析双因素方差分析多因素方差分析,由于篇幅受限,本文只介绍前两种。

单因素方差分析:

数理统计中的数据预测及参数估计(2019.5.20)

数理统计中的数据预测及参数估计(2019.5.20) 

 

数理统计中的数据预测及参数估计(2019.5.20)

 

数理统计中的数据预测及参数估计(2019.5.20)

 数理统计中的数据预测及参数估计(2019.5.20)

数理统计中的数据预测及参数估计(2019.5.20) 

双因素方差分析:

一些基本概念和单因素方差分析大同小异,笔者在此就不在赘述,只给出方差分析表:

数理统计中的数据预测及参数估计(2019.5.20)

      笔者这里重点介绍:线性回归中的一元线性回归:

线性回归:即在已有数据集上通过构建一个线性的模型来拟合该数据集特征向量的各个分量之间的关系,对于需要预测结果的新数据,我们利用已经拟合好的线性模型来预测其结果。关于线性回归的方法,这里只介绍最小二乘法

原理:

数理统计中的数据预测及参数估计(2019.5.20)

 

数理统计中的数据预测及参数估计(2019.5.20) 

对于(4)式YY,可以写为如下形式:

数理统计中的数据预测及参数估计(2019.5.20)

数理统计中的数据预测及参数估计(2019.5.20) 

后续将在应用方面给出一元回归实现的Python代码,接着介绍多元线性回归的思想

数理统计中的数据预测及参数估计(2019.5.20)

数理统计中的数据预测及参数估计(2019.5.20) 

(篇幅受限,只介绍Bootstrap方法中的抽样)

1、基本思想

Bootstrap抽样的基本思想是在全部样本未知的情况下,借助部分样本的有放回多次抽样,构建某个估计的置信区间,抽象地说,通过样本得到的估计并没有榨干样本中的信息,bootstrap利用重采样,把剩余价值发挥在构建置信区间上。

 

2、算法流程

对于一个样本x1,x2,...,xnx1,x2,...,xn,其总体的概率分布中的参数θθ是未知的,(参数θθ可以简单理解为一些指标,比如,均值、中位数、方差等,当然还有一些比较复杂的指标),现在想要利用这些有限的样本得到一个估测值θ^θ^。

Step1:根据自己的需要选择确定重采样的次数i,1000或者2000等;

Step2:从x1,x2,...,xnx1,x2,...,xn中有放回的抽取n次(这个n必须要已知样本数目相等),因为是有放回的,所以在n次抽取之后,可能有的样本被抽取多次,也可能有的样本一次都没有被抽取。

Step3:重复Step2,一共i次(Step1中的i),对每次抽取后的结果都计算出一个θ^θ^值。

Step4:利用得到的θ1^,θ1^,...,θi^θ1^,θ1^,...,θi^作为一个sample,计算其α2∗100%α2∗100%和(1−α)∗100%(1−α)∗100%的百分位置,得到的就是近似出的,估测总体参数θθ的置信区间的最低和最高点[x,y][x,y]。

 

3、举例说明

想要统计全校学生的平均年龄,但是学校总体的数据比较难拿到,而且数据量很大,但是现在你已经有了一部分学生的年龄信息,比如200个学生的信息。

现在你从这200个学生信息中有放回的抽取200次,计算对应的平均年龄θ^θ^,重复30次(即上文中的i),这30个θ^θ^的分布大概就能代表全校学生的平均年龄。

可能会有疑问,觉得这种方法结果不准确,但是我们使用这个方法的原因就是不能知道准确的全部样本,所以才使用bootstrap模拟,模拟出来的只是一个相对准确的结果。

                              案例实战分析

数理统计中的数据预测及参数估计(2019.5.20)

数理统计中的数据预测及参数估计(2019.5.20) 

Python实现一元线性回归(纯原创)

这道题的数据来源课本p267题9

import matplotlib.pyplot as plt
import math
# 碳含量单位(%)
x=[0.10, 0.30, 0.40, 0.55, 0.70, 0.80, 0.95, 1.05, 1.15, 1.25, 1.35, 1.40, 1.65, 1.70, 1.80]
# 20℃时电阻y(μΩ)
y=[15, 18, 19, 21, 22.6, 23.8, 24, 27.3, 27.8, 30.2, 31.2, 33.2, 34, 35, 36.1]
plt.style.use('ggplot')
## 解决中文字符显示不全
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12) 
plt.scatter(x, y)
plt.xlabel('碳含量x%',fontproperties = font)
plt.ylabel("20℃时电阻y(μΩ)",fontproperties = font)
plt.title('一元线性回归案例',fontproperties = font)
plt.show()
averx=0
avery=0
sumz=0
for i in range (len(x)): 
    averx+=x[i]
averx/=len(x)
temp1=0
temp2=0
temp3=0
for i in range (len(y)):
    avery+=y[i]
avery/=len(y)
for i in range (len(x)): 
    temp1+=(x[i]-averx)*(y[i]-avery)
    temp2+=(x[i]-averx)**2
    temp3+=(y[i]-avery)**2
sumz=temp1/temp2
a=avery-sumz*averx
print(f"_x={averx},_y={avery},_b={sumz},_a={a}\n")
r=temp1/(math.sqrt(temp2)*math.sqrt(temp3))
print(f"y^={a}+{sumz}*x^,回归系数r为:{r}")


r为:

输出结果:

数理统计中的数据预测及参数估计(2019.5.20)

数理统计中的数据预测及参数估计(2019.5.20) 

最后Excel编写宏解决方差分析,回归分析课本上已有详细代码,不再赘述

                          结论

方差分析模型事实上不是真正分析方差,而是分析用偏差平方和度量的数据的变异,它是从可比组的数据中分解出可追溯到某些特定来源的变异的一种技巧。

回归分析是研究自变量为一般变量(非随机变量),因变量是随机变量时两者之间的相关关系,通过极大似然法找出关键参数拟合出回归函数进而预测数据走势

参数和非参数bootstrap方法可用于当人们对总体知之甚少的情况下,是一种近代统计中用与数据处理的实用方法。

而介绍Excel软件则是用其自带的函数库和在其环境下编写的宏来实现大量数据的处理(假设检验,多因素方差分析总体中位数平均数的估计)

致谢

概率论与数理统计授课老师:王琳教授

概率论与数理统计助教:王斌

理论支持:topdown范式,知识的前瞻性,视野胸襟开阔的重要性,

再次感谢王琳教授一学期将自己对这门课理解倾囊相授,还有感谢助教到考试周准备PPT的辛苦和批改作业的认真

参考文献

【1】概率论与数理统计 第四版 浙江大学出版社

 【2】CSDN博文《特征选择-方差分析》《一元线性回归案例》 《matlab实现回归分析》