2005年4月20日

Internet综合的资料,对于了解数据挖掘有一定的好处,对技术没有讲解。如果大家有补充的可随时交流、增加、修改。数据挖掘讨论组

http://datamining.126.com

http://datamining.n3.net

 

200012


1.   数据挖掘技术的由来... 4

1.1网络之后的下一个技术热点... 4

1.2 数据爆炸但知识贫乏... 4

1.3 支持数据挖掘技术的基础... 4

1.4 从商业数据到商业信息的进化... 5

1.5 数据挖掘逐渐演变的过程... 5

2     数据挖掘的定义... 6

2.1 技术上的定义及含义... 6

2.2 商业角度的定义... 7

2.3          数据挖掘与传统分析方法的区别... 7

3     数据挖掘的研究历史和现状... 7

3.1          研究历史... 7

3.2          出版物及工具... 8

3.3          国内现状... 8

3.4          业界观点... 8

4     数据挖掘研究内容和本质... 9

4.1          广义知识(Generalization... 9

4.2 关联知识(Association... 9

4.3 分类知识(ClassificationClustering) 9

4.4预测型知识(Prediction... 10

4.5偏差型知识(Deviation) 10

5     数据挖掘的功能... 10

5.1          自动预测趋势和行为... 10

5.2          关联分析... 10

5.3          聚类... 11

5.4概念描述... 11

5.5偏差检测... 11

6     数据挖掘常用技术... 11

6.1        人工神经网络... 11

6.2决策树... 11

6.3遗传算法... 11

6.4近邻算法... 11

6.5规则推导... 11

7     数据挖掘工具... 12

7.1        基于神经网络的工具... 12

7.2        基于规则和决策树的工具... 12

7.3        基于模糊逻辑的工具... 12

7.4        综合多方法工具... 12

8     数据挖掘的流程... 12

8.1数据挖掘环境... 12

8.2数据挖掘过程图... 12

8.3        数据挖掘过程工作量... 13

8.4数据挖掘过程简介... 13

8.5数据挖掘需要的人员... 14

9     数据挖掘未来研究方向... 14

10  数据挖掘热点... 15

10.1 网站的数据挖掘(Web site data mining... 15

10.2 生物信息或基因的数据挖掘... 16

10.3 文本的数据挖掘(Textualmining... 16

11  Web数据挖掘与XML. 16

11.1 Web数据挖掘的难点... 16

11.2 XMLWeb数据挖掘技术... 17

12  数据挖掘应用... 20

12. 1 数据挖掘解决的典型商业问题... 20

12. 2 数据挖掘在市场营销的应用... 20

12. 3 成功案例... 21

13 实施数据挖掘项目考虑的问题... 23

14 实施数据挖掘项目考虑的问题... 24

 


1.           数据挖掘技术的由来

1.1网络之后的下一个技术热点

我们现在已经生活在一个网络化的时代,通信、计算机和网络技术正改变着整个人类和社会。如果用芯片集成度来衡量微电子技术,用CPU处理速度来衡量计算机技术,用信道传输速率来衡量通信技术,那么摩尔定律告诉我们,它们都是以每18个月翻一番的速度在增长,这一势头已经维持了十多年。在美国,广播达到5000万户用了38年;电视用了13年;Internet拨号上网达到5000万户仅用了4年。全球IP网发展速度达到每6个月翻一番,国内情况亦然。1999年初,中国上网用户为210万,现在已经达到600万。网络的发展导致经济全球化,在1998年全球产值排序前100名中,跨国企业占了51个,国家只占49个。有人提出,对待一个跨国企业也许比对待一个国家还要重要。在新世纪钟声刚刚敲响的时候,回顾往昔,人们不仅要问:就推动人类社会进步而言,历史上能与网络技术相比拟的是什么技术呢?有人甚至提出要把网络技术与火的发明相比拟。火的发明区别了动物和人,种种科学技术的重大发现扩展了自然人的体能、技能和智能,而网络技术则大大提高了人的生存质量和人的素质,使人成为社会人、全球人。

现在的问题是:网络之后的下一个技术热点是什么?让我们来看一些身边俯拾即是的现象:《纽约时报》由60年代的1020版扩张至现在的100200版,最高曾达1572版;《北京青年报》也已是1640版;市场营销报已达100版。然而在现实社会中,人均日阅读时间通常为3045分钟,只能浏览一份24版的报纸。大量信息在给人们带来方便的同时也带来了一大堆问题:第一是信息过量,难以消化;第二是信息真假难以辨识;第三是信息安全难以保证;第四是信息形式不一致,难以统一处理。人们开始提出一个新的口号:要学会抛弃信息。人们开始考虑:如何才能不被信息淹没,而是从中及时发现有用的知识、提高信息利用率?

面对这一挑战,数据开采和知识发现(DMKD)技术应运而生,并显示出强大的生命力。

1.2 数据爆炸但知识贫乏

另一方面,随着数据库技术的迅速发展以及数据库管理系统的广泛应用,人们积累的数据越来越多。激增的数据背后隐藏着许多重要的信息,人们希望能够对其进行更高层次的分析,以便更好地利用这些数据。目前的数据库系统可以高效地实现数据的录入、查询、统计等功能,但无法发现数据中存在的关系和规则,无法根据现有的数据预测未来的发展趋势。缺乏挖掘数据背后隐藏的知识的手段,导致了数据爆炸但知识贫乏的现象。

1.3 支持数据挖掘技术的基础

数据挖掘技术是人们长期对数据库技术进行研究和开发的结果。起初各种商业数据是存储在计算机的数据库中的,然后发展到可对数据库进行查询和访问,进而发展到对数据库的即时遍历。数据挖掘使数据库技术进入了一个更高级的阶段,它不仅能对过去的数据进行查询和遍历,并且能够找出过去数据之间的潜在联系,从而促进信息的传递。现在数据挖掘技术在商业应用中已经可以马上投入使用,因为对这种技术进行支持的三种基础技术已经发展成熟,他们是:

-          海量数据搜集

-          强大的多处理器计算机

-          数据挖掘算法

Friedman[1997]列举了四个主要的技术理由激发了数据挖掘的开发、应用和研究的兴趣:

-          超大规模数据库的出现,例如商业数据仓库和计算机自动收集的数据记录;

-          先进的计算机技术,例如更快和更大的计算能力和并行体系结构;

-          对巨大量数据的快速访问;

-          对这些数据应用精深的统计方法计算的能力。

 

商业数据库现在正在以一个空前的速度增长,并且数据仓库正在广泛地应用于各种行业;对计算机硬件性能越来越高的要求,也可以用现在已经成熟的并行多处理机的技术来满足;另外数据挖掘算法经过了这10多年的发展也已经成为一种成熟,稳定,且易于理解和操作的技术。

1.4 从商业数据到商业信息的进化

从商业数据到商业信息的进化过程中,每一步前进都是建立在上一步的基础上的。见下表。表中我们可以看到,第四步进化是革命性的,因为从用户的角度来看,这一阶段的数据库技术已经可以快速地回答商业上的很多问题了。

进化阶段

商业问题

支持技术

产品厂家

产品特点

数据搜集
(60
年代)

过去五年中我的总收入是多少?

计算机、磁带和磁盘

IBM,CDC

提供历史性的、静态的数据信息

数据访问
(80
年代)

在新英格兰的分部去年三月的销售额是多少?

关系数据库(RDBMS),结构化查询语言(SQL),ODBC

OracleSybaseInformixIBMMicrosoft

在记录级提供历史性的、动态数据信息

数据仓库;决策支持
(90
年代)

在新英格兰的分部去年三月的销售额是多少?波士顿据此可得出什么结论?

联机分析处理(OLAP)、多维数据库、数据仓库

PilotComshareArborCognosMicrostrategy

在各种层次上提供回溯的、动态的数据信息

数据挖掘
(正在流行)

下个月波士顿的销售会怎么样?为什么?

高级算法、多处理器计算机、海量数据库

PilotLockheedIBMSGI、其他初创公司

提供预测性的信息


表一、数据挖掘的进化历程。

数据挖掘的核心模块技术历经了数十年的发展,其中包括数理统计、人工智能、机器学习。今天,这些成熟的技术,加上高性能的关系数据库引擎以及广泛的数据集成,让数据挖掘技术在当前的数据仓库环境中进入了实用的阶段。

1.5 数据挖掘逐渐演变的过程

数据挖掘其实是一个逐渐演变的过程,电子数据处理的初期,人们就试图通过某些方法来实现自动决策支持,当时机器学习成为人们关心的焦点.机器学习的过程就是将一些已知的并已被成功解决的问题作为范例输入计算机,机器通过学习这些范例总结并生成相应的规则,这些规则具有通用性,使用它们可以解决某一类的问题.随后,随着神经网络技术的形成和发展,人们的注意力转向知识工程,知识工程不同于机器学习那样给计算机输入范例,让它生成出规则,而是直接给计算机输入已被代码化的规则,而计算机是通过使用这些规则来解决某些问题。专家系统就是这种方法所得到的成果,但它有投资大、效果不甚理想等不足。80年代人们又在新的神经网络理论的指导下,重新回到机器学习的方法上,并将其成果应用于处理大型商业数据库。随着在80年代末一个新的术语,它就是数据库中的知识发现,简称KDD(Knowledge discovery in database).它泛指所有从源数据中发掘模式或联系的方法,人们接受了这个术语,并用KDD来描述整个数据发掘的过程,包括最开始的制定业务目标到最终的结果分析,而用数据挖掘(data mining)来描述使用挖掘算法进行数据挖掘的子过程。但最近人们却逐渐开始使用数据挖掘中有许多工作可以由统计方法来完成,并认为最好的策略是将统计方法与数据挖掘有机的结合起来。

数据仓库技术的发展与数据挖掘有着密切的关系。数据仓库的发展是促进数据挖掘越来越热的原因之一。但是,数据仓库并不是数据挖掘的先决条件,因为有很多数据挖掘可直接从操作数据源中挖掘信息

2 数据挖掘的定义

2.1 技术上的定义及含义

数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。

与数据挖掘相近的同义词有数据融合、数据分析和决策支持等。这个定义包括好几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海皆准的知识,仅支持特定的发现问题。

----何为知识?从广义上理解,数据、信息也是知识的表现形式,但是人们更把概念、规则、模式、规律和约束等看作知识。人们把数据看作是形成知识的源泉,好像从矿石中采矿或淘金一样。原始数据可以是结构化的,如关系数据库中的数据;也可以是半结构化的,如文本、图形和图像数据;甚至是分布在网络上的异构型数据。发现知识的方法可以是数学的,也可以是非数学的;可以是演绎的,也可以是归纳的。发现的知识可以被用于信息管理,查询优化,决策支持和过程控制等,还可以用于数据自身的维护。因此,数据挖掘是一门交叉学科,它把人们对数据的应用从低层次的简单查询,提升到从数据中挖掘知识,提供决策支持。在这种需求牵引下,汇聚了不同领域的研究者,尤其是数据库技术、人工智能技术、数理统计、可视化技术、并行计算等方面的学者和工程技术人员,投身到数据挖掘这一新兴的研究领域,形成新的技术热点。

这里所说的知识发现,不是要求发现放之四海而皆准的真理,也不是要去发现崭新的自然科学定理和纯数学公式,更不是什么机器定理证明。实际上,所有发现的知识都是相对的,是有特定前提和约束条件,面向特定领域的,同时还要能够易于被用户理解。最好能用自然语言表达所发现的结果。

2.2 商业角度的定义

数据挖掘是一种新的商业信息处理技术,其主要特点是对商业数据库中的大量业务数据进行抽取、转换、分析和其他模型化处理,从中提取辅助商业决策的关键性数据。

简而言之,数据挖掘其实是一类深层次的数据分析方法。数据分析本身已经有很多年的历史,只不过在过去数据收集和分析的目的是用于科学研究,另外,由于当时计算能力的限制,对大数据量进行分析的复杂数据分析方法受到很大限制。现在,由于各行业业务自动化的实现,商业领域产生了大量的业务数据,这些数据不再是为了分析的目的而收集的,而是由于纯机会的(Opportunistic)商业运作而产生。分析这些数据也不再是单纯为了研究的需要,更主要是为商业决策提供真正有价值的信息,进而获得利润。但所有企业面临的一个共同问题是:企业数据量非常大,而其中真正有价值的信息却很少,因此从大量的数据中经过深层分析,获得有利于商业运作、提高竞争力的信息,就像从矿石中淘金一样,数据挖掘也因此而得名。

因此,数据挖掘可以描述为:按企业既定业务目标,对大量的企业数据进行探索和分析,揭示隐藏的、未知的或验证已知的规律性,并进一步将其模型化的先进有效的方法。

2.3     数据挖掘与传统分析方法的区别

数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是数据挖掘是在没有明确假设的前提下去挖掘信息、发现知识.数据挖掘所得到的信息应具有先未知,有效和可实用三个特征.

先前未知的信息是指该信息是预先未曾预料到的,既数据挖掘是要发现那些不能靠直觉发现的信息或知识,甚至是违背直觉的信息或知识,挖掘出的信息越是出乎意料,就可能越有价值.在商业应用中最典型的例子就是一家连锁店通过数据挖掘发现了小孩尿布和啤酒之间有着惊人的联系.

3 数据挖掘的研究历史和现状

3.1     研究历史

从数据库中发现知识(KDD)一词首次出现在1989年举行的第十一届国际联合人工智能学术会议上。到目前为止,由美国人工智能协会主办的KDD国际研讨会已经召开了8次,规模由原来的专题讨论会发展到国际学术大会(见表1),研究重点也逐渐从发现方法转向系统应用,注重多种发现策略和技术的集成,以及多种学科之间的相互渗透。1999年,亚太地区在北京召开的第三届PAKDD会议收到158篇论文,空前热烈。IEEEKnowledge and Data Engineering会刊率先在1993年出版了KDD技术专刊。并行计算、计算机网络和信息工程等其他领域的国际学会、学刊也把数据挖掘和知识发现列为专题和专刊讨论,甚至到了脍炙人口的程度。

3.2     出版物及工具

此外,在Internet上还有不少KDD电子出版物,其中以半月刊Knowledge Discovery Nuggets最为权威(http://www.kdnuggets.com/subscribe.html)。在网上还有许多自由论坛,如DM Email Club等。至于DMKD书籍,可以在任意一家计算机书店找到十多本。目前,世界上比较有影响的典型数据挖掘系统有:SAS公司的Enterprise Miner、IBM公司的Intelligent Miner、SGI公司的SetMiner、SPSS公司的Clementine、Sybase公司的Warehouse Studio、RuleQuest Research公司的See5、还有CoverStory、EXPLORA、Knowledge Discovery Workbench、DBMiner、Quest等。读者可以访问http://www.datamininglab.com.网站,该网站提供了许多数据挖掘系统和工具的性能测试报告。

3.3     国内现状

与国外相比,国内对DMKD的研究稍晚,没有形成整体力量。1993年国家自然科学基金首次支持我们对该领域的研究项目。目前,国内的许多科研单位和高等院校竞相开展知识发现的基础理论及其应用研究,这些单位包括清华大学、中科院计算技术研究所、空军第三研究所、海军装备论证中心等。其中,北京系统工程研究所对模糊方法在知识发现中的应用进行了较深入的研究,北京大学也在开展对数据立方体代数的研究,华中理工大学、复旦大学、浙江大学、中国科技大学、中科院数学研究所、吉林大学等单位开展了对关联规则开采算法的优化和改造;南京大学、四川联合大学和上海交通大学等单位探讨、研究了非结构化数据的知识发现以及Web数据挖掘。

3.4     业界观点

最近,Gartner Group的一次高级技术调查将数据挖掘和人工智能列为未来三到五年内将对工业产生深远影响的五大关键技术之首,并且还将并行处理体系和数据挖掘列为未来五年内投资焦点的十大新兴技术前两位。根据最近GartnerHPC研究表明,随着数据捕获、传输和存储技术的快速发展,大型系统用户将更多地需要采用新技术来挖掘市场以外的价值,采用更为广阔的并行处理系统来创建新的商业增长点。

4 数据挖掘研究内容和本质

----随着DMKD研究逐步走向深入,数据挖掘和知识发现的研究已经形成了三根强大的技术支柱:数据库、人工智能和数理统计。因此,KDD大会程序委员会曾经由这三个学科的权威人物同时来任主席。目前DMKD的主要研究内容包括基础理论、发现算法、数据仓库、可视化技术、定性定量互换模型、知识表示方法、发现知识的维护和再利用、半结构化和非结构化数据中的知识发现以及网上数据挖掘等。

----数据挖掘所发现的知识最常见的有以下四类:

4.1   广义知识(Generalization)

----广义知识指类别特征的概括性描述知识。根据数据的微观特性发现其表征的、带有普遍性的、较高层次概念的、中观和宏观的知识,反映同类事物共同性质,是对数据的概括、精炼和抽象。

----广义知识的发现方法和实现技术有很多,如数据立方体、面向属性的归约等。数据立方体还有其他一些别名,如“多维数据库”、“实现视图”、“OLAP"等。该方法的基本思想是实现某些常用的代价较高的聚集函数的计算,诸如计数、求和、平均、最大值等,并将这些实现视图储存在多维数据库中。既然很多聚集函数需经常重复计算,那么在多维数据立方体中存放预先计算好的结果将能保证快速响应,并可灵活地提供不同角度和不同抽象层次上的数据视图。另一种广义知识发现方法是加拿大SimonFraser大学提出的面向属性的归约方法。这种方法以类SQL语言表示数据挖掘查询,收集数据库中的相关数据集,然后在相关数据集上应用一系列数据推广技术进行数据推广,包括属性删除、概念树提升、属性阈值控制、计数及其他聚集函数传播等。

4.2 关联知识(Association)

----它反映一个事件和其他事件之间依赖或关联的知识。如果两项或多项属性之间存在关联,那么其中一项的属性值就可以依据其他属性值进行预测。最为著名的关联规则发现方法是R.Agrawal提出的Apriori算法。关联规则的发现可分为两步。第一步是迭代识别所有的频繁项目集,要求频繁项目集的支持率不低于用户设定的最低值;第二步是从频繁项目集中构造可信度不低于用户设定的最低值的规则。识别或发现所有频繁项目集是关联规则发现算法的核心,也是计算量最大的部分。

4.3 分类知识(Classification&Clustering)

----它反映同类事物共同性质的特征型知识和不同事物之间的差异型特征知识。最为典型的分类方法是基于决策树的分类方法。它是从实例集中构造决策树,是一种有指导的学习方法。该方法先根据训练子集(又称为窗口)形成决策树。如果该树不能对所有对象给出正确的分类,那么选择一些例外加入到窗口中,重复该过程一直到形成正确的决策集。最终结果是一棵树,其叶结点是类名,中间结点是带有分枝的属性,该分枝对应该属性的某一可能值。最为典型的决策树学习系统是ID3,它采用自顶向下不回溯策略,能保证找到一个简单的树。算法C4.5和C5.0都是ID3的扩展,它们将分类领域从类别属性扩展到数值型属性。

----数据分类还有统计、粗糙集(RoughSet)等方法。线性回归和线性辨别分析是典型的统计模型。为降低决策树生成代价,人们还提出了一种区间分类器。最近也有人研究使用神经网络方法在数据库中进行分类和规则提取。

4.4预测型知识(Prediction)

----它根据时间序列型数据,由历史的和当前的数据去推测未来的数据,也可以认为是以时间为关键属性的关联知识。

----目前,时间序列预测方法有经典的统计方法、神经网络和机器学习等。1968BoxJenkins提出了一套比较完善的时间序列建模理论和分析方法,这些经典的数学方法通过建立随机模型,如自回归模型、自回归滑动平均模型、求和自回归滑动平均模型和季节调整模型等,进行时间序列的预测。由于大量的时间序列是非平稳的,其特征参数和数据分布随着时间的推移而发生变化。因此,仅仅通过对某段历史数据的训练,建立单一的神经网络预测模型,还无法完成准确的预测任务。为此,人们提出了基于统计学和基于精确性的再训练方法,当发现现存预测模型不再适用于当前数据时,对模型重新训练,获得新的权重参数,建立新的模型。也有许多系统借助并行算法的计算优势进行时间序列预测。

4.5偏差型知识(Deviation)

----此外,还可以发现其他类型的知识,如偏差型知识(Deviation),它是对差异和极端特例的描述,揭示事物偏离常规的异常现象,如标准类外的特例,数据聚类外的离群值等。所有这些知识都可以在不同的概念层次上被发现,并随着概念层次的提升,从微观到中观、到宏观,以满足不同用户不同层次决策的需要。

5 数据挖掘的功能

数据挖掘通过预测未来趋势及行为,做出前摄的、基于知识的决策。数据挖掘的目标是从数据库中发现隐含的、有意义的知识,主要有以下五类功能。

5.1   自动预测趋势和行为

数据挖掘自动在大型数据库中寻找预测性信息,以往需要进行大量手工分析的问题如今可以迅速直接由数据本身得出结论。一个典型的例子是市场预测问题,数据挖掘使用过去有关促销的数据来寻找未来投资中回报最大的用户,其它可预测的问题包括预报破产以及认定对指定事件最可能作出反应的群体。

5.2   关联分析

数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。关联可分为简单关联、时序关联、因果关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度。

5.3   聚类

数据库中的记录可被化分为一系列有意义的子集,即聚类。聚类增强了人们对客观现实的认识,是概念描述和偏差分析的先决条件。聚类技术主要包括传统的模式识别方法和数学分类学。80年代初,Mchalski提出了概念聚类技术牞其要点是,在划分对象时不仅考虑对象之间的距离,还要求划分出的类具有某种内涵描述,从而避免了传统技术的某些片面性。

5.4概念描述

概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。概念描述分为特征性描述和区别性描述,前者描述某类对象的共同特征,后者描述不同类对象之间的区别。生成一个类的特征性描述只涉及该类对象中所有对象的共性。生成区别性描述的方法很多,如决策树方法、遗传算法等。

5.5偏差检测

数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。偏差包括很多潜在的知识,如分类中的反常实例、不满足规则的特例、观测结果与模型预测值的偏差、量值随时间的变化等。偏差检测的基本方法是,寻找观测结果与参照值之间有意义的差别。

6 数据挖掘常用技术

6.1 人工神经网络

仿照生理神经网络结构的非线形预测模型,通过学习进行模式识别。

6.2决策树

代表着决策集的树形结构。

6.3遗传算法

基于进化理论,并采用遗传结合、遗传变异、以及自然选择等设计方法的优化技术。

6.4近邻算法

将数据集合中每一个记录进行分类的方法。

6.5规则推导

从统计意义上对数据中的如果-那么规则进行寻找和推导。

 

采用上述技术的某些专门的分析工具已经发展了大约十年的历史,不过这些工具所面对的数据量通常较小。而现在这些技术已经被直接集成到许多大型的工业标准的数据仓库和联机分析系统中去了。

7 数据挖掘工具

7.1 基于神经网络的工具

  由于对非线性数据的快速建模能力,基于神经网络的数据挖掘工具现在越来越流行。其开采过程基本上是将数据聚类,然后分类计算权值。神经网络很适合非线性数据和含噪声数据,所以在市场数据库的分析和建模方面应用广泛。

7.2 基于规则和决策树的工具

  大部分数据挖掘工具采用规则发现或决策树分类技术来发现数据模式和规则,其核心是某种归纳算法。这类工具通常是对数据库的数据进行开采,生产规则和决策树,然后对新数据进行分析和预测。这类工具的主要优点是,规则和决策树都是可读的。

7.3 基于模糊逻辑的工具

  其发现方法是应用模糊逻辑进行数据查询、排序等。该工具使用模糊概念和“最近”搜索技术的数据查询工具,它可以让用户指定目标,然后对数据库进行搜索,找出接近目标的所有记录,并对结果进行评估。

7.4 综合多方法工具

不少数据挖掘工具采用了多种开采方法,这类工具一般规模较大,适于大型数据库牗包括并行数据库牘。这类工具开采能力很强,但价格昂贵,并要花很长时间进行学习。

8 数据挖掘的流程

8.1数据挖掘环境

数据挖掘是指一个完整的过程,该过程从大型数据库中挖掘先前未知的,有效的,可实用的信息,并使用这些信息做出决策或丰富知识.

数据挖掘环境可示意如下图:

 

数据库

   

可视化工具

数据挖掘工具

 

 

 


                    数据挖掘环境框图

8.2数据挖掘过程图

下图描述了数据挖掘的基本过程和主要步骤

 

 

 

逻辑数据库

被选择的数据

预处理后的数据

被转换的数据据据

被抽取的信息

被同化的知识

选择   善而从   择择择

预处理

转换

挖掘

分析和同化

 

 

 

 

 

 

 

 

 


                        数据挖掘过程的步骤

 

8.3 数据挖掘过程工作量

在数据挖掘中被研究的业务对象是整个过程的基础,它驱动了整个数据挖掘过程,也是检验最后结果和指引分析人员完成数据挖掘的依据和顾问.图2各步骤是按一定顺序完成的,当然整个过程中还会存在步骤间的反馈.数据挖掘的过程并不是自动的,绝大多数的工作需要人工完成.图3给出了各步骤在整个过程中的工作量之比.可以看到,60%的时间用在数据准备上,这说明了数据挖掘对数据的严格要求,而后挖掘工作仅占总工作量的10%.

 

确定业务对象数据准备数据处理结果分析和知识的同化

 

3数据挖掘过程工作量比例

 

8.4数据挖掘过程简介

过程中各步骤的大体内容如下:

1.   确定业务对象

清晰地定义出业务问题,认清数据挖掘的目的是数据挖掘的重要一步.挖掘的最后结构是不可预测的,但要探索的问题应是有预见的,为了数据挖掘而数据挖掘则带有盲目性,是不会成功的.

2.   数据准备

1) 数据的选择

搜索所有与业务对象有关的内部和外部数据信息,并从中选择出适用于数据挖掘应用的数据.

2) 数据的预处理

研究数据的质量,为进一步的分析作准备.并确定将要进行的挖掘操作的类型.

3) 数据的转换

将数据转换成一个分析模型.这个分析模型是针对挖掘算法建立的.建立一个真正适合挖掘算法的分析模型是数据挖掘成功的关键.

3.   数据挖掘

对所得到的经过转换的数据进行挖掘.除了完善从选择合适的挖掘算法外,其余一切工作都能自动地完成.

4.   结果分析

解释并评估结果.其使用的分析方法一般应作数据挖掘操作而定,通常会用到可视化技术.

5.   知识的同化

将分析所得到的知识集成到业务信息系统的组织结构中去.

8.5数据挖掘需要的人员

数据挖掘过程的分步实现,不同的步会需要是有不同专长的人员,他们大体可以分为三类.

业务分析人员:要求精通业务,能够解释业务对象,并根据各业务对象确定出用于数据定义和挖掘算法的业务需求.

数据分析人员:精通数据分析技术,并对统计学有较熟练的掌握,有能力把业务需求转化为数据挖掘的各步操作,并为每步操作选择合适的技术.

数据管理人员:精通数据管理技术,并从数据库或数据仓库中收集数据.

 

从上可见,数据挖掘是一个多种专家合作的过程,也是一个在资金上和技术上高投入的过程.这一过程要反复进行牞在反复过程中,不断地趋近事物的本质,不断地优先问题的解决方案。数据重组和细分添加和拆分记录选取数据样本可视化数据探索聚类分析神经网络、决策树数理统计、时间序列结论综合解释评价数据知识数据取样数据探索数据调整模型化评价。

9 数据挖掘未来研究方向

----当前,DMKD研究方兴未艾,其研究与开发的总体水平相当于数据库技术在70年代所处的地位,迫切需要类似于关系模式、DBMS系统和SQL查询语言等理论和方法的指导,才能使DMKD的应用得以普遍推广。预计在本世纪,DMKD的研究还会形成更大的高潮,研究焦点可能会集中到以下几个方面:

  • 发现语言的形式化描述,即研究专门用于知识发现的数据挖掘语言,也许会像SQL语言一样走向形式化和标准化;
  • 寻求数据挖掘过程中的可视化方法,使知识发现的过程能够被用户理解,也便于在知识发现的过程中进行人机交互;
  • 研究在网络环境下的数据挖掘技术(WebMining),特别是在因特网上建立DMKD服务器,并且与数据库服务器配合,实现WebMining
  • 加强对各种非结构化数据的开采(DataMiningforAudioVideo),如对文本数据、图形数据、视频图像数据、声音数据乃至综合多媒体数据的开采;

处理的数据将会涉及到更多的数据类型,这些数据类型或者比较复杂,或者是结构比较独特。为了处理这些复杂的数据,就需要一些新的和更好的分析和建立模型的方法,同时还会涉及到为处理这些复杂或独特数据所做的费时和复杂数据准备的一些工具和软件。

  • 交互式发现;
  • 知识的维护更新。

但是,不管怎样,需求牵引与市场推动是永恒的,DMKD将首先满足信息时代用户的急需,大量的基于DMKD的决策支持软件产品将会问世。只有从数据中有效地提取信息,从信息中及时地发现知识,才能为人类的思维决策和战略发展服务。也只有到那时,数据才能够真正成为与物质、能源相媲美的资源,信息时代才会真正到来。

10 数据挖掘热点

就目前来看,将来的几个热点包括网站的数据挖掘(Web site data mining)、生物信息或基因(Bioinformatics/genomics)的数据挖掘及其文本的数据挖掘(Textual mining)。下面就这几个方面加以简单介绍。

10.1 网站的数据挖掘(Web site data mining)

需求

随着Web技术的发展,各类电子商务网站风起云涌,建立起一个电子商务网站并不困难,困难的是如何让您的电子商务网站有效益。要想有效益就必须吸引客户,增加能带来效益的客户忠诚度。电子商务业务的竞争比传统的业务竞争更加激烈,原因有很多方面,其中一个因素是客户从一个电子商务网站转换到竞争对手那边,只需点击几下鼠标即可。网站的内容和层次、用词、标题、奖励方案、服务等任何一个地方都有可能成为吸引客户、同时也可能成为失去客户的因素。而同时电子商务网站每天都可能有上百万次的在线交易,生成大量的记录文件(Logfiles)和登记表,如何对这些数据进行分析和挖掘,充分了解客户的喜好、购买模式,甚至是客户一时的冲动,设计出满足于不同客户群体需要的个性化网站,进而增加其竞争力,几乎变得势在必行。若想在竞争中生存进而获胜,就要比您的竞争对手更了解客户。

电子商务网站数据挖掘

在对网站进行数据挖掘时,所需要的数据主要来自于两个方面:一方面是客户的背景信息,此部分信息主要来自于客户的登记表;而另外一部分数据主要来自浏览者的点击流(Click-stream),此部分数据主要用于考察客户的行为表现。但有的时候,客户对自己的背景信息十分珍重,不肯把这部分信息填写在登记表上,这就会给数据分析和挖掘带来不便。在这种情况之下,就不得不从浏览者的表现数据中来推测客户的背景信息,进而再加以利用。

就分析和建立模型的技术和算法而言,网站的数据挖掘和原来的数据挖掘差别并不是特别大,很多方法和分析思想都可以运用。所不同的是网站的数据格式有很大一部分来自于点击流,和传统的数据库格式有区别。因而对电子商务网站进行数据挖掘所做的主要工作是数据准备。目前,有很多厂商正在致力于开发专门用于网站挖掘的软件。

10.2 生物信息或基因的数据挖掘

生物信息或基因数据挖掘则完全属于另外一个领域,在商业上很难讲有多大的价值,但对于人类却受益非浅。例如,基因的组合千变万化,得某种病的人的基因和正常人的基因到底差别多大?能否找出其中不同的地方,进而对其不同之处加以改变,使之成为正常基因?这都需要数据挖掘技术的支持。

对于生物信息或基因的数据挖掘和通常的数据挖掘相比,无论在数据的复杂程度、数据量还有分析和建立模型的算法而言,都要复杂得多。从分析算法上讲,更需要一些新的和好的算法。现在很多厂商正在致力于这方面的研究。但就技术和软件而言,还远没有达到成熟的地步。

10.3 文本的数据挖掘(Textualmining

人们很关心的另外一个话题是文本数据挖掘。举个例子,在客户服务中心,把同客户的谈话转化为文本数据,再对这些数据进行挖掘,进而了解客户对服务的满意程度和客户的需求以及客户之间的相互关系等信息。从这个例子可以看出,无论是在数据结构还是在分析处理方法方面,文本数据挖掘和前面谈到的数据挖掘相差很大。文本数据挖掘并不是一件容易的事情,尤其是在分析方法方面,还有很多需要研究的专题。目前市场上有一些类似的软件,但大部分方法只是把文本移来移去,或简单地计算一下某些词汇的出现频率,并没有真正的分析功能。

随着计算机计算能力的发展和业务复杂性的提高,数据的类型会越来越多、越来越复杂,数据挖掘将发挥出越来越大的作用。

11 Web数据挖掘与XML

11.1 Web数据挖掘的难点

Web上有海量的数据信息,怎样对这些数据进行复杂的应用成了现今数据库技术的研究热点。数据挖掘就是从大量的数据中发现隐含的规律性的内容,解决数据的应用质量问题。充分利用有用的数据,废弃虚伪无用的数据,是数据挖掘技术的最重要的应用。相对于Web的数据而言,传统的数据库中的数据结构性很强,即其中的数据为完全结构化的数据,而Web上的数据最大特点就是半结构化。所谓半结构化是相对于完全结构化的传统数据库的数据而言。显然,面向Web的数据挖掘比面向单个数据仓库的数据挖掘要复杂得多。

1.异构数据库环境

  从数据库研究的角度出发,Web网站上的信息也可以看作一个数据库,一个更大、更复杂的数据库。Web上的每一个站点就是一个数据源,每个数据源都是异构的,因而每一站点之间的信息和组织都不一样,这就构成了一个巨大的异构数据库环境。如果想要利用这些数据进行数据挖掘,首先,必须要研究站点之间异构数据的集成问题,只有将这些站点的数据都集成起来,提供给用户一个统一的视图,才有可能从巨大的数据资源中获取所需的东西。其次,还要解决Web上的数据查询问题,因为如果所需的数据不能很有效地得到,对这些数据进行分析、集成、处理就无从谈起。

2.半结构化的数据结构

  Web上的数据与传统的数据库中的数据不同,传统的数据库都有一定的数据模型,可以根据模型来具体描述特定的数据。而Web上的数据非常复杂,没有特定的模型描述,每一站点的数据都各自独立设计,并且数据本身具有自述性和动态可变性。因而,Web上的数据具有一定的结构性,但因自述层次的存在,从而是一种非完全结构化的数据,这也被称之为半结构化数据。半结构化是Web上数据的最大特点。

3.解决半结构化的数据源问题

  Web数据挖掘技术首要解决半结构化数据源模型和半结构化数据模型的查询与集成问题。解决Web上的异构数据的集成与查询问题,就必须要有一个模型来清晰地描述Web上的数据。针对Web上的数据半结构化的特点,寻找一个半结构化的数据模型是解决问题的关键所在。除了要定义一个半结构化数据模型外,还需要一种半结构化模型抽取技术,即自动地从现有数据中抽取半结构化模型的技术。面向Web的数据挖掘必须以半结构化模型和半结构化数据模型抽取技术为前提。

11.2 XML与Web数据挖掘技术

  以XML为基础的新一代WWW环境是直接面对Web数据的,不仅可以很好地兼容原有的Web应用,而且可以更好地实现Web中的信息共享与交换。XML可看作一种半结构化的数据模型,可以很容易地将XML的文档描述与关系数据库中的属性一对应起来,实施精确地查询与模型抽取。

1.XML的产生与发展

  XML(extensible Markup Language)是由万维网协会(W3C)设计,特别为Web应用服务的SGML(Standard General Markup Language)的一个重要分支。总的来说,XML是一种中介标示语言(Meta-markup Language),可提供描述结构化资料的格式,详细来说,XML是一种类似于HTML,被设计用来描述数据的语言。XML提供了一种独立的运行程序的方法来共享数据,它是用来自动描述信息的一种新的标准语言,它能使计算机通信把Internet的功能由信息传递扩大到人类其他多种多样的活动中去。XML由若干规则组成,这些规则可用于创建标记语言,并能用一种被称作分析程序的简明程序处理所有新创建的标记语言,正如HTML为第一个计算机用户阅读Internet文档提供一种显示方式一样,XML也创建了一种任何人都能读出和写入的世界语。XML解决了HTML不能解决的两个Web问题,即Internet发展速度快而接入速度慢的问题,以及可利用的信息多,但难以找到自己需要的那部分信息的问题。XML能增加结构和语义信息,可使计算机和服务器即时处理多种形式的信息。因此,运用XML的扩展功能不仅能从Web服务器下载大量的信息,还能大大减少网络业务量。

  XML中的标志(TAG)是没有预先定义的,使用者必须要自定义需要的标志,XML是能够进行自解释(Self Describing)的语言。XML使用DTD(Document Type Definition文档类型定义)来显示这些数据,XSL(eXtensible Style Sheet Language)是一种来描述这些文档如何显示的机制,它是XML的样式表描述语言。XSL的历史比HTML用的CSS(层叠式样式表Cascading Style Sheets)还要悠久,XSL包括两部分:一个用来转换XML文档的方法;一个用来格式化XML文档的方法。XLL(eXtensible Link Language)是XML连接语言,它提供XML中的连接,与HTML中的类似,但功能更强大。使用XLL,可以多方向连接,且连接可以存在于对象层级,而不仅仅是页面层级。由于XML能够标记更多的信息,所以它就能使用户很轻松地找到他们需要的信息。利用XML,Web设计人员不仅能创建文字和图形,而且还能构建文档类型定义的多层次、相互依存的系统、数据树、元数据、超链接结构和样式表。

2.XML的主要特点

  正是XML的特点决定了其卓越的性能表现。XML作为一种标记语言,有许多特点:

  (1)简单。XML经过精心设计,整个规范简单明了,它由若干规则组成,这些规则可用于创建标记语言,并能用一种常常称作分析程序的简明程序处理所有新创建的标记语言。XML能创建一种任何人都能读出和写入的世界语,这种创建世界语的功能叫做统一性功能。如XML创建的标记总是成对出现,以及依靠称作统一代码的新的编码标准。

  (2)开放。XML是SGML在市场上有许多成熟的软件可用来帮助编写、管理等,开放式标准XML的基础是经过验证的标准技术,并针对网络做最佳化。众多业界顶尖公司,与W3C的工作群组并肩合作,协助确保交互作业性,支持各式系统和浏览器上的开发人员、作者和使用者,以及改进XML标准。XML解释器可以使用编程的方法来载入一个XML的文档,当这个文档被载入以后,用户就可以通过XML文件对象模型来获取和操纵整个文档的信息,加快了网络运行速度。

  (3)高效且可扩充。支持复用文档片断,使用者可以发明和使用自己的标签,也可与他人共享,可延伸性大,在XML中,可以定义无限量的一组标注。XML提供了一个标示结构化资料的架构。一个XML组件可以宣告与其相关的资料为零售价、营业税、书名、数量或其它任何数据元素。随着世界范围内的许多机构逐渐采用XML标准,将会有更多的相关功能出现:一旦锁定资料,便可以使用任何方式透过电缆线传递,并在浏览器中呈现,或者转交到其他应用程序做进一步的处理。XML提供了一个独立的运用程序的方法来共享数据,使用DTD,不同的组中的人就能够使用共同的DTD来交换数据。你的应用程序可以使用这个标准的DTD来验证你接受到的数据是否有效,你也可以使用一个DTD来验证你自己的数据。

  (4)国际化。标准国际化,且支持世界上大多数文字。这源于依靠它的统一代码的新的编码标准,这种编码标准支持世界上所有以主要语言编写的混合文本。在HTML中,就大多数字处理而言,一个文档一般是用一种特殊语言写成的,不管是英语,还是日语或阿拉伯语,如果用户的软件不能阅读特殊语言的字符,那么他就不能使用该文档。但是能阅读XML语言的软件就能顺利处理这些不同语言字符的任意组合。因此,XML不仅能在不同的计算机系统之间交换信息,而且能跨国界和超越不同文化疆界交换信息。

3.XML在Web数据挖掘中的应用

  XML已经成为正式的规范,开发人员能够用XML的格式标记和交换数据。XML在三层架构上为数据处理提供了很好的方法。使用可升级的三层模型,XML可以从存在的数据中产生出来,使用XML结构化的数据可以从商业规范和表现形式中分离出来。

  促进XML应用的是那些用标准的HTML无法完成的Web应用。这些应用从大的方面讲可以被分成以下四类:需要Web客户端在两个或更多异质数据库之间进行通信的应用;试图将大部分处理负载从Web服务器转到Web客户端的应用;需要Web客户端将同样的数据以不同的浏览形式提供给不同的用户的应用;需要智能Web代理根据个人用户的需要裁减信息内容的应用。显而易见,这些应用和Web的数据挖掘技术有着重要的联系,基于Web的数据挖掘必须依靠它们来实现。

  XML给基于Web的应用软件赋予了强大的功能和灵活性,因此它给开发者和用户带来了许多好处。比如进行更有意义的搜索,并且Web数据可被XML唯一地标识。没有XML,搜索软件必须了解每个数据库是如何构建的,但这实际上是不可能的,因为每个数据库描述数据的格式几乎都是不同的。由于不同来源数据的集成问题的存在,现在搜索多样的不兼容的数据库实际上是不可能的。XML能够使不同来源的结构化的数据很容易地结合在一起。软件代理商可以在中间层的服务器上对从后端数据库和其它应用处来的数据进行集成。然后,数据就能被发送到客户或其他服务器做进一步的集合、处理和分发。XML的扩展性和灵活性允许它描述不同种类应用软件中的数据,从描述搜集的Web页到数据记录,从而通过多种应用得到数据。同时,由于基于XML的数据是自我描述的,数据不需要有内部描述就能被交换和处理。利用XML,用户可以方便地进行本地计算和处理,XML格式的数据发送给客户后,客户可以用应用软件解析数据并对数据进行编辑和处理。使用者可以用不同的方法处理数据,而不仅仅是显示它。XML文档对象模式(DOM)允许用脚本或其他编程语言处理数据,数据计算不需要回到服务器就能进行。XML可以被利用来分离使用者观看数据的界面,使用简单灵活开放的格式,可以给Web创建功能强大的应用软件,而原来这些软件只能建立在高端数据库上。另外,数据发到桌面后,能够用多种方式显示。

  XML还可以通过以简单开放扩展的方式描述结构化的数据,XML补充了HTML,被广泛地用来描述使用者界面。HTML描述数据的外观,而XML描述数据本身。由于数据显示与内容分开,XML定义的数据允许指定不同的显示方式,使数据更合理地表现出来。本地的数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。CSS和XSL为数据的显示提供了公布的机制。通过XML,数据可以粒状地更新。每当一部分数据变化后,不需要重发整个结构化的数据。变化的元素必须从服务器发送给客户,变化的数据不需要刷新整个使用者的界面就能够显示出来。但在目前,只要一条数据变化了,整一页都必须重建。这严重限制了服务器的升级性能。XML也允许加进其他数据,比如预测的温度。加入的信息能够进入存在的页面,不需要浏览器重新发一个新的页面。XML应用于客户需要与不同的数据源进行交互时,数据可能来自不同的数据库,它们都有各自不同的复杂格式。但客户与这些数据库间只通过一种标准语言进行交互,那就是XML。由于XML的自定义性及可扩展性,它足以表达各种类型的数据。客户收到数据后可以进行处理,也可以在不同数据库间进行传递。总之,在这类应用中,XML解决了数据的统一接口问题。但是,与其他的数据传递标准不同的是,XML并没有定义数据文件中数据出现的具体规范,而是在数据中附加TAG来表达数据的逻辑结构和含义。这使XML成为一种程序能自动理解的规范。

  XML应用于将大量运算负荷分布在客户端,即客户可根据自己的需求选择和制作不同的应用程序以处理数据,而服务器只须发出同一个XML文件。如按传统的“Client/Server”工作方式,客户向服务器发出不同的请求,服务器分别予以响应,这不仅加重服务器本身的负荷,而且网络管理者还须事先调查各种不同的用户需求以做出相应不同的程序,但假如用户的需求繁杂而多变,则仍然将所有业务逻辑集中在服务器端是不合适的,因为服务器端的编程人员可能来不及满足众多的应用需求,也来不及跟上需求的变化,双方都很被动。应用XML则将处理数据的主动权交给了客户,服务器所作的只是尽可能完善、准确地将数据封装进XML文件中,正是各取所需、各司其职。XML的自解释性使客户端在收到数据的同时也理解数据的逻辑结构与含义,从而使广泛、通用的分布式计算成为可能。

  XML还被应用于网络代理,以便对所取得的信息进行编辑、增减以适应个人用户的需要。有些客户取得数据并不是为了直接使用而是为了根据需要组织自己的数据库。比方说,教育部门要建立一个庞大的题库,考试时将题库中的题目取出若干组成试卷,再将试卷封装进XML文件,接下来在各个学校让其通过一个过滤器,滤掉所有的答案,再发送到各个考生面前,未经过滤的内容则可直接送到老师手中,当然考试过后还可以再传送一份答案汇编。此外,XML文件中还可以包含进诸如难度系数、往年错误率等其他相关信息,这样只需几个小程序,同一个XML文件便可变成多个文件传送到不同的用户手中。

  面向Web的数据挖掘是一项复杂的技术,由于Web数据挖掘比单个数据仓库的挖掘要复杂的多,因而面向Web的数据挖掘成了一个难以解决的问题。而XML的出现为解决Web数据挖掘的难题带来了机会。由于XML能够使不同来源的结构化的数据很容易地结合在一起,因而使搜索多样的不兼容的数据库能够成为可能,从而为解决Web数据挖掘难题带来了希望。XML的扩展性和灵活性允许XML描述不同种类应用软件中的数据,从而能描述搜集的Web页中的数据记录。同时,由于基于XML的数据是自我描述的,数据不需要有内部描述就能被交换和处理。作为表示结构化数据的一个工业标准,XML为组织、软件开发者、Web站点和终端使用者提供了许多有利条件。相信在以后,随着XML作为在Web上交换数据的一种标准方式的出现,面向Web的数据挖掘将会变得非常轻松。

12 数据挖掘应用

12. 1 数据挖掘解决的典型商业问题

需要强调的是,数据挖掘技术从一开始就是面向应用的。目前,在很多领域,数据挖掘(data mining)都是一个很时髦的词,尤其是在如银行、电信、保险、交通、零售(如超级市场)等商业领域。数据挖掘所能解决的典型商业问题包括:数据库营销(Database Marketing)、客户群体划分(Customer Segmentation & Classification)、背景分析(Profile Analysis)、交叉销售(Cross-selling)等市场分析行为,以及客户流失性分析(Churn Analysis)、客户信用记分(Credit Scoring)、欺诈发现(Fraud Detection)等等。

12. 2 数据挖掘在市场营销的应用

数据挖掘技术在企业市场营销中得到了比较普遍的应用,它是以市场营销学的市场细分原理为基础,其基本假定是“消费者过去的行为是其今后消费倾向的最好说明”。
  通过收集、加工和处理涉及消费者消费行为的大量信息,确定特定消费群体或个体的兴趣、消费习惯、消费倾向和消费需求,进而推断出相应消费群体或个体下一步的消费行为,然后以此为基础,对所识别出来的消费群体进行特定内容的定向营销,这与传统的不区分消费者对象特征的大规模营销手段相比,大大节省了营销成本,提高了营销效果,从而为企业带来更多的利润。

商业消费信息来自市场中的各种渠道。例如,每当我们用信用卡消费时,商业企业就可以在信用卡结算过程收集商业消费信息,记录下我们进行消费的时间、地点、感兴趣的商品或服务、愿意接收的价格水平和支付能力等数据;当我们在申办信用卡、办理汽车驾驶执照、填写商品保修单等其他需要填写表格的场合时,我们的个人信息就存入了相应的业务数据库;企业除了自行收集相关业务信息之外,甚至可以从其他公司或机构购买此类信息为自己所用。
  这些来自各种渠道的数据信息被组合,应用超级计算机、并行处理、神经元网络、模型化算法和其他信息处理技术手段进行处理,从中得到商家用于向特定消费群体或个体进行定向营销的决策信息。这种数据信息是如何应用的呢?举一个简单的例子,当银行通过对业务数据进行挖掘后,发现一个银行帐户持有者突然要求申请双人联合帐户时,并且确认该消费者是第一次申请联合帐户,银行会推断该用户可能要结婚了,它就会向该用户定向推销用于购买房屋、支付子女学费等长期投资业务,银行甚至可能将该信息卖给专营婚庆商品和服务的公司。数据挖掘构筑竞争优势。
  在市场经济比较发达的国家和地区,许多公司都开始在原有信息系统的基础上通过数据挖掘对业务信息进行深加工,以构筑自己的竞争优势,扩大自己的营业额。美国运通公司(American Express)有一个用于记录信用卡业务的数据库,数据量达到54亿字符,并仍在随着业务进展不断更新。运通公司通过对这些数据进行挖掘,制定了“关联结算(Relation ship Billing)优惠”的促销策略,即如果一个顾客在一个商店用运通卡购买一套时装,那么在同一个商店再买一双鞋,就可以得到比较大的折扣,这样既可以增加商店的销售量,也可以增加运通卡在该商店的使用率。再如,居住在伦敦的持卡消费者如果最近刚刚乘英国航空公司的航班去过巴黎,那么他可能会得到一个周末前往纽约的机票打折优惠卡。

基于数据挖掘的营销,常常可以向消费者发出与其以前的消费行为相关的推销材料。卡夫(Kraft)食品公司建立了一个拥有3000万客户资料的数据库,数据库是通过收集对公司发出的优惠券等其他促销手段作出积极反应的客户和销售记录而建立起来的,卡夫公司通过数据挖掘了解特定客户的兴趣和口味,并以此为基础向他们发送特定产品的优惠券,并为他们推荐符合客户口味和健康状况的卡夫产品食谱。美国的读者文摘(Reader's Digest)出版公司运行着一个积累了40年的业务数据库,其中容纳有遍布全球的一亿多个订户的资料,数据库每天24小时连续运行,保证数据不断得到实时的更新,正是基于对客户资料数据库进行数据挖掘的优势,使读者文摘出版公司能够从通俗杂志扩展到专业杂志、书刊和声像制品的出版和发行业务,极大地扩展了自己的业务。

基于数据挖掘的营销对我国当前的市场竞争中也很具有启发意义,我们经常可以看到繁华商业街上一些厂商对来往行人不分对象地散发大量商品宣传广告,其结果是不需要的人随手丢弃资料,而需要的人并不一定能够得到。如果搞家电维修服务的公司向在商店中刚刚购买家电的消费者邮寄维修服务广告,卖特效药品的厂商向医院特定门诊就医的病人邮寄广告,肯定会比漫无目的的营销效果要好得多。

12. 3 成功案例

1 电话收费和管理办法

加拿大BC省电话公司要求加拿大Simon Fraser大学KDD研究组根据其拥有的十多年的客户数据,总结、分析并提出新的电话收费和管理办法,制定既有利于公司又有利于客户的优惠政策。

2 竞技运动中的数据挖掘

美国著名的国家篮球队NBA的教练,利用IBM公司提供的数据挖掘工具临场决定替换队员。想象你是NBA的教练,你靠什么带领你的球队取得胜利呢?当然,最容易想到的是全场紧逼、交叉扯动和快速抢断等具体的战术和技术。但是今天,NBA的教练又有了他们的新式武器:数据挖掘。大约20个NBA球队使用了IBM公司开发的数据挖掘应用软件Advanced Scout系统来优化他们的战术组合。例如Scout就因为研究了魔术队队员不同的布阵安排,在与迈阿密热队的比赛中找到了获胜的机会。

----系统分析显示魔术队先发阵容中的两个后卫安佛尼.哈德卫(Anfernee Hardaway)和伯兰.绍(Brian Shaw)在前两场中被评为-17分,这意味着他俩在场上,本队输掉的分数比得到的分数多17分。然而,当哈德卫与替补后卫达利尔.阿姆斯创(Darrell Armstrong)组合时,魔术队得分为正14分。

----在下一场中,魔术队增加了阿姆斯创的上场时间。此着果然见效:阿姆斯创得了21分,哈德卫得了42分,魔术队以88比79获胜。魔术队在第四场让阿姆斯创进入先发阵容,再一次打败了热队。在第五场比赛中,这个靠数据挖掘支持的阵容没能拖住热队,但Advanced Scout毕竟帮助了魔术队赢得了打满5场,直到最后才决出胜负的机会。

----Advanced Scout是一个数据分析工具,教练可以用便携式电脑在家里或在路上挖掘存储在NBA中心的服务器上的数据。每一场比赛的事件都被统计分类,按得分、助攻、失误等等。时间标记让教练非常容易地通过搜索NBA比赛的录像来理解统计发现的含义。例如:教练通过Advanced Scout发现本队的球员在与对方一个球星对抗时有犯规纪录,他可以在对方球星与这个队员“头碰头”的瞬间分解双方接触的动作,进而设计合理的防守策略。

----Advanced Scout的开发人,因德帕尔.布罕德瑞,开发该应用时他正在IBM的ThomasJ.Watson研究中心当研究员,他演示了一个技术新手应该如何使用数据挖掘。布罕德瑞说:“教练们可以完全没有统计学的培训,但他们可以利用数据挖掘制定策略”。与此同时,另一个正式的体育联盟,国家曲棍球联盟,正在开发自己的数据挖掘应用NHL-ICE,联盟与IBM建立了一个技术型的合资公司,去年11月推出一个电子实时的比赛计分和统计系统。在原理上是一个与Advanced Scout相似的数据挖掘应用,可以让教练、广播员、新闻记者及球迷挖掘NHL的统计。当他们访问NHL的Web站点时,球迷能够使用该系统循环看联盟的比赛,同时广播员和新闻记者可以挖掘统计数据,找花边新闻为他们的实况评述添油加醋。

----当然,所有系统都有其局限性。所以不要期望这样的数据挖掘可以帮助一支球队找到赢得足球世界杯的策略。

3 数据挖掘技术在商业银行中的应用

  金融事务需要搜集和处理大量的数据,由于银行在金融领域的地位、工作性质、业务特点以及激烈的市场竞争决定了它对信息化、电子化比其它领域有更迫切的要求。利用数据挖掘技术可以帮助银行产品开发部门描述客户以往的需求趋势,并预测未来。美国商业银行是发达国家商业银行的典范,许多地方值得我国学习和借鉴。

数据挖掘技术在美国银行金融领域应用广泛。金融事务需要搜集和处理大量数据,对这些数据进行分析,发现其数据模式及特征,然后可能发现某个客户、消费群体或组织的金融和商业兴趣,并可观察金融市场的变化趋势。商业银行业务的利润和风险是共存的。为了保证最大的利润和最小的风险,必须对帐户进行科学的分析和归类,并进行信用评估。Mellon银行使用Intelligent Agent数据挖掘软件提高销售和定价金融产品的精确度,如家庭普通贷款。零售信贷客户主要有两类,一类很少使用信贷限额(低循环者),另一类能够保持较高的未清余额(高循环者)。每一类都代表着销售的挑战。低循环者代表缺省和支出注销费用的危险性较低,但会带来极少的净收入或负收入,因为他们的服务费用几乎与高循环者的相同。银行常常为他们提供项目,鼓励他们更多地使用信贷限额或找到交叉销售高利润产品的机会。高循环者由高和中等危险元件构成。高危险分段具有支付缺省和注销费用的潜力。对于中等危险分段,销售项目的重点是留住可获利的客户并争取能带来相同利润的新客户。但根据新观点,用户的行为会随时间而变化。分析客户整个生命周期的费用和收入就可以看出谁是最具创利潜能的。Mellon银行认为“根据市场的某一部分进行定制”能够发现最终用户并将市场定位于这些用户。但是,要这么做就必须了解关于最终用户特点的信息。数据挖掘工具为Mellon银行提供了获取此类信息的途径。Mellon银行销售部在先期数据挖掘项目上使用Intelligence Agent寻找信息,主要目的是确定现有Mellon用户购买特定附加产品:家庭普通信贷限额的倾向,利用该工具可生成用于检测的模型。据银行官员称:Intelligence Agent可帮助用户增强其商业智能,如交往、分类或回归分析,依赖这些能力,可对那些有较高倾向购买银行产品、服务产品和服务的客户进行有目的的推销。该官员认为,该软件可反馈用于分析和决策的高质量信息,然后将信息输入产品的算法。Intelligence Agent还有可定制能力。

  美国Firstar银行使用Marksman数据挖掘工具,根据客户的消费模式预测何时为客户提供何种产品。Firstar银行市场调查和数据库营销部经理发现:公共数据库中存储着关于每位消费者的大量信息,关键是要透彻分析消费者投入到新产品中的原因,在数据库中找到一种模式,从而能够为每种新产品找到最合适的消费者。Marksman能读取8001000个变量并且给它们赋值,根据消费者是否有家庭财产贷款、赊帐卡、存款证或其它储蓄、投资产品,将它们分成若干组,然后使用数据挖掘工具预测何时向每位消费者提供哪种产品。预测准客户的需要是美国商业银行的竞争优势。

4 因特网筛选

最近,还有不少DMKD产品用来筛选因特网上的新闻,保护用户不受无聊电子邮件和商业推销的干扰,很受欢迎。

13 实施数据挖掘项目考虑的问题

谈到数据挖掘应从以下三方面加以考虑,一是用数据挖掘解决什么样的商业问题,二是为进行数据挖掘所做的数据准备,三是数据挖掘的各种分析算法。

数据挖掘的分析算法主要来自于以下两个方面:统计分析和人工智能(机器学习、模式识别等)。数据挖掘研究人员和数据挖掘软件供应商,在这一方面所做的主要工作是优化现有的一些算法,以适应大数据量。另外需要强调的是,任何一种数据挖掘的算法,不管是统计分析方法、神经元网络、各种树分析方法,还是遗传算法,没有一种算法是万能的。不同的商业问题,需要用不同的方法去解决。即使对于同一个商业问题,可能有多种算法,这个时候,也需要评估对于这一特定问题和特定数据哪一种算法表现好。

做数据挖掘研究的人,往往把主要的精力用于改进现有算法和研究新算法上。人们都知道数据准备是必不可少的一步,但很少有人去真正花时间和精力去研究。其实数据挖掘最后成功与失败,是否有经济效益,数据准备起到了至关重要的作用。数据准备包含很多方面:一是从多种数据源去综合数据挖掘所需要的数据,保证数据的综合性、易用性、数据的质量和数据的时效性,这有可能要用到数据仓库的思想和技术;另一方面就是如何从现有数据中衍生出所需要的指标,这主要取决于数据挖掘者的分析经验和工具的方便性。

众所周知,SQL是广泛用于数据库查询的语言,有很多数据挖掘软件提供商利用SQL来为数据挖掘做数据准备,但就笔者多年来的分析经验和同其他专家探讨感觉到,SQL在很多时候有些力不从心,因为数据挖掘和分析的一些算法通常要求数据具有一定的格式和规范性。

还需要强调的一点是,人们通常把数据挖掘工具看得过份神秘,认为只要有了一个数据挖掘工具,就能自动挖掘出所需要的信息,就能更好地进行企业运作,这是认识上的一个误区。其实要想真正做好数据挖掘,数据挖掘工具只是其中的一个方面,同时还需要对企业业务的深入了解和数据分析经验。一个企业要想在未来的市场中具有竞争力,必须有一些数据挖掘方面的专家,专门从事数据分析和数据挖掘工作。再同其他部门协调,把挖掘出来的信息供管理者决策参考,最后把挖掘出的知识物化。在国内的企业中,还很少有决策人员认识到这一点。如果管理者没有这方面的意识,数据挖掘和数据分析就很难发挥应有的作用,很容易走向两个极端,一是认为数据挖掘没有用处,二是开始认为数据挖掘是万能的。如此得到的结果往往与初始期望相去太远。

14 实施数据挖掘项目考虑的问题

1. 超大规模数据库和高维数据问题;

2. 数据丢失问题;

3. 变化的数据和知识问题;

4. 模式的易懂性问题;

5. 非标准格式的数据、多媒体数据、面向对象数据处理问题;

6. 与其他系统的集成问题;

7. 网络与分布式环境下的KDD问题。

8. 个人隐私问题

当然数据挖掘也会带来一些社会问题,其中最敏感的要属个人隐私问题。当消费者感觉到他们的个人信息被非授权使用、滥用甚至出卖时,他们会感到他们的个人隐私受到了严重侵害。例如,在西方有的警察为了防止来自罪犯的报复,往往要注意保守自己家庭地址和电话号码不被泄露,但当他的新生婴儿在医院出生后,医院可能会将相应的信息出卖给专营新生儿用品或服务的公司,使他全然失去安全感。也许当你用信用卡为你妻子的妇科诊疗付费后,你会回家后收到来自保险公司的妇科保险征订单、来自厂商的妇科保健用品广告等,你会如何感受?正是由于这种状况,在有些发达国家,许多人认为政府和商业机构对他们个人的事知道得太多了,为此,他们宁可放弃使用信用卡消费。

15:34 | 评论 (0)

§3.3  非因果关系的单方程模型

在本书第一章中,我们曾经说过,尽管广义的计量经济学包含广泛的内容,但在本书中,所谓计量经济学模型,专指那些在数学上采用回归分析的方法,在经济意义上揭示因果关系的经济数学模型。在本节中,作为“扩展的”计量经济学模型,将简单介绍得到普遍应用的增长曲线模型和随机线性时间序列模型,它们的共同特点是采用回归分析的方法估计模型的参数,揭示经济变量的某种变化规律,但并不反映经济活动中的因果关系。

 

一、增长曲线模型概述

增长曲线模型描述经济变量随时间变化的规律性,从已经发生的经济活动中寻找这种规律性,并用于未来的经济预测。但是,时间并不是经济活动变化的原因,所以增长曲线模型不属于因果关系模型。

常用的增长曲线模型主要包括以下一些形式。

1. 多项式增长曲线模型

多项式增长曲线模型的一般数学形式为

            (3.3.1)

式中 是第二个时间单位的某个经济指标值,t是时间, ,…, 为模型参数。如果k=0,增长曲线为一条与时间轴平行的直线;如果k=1,增长曲线为一条截距为 、斜率为 的直线;如果k=2,增长曲线为一条抛物线。比较常见的是这3种。

3.3.1)中的参数可以采用回归分析方法进行估计,只需进行简单的变量置换,就可以将(3.3.1)化为线性模型。

 

2. 简单指数型增长曲线模型

简单指数型增长曲线模型表示为

            3.3.2

显然,当a0bl时,y随着t的增加无限制的增大;当a00b1时,y随着t的增加趋向于0。这是两类常见的经济指标。

通过两边取对数后变量置换,将原模型化成线性模型,可以采用回归分析方法估计其参数ab

 

3. 修正指数型增长曲线模型

在指数型增长曲线模型中增加一个常数项,即将指数型增长曲线沿y轴平移。其数学表达为

               3.3.3

其中ky的逼近值。当a0bl时,y随着t的减少直至—∞而逼近于k;当a00bl时,y随着t的增加直至+∞而趋向于k

由于模型中增加一个常数项,使得采用线性模型估计方法进行参数估计相当困难,因为难以通过简单的变换而使模型线性化。估计方法之一是将模型变换为

给定k的值,通过两边取对数后变量置换,将模型化成线性模型,采用回归分析方法估计参数ab。反复试算,选择使y的估计值与观测值拟合最好的k以及在该k值下估计得到的ab的估计值,作为原模型参数kab的估计结果。

当然,采用包含非线性最小二乘法或非线性最大似然法软件,可以直接采用非线性估计方法(3.3.3)估计。

 

4. 逻辑(Logistic)增长曲线模型

逻辑增长曲线模型是一种著名的增长曲线模型,在经济预测中有广泛的应用。下面将专门予以介绍。

 

5. 龚珀兹(Gompertz)增长曲线模型

龚珀兹增长曲线模型也是一种著名的增长曲线模型,下面也将专门介绍。

 

二、逻辑(Logistic)增长曲线模型

逻辑增长曲线模型,俗称“S曲线”,由Verhulst1845年提出,当时主要目的是模拟人口的增长。其一般形式为

其中 。后来经过逐步简化,目前最常见的形式是

               3.3.4

也称狭义的逻辑增长曲线模型。

由(3.3.4)表示的增长曲线有两个重要特征。一是y随着t的增加直至+∞而趋向于KK即是Y的饱和值;反过来,当t-∞时,y0。二是增长曲线具有一个拐点,在拐点之前,y的增长速度越来越快;在拐点之后,y的增长速度越来越慢,逐渐趋近于0。在现实经济生活中,许多指标的增长过程具有这两个特征。例如,一种新产品、新技术的普及率,一种耐用品的存量,它们的增长过程都遵循逻辑增长曲线模型。所以,逻辑增长曲线模型在经济预测中有广泛的应用,是一种重要的预测模型。

在(3.3.4)的中,Kab是待估参数,一般的线性模型的估计方法已不再适用。人们研究并提出了多种线性化参数估计方法,其中较多应用的如下两种。

1. 逻辑增长曲线模型的线性化估计

设法将(3.3.4)式线性化,然后用线性模型的参数估计方法估计其参数。将(3.3.4)写成

              3.3.5

如果给定K,(3.3.5)即可写成

          3.3.6

可以用其他变量表示为

显然可以很方便地估计模型的参数。

关键在于如何给定K。首先根据模型的经济背景给出K的上下限。例如一种新产品、新技术的普及率的上限为100%,下限是已经实现的普及率,比如60%。然后分别以上、下限作为K的给定值,估计模型,计算残差平方和。接下来可以根据优选法提供的思路给定新的K值,反复试算,直到得到残差平方和最小时的K值和ab的估计值。

 

2. 逻辑增长曲线模型的“三和法”估计

所谓“三和法”,是增长曲线模型参数的一种代数估计方法。

t=12,…,n时,可以将样本分成3段,分别为t12,…,rt=r+1r+2,…,2rt2r+12r+2,…,n。分别计算每段中(3.3.5)式的和

得到

     

于是 。当得到y的样本数据后,就可以由此式计算得到b的值。

又因为

 

所以有

由该二式可以计算得到Ka的值。至此,模型的所有参数估计值都已求得。

 

3. 逻辑增长曲线的非线性估计

采用非线性最小二乘法,例如TSP6.5中的非线性估计方法,可以直接估计(3.3.4)。首先选择并输入abK的初始值,然后输入方程形式,即可完成参数估计。

 

三、龚珀兹(Gompertz)增长曲线模型

龚珀兹增长曲线由B. Gompertz1825年提出,其数学形式为

            3.3.7

其中Kab为待估参数,Ky的上限逼近值,0y的下限逼近值。可见龚珀兹增长曲线与逻辑增长曲线相似,只是二者的拐点的位置不同。所以它也有广泛的适用性。

类似于逻辑增长曲线,龚珀兹增长曲线参数估计方法也有许多。将(3.3.7)变换为

则有

            3.3.8

如果给定K的值,(3.3.8)就是一个简单线性模型,可以方便地进行估计。关于K值的选择,仍然类似于逻辑增长曲线参数估计过程,不再重复。

同样可以用“三和法”估计龚珀兹增长曲线模型。将(3.3.7)写成

就可以进行类似于逻辑增长曲线模型采用“三和法”估计参数的估计过程,这里也不再重复。当然,也可以采用非线性估计方法直接估计(3.3.7)。

 

四、时间序列分析模型概述

所谓时间序列,就是各种社会、经济、自然现象的数量指标按照时间次序排列起来的统计数据。所谓时间序列分析模型,就是揭示时间序列自身的变化规律和相互联系的数学表达式。正如第一章中提及的,在国外计量经济学教科书中,时间序列分析模型占据相当重要的位置。但是,时间序列分析模型没有揭示其变化中的因果关系,所以在本书中没有包括这部分内容。只是在这里将它作为计量经济学模型的扩展,作一简单的介绍,使读者建立一个基本的概念与框架,为进一步专门学习与应用时间序列分析模型建立一个基础。

时间序列分析模型分确定性模型和随机模型两大类。

1. 确定性时间序列分析模型

对于一个时间序列

确定性模型主要有以下几种。

1)滑动平均模型。将下列平均数

   tN            3.3.9

称为时间序列 的滑动平均数序列。该式表达的模型称为滑动平均模型。滑动平均模型的主要作用是消除干扰,显示序列的趋势性变化,并用于趋势预测。

2)加权滑动平均模型。将下列平均数

   tN            3.3.10

称为时间序列 的加权滑动平均数序列。 为加权因子,满足

由(3.3.10)式表达的模型称为加权滑动平均模型。加权滑动平均模型的主要作用除了消除干扰,显示序列的趋势性变化外,还可以通过加权因子的选取,增加新数据的权重,使趋势预测更加准确。

3)二次滑动平均模型。所谓二次滑动平均是对经过一次滑动平均产生的序列再进行滑动平均。即

   tN            3.3.11

由此构成的序列称为时间序列 的二次滑动平均数序列,该式表达的模型称为二次滑动平均模型。

4)指数平滑模型。如果采用下式求得序列的平滑预测值

            3.3.12

