标签归档:试验设计

计算机试验简介

很早就想为COS写一篇关于计算机试验的东西。可是始终也未敢动笔,觉得自己才疏学浅,生怕写得偏颇。但是另外一方面,又觉得这是COS上一块空白的话题,没有人提及过。今天写这篇文章,主要是为抛砖引玉,另外丰富一下主站文章的题材。

在这篇文章中,我想大致介绍一下计算机试验的设计以及建模,另外会有一些R中专门做计算机试验的包的相关介绍。

目前,比较流行的计算机试验设计与建模的教材有两本(似乎也只有这两本)。一本是Thomas J. Santner, Brian J.Williams以及William I.Notz合著的,Springer2003年出版的《The Design and Analysis of Computer Experiment》。另外一本是Kai-Tai Fang ,Runze Li以及Agus Sudjianto合著的,2005年由Chapman&Hall出版的《Design and Modeling for Computer Experiment》。所谓的计算机试验(computer experiment),是相对于传统的实体试验(physical experiment)而言的。我们都知道,实体试验的数据(比如农业试验,生物试验等得到的数据)总是会受到随机误差的影响,因此在实体试验设计中,引入了“重复”的原则,目的就是要通过重复的试验,减小随机误差对于分析的影响。(关于实体试验的设计以及建模,国内外已经有很多教材讨论这些,我相信大多数统计专业的同学所学习的试验设计入门课程都是在学习实体试验的设计以及数据分析。)与此相对的,计算机试验得到的数据并不受到随机误差的干扰。因为一段固定的代码,在计算机上无论运行多少次,得到的结果都是一样的。

计算机试验,通常比实体试验包含了更多的变量,用于研究特别复杂的系统,比如航天探测器。对于这些特别复杂的系统,往往需要用一个更加简单的拟模型(meta model)来逼近。计算机试验的目的之一,就是要通过在计算机上,利用代码模拟某个复杂的设备或者某个过程,得到了试验的数据之后,通过分析建模,从而得到一个相对更简单的模型,被称为拟模型,拟模型是非常有用的。

由于计算机试验具有复杂性,以及输出结果的确定性,做计算机试验收集数据的时候,我们需要一些特殊的设计。

试验设计,总是和模型紧密相联系的。事实上,试验设计是一种收集数据的策略。在实体试验中,当我们需要比较某种因子不同水平之间的差别,我们通常会选用因析设计。因析设计事实上就是和因子模型相对应而产生的收集数据的策略。另外,所谓的最优设计,也是相对应于模型的最优化准则而产生的收集数据的策略。而在计算机试验中,常用的是模型是所谓的全局均值模型(overall mean model)。

不失一般性,我们考虑试验区域是一个s维的单位立方$C^s=[0,1]^s$。当试验次数给定了,比如说$n$次,我们就需要考虑如何找到一个好的试验$D_n=\{x_1,\cdots,x_n\}$,使得$f(x)-g(x)$对于试验区域上的所有点,都尽可能的小。其中$f(x)$是真实的模型,而$g(x)$是拟模型。我们考虑到,对于所有的点,都要求上述差分达到最小是很困难的。因此,很多学者都将该问题进行了简化,转而去寻找全局均值$E(y)=\int_{C^s}f(x)dx$的最佳的估计值。而通常,都用样本均值,也就是平均数$\bar{y}(D_n)=\frac{1}{n}\sum_{i=1}^nf(x_i)$来估计总体均值。因此,我们的问题也就转化为了如何找到一个试验,使得这个试验得到的数据做样本均值来估计总体均值是最好的。这也就是计算机试验设计的动因。

从统计学的角度来看,如果样本点$x_1,\cdots,x_n$是在$C^s$上均匀分布上独立抽取的,那么样本均值是无偏的,并且方差为$\frac{var(f(x))}{n}$。但是,通常来说,这个方差太大了。因此很多学者提出了不同的抽样方法来降低这个样本均值的方差。1979年,McKay,Beckman和Conover基于分层抽样提出了一种新的抽样方法,这种方法使得随机选择的样本点并不独立,并且边际分布相同,因此

$Var(\bar{y}(D_n))=\frac{1}{n}Var(f(x))+\frac{n-1}{n}Cov(f(x_1),f(x_2))$

