贝叶斯预测的介绍

2024-05-18 10:57

1. 贝叶斯预测的介绍

贝叶斯预测是一种以动态模型为研究对象的时间序列预测方法,一般模式为先验+总体分布+样本→后验分布。

贝叶斯预测的介绍

2. 贝叶斯预测的计算实例

根据The SAS System for Windows 9.0所编程序,对美国出口额 (单位:十亿元)变化进行了预测。选取常均值折扣模型和抛物线回归模型。美国出口额的预测, 预测模型的初始信 息为m0=304,Co=72,V=0.Ol,δ=0.8得到的1960—2006年的预测结果。见表2中给出了预测的部分信息(1980—2006年的预测信息)。通过The SAS System for Windows 9.0软件回归分析得到抛物线预测方程:表示年份见表3给出了1980-2006年的预测信息。

3. 贝叶斯预测的计算结果分析

根据表l和表2对1980-2005年出口额的预测结果可知,常均值折扣模型所得结果的平均绝对百分误差MAPE=8.1745%,而由抛物线回归模型所得结果的平均绝对百分误差为9.5077% 。由此可见这组数据中, 使用贝叶斯模型预测的结果更为精确。对于随机波动、变化相对稳定的数据,用常均值折扣模型预测是比较精确。这里研究的贝叶斯统计预测方法,在许多领域都可能适用。在解决这类相关问题时,贝叶斯统计预测方法与传统的预测方法相比有明显优势。

贝叶斯预测的计算结果分析

4. 贝叶斯预测的Bayes预测模型及其计算步骤

此处使用常均值折扣模型, 这种模型应用广泛而且简单,它体现了动态现行模型的许多基本概念和分析特性。常均值折扣模型对每一时刻t常均值折模型记为DLM{1,1,V,δ},折扣因子δ,O<δ<l定义如下:观测方程:μt = μt − 1 + ωt,ωt~N [O,Wt]状态方程:yt = μt + vt,vt~N [0,V]初始信息:~N [m0,C0]其中μ是t时刻序列的水平,Vt是观测误差项或噪声项,ωt是状态误差项。定理:对于每一时刻t,假设μt − 1的后验 分布()~N [mt − 1,Ct − 1],则μt的先验分布()~N [mt − 1,Rt],其中Rt = Ct − 1 + Wt。推论1:()~N [ft,Qt],其中ft = mt − 1,Qt = Rt + V。推论2:μt的后验分布()~N [mt,Ct],其中mt = mt − 1 + Atet,Ct = ATvt,At = Rt / Qt,et = yt − ft由于Rt=Ct-1+Wt=Ct-1/δ,故有W − t = Ct − 1(δ − 1)其计算步骤为:(1)Rt = C − t / δ; (2)Qt = Rt + V;(3)At = Rt / Qt; (4)ft − 1 = mt − 1;(5)et − yt − ft − 1; (6)Ct = AtV;(7)mt − mt − 1 + Atet