则称此预测模型为指数平滑模型,其中α称为平滑常数,0<α<1。(3.3.12)也可以写成

            3.3.13

即预测值是前期实际值与预测值的加权和。

如何选择α?一种方法是优选比按照优选法的规则,选择不同的α,代入模型,计算预测值序列。以实际值与预测值的差的平方和最小为准则确定α值。

5)二次指数平滑模型。在一次指数平滑模型的基础上再进行指数平滑计算,即构成二次指数平滑模型。同样,还可以构成三次指数平滑模型。不再赘述。

 

2. 随机时间序列分析模型

随机时间序列分析模型分为三种类型:自回归模型(Auto-regressive Model, AR)、滑动平均模型(Moving Average Model, MA)和自回归滑动平均模型(Auto-regressive Moving Average Mode1ARMA)

1)自回归模型。若时间序列 为它的前期值和随机项的线性函数,可以表示为

            3.3.14

则称该时间序列 为自回归序列,该模型为p阶自回归模型,记为AR(p)。参数 为自回归参数,是模型的待估参数。随机项 ,为服从0均值、方差为 的正态分布,且互相独立的白噪声序列。而且随机项 与不相关。

引入滞后算子B模型(3.3.14)可以表示为

            3.3.15

其中

进一步有

            3.3.16