当$f(x_1)$与$f(x_2)$负相关时,方差就减小了。这种方法被人不断的推广,创新。成为了现在计算机试验设计中一块非常重要的内容——拉丁超立方体设计(Latin-Hypercube design)。在后来的不断发展中,拉丁超立方和正交表相结合,产生了很多正交拉丁超立方设计。此外,当引入一些准则时,比如熵准则,最大最小距离准则等,也产生了对应该准则的最优的设计,包括最大最小拉丁超立方等。这些设计在计算机试验中应用非常广泛,最近也有人将这种设计用在变量选择的过程中,通过模拟,大大提高了变量选择的精确度。

与拉丁超立方设计相对应的另外一种设计,是由我国科学家方开泰,王元在上世纪八十年代提出的均匀设计。均匀设计这一想法的提出,起源于伪蒙特卡洛方法中的Koksma-Hlawaka不等式。$|E(y)-\bar{y}(D_n)|\leq V(f)D(D_n)$。其中$D(D_n)$是设计$D_n$的星偏差(star-discrepancy),而$V(f)$是方程$f$的总体变动情况。其中星偏差是一种均匀性的度量,当试验点在试验区域分布越均匀时,星偏差的值就越小,因此,样本均值与总体均值之差的绝对值的上界也就越小,相当于提高了估计的精度。一个试验区域上具有最小星偏差的设计,就是所谓的均匀设计。均匀设计由我国科学家自主提出,并且在国际上得到了非常好的反响以及应用。之后,有很多学者,对于均匀设计做出了改进,使得均匀设计也不断地发展壮大。

下面简单介绍一下对于计算机试验得到的数据建模的常用方法。事实上,统计学习中的常用的建模方法都可以用来对计算机试验数据进行建模。包括样条回归,局部回归,神经网络等,都可以对数据进行建模。这里要要重点介绍的是一种非常常用的模型,高斯-克里金模型(Gaussian-Kriging models)。克里金是南非地质学家,他在其硕士论文中分析矿产数据的时候,提出了克里金模型,后来由几位统计学家发展了他的模型,得到了目前在计算机试验中非常常用的高斯-克里金模型。

$y(x)=\sum_{j=0}^{L}\beta_jB_j(x)+z(x)$

其中$B_j(x)$是选定的基函数,$z(x)$是随机误差,来自于高斯过程。该高斯过程零均值,方差为$\sigma^2$,协方差函数为$r(\theta,s,t)=corr(z(s),z(t))$。通常情况下$r$是预先选定的。可以证明,高斯克里金模型的预测值是BLUP。

关于计算机试验数据的建模,方法很多,但是建模方法仅仅是建模方法,无论是计算机试验还是实体试验,建模方法往往通用,因此,这里不做展开论述了。

下面简单介绍一下R语言中,做计算机试验的一些包。

lhs包,主要用来生成拉丁超立方体设计。DiceDesign包可以生成更多的一些空间填充设计。DiceKriging提供了对计算机试验数据构建高斯-克里金模型的功能,DiceView则提供了多维模型可视化的手段。以上的包在task view中都有所介绍。此外,值得一提的是VizCompX包,其对计算机试验的数据拟合高斯模型,并且提供可视化的手段。感兴趣的童鞋可以参看这几个包的帮助文档,帮助文档都不长,容易上手。

最后,提一点我个人的小感想。我认为,计算机试验中,更应该引人注意的话题应该是试验的设计。一个好的设计,不光能够提高试验的精度,更能体现一种美感。生成一个好的设计,大致上有两种路可以走,一种是预先设定一个准则,然后利用最优化的算法,进行搜索。常用的算法包括一些全局的最优算法,比如门限接受算法,模拟退火算法等。另外一种方法,则是利用数学中其他学科,比如伽罗瓦理论,编码理论等,通过这些学科的理论特点,精巧地构造一个设计。这两种构造设计的方法相互补充,相辅相成,提供了非常广大的研究空间。另外,这些为计算机试验而提出的设计,也可以用在很多其他的统计学的课题中,比如之前已经提到过的变量选择方法精确度的提升方面。总之,试验设计是研究如何有效收集数据的,无论数据是来自于实体试验,还是计算机试验,一个设计了的试验,往往都可以提高效率,提高精度。这也是试验设计这门课程的意义所在。越南的Nyuan开发了一款试验设计的软件Gendex,通过输入试验的行数,列数,选择你所需要的设计种类,便可以生成多种不同的设计阵。这款软件,是目前可以生成设计阵种类最多的,感兴趣的童鞋,不妨搜来玩一玩。

正交试验和多因素方差分析