5. 贝叶斯分析基础——可信度、模型和参数

 Doing Bayesian Data Analysis 学习笔记
   假设某一天我们出门之后发现外面路面是湿的,并且我们想知道是什么原因导致这样的现象。导致路面湿的可能性有很多,比如之前下过雨,有洒水车路过,有人把自己喝的水撒掉了等等。如果到这个时候除了路面湿这个现象,其他的所有信息我们都不知道,那么我们就会基于先前的知识来给各种可能性分配一个可信度。比如说这个地区几十年没有下过雨,我们就知道这个地方下雨的可能性不太大;或者我们知道每天这个时间点之前一段时间洒水车会经过,洒水车导致路面湿的可能性就相对较大。这种基于先前知识产生的对各种可能性的认识就是先验信念。
   我们继续在路边走,突然发现了一些新的证据:路面上只有洒水车能够洒到的地方是湿的,其他地方比如人行道是干的,这个时候我们就会重新调整我们的信念,我们会给各种可能的原因重新分配可信度,比如说下雨导致路面湿的概率会更低,而洒水车导致路面湿的概率会增加。
   贝叶斯推论就是在各种可能性之间重新分配 可信度 ( 概率 )的过程,我们基于先验信念,结合我们获得的证据调整我们的信念,并获得我们对各种可能性的概率的新的信念,也叫后验分布。如果我们又收集到了新的证据,那么先前的后验分布就会变成先验,我们再基于这个新的先验调整我们的信念。
   科学研究中所有测试都是带有随机性的,即使我们非常严格的控制各种无关变量的影响,但是依旧存在很多无关因素干扰测量结果。因此,数据和潜在的原因之间的关系具有概率性质,有可能是由于某种潜在的原因导致我们观测到这样的数据,但是也有可能是由于随机因素导致我们观察到这样的数据结果。
   以一个新药药效测试为例,假设我们想要检测一种新药能否有效降低血压,所以我们将被试随机分为两组,实验组服用药品,控制组服用安慰剂,并且采用双盲程序。每天我们都会在固定时间点测试被试的血压水平,我们可以想象到,一个被试的血压水平在一天中也会受到很多因素的影响, 比如说运动、焦虑、饮食等。更何况,血压是通过测量佩戴一个加压的血压仪之后的血流的声音来计算得到的,这个测量过程本身就存在误差。血压值也存在比较大的个体差异,所以我们最终得到的数据可能会比较混乱,控制组和实验组的测量结果均存在较大的变异(方差较大);两个组的结果分布也可能会存在重叠部分,实验组的某些个体血压可能会高于控制组。基于这两组分散的且相互重叠的数据结果,我们想要推论控制组和实验组有多大的差异,并且我们能否确定这个差异是真实存在的。 但问题的关键在于,控制组和实验组的差异测量结果是带有随机性的,也就是说我们的数据是有噪音的。 
   所有的科学数据都带有某种程度的噪音,而数据分析就是根据携带噪音的数据推断潜在的趋势。贝叶斯推论不能完全排除其他可能性,但是我们可以 通过数据逐渐调整不同可能性的可信度 。可信度的分布最初反映的是关于可能性的先验知识,这个分布是一个比较模糊的分布;但是当获得一批数据后,不同可能性的可信度重新分配,与数据一致的可能性的可信度增加,与数据不匹配的可能性的可信度降低。
   贝叶斯统计推论是一个在各种可能性间不断分配可信度的过程,这里所说的可能性实际上就是描述性模型的参数值。
   在降压药的例子中,我们想要确定降压药是否能够有效地降低血压水平,就要对比实验组和控制组的血压差异。最终我们可能会选择两个组在操作前后血压变化的平均值的差值作为这组数据的描述性模型:        上式中  代表A情况下所有被试血压的平均值,  能够有效反映降压药是否有效,如果  比较大(大于零),则说明降压药确实能够有效降低血压。   但是由于各种无关因素的影响,导致我们并没有100%的把握说我们最后的测量结果就恰好等于实际的  ,所以我们就只能基于我们的测量结果进行推断,给每一个可能的  分配一个可信度。
   一般情况下,数据分析都是从数据的某个或某些描述性统计量出发的,这些描述性统计量(比如平均值)是能够描述数据特征的数学公式。这些公式是能够计算出具体数值的,比如说平均值为3,这个值就叫做参数值。例如我们用一个正态分布来描述数据,则平均值和标准差两个参数就能够确定数据的特征,平均值决定正态分布的位置,而标准差决定正态分布的宽度。
   在选择描述数据的数学模型的时候,首先要满足两个要求:
    数据的数学模型并不等同于数据的产生过程。 比如说一个服从均值为10、标准差为5的正态分布的数据,只能说数据的表现形式为该正态分布,但是数据的一个物理产生过程却不一定与正态分布有关。
   实例:   假设我们现在想要探究人们身高和体重之间的关联,基于日常经验我们猜想人的身高越高,体重也越大,但是我们想知道体重随着身高的具体数量变化关系是怎样的,并且当身高增加时,我们有多大的把握确定体重的确按照这样的数量关系增加?
    第一步是确定研究相关的数据 。假设我们现在能够收集到57个成年人的身高和体重数据,57个成人年从研究总体中随机抽样。身高的单位为英寸,体重为磅,均为连续变量。在这个例子中我们想要用身高来预测体重。
    第二步是确定数据的描述性模型 ,这个模型与我们的研究目的相对应。在这个例子中,我们假设身高和体重成正比,记体重为  ,身高的预测值为  ,则有:        系数  代表身高增加1英寸时的体重增加量,基线  代表人的身高为0时的体重量,事实上由于人的身高下限高于0,所以不必严格限制  。   这个模型还并不完整,我们哈需要描述真实体重的随机误差,为了简便,我们假设体重真实值  服从以预测值  为均值、以  为标准差的正态分布:        整个模型有三个参数:斜率  、截距  、噪音的标准差  。三个参数都是具有意义的,斜率参数代表高度增长一英寸对应的体重增长值,标准差参数反映体重围绕着预测值的分散程度(变异程度)。
    第三步是确定参数的先验分布。 我们可以依据先前的研究结果来生成参数的先验分布,或者我们可以依据一些得到较多人认可的实践经验来生成先验分布。在这个例子中,我们采用比较模糊的、不蕴含信息量的先验,斜率和截距的所有可能取值的先验可信度相同,且可能取值的范围均以0为中心,噪音参数的先验分布为0到一个比较大的值的均匀分布。这种模糊的先验分布暗示其对后验分布并没有任何有方向的影响。
    第四步是得到后验分布。 贝叶斯推论会针对众多的参数值重新分配可信度,最终得到的后验分布与实验数据具有一致性。下图展示了参数  的后验分布,注意下图展示的并不是实验数据的分布,而是参数的分布。可以看出,可信度最高的斜率参数大约为4.1。下图同样展示了估计的参数值的不确定性,一种描述不确定性的方法是计算置信度最高的、包含分布95%的参数值的跨度,即下图中的黑色横线所表示的区间。这个区间称为最大密度区间( highest density interval , HDI)。95%HDI里面的参数值比之外的参数值具有更高的可信度,基于57对数据的95%HDI为  ,如果样本量增加,斜率的估计将会更加准确,即HDI会更窄。
                                            第五步是对模型进行检验, 即检验可信度最高的一些参数能够足够好地描述数据。这一项工作也叫后验预测检验(posterior predictive check)。由于系统误差的定义方法有很多,所以用来检验模型是否系统性的偏离数据的方法也有很多。   如果检验结果发现真实数据系统性的偏离模型的预测,那么我们就应该考虑其他模型。在这个例子中,如果数据表现出非线性趋势,那么就应该选择非线性模型来描述数据。