则模型可写成

2)滑动平均模型。若时间序列 ,为它的当前与前期的误差和随机项的线性函数,可以表示为

            3.3.17

则称该时间序列 为滑动平均序列,该模型为q阶滑动平均模型,记为MA(q)。参数 为滑动平均参数,是模型的待估参数。

同样,(3.3.17)可以写成

            3.3.18

则模型可写成

      3.3.19

3)自回归滑动平均模型。若时间序列 ,为它的当前与前期的误差和随机项,以及它的前期值的线性函数,可以表示为

则称该时间序列 ,为自回归滑动平均序列,该模型为(p,q)阶自回归滑动平均模型,记为ARMA(p,q)。参数 为自回归参数, 为滑动平均参数,是模型的待估参数。引人滞后算子B,(3.3.19)可以表示为

 

*五、随机时间序列分析模型(ARMAARMA)的识别

自回归滑动平均模型(ARMA)是随机时间序列分析模型的普遍形式,自回归模型(AR)和滑动平均模型(MA)是它的特殊情况。关于这几类模型的研究,是时间序列分析的重点内容,主要包括模型的平稳性分析、模型的识别和模型的估计。

1. 自相关函数和偏自相关函数

对于ARMA模型,在进行参数估计之前,需要进行模型的识别。识别的基本任务是找出ARMAp,q)、ARp)、MAq)模型的具体特征,最主要的是确定模型的阶,即ARMAp,q)中的pqARp)中的pMAq)中的q。识别的方法是利用时间序列样本的自相关函数和偏自相关函数。