英国学者R. A. Fisher等在二十世纪前期开创了近代数理统计这门大学科,开始的标志是学生氏t分布的引入。在统计的发展过程中,Fisher又提出:“在进行一批试验之前,考虑到在取得这批试验的结果后,将要进行统计分析,因此,在试验前怎样合理地安排这批试验使得试验后的结果和统计分析取得更好的效果,是值得思考的。”在这种提法的推动下,在数理统计中形成了一种一分为二和合二而一的试验设计与方差分析这两个庞大的子学科。

方差分析主要是为检验因子在试验中作用的显著性而引进的一种方法,最早是由R. A. Fisher于1920年前后对农业试验作统计分析时引进。如果能对观察值的方差进行分解且分解出来的每一部分都可作出明确的统计解释,那么这个分解就是方差分析[1]。单因素方差分析在数学方法及其应用上基本没什么问题,所以这里主要讨论多因素方差分析的一些问题。

方差分析的一个重要假定是各个试验点同方差。这个假定过于强硬,也未必符合实际。例如在农业试验中,高产田产量的方差往往较低产田产量的方差大。当然,在某些条件下可以近似地认为各试验点的方差相等。

多因素方差分析的一个重要问题是在对因素间交互作用的处理上。可以应用多元方差分析的试验数据要符合严格的要求,它们一般来源于两类试验:完全组合试验和正交试验(正交试验的两个重要特点是均衡分散和整齐可比)。

交互作用是完全组合意义上的一个概念[2]。做完全组合试验可以得到各因素间的交互作用,若全体交互作用为零则主效应完全可加。然而,按照普遍联系的法则:主效应之间通常不是完全可加的。完全组合试验时,即使验证出了交互作用为零也没有什么太大的实际意义,何况当试验点作些平移,交互作用便随着改变。也正是由于交互作用是完全组合意义上的一个概念,若在某些试验点上没有观测值,那么有些交互效应或主效应就计算不出来了。

完全搭配且每个搭配的重复次数相同的试验得到的数据的方差分析是一门数学,形式逻辑的推导正确,但这并不意味着是好的应用数学。好的应用数学就是要提高试验效益和效率,尽可能通过少数次试验找到结果好的因素及水平搭配。所以,这里谈多因素方差分析的问题是也主要是从应用的角度。

当试验涉及的因素较多时,完全组合试验代价太大,试验效率很低。这时就要求做部分实施,即选取因素水平的一些组合(完全组合的一部分)来做正交试验。应用多因素方差分析来处理正交试验的数据时,对因素间交互作用的处理比较含糊:1)有时根据经验强行假定因素间不存在交互作用,这时在理论上就直接认定认为主效应完全可加;2)有时把认为可能存在的交互作用安排进正交表;3)另外还有“三阶或三阶以上因素间交互作用可忽略不计”等假定,等等。这些对待交互作用的态度有些让人摸不着头脑,因此在应用上也就有很大的缺陷。

可能也正是由于这些不足,欧美那些偏爱多因素方差分析的学者甚至认为不应该采用部分实施,比如“正交拉丁方限于应用在交互作用可以忽略不计的试验情况”,“当缺乏关于交互作用的信息或者当交互作用为零的假定是否成立还可疑时,应该安排完全搭配”之类,这从根本上剥夺了部分实施的巨大作用,实为一种偏执于方法而忽略实际应用的倒退。

科学试验探索未知,多因素试验的变化范围广,开始时把因素的水平范围选偏在所难免,即使有多年的经验在里面也可能有因素水平选偏的情况。

举一个例子:试验中有4个因素,假定均为三水平。分别用L9(34)和K(81)代表正交部分实施和完全搭配。完全搭配试验时,不用方向,埋头拉车,这时能够找到这81次完全搭配中的第一名。使用正交法:第一阶段,按L9(34)做9次试验,找到直接看的好搭配。第二阶段,根据这9次试验结果提供的线索,可以为好搭配的进一步搜寻提供帮助,比如,根据趋势图判断因素各水平有没有选偏,如果选偏了可以在下一批的试验中调整因素的水平。这样就可能跳出原来的因素水平范围,得到的好搭配甚至超过完全搭配时的第一名。根据实践经验,这样的分批试验往往至多做三批就可以找到非常好的结果了。

当试验因素比较多时,比如13个因素,也假定均为三水平,这时选用L27(313)和K(313=1594323)作为部分实施和完全搭配这两种方案代表。如果做完全组合试验,除了试验次数大大增加,而且因素水平的范围更易选偏。通过分批的部分实施则可以大大提高试验效率。当试验因素越多,两种方案之间的差距越大。部分实施的巨大作用显而易见。