贝叶斯分析基础——可信度、模型和参数

6. 贝叶斯决策论及贝叶斯网络

 对于一个数据进行分类,那么数据的属性信息称为x,如果知道后验概率的情况下即能得到确定x的情况下分类为ci的概率。这时我们还需要一个损失的权值,λij称为i错判为j的损失(λii为0,一般λij都相等=1但具体情况可以具体分配),由前边得到的后验概率来乘上这个λ的参数这就叫做条件风险(conditional risk)。
   那么我们可以设计一个映射关系h,从x->c可以将结果带入条件风险,求整体风险最小。   但是其中后验概率很难在现实任务中取到,所以引入机器学习的目标的就是去训练这样一个后验概率(从大量的样本数据中)当然也有两种方式:
   可以看到前边判别类别的决策树,bp,svm都是判别式模型。(从这里看出我们的终极目标还是去计算 p(c|x) ,符合现实的要求。)
   根据贝叶斯定理,要求联合概率分布,可以通过 p(c )*p(x|c)/p(x) 来得到,前者是类先验概率,后者是类条件概率,或者称似然。    p(x) 是用于归一化的证据因子,对于给定的样本x,证据因子和类标记无关。(证据因子的存在知识为了保证各类别的后验概率的总和为1,所以在固定x的情况下这一项相当于常数,在比较时不做考虑)
   但如果x样本的属性很多或者是一个连续值,那么样本个数是不可能完全模拟到所有的取值的,更不用说还要去计算他们出现的联合概率了,也就是说得到的 p(x|c) 会有很多零值。   那么无法通过样本来进行模拟分布,可以用mle(极大似然估计)的方法,通过设定一个通用的分布函数(如:正态分布,不一定是正态,所以这个假设存在一定误差,或者说我们在指定假设分布形式时需要参考一定的先验知识(也就是我们训练数据的风格))然后通过训练分布中的参数来让极大似然最大。
    1.朴素贝叶斯分类器:(naïve bayes classification)     条件:    将所有的属性假设为相互独立也就是每个属性独立地对分类结果发生影响,这个想法很天真,很梦幻。   当然有了这个假设就很好计算了,计算联合分布的过程:通过训练集D来得到类先验概率然后再得到类条件概率。对于离散的取值数据量够可以直接用取值在训练集D中的概率直接估计,对于离散取值过多,或者是连续取值的情况可以用最大似然来做估计。   然后通过计算和比较 p(c=1,x) 和 p(c=2,x) 的大小,来或者最后输出c是判为1还是2。   因为离散取值会因为在数据集中找不到而变成概率为0,这样会影响所有的判断,这样就可以通过一个平滑处理(如:拉普拉斯修正)来将其修正为 (Dci+1)/(Dc+Nx) ,Dci为类别为c,x属性取值为i的个数,Nx为属性x的可能的取值数。同理对于类先验也要进行平滑处理。(这样的平滑操作算是一种先验,而且随着样本集增大影响逐渐减少的趋向于真实值。)
    2.半朴素贝叶斯分类器(semi-naïve bayes classification)     条件:    既然所有属性都假设为相互独立过于天真,那么我们假设一种独依赖,也就是假设每一个属性在类别之外最多仅依赖于一个其他属性。我们称这种假设为semi-naïve 的假设。   那么这样的独依赖也会有一些设计的方式:   1.都依赖于一个相同的父属性(SPODE);   2.随机依赖于除自己以外的其他的属性,但要让生成的树达到最大的权值(权值由两个属性之间的条件互信息来决定),构成最大带权生成树(TAN)。   但是因为有无环的性质,所以无论哪一种最后一定会有一个属性是没有父依赖的。
    3.非朴素贝叶斯--贝叶斯网络:(放弃之前“天真”的假设) 
    条件:    前边半朴素通过图连接来刻画属性之间的依赖关系,那么同样贝叶斯网络也在用这种有向无环图来刻画属性之间的依赖关系,并用条件概率表(CPT,conditional probability table)作为边的参数也就是(整个贝叶斯网络的参数)主要是子属性和父属性相对应的条件概率。而一个属性他的父属性个数没有任何限制。    问题:    但这样不如上一个半朴素贝叶斯结构基本固定直接遍历搜索空间也不会很大,可以用最大边的方式构建贝叶斯网络,也就是说这样的网络结构很难去构建和生成,主要是用似然损失+构造损失(参数个数*参数的精度)作为损失函数来进行优化,但是这直接求解是一个NP难的问题,这样就有两种方式第一种:贪心法,通过初始化一个网络结构,然后每次调整一个边(增加,删除或调整方向)使得loss变化最大,直到最后评分函数无法在降低。(当然这样的一个初始化网络结构就会变得很重要)第二种:通过给网络结构添加约束,比如将网络结构限定为树形结构等。    方法:    除了之前我们用作的分类问题,还可以做扩展到一个推断的问题,比如蒙着眼摸出西瓜的根蒂,形状,大小,能推断出它的色泽到底是青绿还是黄绿,是好瓜还坏,甜度如何等等。而且还可以直接精确计算出后验概率,但是当网络结点很多,连接又很稠密,而且查询的属性又含有依赖关系的时候,在短时间内计算出准确的结果会很难。所以我们通过借助近似的方式推断结果。(我们只想知道哪种可能性大得多,具体大多少不是我们要求的结论)   这种近似的做法就是吉布斯采样方法,固定我们获得的证据属性E,然后通过初始化一个q0,接着对于q0中的某一个属性根据其他的属性不变,根据计算得到的条件概率进行采样。这是一个马尔科夫链(marcov chain),性质:在经过t次的采样之后,马尔科夫会收敛于一个平稳分布,而这个平稳分布正是我们要求的那个 p(Q|E=e) 的分布。这样我们就可以通过吉布斯采样来得到一个模拟化的分布得到q最有可能的取值。(或者给定q, p(q|E=e) 估计的概率是多少)
    隐变量介绍以及解决方法:    上诉还有一个问题那就是属性缺失的情况下怎么办,我们的模型网络还能创建得出来吗?也就是说存在隐变量(latent variable)该怎样解决这样的问题?   EM(Expectation-Maximization)算法是常用的估计参数隐变量的方法。   主要的思想就是:隐变量和模型参数是我们要求的,而二者之间存在相互依赖的关系,也就是不知道隐变量无法求出模型参数,不知道模型参数也无法反推出隐变量。那如果是一种优化迭代算法的话,初始化隐变量,然后训练得到最优的参数,然后通过固定最优的参数再反过来训练到最优的隐变量。直到最后收敛到一个局部最优解。(所以这种算法求解的结果是和 初始值关系比较大的局部最优解,如果能找到一个接近全局最优解的初始值,或者在接受解的概率上做调整不至于过快收敛,可能可以得到一个更好的解。)
   参考文献:西瓜书-贝叶斯决策论