1MAq)的自相关函数。模型(3.3.17

            3.3.17

的自协方差函数为

       

其中利用了

         

从而根据自相关函数的定义,有自相关函数

     

由此可见,当k>g时, 不相关,这种现象称为截尾,因此,当k>q时, MAq)的一个特征。换句话说,可以根据自相关系数是否从某一点开始一直为0来判断MAq)模型的阶。

2ARp)的自相关函数。模型(3.3.14

的自协方差函数为

从而有自相关函数

            (3.3.21)

由此可见,ARp)序列的自相关函数是非截尾序列,称为拖尾序列。因此自相关函数拖尾,是ARp)序列的一个特征。

由(3.3.21),利用,得到如下方程组:

            (3.3.22)

此方程组被称为Yule Walker方程组。若已知模型参数 ,可求 ,然后递推下去,可求所有的 k>p;反过来,若已知 ,可求模型参数 以及 。模型参数通过求解方程组得到, 通过下式计算:

 

3ARMAp,q)的自相关函数。ARMAp,q)的自相关函数,可以看作MAq)的自相关函数和ARp)的自相关函数的混合物。当p=0时,它具有截尾性质;当q0时,它具有拖尾性质;当pq都不为0时,它具有拖尾性质。经过推导得到,ANMAp,q)的自协方差函数为