对于正交试验,除了在处理因素间交互作用上有缺陷,应用多因素方差分析找到好的结果往往至多是局部最优。它分析的仅仅是某一批试验的数据,通过对因素效应的分解以期找到一组好的因素水平搭配。虽然有时可能会发现得到的这组因素水平搭配已超出已经做过试验的各因素水平搭配中,但也仅止于此,然后就匆匆下结论。不仅没有继续试验以检查该水平组合是否真正是好的,而且多因素方差分析对于一开始因素水平范围是否选偏并没有考虑。试验是一项不断探索的过程,而往往不是某一批次的试验就能解决问题的。分批做部分实施是有计划地进行,每一批试验为下一批的试验的布点服务,然后不断调整因素水平的范围,以尽可能接近全局最优的因素水平组合。

其实,正交试验也好,多因素方差分析也好,最终目的还是要找到好的试验因素水平组合。那么又何必固执于求出交互作用,固执于使用多因素方差分析的方法,倒不如跳出“交互作用”的圈子,并尝试从试验全局来考虑如何找到好的因素水平组合。

张里千先生舍弃了田口式的表头设计和方差分析的方法。经过不断研究,并通过大量的深入实践和总结,去伪存真,删繁就简,逐步地提炼出一套实现最优化的正交设计的系统理论和方法,并提出了一般性指导原则和策略,即“由稀到密,分批走着瞧,有苗头处着重加密,过稀处适当加密”。在满足这个指导原则和策略下,各批试验点能充分发挥效率;在限定的试验次数内尽可能地接近全局最优解;如果试验次数可以无限,则以尽快速度可靠地收敛到全局最优解。该方法的另一大优点是简单易学、灵活方便,普通技术人员都可以学会并能在各自岗位上发挥很大作用,拥有巨大的社会潜力。[3]

如果有朋友对张里千先生的这套最优化方法感兴趣,我将在下一期的文章详细介绍该方法。另外,介绍这套实用方法的《实用选优法》一书(由张里千先生编著的最新版本)也即将由科学出版社出版,敬请关注,哈哈!

注:1. 本文主要是基于张里千先生对多因素方差分析的一些看法。

2. 张里千,数学家和应用统计学家,中国现场统计研究会的主要创始人,早年毕业于北京大学数学系,后来任中科院系统科学研究所研究员。上世纪五、六十年代在非参数统计和试验设计等若干研究领域做出了不少深刻和杰出工作,七十年代以来主要从事正交试验设计与最优化的理论方法研究、应用和推广工作。以上两项主要工作均获得了1978年的全国科学大会奖。

 

参考文献:

[1] 陈希孺. 数理统计学教程[M]. 北京:中国科学技术出版社. 2009.

[2] 张里千. 交互作用和多因素最优化[J]. 数理统计与管理, 1991(03): 28-35.

[3] 张建方. 张里千传记 from 正交法和应用数学[M]. 北京:科学出版社. 2009.

如何设计一个试验

R·A·费歇尔爵士说在试验设计中经历的不是一个试验而是一种经验。

在静静地看了几遍David Freedman等著的《统计学》中关于试验设计的部分后,总觉得应该写点东西发泄一下。该书自从买来就一直放在书架很久没动,也懒得动,因为翻翻前面觉得太简单。最近心情比较平静,翻了翻试验设计部分,同时思考现实中的类似例子,觉得挺有味道的。

试验设计包括很多内容,比如大家可能都熟知的正交表构造、区组设计、拉丁方设计、饱和设计等,而书在这部分所说的试验设计主要讲在实际中如何设计一个试验,尤其是只考虑单因素的试验设计,即如何设计一个试验或通过观察研究来辨别一个因子(定性或定量)是否会带来某种特定结果,比如吸烟是否会导致肺癌。我们都知道,一个因子的效应是否显著,最常用的办法就是对照比较了。但是如何对照比较?在现实中很多人都会犯错,因为大家都往往会忽视比较的前提或基础,夸张一点说就像一个大人和一个小孩进行100米赛跑,他们的最终成绩是没有比较的意义的。

比较好的一个方法就是随机对照双盲试验:比较对照的基础是要在分组之前保证试验对象除了待研究的因子之外其他条件尽可能相似,或者说来自于同一母体;然后随机分组,比如用抛硬币决定分组等;”双盲”即试验对象和评估反应的人员对于分组一无所知,只有试验研究人员知道所有的分组。理论能给予也许就是以上一些文字,而在实际中具体设计这样一个试验时发现很多问题迎面而来。有时真的不得不感叹”实践处处皆智慧”,难怪说试验设计不仅是一门科学还是一门艺术呢!