7. 贝叶斯分析的拟准分析

(五)拟(准)贝叶斯分析(quasi Bayesian analysis )有一种目前不断在文献中出现的贝叶斯分析类型,它既不属于“纯”贝叶斯分析,也不同于非贝叶斯分析。在这种类型中,各种各样的先验分布的选取具有许多特别的形式,包括选择不完全确定的先验分布(vague proper priors);选择先验分布似然函数的范围进行“扩展”(span);对参数不断进行调整,从而选择合适的先验分布使得结论看起来非常完美。伯杰称之为拟(准)贝叶斯分析,因为虽然它包含了贝叶斯的思想,但它并没有完全遵守主观贝叶斯或客观贝叶斯在论证过程中的规范要求。拟(准)贝叶斯方法,伴随着MCMC方法的发展,已经被证明是一种非常有效的方法,这种方法可以在使用过程中,不断产生新的数据和知识。虽然拟(准)贝叶斯方法还存在许多不足,但拟(准)贝叶斯方法非常容易创造出一些全新的分析过程,这种分析过程可以非常灵活地对数据进行分析,这种分析过程应该加以鼓励。对这种分析方法的评判,不必要按照贝叶斯内在的标准去衡量,而应使用其他外在的标准去判别(例如敏感性、模拟精度等)。-----------学文

贝叶斯分析的拟准分析

8. 贝叶斯估计的介绍

贝叶斯估计,是在给定训练数据D时,确定假设空间H中的最佳假设。 最佳假设:一种方法是把它定义为在给定数据D以及H中不同假设的先验概率的有关知识下的最可能假设。贝叶斯理论提供了一种计算假设概率的方法,基于假设的先验概率、给定假设下观察到不同数据的概率以及观察到的数据本身。