其中

         

所以,当k>q时,

ARMAp,q)的自相关函数为

            (3.3.23)

 

可见,ARMAp,q)的自相关函数,当k>q时,仅依赖于模型参数 以及

4ARMAp,q)偏自相关函数。所谓偏自相关函数,是ARMAp,q)模型的另一个统计特征,它是在已知序列值 的条件下, , 之间的关系的度量。

下面以ARp)为例,认识偏自相关函数的含义。假定先以ARk-1)去拟合一个序列,然后又用AR(k)去拟合,后者比前者增加了一个滞后变量 。如果 表示后者的自回归系数,那么相应于滞后变量 的系数就是 ,称为偏自相关系数。根据ARp)的拖尾性质以及偏自相关系数的含义,可以采用方差最小为原则来求得偏自相关系数

     

由此得到ARp)的主要特征是k>p时, 0,即是 p以后截尾。

对于ARMAp,q)与MAq)模型,可以证明它们的偏自相关函数是拖尾的。

 

2. 模型的识别

1ARp)模型的识别。若 的偏自相关函数 p以后截尾,即是k>p时, 0,而且它的自相关函数 是拖尾的,则此序列是自回归ARp)序列。

2MAq)模型的识别。若随机序列的自相关函数截尾,即自q以后 =0k>q,而它的偏自相关函数是拖尾的,则此序列是ARp)序列是滑动平均MAq)序列。

3ARMAp,q)的识别。若随机序列的自相关函数和偏自相关函数都是拖尾的,则此序列是自回归滑动平均序列。至于模型中pq的识别,则要从低阶开始逐步试探,直到定出合适的模型为止。

利用时间序列分析软件包中的自相关、偏相关函数的计算功能,可以方便地识别一个序列是何种序列,以及ARp)、MAq)序列的阶数。

 

*六、随机时间序列分析模型(ARMAARMA)的估计

经过模型识别,确定了时间序列分析模型的模型结构和阶数,接着就可以对模型进行参数估计。ARp)、MAq)、ARMAp,q)模型的估计方法较多,大体上分为三类:最小二乘估计、矩估计和利用自相关函数的直接估计。下面有选择地加以介绍。

1. ARp)模型的Yu1e Walker方程估计

Yu1e Walker方程组(3.3.22)建立了ARp)模型的模型参数 与自相关函数 的关系,利用实际时间序列提供的信息,首先求得自相关函数的估计值 ,然后利用Yu1e Walker方程组,求解模型参数的估计值 以及 。结果如下:

            3.3.24

            3.3.25

 

2. MAq)模型的矩估计

MAq)模型的自协方差函数中的各个量用估计量代替,得到

              3.3.26

利用实际时间序列提供的信息,首先求得自协方差函数的估计值,于是(3.3.26)是一个包含(q1)

待估参数估计值 的非线性方程组,可以用直接法或迭代法求解。常用的迭代方法有

线性迭代法和NewtonRaphsan迭代法。具体的求解过程不再赘述,读者可参考时间序列分析的专门教科书。

 

3. ARMAp,q)模型的矩估计

ARMAp,q)中共有(pq1)个待估参数中 以及 ,其估计量计算步骤及公式如下:

1)估计

计算公式为

其中是样本的标准自相关函数的估计值,由观测数据计算得到。

2)改写模型,求 以及 的估计值。

将模型

改写为

     3.3.27

 

于是(3.3.27)可以写成

构成一个MA模型。按照估计MA模型参数的方法,可以得到 以及 的估计值。

 

4. ARp)的最小二乘估计

假设模型(3.3.14)的参数估计值 已经得到,即有

残差的平方和为

      (3.3.28)

根据最小二乘原理,所要求的参数估计值 应该使得(3.3.28)达到极小。所以它们应该是下列方程组的解:

     j=1,2,,p      (3.3.29)

解该方程组,就可得到待估参数的估计值。

为了与ARp)模型的Yu1e Walker方程估计进行比较,将(3.3.29)改写成

     j=1,2,,p

由自协方差函数的定义,并用自协方差函数的估计值

代入,上式表示的方程组即为

     j=1,2,,p

解该方程组,得到

即为参数的最小二乘估计。与(3.3.24)的估计值比较发现,当n足够大时,二者是相似的。 的估计值为

11:05 | 评论 (0)

 

收稿日期:2001-06-05
作者简介:温品人(1961-),女,江苏常熟人,扬州市广播电视大学文经系讲师。[FQ)]


时间序列预测法的实际应用分析

温品人

(扬州市广播电视大学,江苏 扬州 225009)

摘 要:根据所搜集的实际数据资料,以统计学为基础,采用时间序列预测方法,对扬州市农业总产值时间序列建立了趋势模型,结果说明简单模型也能达到较好的拟合效果和精度。

关键词:时间序列; 模型; 拟合; 预测
中图分类号:G30   文献标识码:B
文章编号:1008-4207(2001)06-0063-03

  一、时间序列预测法

  时间序列是指同一种现象在不同时间上的相继观察值排列而成的一组数字序列。时间序列预测方法的基本思想是:预测一个现象的未来变化时,用该现象的过去行为来预测未来。即通过时间序列的历史数据揭示现象随时间变化的规律,将这种规律延伸到未来,从而对该现象的未来作出预测。

  现实中的时间序列的变化受许多因素的影响,有些起着长期的、决定性的作用,使时间序列的变化呈现出某种趋势和一定的规律性,有些则起着短期的、非决定性的作用,使时间序列的变化呈现出某种不规则性。时间序列的变化大体可分解为以下四种:

  (1)趋势变化,指现象随时间变化朝着一定方向呈现出持续稳定地上升、下降或平稳的趋势。

  (2)周期变化(季节变化),指现象受季节性影响,按一固定周期呈现出的周期波动变化。

 (3)循环变动,指现象按不固定的周期呈现出的波动变化。

  (4)随机变动,指现象受偶然因素的影响而呈现出的不规则波动。 时间序列一般是以上几种变化形式的叠加或组合。时间序列预测方法分为两大类:一类是确定型的时间序列模型方法;另一类是随机型的时间序列分析方法。确定型时间序列预测方法的基本思想是用一个确定的时间函数y=f(t)来拟合时间序列,不同的变化采取不同的函数形式来描述,不同变化的叠加采用不同的函数叠加来描述。具体可分为趋势预测法、平滑预测法、分解分析法等。随机型时间序列分析法的基本思想是通过分析不同时刻变量的相关关系,揭示其相关结构,利用这种相关结构来对时间序列进行预测。本文讨论的时间序列预测法 指的是确定型时间序列模型方法。

  二、实际应用分析
  
  1.预测方法和模型的选择
  表11980~1999年扬州市农业总产值  单位:万元

年份
农业总产值
年份
农业总产值
年份
农业总产值
1980
220 553
1987
345 560
1994
483 960
1981
236 285
1988
357 909
1995
549 807
1982
267 120
1989
357 788
1996
600 986
1983
278 787
1990
357 671
1997
620 281
1984
312 089
1991
305 855
1998
667 542
1985
331 172
1992
362 848
1999
711 741
1986
338 848
1993
414 892

  表1是扬州市1980~1999年农业总产值的有关数据资料,资料摘自《扬州统计年鉴2000》,表中产值按990年不变价格计算。根据表1时间序列的资料,画出时间序列折线图1。通过观察时间序列图,可以看出此时间序列具有明显的趋势变动。在1980~1999年20年间,扬州市农业总产值总体呈明显的上升趋势。农业总产值的变化分为两个时间段:1980~1990年时间序列呈曲线变化趋势,1991~1999年时间序列呈线性变化趋势。根据直观的判断,对时间序列采取分段处理的方法,即对1980~1990年的时间序列拟合二次曲线趋势模型,对1991~1999年的时间序列拟合线性趋势模型。

     

                   图1农业总产值折线图


  2.建立模型

  (1)二次曲线趋势模型:Yt=a+bt+ct2
  上述方程中的三个未知参数a、b、c根据最小二乘法求得。即对时间序列拟合一条趋势曲线,使之满足下列条件:各实际值Yt与趋势值〖AKY^〗t的离差平方和为最小,即∑(Yt-〖AKY^〗t)2=最小值,得到标准求解方程:

     ∑Y=na+b∑t+c∑t2
     ∑tY=a∑t+b∑t2+c∑t3
     ∑t2Y=a∑t2+b∑t3+c∑t4

  当取时间序列的中间时期数为原点时,有∑t=0,上式可简化为:

     ∑Y=na+c∑t2
     ∑tY=b∑t2
     ∑t2Y=a∑t2+c∑t4

  经过计算,得到对扬州市1980~1990年农业总产值时间序列拟合的二次曲线模型为:
  Y^t=316488.1+14584.3t-705.3t2。

  (2)线性趋势模型:Y^t=a+bt

  上述方程中的两个未知参数a、b也是根据最小二乘法的原理求得。

  b=n∑tY-∑t∑Y/n∑t2-(∑t)2
  a=1/n(∑Y-b∑t)

  同样,为计算方便,取时间序列的中间时期数为原点,此时有∑t=0,上式可简化为:

  a=1/n∑Y
  b=∑tY/∑t2

  经过计算,得到对扬州市1991~1999年农业总产值时间序列拟合的线性模型为:
  Y^t=524212+51090.5t

  3.对模型的有效性进行检验

  对时间序列拟合了趋势模型,如果用线性趋势模型Y^t=524212+51090.5t预测扬州市2000年的农业总产值,这一预测是否有效,还需要进行有效性检验。笔者用的是时间序列自相关的分析,即通过计算误差项的自相关系数来判断误差是否属于随机误差。

  线性预测模型所对应的误差项时间序列共9项数据,即n=9。自相关系数公式:

  rk=∑(Y′t-Y′)(Y′t-k-Y′)/∑(Y′t-Y′)2
  
  其中,Y′t=Yt-Y^t,Y′=∑Y′/n。 Y′t-k是误差项时间序列各期滞后序列,见表2。

             表2 误差项时间序列及各滞后序列