举个例子说明随机对照双盲试验(我也是借花献佛,引用书中的例子,主要还是实践经验的匮乏啊!)美国在1916年遭受了脊髓灰质炎的袭击,受袭击的主要对象是1、2、3年级年龄段的学生,后来开发出了一种疫苗,然而该疫苗对于防止脊髓灰质炎是否有效呢?具体做试验时如何选择试验对象,可以随便选一个学区吗?这种疫苗会不会带来更大范围的脊髓灰质炎儿童呢?(人毕竟不是小白鼠啊!尤其是药物试验便会涉及到这样的道德问题。)最后美国卫生总署选定的学区是据信脊髓灰质炎最严重的一个学区。确定了这个学区后,就要来选择具体的试验对象,选哪个年级呢?具体又选哪些儿童呢?在试验过程中有相当部分孩子的父母因为各种原因拒绝参加这样一个试验。另外,在试验过程中还发现生活在卫生条件较差家庭的儿童由于来自母亲的抗体而能经受更厉害的传染,而生活在卫生条件好家庭的儿童往往更容易感染脊髓灰质炎。最后找到这样一个母体:试验对象的父母均同意注射疫苗,家庭背景等方面相似,那些看来会明显影响处理因子的混杂因素都尽可能相似了。在确定了这样一个母体以后再分组,负责评估反应的医生是不能参与分组的,主要是为了减少医生的主观偏性。一个不错的方法就是抛硬币,正面的一组,反面的一组,试验的儿童虽然可能知道他抛出的正面还是反面,但却不知道自己到底是处理组还是对照组。接下来试验就可以正式开始了。

其实随机对照试验主要还是要避免来自各方面的偏性,从而保证研究结果的准确性。而偏性主要来源于其他因子效应的混淆。

随机对照试验看来是非常不错的测定某一因子的效应是否显著的方法,然而在实际中却很少有这样的施展机会,比如研究吸烟是否会导致肺癌,吸烟者哪有时间陪你做一个为期十年的试验,这时就需要从观察中分析研究。在观察研究中依然要运用随机对照的思想,比如我们研究吸烟与心脏病的关系,那么吸烟以外的一系列因素就要控制好,比如限定是男性吸烟者,处于某个年龄段的吸烟者(作为处理组),另外该年龄段的男性未吸烟者作为对照组(其中可能还有其他的一些因素需要控制,不一一列举),然后跟踪记录。相关联并不等于因果。一般人的认识似乎是经常吸烟的人得肺病、心脏病的较多,但是不要忘记表面的现象可能是由很多因素混杂在一起而导致的,因此不能轻易判断两者之间存在因果关系。统计学教育我们,凡事不能从表面判断,原因是复杂的,我们要做的就是要找出真正的原因(就像电视剧《少年包青天》中的那句经典台词”真相只有一个”,呵呵),这也是统计学带给我乐趣的一个重要原因。

观察研究中还有这样一种情况:以某种检查和乳腺癌的关系为例,为了研究该种检查是否可以降低乳腺癌带来的死亡率,有62000名40至64岁的妇女被选作试验对象,她们被随机分到两个组,处理组中妇女接受年度的该种检查,而对照组则是做一般的常规性检查。但是跟踪发现处理组只有10800名妇女接受年度检查,有些拒绝检查(主要原因可能还是家庭经济状况)。另外对照组也并不会因为是对照组而不去检查,对照组中也会有一小部分人”偷偷”去接受检查。这样的情况又如何比较,如何得出研究结论呢?

说试验设计是一项艺术,是因为其中有很多经验或技巧的东西在里面吧,通过这些经验或技巧可以更好地对处理因子以外的混杂因素有一个较好的控制。因此,在具体做试验设计的时候更需要从实际出发,融入实际,发掘出真正的原因。

浅析试验设计

试验设计是研究计划内关于研究方法与步骤的一项内容。在各种研究工作中,无论试验室研究、临床疗效观察或现场调查,在制订研究计划时,都应根据试验的目的和条例,结合统计学的要求,针对试验的全过程,认真考虑试验设计问题。一个周密而完善的试验设计,能合理地安排各种试验因素,严格地控制试验误差,从而用较少的人力、物力和时间,最大限度地获得丰富而可靠的资料。反之,如果试验设计存在着缺点,就可能造成不应有的浪费,且足以减损研究结果的价值。总之,试验设计是试验过程的依据,是试验数据处理的前提,也是提高科研成果质量的一个重要保证。 继续阅读浅析试验设计