年份 Y′t Y′t-1 Y′t-2 Y′t-3
1991 13995      
1992 8093 13995    
1993 7139 8093 13995  
1994 10838 7139 8093 13995
1995 25595 10838 7139 8093
1996 25683 25595 10838 7139
1997 6112 25683 25595 10838
1998 9944 6112 25683 25595
1999 16833 9944 6112 25683

  根据公式计算得到:r1=0.1969,r2=-0.5743,r3=-0.2978。置信度为95%的置信区间为[-0.66,0.66],计算得到的误差项的自相关系数r1、r2、r3都落在这个区间内,则有95%的把握认为所有的自相关系数与零没有显著性差异,因此判断 误差是随机误差,则线性趋势模型用于预测是有效的。根据模型,得到扬州市2000年农业总产值的预测值为779 665万元,实际值为761 776万元,预测误差为2.35%。
  4.预测精度分析

  不同的预测对象具有不同的特点,而不同的预测方法也有各自的优点和缺点。预测的关键就是为预测对象寻找合适的预测方法,使得预测结果具有更高的可靠性和精确度。一般认为预测精度是指预测模型拟合好坏的程度,即由预测模型所产生的模拟值与历史实际值拟合程度的优劣。表3 是根据模型计算的趋势值(模拟值)及相对误差指标。
       表3趋势值和误差计算表

根据表3的数据画出实际值、趋势值的时间序列图1,其中虚线为趋势值线。

  三、结论

  从计算结果分析,对农业总产值时间序列进行分段处理,拟合模型,拟合效果较好,精度较,说明简单模型也能达到较高的精度。在一些情况下,有些复杂的预测模型,如B-J方法的ARMA模型其预测精度高于简单模型。但B-J方法在模型识别时要50个以上的历史统计数据,对按年记录的经济资料很难搜集。在实际预测时,有时采用组合预测模型,可以达 到更高的预测精度。

  时间序列预测法是一种重要的预测方法,其预测模型都比较简单,它对资料的要求比较单一,只需变量本身的历史数据,因此,在实际情况中有着广泛的适用性。



参考文献:

[1]徐国祥.统计预测和决策[M].上海:上海财经大学出版社,1998.243-246.
[2]周以祥.现代管理方法[M].南京:南京大学出版社,1994.59-64.
[3]贾俊平,等.统计学[M].北京:中国人民大学出版社,2000.278-285.
[4]Robert S.Pindyck,Daniel L.Rubinfeld.计量经济模型与经济预测[M].北京:机械工业出版社,99.293-295.
 

 

                                   (责任编辑  丰余)

10:30 | 评论 (0)

2005年4月5日

[PPT] PowerPoint 演示文稿
文件格式: Microsoft Powerpoint 97 - HTML 版
... 我们的另一项研究表明: 将用户的查询量、点击、不同IP访问量分别看成是按时间
次序排列的随机变量序列,利用时间序列的分析 ... 分别建立了天网用户的查询量模型、
点击模型和不同IP用户的访问量模型,以期达到对系统访问情况进行分析和预测的目的. ...

11:09 | 评论 (0)

2005年3月25日

     当讨论Request对象内容时,要研究的集合之一就是ServerVariables集合。这个集合包含了两种值的结合体,一种是随同页面请求从客户端发送到服务器的HTTP报头中的值,另外一种是由服务器在接收到请求时本身所提供的值。为显示ServerVariables集合中值的使用方式,在Request Object页面(Show_request.asp)中,点击“ServerVariables Examples”链接,打开另外一个页面,如下图所示:

     下图所示窗口显示的是ServerVariables集合中一些非常有用的值的一个子集。

     “自引用”页面
     在ServerVariables集合中返回的值包含Web服务器的详细信息和当前页面的路径信息。在任何地方创建一个页面都可使用这些信息。例如创建一个“自引用”页面,此页面能够再次调用自身完成另一项任务,我们可以用以下代码:
     <FORM ACTION=”<% = Request.ServerVariables(“PATH_INFO”) %>” METHOD=”POST”>
     同样的效果可以用HTTP的“SCRIPT_NAME”值获得:
     <FORM ACTION=”<% = Request.ServerVariables(“SCRIPT_NAME”) %>” METHOD=”POST”>
     使用<A>元素打开一个不同页,可以使用: 
     <%
     strFullPath = Request.ServerVariables(“PATH_INFO”)
     ‘Strip off the file name
     strPathOnly = Left(strFullPath, InStrRev(strFullPath, “/”))
     strNextPage = strPathOnly & “pages/next_page.asp”
     %> 
     <A HREF=”<% = strNextPage %>”>Next Page</A> 
     即使原始页面的名称或位置发生变化,这些实例都能正常工作,因为使用了当前页面的路径信息(当然,第二个例子在分离的目标页的名称发生变化时运行会失败)。
     换句话说,如果为搜索引擎的子会话自动建立URL,可以收集ServerVariable的一些值:
     strFullURL = http:// & Request.ServerVariables(“LOCAL_ADDR”) _
     & “:” & Request.ServerVariables(“SERVER_PORT”) _
     & Request.ServerVariables(“PATH_INFO”)
     这将创建一个完整的URL包括端口号(这种情况下,不是标准值80)。例如,结果可能是:
     http://194.74.60.254:1768/thispath/thispage.asp

     检测浏览器的版本
     ServerVariables集合中,另外一个有用的值是用户浏览器的用户代理字符串。在“Detecting the Browser Type”页面(browsertype.asp),使用ServerVariables集合中的“HTTP_USER_AGENT”值来获得用户代理字符串,一些脚本用来解析该信息并寻找生产厂家名称和浏览器版本。
     <%
     strUA = Request.ServerVariables(“HTTP_USER_AGENT”)
     Response.Write “The User Agent string is <B>” & strUA & “</B>
     ”
     If InStr(strUA, “MSIE”) Then
     Response.Write “To upgrade your browser go to “_
     & “<A HREF=” & Chr(34) & http://www.microsoft.com/ie/”_
     & Chr(34) & “>http://www.microsoft.com/ie/<A>  ”
     intVersion = Cint(Mid(strUA, InStr(strUA, “MSIE”) + 5, 1))
     If intVersion >=4 Then
     Response.Write “You can use Microsoft Dynamic HTML”
     End If
     Else
     If InStr(strUA, “Mozilla”) Then
     If InStr(strUA, “compatible;”) = 0 Then
     Response.Write “Your browser is probably Navigator. You can “_
     & “download the latest version of Navigator from “_
     & “<A HREF=” & Chr(34) & http://home.netscape.com/”_
     & “download/”& Chr(34) & “>http://home.netscape.com”_
     & “/download/</A> ”
     intVersion = Cint(Mid(strUA, InStr(strUA, “/”) +1, 1))
     If intVersion >= 4 Then
     Response.Write “You can probably use Netscape Dynamic HTML”
     End If
     Else
     strVersion = Mid(strUA, InStr(strUA, “compatible;”) + 12)
     strProduct = Left(strVersion, InStr(strVersion, “ “))
     Response.Write “Your browser is Navigator-compatible. You can”_
     & “search for the manufacturer using a search engine, such as”_
     & “<A HREF=” & Chr(34) _
     & “http://www.altavista.digital.com/cgi-bin/query?q=”_
     & strProduct _
     & Chr(34) & “>http://www.altavista.com/</A>
     ”
     End If
     End If
     End If
     %>
     对IE 5.0和Navigator 4.61的搜索结果分别不同,对于其他厂家的浏览器,可以得到一个链接在Alta Vista Web站点自动开始搜索厂家的名称。

     注意,Netscape在用户代理字符串中不提供厂家的名称,因而无法绝对保证一个浏览器一定是Navigator。

     检测浏览器的语言
     ServerVariables集合中另外一个有用的值是“HTTP_ACCEPT_LANGUAGE”,它包含了一个当浏览器安装时指定的,或硬编码进用户的地区版本的语言代码。语言代码的例子有en-us(英国、美国)、de-at(德国、澳大利亚)和es-pe(西班牙、秘鲁)。
     语言代码可以是一般的且省略方言标识:例如,在我们的站点Wrox者,大批浏览者都是将en(英语)作为语言代码。
     因此,可以检测语言代码并自动装载一个合适的特定地区或指定语言版本的页面。
     StrLocale = Lcase(Left(Request.ServerVariables(“HTTP_ACCEPT_LANGUAGE”),2))
     Select Case strLocale
     Case “en”: Response.Redirect “http://uk_site.co.uk/”
     Case “de”: Response.Redirect “http://de_site.co.de/”
     Case “fr”: Response.Redirect “http://fr_site.co.fr/”
     ‘... etc
     Case Else: Response.Redirect “http://us_sitel.com/”
     End Select
     或者根据特定的方言,重定向页面:
     strLocale = Lcase(Request.ServerVariables(“HTTP_ACCEPT_LANGUAGE”))
     Select Case strLocale
     Case “en-gb”: Response.Redirect “http://uk_site.co.uk/”
     Case “en-us”: Response.Redirect “http://us_site.com/”
     Case “es-pe”: Response.Redirect “http://es_site2.co.pe/”
     ‘...
     Case Else: Response.Redirect “http://us_site1.com/”
     End Select
    
     其他有用的ServerVariables集合的值
     可以访问和使用ServerVariables集合中的任何一成员,控制ASP页面响应一个请求的方式。可以检查一个浏览者访问站点时使用的是否是缺省端口80或还是另一个。在这个例子里,寻找通过端口443的访问——这个端口提供的是安全套接字层(Secure Socket Layer,SSI)访问(和其他的协议),且将它们重定向到一个相应的页面。
     If Request.ServerVariables(“SERVER_PORT”) = “443”) Then
     Response.Redirect “/securesite/default.asp” ‘Secure user
     Else
     Response.Redirect “/normalsite/default.asp” ‘Non-secure user
     End If
     假如要求浏览者注册且由服务器验证(而不是允许他们在Web服务器的IUSER帐号下匿名访问,这个问题将在后面章节中详细讨论),可以查询用户名称,来判定正在与我们打交道的用户是谁,是否装载页面给该用户。例如,下面的这个代码将只向名为Administrator的用户显示管理链接。 
      <A HREF=”dispcnfg.asp”>Change Display Configuration</A>

     <A HREF=”dispcolr.asp”>Change Display Colors</A> 
     <A HREF=”keyboard.asp”>Change Keyboard Configuration</A>     <%
     If Request.ServerVariables(“AUTH_USER”) _
     = Ucase(Request.ServerVariables(“SERVER_NAME”)) & “Administrator” Then
     %>
     <A HREF=”allusers.asp”>Administer All Users</A> 
     <A HREF=”usrlogon.asp”>Administer Logon Information</A>
     <%
     End If
     %> 
          注意ASP不填写ServerVariables集合直到你访问其中的一个成员。首次访问该集合的一个成员将使IIS得到它的全部,应只在需要时才使用ServerVariables集合。

9:55 | 评论 (0)

   Reques对象能够保存从浏览器的客户端发送到服务器的所有信息,这当中有一部分是客户端的环境信息,通过Reques对象就可以读取这些信息,从而就能够得知客户端的环境。

  ServerVariables 集合有哪些常用参数?

  要用Reques对象来读取客户端的环境参数,就要使用到ServerVariables 集合对象来保存环境变量。下图表是ServerVariables 集合比较常用的一些参数:

ALL_HTTP 客户端发送的所有 HTTP 标题文件。
CONTENT_LENGTH 客户端发出内容的长度。 
CONTENT_TYPE 内容的数据类型。如:"text/html"。同附加信息 的查询一起使用,如 HTTP 查询 GET、POST 和 PUT。
LOCAL_ADDR 返回接受请求的服务器地址。如果在绑定多 个 IP 地址的多宿主机器上查找请求所使用的地址 时,这条变量非常重要。
LOGON_USER 用户登录 Windows NT 的帐号
QUERY_STRING 查询 HTTP 请求中问号(?)后的信息。
REMOTE_ADDR 发出请求的远程主机 (client) 的 IP 地址。 
REMOTE_HOST 发出请求的主机 (client) 名称。如果服务器无此 信息,它将设置为空的 MOTE_ADDR 变量。
REQUEST_METHOD 该方法用于提出请求。相当于用于 HTTP 的 GET、HEAD、POST等 等。
SERVER_NAME 出现在自引用 URL 中的服务器主机名、DNS 化名 或 IP 地址。
SERVER_PORT 发送请求的端口号。
HTTP_ACCEPT_LANGUAGE 机器使用的语言环境
ServerVariables 集合对象的语法是什么?

  此集合对象在程序中的具体语法如下:

  Request.ServerVariables ( 服务器环境变量 )

  怎样通过Request对象获得机器的环境参数?

  例子名称request.asp,他的主要作用是读取本地的IP地址合,服务器端的IP地址和机器使用的语言环境,源程序如下:

<HTML><HEAD><TITLE>取得客户端的环境参数</TITLE></HEAD><BODY><%Dim Language '用以储存Client端环境用的语言Response.Write "本地IP地址:" & Request.ServerVariables ( "LOCAL_ADDR" )Response.Write "<HR>"Response.Write "服务器IP地址:" & Request.ServerVariables ( "REMOTE_ADDR" )Language = Request.ServerVariables ( "HTTP_ACCEPT_LANGUAGE" )Response.Write " <HR> "Select Case Language Case "zh-tw" : Response.Write "您使用的是繁体中文" Case "zh-cn" : Response.Write "您使用的是简体中文"End Select%><HR></BODY></HTML>

  执行以后就可以得到如下界面:

  ServerVariables 集合里面还定义了一些其他的参数,要灵活使用这些参数,最好的办法就是多使用。

9:52 | 评论 (0)

2005年3月21日

概述:前几章讨论了平稳时间序列的建模和预测方法。平稳序列的直观含义就是序列中不存在任何趋势性和周期性,其统计意义就是一阶矩为常数,二阶矩存在且为时间间隔τ的函数。但是在实际问题中,我们常遇到的序列,特别是反映社会、经济现象的序列,大多数并不平稳,而是呈现出明显的趋势性或周期性。这时,我们就不能认为它是均值不变的平稳过程,需要用如下更一般的模型来描述:Xt=μt+Yt

其中μt表示Xt中随时间变化的均值,它往往可以用多项式、指数函数、正弦函数等描述,而YtXt中剔除趋势性或周期性μt后余下的部分,往往可以认为是零均值的平稳过程,因而可以用前述的ARMA模型来描述。具体的处理方法可分为两大类:一类是通过某些数学方法剔除掉Xt中所包含的趋势性或周期性(即μt),余下的Yt可按平稳过程进行分析与建模,最后再经反运算由Yt的结果得出Xt的有关结果。另一类方法是具体求出 的拟合形式,求出μt然后对残差序列{Xt- }进行分析,该残差序列可以认为平稳的。利用前述方法可求出 ,最后综合可得 。重点掌握非平稳性的检验与平稳化方法。

1.  非平稳性的检验。

2.  平稳性方法。

3.  齐次非平稳序列模型。

4.  非平稳时间序列的组合模型。

    第七章  季节性的时间序列方法

概述:在许多实际问题中,随机序列的变化包含很明显的周期性规律,这种规律是由于季节(周期)变化的原因所引起的,在这一章将介绍含有季节(周期)性规律的时间序列分析方法。

1.  简单随机时序模型。

2.  乘积季节模型。

3.  季节时序模型的建立。

4.  X-11方法简介。

 

11:46 | 评论 (0)

2005年3月19日

ar    Examples   See Also

Estimate the parameters of an AR model for scalar time series.

Syntax

th = ar(y,n)
[th,refl] = ar(y,n,approach,win,maxsize,T)

Description

The parameters of the AR model structure

are estimated using variants of the least-squares method.

Column vector y contains the time series data. Scalar n specifies the order of the model to be estimated (the number of A parameters in the AR model).

Note that the routine is for scalar time series only. For multivariate data use arx.

The estimate is returned in th and stored in theta format. For the two lattice-based approaches, 'burg' and 'gl' (see below), variable refl is returned containing the reflection coefficients in the first row, and the corresponding loss function values in the second. The first column is the zero-th order model, so that the (2,1) element of refl is the norm of the time series itself.

Variable approach allows you to choose an algorithm from a group of several popular techniques for computing the least-squares AR model. Available methods are as follows:

approach = 'fb': The forward-backward approach. This is the default approach. The sum of a least-squares criterion for a forward model and the analogous criterion for a time-reversed model is minimized.

approach = 'ls': The least-squares approach. The standard sum of squared forward prediction errors is minimized.

approach = 'yw': The Yule-Walker approach. The Yule-Walker equations, formed from sample covariances, are solved.

approach = 'burg': Burg's lattice-based method. The lattice filter equations are solved, using the harmonic mean of forward and backward squared prediction errors.

approach = 'gl': A geometric lattice approach. As in Burg's method, but the geometric mean is used instead of the harmonic one. .

The computation of the covariance matrix can be suppressed in any of the above methods by ending the approach argument with 0 (zero), for example, 'burg0'.

Windowing, within the context of AR modeling, is a technique for dealing with the fact that information about past and future data is lacking. There are a number of variants available:

window = 'now': No windowing. This is the default value, except when
approach = 'yw'. Only actually measured data are used to form the regression vectors. The summation in the criteria starts only at time n.

window = 'prw': Pre-windowing. Missing past data are replaced by zeros, so that the summation in the criteria can be started at time zero.

window = 'pow': Post-windowing. Missing end data are replaced by zeros, so that the summation can be extended to time N + n. (N being the number of observations.)

window = 'ppw': Pre- and post-windowing. This is used in the Yule-Walker approach.

The combinations of approaches and windowing have a variety of names. The least-squares approach with no windowing is also known as the covariance method. This is the same method that is used in the arx routine. The MATLAB default method, forward-backward with no windowing, is often called the modified covariance method. The Yule-Walker approach, least-squares plus pre- and post-windowing, is also known as the correlation method.

ar only handles scalar time series. For multivariate series, use arx.

See auxvar for an explanation of the input arguments maxsize and T.

Examples

Compare the spectral estimates of Burg's method with those found from the forward-backward nonwindowed method, given a sinusoid in noise signal:

    y = sin([1:300]') + 0.5*randn(300,1);
    thb = ar(y,4,'burg');
    thfb = ar(y,4);
    sgb = th2ff(thb);
    sfb = th2ff(thfb);
    bodeplot([sgb sfb])
    

See Also

auxvar, arx, etfe, ivar, spa, theta

References

Marple, Jr., S. L. Digital Spectral Analysis with Applications, Prentice Hall, Englewood Cliffs, 1987, Chapter 8.

20:14 | 评论 (0)

function [th,ref]=ar(data,n,approach,win,maxsize,T)
%AR   Computes AR-models of signals using various approaches.
%   Model = AR(Y,N)  or  TH = AR(Y,N,Approach)  or TH = AR(Y,N,Approach,Win)
%
%   Model: returned as an IDPOLY model with the estimated parameters of the
%          AR-model, see HELP IDPOLY.
%
%   Y: The time series to be modelled, an IDDATA object. (See HELP IDDATA)
%   N: The order of the AR-model
%   Approach: The method used, one of the following ones:
%      'fb' : The forward-backward approach (default)
%      'ls' : The Least Squares method
%      'yw' : The Yule-Walker method
%      'burg': Burg's method
%      'gl' : A geometric lattice method
%      For the two latter ones, reflection coefficients and loss functions
%      are returned in REFL by [Model,REFL]=AR(y,n,approach)
%      If any of these arguments end with a zero (like 'burg0'), the
%      computation of the covariance is suppressed.
%   Win : Windows employed, one of the following ones:
%      'now' : No windowing (default, except when approach='yw')
%      'prw' : Prewindowing
%      'pow' : Postwindowing
%      'ppw' : pre- and post-windowing
%
%   Model = AR(Y,N,Approach,Win,Maxsize,T) gives access to Maxsize, see
%   IDPROPS ALGORITHM.
%   See also IVAR and for the multi-output case ARX and N4SID.

%   L. Ljung 10-7-87
%   Copyright 1986-2001 The MathWorks, Inc.
%   $Revision: 1.11 $  $Date: 2001/04/06 14:22:24 $


if nargin <2
   disp('Usage: TH = AR(Y,ORDER)')
   disp('       TH = AR(Y,ORDER,APPROACH,WINDOW,MAXSIZE,T)')
   disp('       APPROCH is one of ''fb'', ''ls'', ''yw'', ''burg'', ''gl''.')
   disp('       WINDOW is one of ''now'', ''prw'', ''pow'', ''ppw''.')
   return
end
ref = [];
% Some initial tests on the input arguments

if nargin<6,T=[];end
if nargin<5,maxsize=[];end
if nargin<4,win=[];end
if nargin<3,approach=[];end
if isempty(T),T=1;end,if T<0,T=1;end
if ~isa(data,'iddata')
   data = iddata(data,[],T);
end
[yor,Ne,ny,nu,T,Name,Ncaps,errflag]=idprep(data,0,inputname(1));
error(errflag)
y = yor; % Keep the original y for later computatation of e
if ny>1
   error('Only scalar time series can be handled. Use ARX for multivariate signals.')
end
if nu>0
   error('This routine is for scalar time series only. Use ARX for the case with input.')
end
maxsdef=idmsize(max(Ncaps),n);
if isempty(maxsize), maxsize=maxsdef;end,
if maxsize<0,maxsize=maxsdef;end
if isempty(win);win='now';end ,
if win<0,win='now';end
if isempty(approach),approach='fb';end,
if approach<0,approach='fb';end
pt=1; %pt=1 means that covariances should be computed
if approach(length(approach))=='0',pt=0;end
if length(approach)>1,
   appr=approach(1:2);
else
   appr=[approach ' '];
end
ap=[appr;appr;appr;appr;appr;appr;appr;appr;appr;appr];
ss=(ap==['fb';'FB';'yw';'YW';'ls';'LS';'bu';'BU';'gl';'GL']);
if sum(ss(:,1).*ss(:,2))==0,
   error(sprintf(['The input argument APPROACH must be one of the'...
         ' following (within quotes):\n ''fb'', ''ls'',''yw'', ''burg'', ''gl''']))
end
ap=[win;win;win;win]; ss=(ap==['prw';'pow';'ppw';'now']);
if sum((ss(:,1).*ss(:,2)).*ss(:,3))==0,
   error(sprintf(['The input argument WIN must be one of the following'...
         ' (within quotes): \n''now'',     ''prw'', ''pow'', ''ppw''']))
end
if appr=='yw' | appr=='YW',
   win='ppw';
end
if win=='prw' | win=='ppw',
   for kexp = 1:Ne
      y{kexp}=[zeros(n,1);y{kexp}];
   end
   Ncaps = Ncaps+n;
end
if win=='pow' | win=='ppw',
   for kexp =1:Ne
      y{kexp} = [y{kexp};zeros(n,1)];
   end
   Ncaps = Ncaps+n;
  
end
th = idpoly;

% First the lattice based algorithms

if appr=='bu' | appr=='BU' | appr=='gl' | appr=='GL'
   ef=y;eb=y;
   [ss,l]=sumcell(y,1,Ncaps);rho(1)=ss/l;
   for p=1:n
      nef = sumcell(ef,p+1,Ncaps); 
      neb=sumcell(eb,p,Ncaps-1);
      if appr=='gl' | appr=='GL',
         den=sqrt(nef*neb);
      end
      if appr=='bu' | appr=='BU',
         den=(nef+neb)/2;
      end
      ss=0;
      for kexp=1:Ne
         ss=ss+(-eb{kexp}(p:Ncaps(kexp)-1)'*ef{kexp}(p+1:Ncaps(kexp)));
      end
     
      r(p)=ss/den;
      A(p)=r(p);
      A(1:p-1)=A(1:p-1)+r(p)*conj(A(p-1:-1:1));
      rho(p+1)=rho(p)*(1-r(p)*r(p));
      efold=ef;
      for kexp = 1:Ne
         Ncap = Ncaps(kexp);
         ef{kexp}(2:Ncap)=ef{kexp}(2:Ncap)+r(p)*eb{kexp}(1:Ncap-1);
         eb{kexp}(2:Ncap)=eb{kexp}(1:Ncap-1)+conj(r(p))*efold{kexp}(2:Ncap);
      end
   end
   th = pvset(th,'a',[1 A]);
   ref=[0 r;rho];
   if pt==0, return,end
end
% Now compute the regression matrix
nmax=n;
M=floor(maxsize/n);
R1 = zeros(0,n+1);
fb=((appr=='fb') | (appr=='FB'));
if fb,
   R2 = zeros(0,n+1);
   for kexp = 1:Ne
      yb{kexp}=conj(y{kexp}(Ncaps(kexp):-1:1));
   end
end
for kexp = 1:Ne
   Ncap = Ncaps(kexp);
   yy = y{kexp};
   for k=nmax:M:Ncap-1
      jj=(k+1:min(Ncap,k+M));
      phi=zeros(length(jj),n);
      if fb,
         phib=zeros(length(jj),n);
      end
      for k=1:n,
         phi(:,k)=-yy(jj-k);
      end
      if fb,
         for k=1:n,
            phib(:,k)=-yb{kexp}(jj-k);
         end
      end
      if fb,
         R2 = triu(qr([R2;[[phi;phib],[yy(jj);yb{kexp}(jj)]]]));
         [nRr,nRc] =size(R2);
         R2 = R2(1:min(nRr,nRc),:);
      end
      R1 = triu(qr([R1;[phi,yy(jj)]]));
      [nRr,nRc] =size(R1);
      R1 = R1(1:min(nRr,nRc),:);
      %end
   end
end
P = pinv(R1(1:n,1:n));

if appr~='bu' & appr~='gl'
   if ~fb
      t = P * R1(1:n,n+1);%R\F;
   else
      t = pinv(R2(1:n,1:n)) * R2(1:n,n+1);
   end
   th = pvset(th,'a',[1 t.']);
end
P = P*P';

e = pe(yor,th);
lam=e'*e/(length(e)-n);
es = pvget(th,'EstimationInfo');
es.FPE = lam*(1+n/sum(Ncaps))/(1-n/sum(Ncaps));
es.Status = 'Estimated Model (AR)';
es.Method = 'AR';
es.DataLength = sum(Ncaps);
es.LossFcn = lam;
es.DataTs = T;
es.DataInterSample = 'Not Applicable';
idm=pvget(th,'idmodel');
idm=pvset(idm,'Ts',T,'CovarianceMatrix',lam*P,'NoiseVariance',lam,...
   'EstimationInfo',es,...
   'OutputName',pvget(data,'OutputName'),'OutputUnit',...
   pvget(data,'OutputUnit'));
th = pvset(th,'idmodel',idm);
th = timemark(th);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [s,ln] = sumcell(y,p,N)
ln = 0;
s = 0;
for kexp = 1:length(y)
   y1 = y{kexp};
   s=s+y1(p:N(kexp))'*y1(p:N(kexp));
   ln = ln + length(y1);
end

20:01 | 评论 (0)

 
rarx

Estimate recursively the parameters of an ARX or AR model

Syntax

  • thm = rarx(z,nn,adm,adg)
    [thm,yhat,P,phi] = rarx(z,nn,adm,adg,th0,P0,phi0)
    

Description

The parameters of the ARX model structure

are estimated using different variants of the recursive least squares method.

The input-output data is contained in z, which is either an iddata object or a matrix z = [y u] where y and u are column vectors. nn is given as

  • nn = [na nb nk]
    

where na and nb are the orders of the ARX model, and nk is the delay. Specifically,

See (Equation 3-13) in Tutorial, for more information.

If z is a time series y and nn = na, rarx estimates the parameters of an AR model for y.

Models with several inputs

are handled by allowing u to contain each input as a column vector,

  • u = [u1 ... unu]
    

and by allowing nb and nk to be row vectors defining the orders and delays associated with each input.

Only single-output models are handled by rarx.

The estimated parameters are returned in the matrix thm. The kth row of thm contains the parameters associated with time k; that is, they are based on the data in the rows up to and including row k in z. Each row of thm contains the estimated parameters in the following order.

  • thm(k,:) = [a1,a2,...,ana,b1,...,bnb]
    

In the case of a multiinput model, all the b parameters associated with input number 1 are given first, and then all the b parameters associated with input number 2, and so on.

yhat is the predicted value of the output, according to the current model; that is, row k of yhat contains the predicted value of y(k) based on all past data.

The actual algorithm is selected with the two arguments adg and adm. These are described in Recursive Parameter Estimation. The options are as follows:

  • With adm = 'ff' and adg = lam the forgetting factor algorithm (Equation 3-65abd) and (Equation 3-67) is obtained with forgetting factor = lam. This is what is often referred to as recursive least squares (RLS). In this case the matrix P has the following interpretation: /2 * P is approximately equal to the covariance matrix of the estimated parameters. Here is the variance of the innovations (the true prediction errors e(t) in (Equation 3-62).
  • With adm ='ug' and adg = gam, the unnormalized gradient algorithm (Equation 3-65abc) and (Equation 3-68) is obtained with gain gamma = gam. This algorithm is commonly known as normalized least mean squares (LMS).
  • Similarly, adm ='ng' and adg = gam give the normalized gradient or normalized least mean squares (NLMS) algorithm (Equation 3-65abc) and (Equation 3-69). In these cases, P is not defined or applicable.
  • With adm ='kf' and adg = R1, the Kalman filter based algorithm (Equation 3-65) is obtained with R2= 1 and R1 = R1. If the variance of the innovations e(t) is not unity but ; then * P is the covariance matrix of the parameter estimates, while = R1 / is the covariance matrix of the parameter changes in (Equation 3-63).
  • The input argument th0 contains the initial value of the parameters, a row vector consistent with the rows of thm. The default value of th0 is all zeros.
  • The arguments P0 and P are the initial and final values, respectively, of the scaled covariance matrix of the parameters. The default value of P0 is 104 times the identity matrix.
  • The arguments phi0 and phi contain initial and final values, respectively, of the data vector.

Then, if

  • z = [y(1),u(1); ... ;y(N),u(N)]
    

you have phi0 = and phi = . The default value of phi0 is all zeros. For online use of rarx, use phi0, th0, and P0 as the previous outputs phi, thm (last row), and P.

Note that the function requires that the delay nk be larger than 0. If you want nk = 0, shift the input sequence appropriately and use nk = 1. See nkshift.

Examples

Adaptive noise canceling: The signal y contains a component that has its origin in a known signal r. Remove this component by estimating, recursively, the system that relates r to y using a sixth-order FIR model together with the NLMS algorithm.

  • z = [y r];
    [thm,noise] = rarx(z,[0 6 1],'ng',0.1);
    % noise is the adaptive estimate of the noise
    % component of y
    plot(y-noise)
    

If the above application is a true online one, so that you want to plot the best estimate of the signal y - noise at the same time as the data y and u become available, proceed as follows.

  • phi = zeros(6,1); P=1000*eye(6);
    th = zeros(1,6); axis([0 100 -2 2]);
    plot(0,0,'*'), hold on
    % The loop:
    while ~abort
    [y,r,abort] = readAD(time);
    [th,ns,P,phi] = rarx([y r],'ff',0.98,th,P,phi);
    plot(time,y-ns,'*')
    time = time +Dt
    end
    

This example uses a forgetting factor algorithm with a forgetting factor of 0.98. readAD represents an M-file that reads the value of an A/D converter at the indicated time instant.


19:46 | 评论 (0)

2005年3月8日

应该如何完整地理解“数据挖掘”?“数据挖掘”的理论基础是什么?

bi1.gif

图1表示的是:
现实中人类的社会和经济活动,总可以用数据(数字或者符号)来描述和记录;经过对这些数据的分析,就会产生信息(知识);用这些信息(知识)来指导实践,就可以做出相应的决策;这些决策又引发了新一轮的社会和经济活动。循环往复,生息不止。

那么数据仓库(DW)、商务智能(BI)和知识发现(KDD)又分别是什么呢?

bi2.gif

图2中的虚线部分有两个含义。
第一是因为上述概念诞生初始,在DM的价值链上还是有所侧重的,数据仓库重在“建仓”,数据挖掘和知识发现重在“加工”,商务智能重在“应用”。虚线表示曾经拥有。
第二,如果不这样画,理论界、应用厂商会不答应,因为不管原来是做数据库的(IBM,Sybase,NCR,Oracle,Microsoft,etc),还是做统计分析软件的(SAS,Statistica,SPSS,etc),甚至是做报表工具的(BO,Brio,Cognos,etc),都拼命在延伸自己的价值链。

所以,干脆叫数据管理(也就是DM)好了,一统天下。
至于ERP,CRM等,说白了,还是个DM,只不过限制在了具体的社会经济活动上罢了。

六种挖掘武器

数据仓库的建设数据挖掘建模是DM价值链上的两大技术要点。数据挖掘从狭义的角度讲,只管从数据到知识这一段。作为一个数据挖掘人员的起码要求,就是充分掌握各种挖掘工具的性能、局限、应用条件等。

一般说来,数据挖掘有如下六件武器:描述统计、关联和相关、分类和聚类、预测、优化、结构方程模型。简要说明如下:

(1)描述统计(Descriptive statistics)

  描述统计是数据挖掘的入门兵器,直观、简单,高手常常用来摘叶飞花。描述统计包括平均数、中位数、众数、分位数、百分比、求和等。描述统计经常和统计图(如直方图,条形图,线图,散点图,茎叶图等)配合使用。目前应用最为广泛的OLAP,究其本质就是针对不同的数据群在做描述统计。

  描述统计的应用十分广泛:比如当月公司利润总额,比较不同区域的销售量等等。

(2)关联和相关(Association and Correlation)

  关联规则从本质上讲是条件概率:A发生时,B同时也出现的概率是多大?只要B离50%较远,就是有意义的。

  关联规则的一个典型的现代应用是“啤酒加尿布”。在应用关联规则时还需要多考虑的一个问题是:这条规则遵循者的数量怎样?通俗的说就是,如果超市的尿布只有一个人买(假设),但是这人每次买尿布时,一定会买啤酒。尽管这条规则很可信(100%),但是意义却不大。

  在应用关联规则时,要注意两点:关联不一定是因果,关联是有方向的。

  相关也是考虑两个事物之间的关系,典型的度量方法有Pearson相关系数和Kendall相关系数。

(3)分类和聚类

  分类和聚类是最常用的技术。

  一般说来,分类的方法有三种:回归、决策树、神经网络。

  聚类和分类的最大区别就是,分类是有监督的,聚类是无监督的。什么叫监督呢?就是标准,或者说有目标变量。聚类是没有目标的。“物以类聚,人以群分”。聚类是不知道每一类有什么特征的,聚后再总结,再发现共同点。

(4)预测

  预测的常用方法是时间序列,回归也可以用来预测。

  时间序列常用的方法有:ARMA,指数平滑和趋势外推等。时间序列的最大特点就是充分挖掘事物本身随时间的规律。因为,任何事物,比如企业销售额,在没有特别的外在因素影响下,总是有规可循的。

(5)优化

  优化本是运筹学中的一个概念,主要解决的一个问题是在各种约束条件下,如何合理配置资源,使目标要素最大(小)化。

(6)结构方程模型

  不同于以上应用,结构方程模型重点在于如何揭示事物内部的结构和相互作用的原理。比如,如何度量客户满意度?客户满意度与客户期望,产品,价格,服务,投诉处理和客户忠诚是什么关系?是怎么作用的?只有搞清楚了这些关系,才可能不断提高客户满意度和客户忠诚度。结构方程模型就起到这种作用。

  数据如何完整呈现?

  从应用的角度来说,DM不单是数据的组织或者呈现,也不仅是数据分析和统计建模,而是一个从理解业务需求、寻求解决方案到接受实践检验的完整的过程(Process)。

  业界有许多指导项目实践的方法论,大同小异,以CRISP-DM为例。

  CRISP-DM分成如下六个阶段:商业理解(Business Understanding),数据理解(Data Understanding),数据准备(Data Preparation),建模(Modeling),评估(Evaluation)和发布(Deployment)。

  打个比方,譬如炒菜待客,商业理解就是了解顾客的口味;数据理解则是熟悉每一样原料可以炒什么菜;数据准备则是根据顾客的口味和厨师的经验,配菜,择菜和洗菜;而建模就全靠大厨炒菜的水平;到了评估阶段就是顾客品尝;如果满意则到了最后的阶段,作为招牌菜发布推广。DM的过程就是客户空腹而来,满意而归的完整的服务过程。

  一个成功的DM项目,不仅可以面向操作层面,加强自动化;还可以面向决策层,优化决策。

实施计划细部署

  根据NCR数据挖掘方法论,NCR将数据挖掘项目的实施划分为五个阶段,包括定义业务问题范围、选取和抽样、探索型数据分析、建模和实施。
bi3.gif


1.定义业务问题范围:在这个初始阶段,需明确阐述项目目标和客户业务需求,目的是明确数据挖掘问题。任务包括:明确业务目标;定义响应变量;项目计划必要的调整。

2.选取和抽样:在这个阶段,建模小组要搜寻并检查客户数据,作为以后分析挖掘时所用变量的简略一览表。同时从数据总体中抽样生成训练集、验证集和测试集。任务包括:数据来源、数据映射、准备数据评估、数据的必要聚合、数据抽样。

3.探索型数据分析(数据探索):在这个阶段中,建模小组核查目前的数据源,并且努力去发现在每个待选的自变量和目标变量之间是否有任何关系。通常,数值分析是全面理解数据的第一步,跟着进行的统计分析是为了得到有关数据分布的更好知识。在数据挖掘过程中这是一个关键的阶段。

任务包括:数据质量检查;数据的必要整理;通过图形化呈现工具和其他的统计方法理解数据;分析待选自变量和目标变量之间的关系;数据转换以辅助数据的分析;数据派生为建立模型做准备;整理和呈现数据探索的发现。

4.建模:在这个阶段,建模小组建立并确认挖掘模型。建模小组通常尝试不同的建模技术或结合不同数据集,并衡量模型性能的不同,选出最好的。来自最终用户的业务领域知识在这个阶段是非常关键的,因为他们可以评价和确认模型的结果、理解发现并付诸实际行动。

任务包括:为模型的训练和验证准备数据集;在模型的建立中使用适当的建模技术;针对不同的建模技术测试模型性能;必要地精炼挖掘模型;和主题专家一起检验挖掘模型;记录挖掘模型和结果。

5.实施:在这个阶段,需要用模型的结果来帮助做出业务决定、战略设计和战术实施。收集实施结果反馈,为模型的退化进行侦测,更进一步改善模型性能。在利用模型的结果时,复杂的展示层界面通常是不必要的。数据挖掘过程的自动化是CRM(客户关系管理)的解决方案中不可或缺的一部分,因此是与典型的数据挖掘分开实施的项目。

  任务包括:客户模型评分和存储模型结果,性能跟踪和进一步整合其它业务系统;数据挖掘过程的自动化是单独的项目;模型结果的现场测试是单独的项目。

  数据挖掘项目的项目计划会涵盖以上的各个阶段,但完成整个项目所需的时间则要根据多个关键因素而定,如挖掘专题的复杂程度、客户对挖掘结果性能评定的期望、可用的数据完备性及数据质量、项目人力资源是否充足以及人员能力等等。如表1是为期二个月(40个工作日)的数据挖掘项目计划,可以作为其他挖掘项目制定计划的参考基准。

  从表1的项目计划可以看出,数据挖掘项目需要参与的成员或角色有:数据挖掘专家、PDM(产品数据管理)建模人员、ETL开发人员和应用开发人员。同时需要熟悉业务的人员以及熟悉数据仓库PDM的人员予以支持。(张磊博士)

21:15 | 评论 (0)

2005年3月5日

 有三十多个工具箱大致可分为两类:功能型工具箱和领域型工具箱。
功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以
及与硬件实时交互功能,能用于多种学科。而领域型工具箱是专业性很强的。如控制工具
箱(Control Toolbox)、信号处理工具箱(Signal Processing Toolbox)等。下面,将MATL
AB工具箱内所包含的主要内容做简要介绍:
  
1)通讯工具箱(Communication Toolbox)。
    令提供100多个函数和150多个SIMULINK模块用于通讯系统的仿真和分析
    ——信号编码
    ——调制解调
    ——滤波器和均衡器设计
    ——通道模型
    ——同步
    可由结构图直接生成可应用的C语言源代码。
2)控制系统工具箱(Control System Toolbox)。
  鲁连续系统设计和离散系统设计
  * 状态空间和传递函数
  * 模型转换
  * 频域响应:Bode图、Nyquist图、Nichols图
  * 时域响应:冲击响应、阶跃响应、斜波响应等
  * 根轨迹、极点配置、LQG
3)财政金融工具箱(FinancialTooLbox)。
  * 成本、利润分析,市场灵敏度分析
  * 业务量分析及优化
  * 偏差分析
  * 资金流量估算
  * 财务报表
4)频率域系统辨识工具箱(Frequency Domain System ldentification Toolbox
  * 辨识具有未知延迟的连续和离散系统
  * 计算幅值/相位、零点/极点的置信区间
  * 设计周期激励信号、最小峰值、最优能量诺等
5)模糊逻辑工具箱(Fuzzy Logic Toolbox)。
  * 友好的交互设计界面
  * 自适应神经—模糊学习、聚类以及Sugeno推理
  * 支持SIMULINK动态仿真
  * 可生成C语言源代码用于实时应用
(6)高阶谱分析工具箱(Higher—Order SpectralAnalysis Toolbox
   * 高阶谱估计
   * 信号中非线性特征的检测和刻画
   * 延时估计
   * 幅值和相位重构
   * 阵列信号处理
   * 谐波重构
(7)图像处理工具箱(Image Processing Toolbox)。
   * 二维滤波器设计和滤波
   * 图像恢复增强
   * 色彩、集合及形态操作
   * 二维变换
   * 图像分析和统计
(8)线性矩阵不等式控制工具箱(LMI Control Toolbox)。
    * LMI的基本用途
    * 基于GUI的LMI编辑器
    * LMI问题的有效解法
    * LMI问题解决方案
(9)模型预测控制工具箱(ModelPredictive Control Toolbox
    * 建模、辨识及验证
    * 支持MISO模型和MIMO模型
    * 阶跃响应和状态空间模型
  
(10)u分析与综合工具箱(u-Analysis and Synthesis Toolbox)
    * u分析与综合
    * H2和H无穷大最优综合
    * 模型降阶
    * 连续和离散系统
    * u分析与综合理论
  
(11)神经网络工具箱(Neursl Network Toolbox)。
    * BP,Hopfield,Kohonen、自组织、径向基函数等网络
    * 竞争、线性、Sigmoidal等传递函数
    * 前馈、递归等网络结构
    * 性能分析及应用
(12)优化工具箱(Optimization Toolbox)。
    * 线性规划和二次规划
    * 求函数的最大值和最小位
    * 多目标优化
    * 约束条件下的优化
    * 非线性方程求解
(13)偏微分方程工具箱(Partial DifferentialEquation Toolbox)。
    * 二维偏微分方程的图形处理
    * 几何表示
    * 自适应曲面绘制,
    * 有限元方法
(14)鲁棒控制工具箱(Robust Control Toolbox)。
    * LQG/LTR最优综合
    * H2和H无穷大最优综合
    * 奇异值模型降阶
    * 谱分解和建模
(15)信号处理工具箱(signal Processing Toolbox)
    * 数字和模拟滤波器设计、应用及仿真
    * 谱分析和估计
    * FFT,DCT等变换
    * 参数化模型
(16)样条工具箱(SPline Toolbox)。
    * 分段多项式和B样条
    * 样条的构造
    * 曲线拟合及平滑
    * 函数微分、积分
(17)统计工具箱(Statistics Toolbox)。
    * 概率分布和随机数生成
    * 多变量分析
    * 回归分析
    * 主元分析
    * 假设检验
(18)符号数学工具箱(Symbolic Math Toolbox)。
    * 符号表达式和符号矩阵的创建
    * 符号微积分、线性代数、方程求解
    * 因式分解、展开和简化
    * 符号函数的二维图形
    * 图形化函数计算器
(19)系统辨识工具箱(SystEm Identification Toolbox)
    * 状态空间和传递函数模型
    * 模型验证
    * MA,AR,ARMA等
    * 基于模型的信号处理
    * 谱分析
(20)小波工具箱(Wavelet Toolbox)。
    * 基于小波的分析和综合
    * 图形界面和命令行接口
    * 连续和离散小波变换及小波包
    * 一维、二维小波
    * 自适应去噪和压缩

9:27 | 评论 (0)

2005年3月3日

       在生产和科学研究中,对某一个或一组变量x(t)进行观察测量,将在一系列时刻t1, t2, , tn  (t为自变量且t1<t2<< tn ) 所得到的离散数字组成序列集合x(t1), x(t2), ,  x(tn),我们称之为时间序列,这种有时间意义的序列也称为动态数据。这样的动态数据在自然、经济及社会等领域都是很常见的。如在一定生态条件下,动植物种群数量逐月或逐年的消长过程、某证券交易所每天的收盘指数、每个月的GNP、失业人数或物价指数等等。

    时间序列分析是根据系统观测得到的时间序列数据,通过曲线拟合和参数估计来建立数学模型的理论和方法。它一般采用曲线拟合和参数估计方法(如非线性最小二乘法)进行。时间序列分析常用在国民经济宏观控制、区域综合发展规划、企业经营管理、市场潜量预测、气象预报、水文预报、地震前兆预报、农作物病虫灾害预报、环境污染控制、生态平衡、天文学和海洋学等方面。

时间序列建模基本步骤是:①用观测、调查、统计、抽样等方法取得被观测系统时间序列动态数据。②根据动态数据作相关图,进行相关分析,求自相关函数。相关图能显示出变化的趋势和周期,并能发现跳点和拐点。跳点是指与其他数据不一致的观测值。如果跳点是正确的观测值,在建模时应考虑进去,如果是反常现象,则应把跳点调整到期望值。拐点则是指时间序列从上升趋势突然变为下降趋势的点。如果存在拐点,则在建模时必须用不同的模型去分段拟合该时间序列,例如采用门限回归模型。③辨识合适的随机模型,进行曲线拟合,即用通用随机模型去拟合时间序列的观测数据。对于短的或简单的时间序列,可用趋势模型和季节模型加上误差来进行拟合。对于平稳时间序列,可用通用ARMA模型(自回归滑动平均模型)及其特殊情况的自回归模型、滑动平均模型或组合-ARMA模型等来进行拟合。当观测值多于50个时一般都采用ARMA模型。对于非平稳时间序列则要先将观测到的时间序列进行差分运算,化为平稳时间序列,再用适当模型去拟合这个差分序列。

时间序列分析主要用于:①系统描述。根据对系统进行观测得到的时间序列数据,用曲线拟合方法对系统进行客观的描述。②系统分析。当观测值取自两个以上变量时,可用一个时间序列中的变化去说明另一个时间序列中的变化,从而深入了解给定时间序列产生的机理。③预测未来。一般用ARMA模型拟合时间序列,预测该时间序列未来值。④决策和控制。根据时间序列模型可调整输入变量使系统发展过程保持在目标值上,即预测到过程要偏离目标时便可进行必要的控制。

       DPS数据处理系统提供给用户一套较完整的时间序列建模分析、进行预测预报的工具,包括平稳无趋势时间序列分析预测、有趋势的时间序列预测、具季节性周期的时间序列预测以及差分自回归滑动平均(ARIMA)建模分析、预测等时间序列分析和建模技术。

16:23 | 评论 (0)

2005年3月2日

要向 Microsoft Excel 的图表中添加趋势线,您可以选择六种不同的趋势预测/回归分析类型。数据的类型决定了应该使用的趋势线类型。如何向图表中添加趋势线

趋势线的可靠性   当趋势线的 R 平方值等于或接近 1 时其可靠性最高。用趋势线拟合数据时,Excel 会自动计算其 R 平方值。如果必要,可在图表中显示此值

23:29 | 评论 (0)

标准偏差

公式

式中:

s = 系列序号

I = 数据系列 s 中的数据点序号

m = 图表中 Y 点的系列序号

n = 每个数据系列中的数据点个数

yis = 系列 s 中第 i 个数值点的数值

ny = 所有系列中数值点的总数

M = 算术平均值

标准误差

公式

式中:

s = 系列序号

I = 数据系列 s 中的数据点序号

m = 图表中 Y 点的系列序号

n = 每个数据系列中的数据点个数

yis = 系列 s 中第 i 个数值点的数值

ny = 所有系列中数值点的总数

R-平方值

公式

注意   通过趋势线显示的 R-平方值并非为调整过的 R-平方值。对于对数、乘冥和指数趋势线,Microsoft Excel 使用了变型的回归模型。

11:16 | 评论 (0)

Copyright Joyce.