资源描述
毕 业 论 文
农产品价格预测方法及其Web预测服务设计
洪洒
200630560306
指导教师
杨振刚 讲师
学院名称
信息学院
专业名称
信息管理与信息系统
论文提交日期
2010年5月
论文答辩日期
年月
答辩委员会主席 ____________
评 阅 人 _________
摘 要
农产品价格波动主要是市场经济机制下的供应和需求等方面引起的,能够准确的预测农产品价格,对于政府相关部门控制价格,稳定农产品市场让其健康发展有着重要的意义。在农产品价格预测上众多学者做过研究,但研究成果很少普及用到网络系统上,本次研究总结和利用前人研究成果,使用ARIMA模型来预测农产品价格未来的走势,并开发个Web系统。
本文首先分析与比较了单指数平滑、双指数平滑、自回归单整移动平均法、季节自回归单整移动平均法这四种农产品价格预测方法,发现季节自回归移动平均法最能够准确预测未来农产品价格走势。在Web系统开发方面,首先进行需求分析、系统设计,然后编写与调试各功能模块,最后展示网站系统实的基本功能。系统最终能够提供农产品价格预测服务,并为第三方软件提供一个访问接口。
系统支持技术选择JSP技术和Struts框架技术。 JSP同样继承了Java技术简单、便利、面向对象、跨平台和安全可靠的优点,比起其他服务器脚本语言,JSP更加简单、迅速、和有力。Struts是典型的MVC结构实现框架,它分离软件系统模型、视图、控制器三个部分,提高软件可维护性。
关键词:农产品 价格预测 指数平滑 ARIMA JSP
目 录
1 绪论 1
1.1 研究背景 1
1.2 国内外研究现状 1
1.2.1 预测方法进展 1
1.2.2 计算机应用领域 2
1.3 研究内容与方法 3
2 预测方法相关原理与研究分析 3
2.1 数据获取与预处理 3
2.2 时间序列分析法 3
2.3 指数平滑法 3
2.3.1 指数平滑模型的发展 4
2.3.2 指数平滑法的优点 4
2.3.3 单指数平滑法对小白菜价格的预测 4
2.3.4 双指数平滑法对小白菜价格的预测 7
2.4 ARIMA模型 8
2.4.1 建模基本程序 8
2.4.2 模型识别与估计 9
2.4.3 ARIMA模型的诊断 11
2.4.4 模型预测 12
2.4.5 模型优化 13
2.5 预测方法性能比较与分析 15
3 系统支持技术 16
3.1 B/S结构 16
3.2 JSP技术 17
3.3 框架技术 17
3.4 Struts框架中的MVC模式 18
4 系统需求分析 19
5 系统设计 20
5.1 系统总体结构设计 20
5.2 系统服务设计 21
5.2.1 农产品价格预测服务设计 21
5.2.2 第三方软件接口服务设计 21
5.3 数据库设计 22
5.4 系统详细设计 23
5.4.1 用户、管理员与系统交互 23
5.4.2 农产品价格预测服务详细设计 24
6 系统实现 27
6.1 农产品价格预测实现 27
6.2 农产品行情查询实现 29
6.3 添加修改价格信息的实现 30
7 总结与展望 32
7.1 总结 32
7.2 展望 32
致谢 33
参考文献 34
英文摘要 35
附录 36
华南农业大学本科专业毕业论文成绩评定表 45
1 绪论
1.1 研究背景
近年来,人们对大宗农产品的需求呈现大量化、多样化、优质化和动态化的趋势,与农产品生产规模小,生产有季节性、区域性、分散性等特点产生矛盾。传统农产品流通领域存在中介环节多、信息不对称、交易成本高、流通效率低等一系列问题,难以适应新的市场发展形势,严重地阻碍了农产品市场的发展[ 1 ]。
(1)流通成本高:中国农产品流通领域中介主体过多,产销流通链过长,导致流时间长、市场效率低,农产品零售价和收购价之间差价一般在3~10倍之间,造成种差价的重要原因就是农产品的流通成本居高不下,包括运输成本、储藏成本、运营成本。
(2)流通半径小:农产品具有区域性、季节性和分散性等特点,而消费者对农品具有全年普遍性、多样性、变化性的需求,因此各种农产品需要经常在不同区域进行运输流通以满足各地消费者的需求。然而,高流通成本限制了农产品的流通半径,造成农产品在产地市场供过于求,贱价销售,而在销地市场却供不应求,价格飘升的市场分割局面。
(3)市场体系功能落后:一是市场形成价格稳定性差,中国农产品批发市场大数规模较小,地域分散,产品和信息隔离,难以形成交易集中、市场透明度高、竞争充分的市场环境,导致农产品价格波动较大,区域价格差异明显:二是市场交易方式原始,中国农产品批发市场主要采用“一对一”交易方式,交易规模小、次数多,信息搜寻难度大,市场透明度低,形成的价格不能正确地反映供求关系;三是市场信息服务差,许多批发市场的信息建设基本处于空白,信息的传递效率和共享度低,对信息的搜集、加工、处理、发布能力低下,容易造成信息的扭曲和失真。
能够准确的预测农产品价格,对于政府相关部门控制价格,稳定农产品市场让其健康发展有着重要的意义。农产品价格预测宏观上可以帮助政府管理部门调整政策方向;微观上为农民提供即时的市场信息,降低生产和经营成本,增强农民抗御市场风险的能力,促进农民增收。本文据此提出研究预测方法,对农产品价格进行预测,避免盲目经济行为,繁荣农村经济。与研究的同时,开发一个Web系统,让生产者、经营者、消费者通过系统平台了解当前行情信息和未来农产品价格走势 ,提高市场信息服务水平。
1.2 国内外研究现状
1.2.1 预测方法进展
中国科学院数学与系统科学研究院汪寿阳研究员带领的中国外贸进出口预测和国际收支预警系统研究小组应用宏观管理与政策,宏观经济学、国际金融学等学科的基础知识,并大量地使用了时间序列分析、应用概率统计、数学规划、决策分析、模拟与评估、管理信息系统与决策支持系统等学科的专门技术,在非线性预测技术、定量与定性综合集成等理论和方法上做出了一系列的创新性工作。例如:他们将先进的计量分析模型与人工神经元网络模型和主成分分析技术等相结合,运用一些数学方法解决了人工神经元网络模型预测模型中的若干技术难题,使得预测模型能够适应经济转型国家结构性变化的特征,不仅大大提高了预测精度,而且丰富了预测技术。他们将文本挖掘(Text mining)技术,传统的计量经济模型(Econometrics),人工智能技术(Intelligence,如神经网络,专家系统,模糊逻辑等)综合集成起来,提出了一个TEI@I综合集成预测方法。他们不单单是提出一个抽象的方法,而且还将此方法具体化和实用化,开发了一个基于此方法的计算机集成系统。TEI@I方法突破了过去定性与定量综合集成方法中定性分析主要由系统操作者进行的模式,而是对互联网上广泛存在的观点进行挖掘和综合,同时也体现了经济变量随经济参与者思想变化而变化的特征。他们在分析外汇波动对进出口的影响时,把微观经济分析的压力测试方法、情景分析方法等工具引进到宏观经济分析中,不仅被国外的学者评论为首创性思想,所得的到研究成果很好地解释了国际经济变动对我国经济,特别是对我国国际收支的影响,较好地支持了国际贸易政策的制订。他们运用这些新的研究方法,不仅得到一批领先性结果,而且有新的发现,如他们建立了一个汇率动态演化的一般均衡模型,推导出自愿退出固定汇率制度和被迫退出固定汇率制度的宏观经济条件[ 2 ]。
1.2.2 计算机应用领域
由中国农业科学院科技文献信息中心主持、北京理工大学和广东省农科院情报所参加共同完成的国家“十五”科技攻关计划专题——“农产品市场信息分析预测网络化平台研究”的阶段性成果“农产品市场信息分析预测网络化平台”,开发成功了我国第一个在LINUX操作系统、Web服务器APACHE和TOMCAT以及Oracle数据库管理系统环境下实现基于XML和Java以及其他Internet技术综合集成的农产品市场信息分析预测网络化平台。建立了在多种预测模型集成基础上的农产品市场信息综合预测模式,并以粮食生产为例,有效地将经济政策、价格和气象因子的影响综合于粮食生产定量化分析模型中,首次在网络环境下实现了用户远程信息分析与预测,理论和方法上有创新,这一成果具有明显的特色和较大的应用价值。制定了农产品预测基本数据XML标准词汇表,提出并实现了“一站式”农产品信息发布与交易网络化服务技术,解决了农产品信息网络化服务的技术问题,对于推动农产品信息交换与处理规范化、标准化,促进农业信息化发展,具有积极作用。据专题主持人赵瑞雪博士和张峭博士介绍,该研究成果已在广东省广州农业信息网、农业科技园区网、广东兽药饲料贸易网等多家农业网站上应用,取得了一定的社会和经济效益[2 ]。
1.3 研究内容与方法
本次研究考虑到最终预测方法在系统上的实现,对预测方法进行研究,如回归分析法中的多元回归分析发、前移回归分析法,时间序列法中的单指数平滑、双指数平滑、自回归移动平均法、季节自回归移动平均法,在经过大量实验分析后,比较得出一个最优的方案,该方案将在Web预测服务系统中实现。
在系统的实现上,使用JSP(Java Server Pages)技术与Struts框架技术,JSP是由Sun公司倡导,与多个公司共同建立的一种技术标准,它建立在Servlet之上。考虑到系统规模较小,所以只使用目前流行的开源框架Struts,Struts是个典型的MVC(Model、View、Controller)结构实现框架,使用该框架对Web系统以后的维护与升级打好基础。
2 预测方法相关原理与研究分析
2.1 数据获取与预处理
数据处理就是对每月农产品交易行情价格及其相关信息的资料进行处理的问题, 数据的获取来自“中国蔬菜网”,选取广州市白云山农产品综合批发市场每日小白菜交易价格的作为为实验数据对象。数据时间跨度从2008年1月起到2010年2月。
2.2 时间序列分析法
时间序列是指按时间顺序排列的预测数据集。在预测时,依据表示事物状态的主要变量的历史数据,用统计学方法或系统辨识的方法建立起描述事物迄今为止的变化规律的数学模型,并以此来推测未来。时向序列预测模型还可分传统时间序列预测模型与现代时间序列预测模型[3~4]。
传统时间序列预测模型有移动平均、指数平滑模型等;现代时间序列预测模型则包括ARIMA(Autoregressive Integrated Moving Average Model,自回归移动平均模型)、ARCH(Autoregressive conditional heteroskedasticity model,自回归条件异方差模型)、GARCH(Generalized ARCH,广义ARCH)等[4]。
2.3 指数平滑法
2.3.1 指数平滑模型的发展
指数平滑模型是由加拿大人C.C.霍尔特于1957年在未公开发表的报告中首次提出的,它在报告中详细的阐述了单指数平滑模型。美国人布朗在1962年的著作中详细论述了这种方法。并提出了布朗高次指数平滑模型,并将之应用于对非线形模型的预测分析。之后,美国人姆斯在1965年首先提出指数平滑能够产生最优预报的时间序列模型。接着,在70年代末期,出现了温特线性和季节性指数平滑模型,使得指数平滑模型可以将数据的季节性、趋势性因素也纳入考虑范围[ 5]。
以上这些基于时间序列的指数平滑模型的区别在于它们是否使用多个指数,是否是趋势的或者季节性改变。1985年,美国人加德纳发表了一篇专门论述指数平滑法的文章,直到今天这篇文章还起着非常重要的作用。之后的十几年,已经比较健全的指数平滑模型被推广到了需要预测科学的各个领域,发挥了非常大的作用。但是随着应用的普及,人们逐渐发现它有以下三个问题很难解决[5]:
(l)平滑初值要确定一个平滑初值;
(2)静态平滑参数静态参数很难适应时间序列自身变化;
(3)平滑参数Alpha值不确定,它一般都是凭借经验或多次试验得到的,这样确定的值很难达到最佳值。
2.3.2 指数平滑法的优点
指数平滑模型具有其它一些算法和模型所不能达到的优势,因而使对指数平滑的研究引起了人们广泛的重视,并且在实际生活中获得了非常普遍的应用。指数平滑法有如下几个优点[5]:
(1)操作指数平滑法操作简易,成本低廉。公式简单明了,输入数据简单,在普通的计算机上即可完成操作。
(2)使用范围和性能适应性强,指数平滑法可以说适用于几乎所有的以时间序列为基础的预测中,并不仅仅在经济预测上,还可以用于自然科学,军事等各个方面。
(3)数据处理的方法利用全部历史数据和相关信息。遵循“厚近薄远”的规则加权、修匀数据。使得数据模型具有抵御和减弱异常数据影响的功能,并使时间序列包含的历史规律显著的体现出来。这是指数平滑最显著的特点。
(4)数据的需求和处理量可以节省很多数据和数据处理时间,指数平滑预测只要有上期实际数据和预测值就可以计算下期的预测值。
2.3.3 单指数平滑法对小白菜价格的预测
本文使用的数据是2008年1月份至2009年12月份“广州白云山农产品综合批发市场”小白菜的批发价格,共计120条记录,每个月份5个记录。画出这两年的小白菜价格折线图,如图1所示。
图1 2008年至2009年小白菜价格
横坐标自左向右表示日期序列,从2008年1月1日起,序列每递增5,表示时间向后推移一个月份。纵坐标表示小白菜批发价格,单位为元/kg。从大体上观察,可以发现08年价格波动比较剧烈,横坐标为34的位置,也就是2008年的7月份,达到这两年小白菜价格的最高点。
图2 小白菜预测分析图
由于我们主要关心农产品价格现状,对2009年的记录进行趋势分析,使用Minitab软件的“趋势分析”功能,得趋势方程:
Yt = 1.025 + 0.0380×t - 0.000277×t2
如图2所示,红色线为2009年“趋势曲线”,不难看出,2009年的小白菜价格在波动中有上升的趋势。
现在使用单指数平滑法对价格进行预测[5~6],首先用软件SPSS对数据进行分析, Alpha值从0开始,步长0.01,得出的平均方差最小的最优Alpha值为0.95。同样可以使用Minitab软件的单指数平滑功能来分析,得到的Alpha值为0.95167,保存统计分析后得到的拟合数据,用Excel画图折线图。如图2-3 是2009年小白菜实际价格与预测价格的单指数平滑拟合图,蓝色曲线是实际价格,红色曲线是预测价格,黄色曲线是方差,可以看出预测结果与实际价格比较吻合,用单指数平滑法对小白菜价格的预测有一定的可行性。
图3 单指数平滑拟合图
以上步骤还只是预测结果与历史数据拟合,还不能做到真正的预测,现在使用指数平滑法对未来一个月的小白菜价格进行预测,使用Minilab软件单指数平滑统计功能,向后预测5个时间点的价格(对应2010年1月5个记录点小白菜价格),Alpha值为0.95,分析预测结果如图4,青色线(预测价格上限)和黄色线(预测价格下限)所包含的区间是95%致信度下,小白菜可能出现的价格,红色线(预测价格)为未来一个月份小白菜预测价格,这段时间预测结果都为2.58元/kg,基本上和未来的实际价格没有大的偏差。
图4 单指数平滑法预测
2.3.4 双指数平滑法对小白菜价格的预测
使用Minilab对数据进行分析,关于Alpha和Gamma的取值,选“最优综合”的分析的方法,其中Alpha表示水平上的影响,Gamma代表趋势。分析得出的平均方差最小的最优Alpha值为1.04,Gamma值为0.03,图5是2009年小白菜实际价格与预测价格的双指数平滑拟合图,可以看出预测结果与实际价格比较吻合。
图5 双指数平滑法拟合图
现在使用双数平滑法对小白菜价格进行预测[3,7],首先用Minilab软件单指数平滑统计功能,向后预测5个时间点的价格(对应2010年1月5个记录点小白菜价格),Alpha值为1.04,Gamma值为0.03,分析预测结果如图6所示。
图6 双指数平滑法预测
青色线(预测价格上限)和黄色线(预测价格下限)所包含的区间是95%致信度下,小白菜可能出现的价格,红色线(预测价格)为未来一个月份小白菜预测价格,预测结果中表现出未来价格有上升的趋势,并且基本上和未来的实际价格没有大的偏差,双指数平滑预测比单指数平滑预测效果稍好。
2.4 ARIMA模型
博克斯与詹金斯所著的《时间序列分析:预测与控制》提出了新一代的预测方法———ARIMA,这种被称为博克斯- 詹金斯(Box-Jenkins)方法论的预测方法,在“让数据自己说话”的哲理的指引下,着重于分析经济时间序列本身的概率或随机性质,而不在意于构造单一方程抑或联立方程模型[8~14]。ARIMA方法利用单个时间序列所表现出的规律性建立模型加以模拟,并且进行预测,对于短期预测精度比较高,但是长期预测期则偏差较大。因此多用于对时间序列数据进行1~3期的外推预测。
ARIMA是指将非平稳时间序列转化为平稳时间序列,然后将因变量仅对它的滞后值以及随机误差项的现值进行回归所建立的模型, 包括移动平均过程(MA)、自回归过程(AR)、自回归移动平均过程(ARMA)以及ARIMA过程[ 3 ]。
2.4.1 建模基本程序
ARIMA模型预测的基本程序如下[8~9]:
(1)根据时间序列的散点图、自相关函数和偏自相关函数图以ADF 单位根检验其方差、趋势及其季节性变化规律,对序列的平稳性进行识别。
(2)对非平稳序列进行平稳化处理。如果数据序列是非平稳的,并存在一定的增长或下降趋势,则需要对数据进行差分处理,如果数据存在异方差,则需对数据进行技术处理,直到处理后的数据的自相关函数值和偏相关函数值无显著地异于零。
(3)根据时间序列模型的识别规则,建立相应的模型。若平稳序列的偏相关函数是截尾的,而自相关函数是拖尾的,可断定序列适合AR模型;若平稳序列的偏相关函数是拖尾的,而自相关函数是截尾的,则可断定序列适合MA模型;若平稳序列的偏相关函数和自相关函数均是拖尾的,则序列适合ARIMA模型。
(4)进行参数估计,检验是否具有统计意义。
(5)进行假设检验,诊断残差序列是否为白噪声[3]。
(6)利用已通过检验的模型进行预测分析。
图7 ARIMA模型预测程序
2.4.2 模型识别与估计
根据数据求2009年白菜价格的自相关函数(ACF)。如图8,在红色虚线以内的值,基本上可以视为接近于零,可以看出,滞后数2以后,ACF几乎都可以视为零,ARIMA(p,d,q)模型中的q可以暂时定为2。
图8 09年白菜价格自相关函数
计算2009年白菜价格的偏相关函数(PACF)。如图9,在红色虚线以内的值,基本上可以视为接近于零,在滞后为5和为28时候,PACF不在红色虚线以内,可以判断09年白菜价格数据序列不是平稳的序列,需要对原数据序列进行一阶差分后在求新的自相关函数和偏相关函数。
图9 09年白菜价格偏相关函数
一阶差分后的自相关函数和偏相关函数如图10 和图11所示。对于ACF,在滞后数为4以后ACF都在红色虚线以内,这些ACF可以视为零,对于PACF,在滞后数为4以后,PACF同样都可以视为零。经过分析,ARIMA模型初步确定为(4,1,4)。
图10 一阶差分后自相关函数
图11 一阶差分后偏相关函数
2.4.3 ARIMA模型的诊断
在识别ARIMA模型并将其拟合后,必须对所有拟合的模型进行诊断,才能真正用于预测,对残差的分析和T-检验,是两个比较有效的诊断方法。
对模型进行残差分析,图12是根据ARIMA(4,1,4)模型拟合得到的残差生成直方图,当残差近似地服从均值为零的正态分布时,模型可信度较高。如图所示,该模型拟合的残差近似显均值为零的正态分布,说明模型(4,1,4)可信度较高。
对模型进行T-检验,表1为Minilab分析工具拟合模型时生成的参数估计值,观测P值,这次模型拟合选择的显著水平Alpha为0.05,当P值大于0.05时,那么我们没有理由拒绝原假设。如表1所示,AR=2、AR=3、AR=4、MR=1、MR=2、MR=4时,P值均大于0.05,模型ARIMA(4,1,4)可信度较高。
图12 残差直方图
表1 模型T-检验
类型
系数
系数标准误
T
P
AR 1
-0.6755
0.2937
-2.30
0.026
AR 2
-0.0751
0.2716
-0.28
0.783
AR 3
0.1723
0.2534
0.68
0.500
AR 4
-0.0372
0.2732
-0.14
0.892
MA 1
-0.5074
0.2636
-1.92
0.060
MA 2
0.1570
0.2283
0.69
0.495
MA 3
0.7071
0.2428
2.91
0.005
MA 4
0.5943
0.3070
1.94
0.059
常量
0.03776
0.01140
3.31
0.002
2.4.4 模型预测
使用ARIMA(4,1,4)模型对未来进行预测,预测点数为10(对应实际时间2个月份),预测结果如下,青色线(预测价格上限)和黄色线(预测价格下限)所包含的区间是95%致信度下,小白菜可能出现的价格,红色线(预测价格)为未来2个月份小白菜预测价格,在预测点数10以内,能过正确地预测出未来这段时间价格下降的趋势,但在预测点10以后,不能正确预测出价格上涨的趋势。该预测模型未达到预先期望的效果,需要进一步改进。
图13 ARIMA模型预测
2.4.5 模型优化
根据2.4.2节的分析结果,2009年小白菜价格数据序列为非稳定序列,对其一阶差分得到平稳序列。考虑到季节周期对农产品价格的影响,对季节因素的考虑可以优化原先ARIMA(4,1,4)的模型假设。
图14 一阶差分后偏相关函数
观察一阶差分后的ACF图,如图14,在滞后数为4,19,34处,出现该点ACF值相对左右一定数目时滞ACF,处于一个谷值,这表明ACF受到周期为15的季节影响,周期15刚好与实际时间上的3个月吻合,对季节进行一阶差分,能使得数据序列更平稳,初步建立模型ARIMA(4,1,4)(0,1,1)15,模型中的“15”表示季节周期。
对模型进行残差分析,图15是根据ARIMA(4,1,3)(0,1,1)15模型拟合得到的残差直方图,残差近似服从均值为零的正态分布时,模型可信度较高。如图所示,该模型拟合的残差近似显均值为零的正态分布,说明该季节ARIMA模型可信度较高。
图15 残差直方图
表2 季节ARIMA T-检验
类型
系数
系数标准误
T
P
AR 1
-0.0564
0.3788
-0.15
0.882
AR 2
-0.0722
0.3228
-0.22
0.824
AR 3
0.0668
0.2857
0.23
0.816
AR 4
-0.2194
0.2643
-0.83
0.412
MA 1
0.1795
0.3687
0.49
0.629
MA 2
-0.0381
0.3235
-0.12
0.907
MA 3
0.6683
0.2626
2.54
0.016
SMA 15
0.6492
0.2403
2.70
0.011
常量
-0.011940
0.008326
-1.43
0.160
对模型进行T-检验,表2为Minilab分析工具拟合模型时生成的参数估计值,观测P值,这次模型拟合选择的显著水平Alpha为0.05,当P值大于0.05时,那么我们没有理由拒绝原假设。如表2-2所示,AR=1,AR=2、AR=3、AR=4、MR=1、MR=2、MR=3时,P值均大于0.05,同时,季节周期SMA=15时P值也大于0.05,所以季节模型ARIMA(4,1,3)(0,1,1)15可信度较高。
使用ARIMA(4,1,3)(0,1,1)15模型对未来进行预测,预测点数为10(对应实际时间2个月份),预测结果如图16所示,青色线(预测价格上限)和黄色线(预测价格下限)所包含的区间是95%致信度下,小白菜可能出现的价格,红色线(预测价格)为未来2个月份小白菜预测价格。观测预测结果发现吻合程度较高,2010年1月份和2月份的小白菜实际价格,先是一小段时间价格上升,然后持续下降,在时间点66出到最低谷时再持续上升到12月份价格的水平,预测模型预测的结果也正好反映出这些价格波动趋势。该预测模型可以较精确的预测出未来2个月份的小白菜价格。
图16 季节ARIMA模型预测
2.5 预测方法性能比较与分析
用指数平滑法来进行预测,操作起来比较简单,现在通过计算机来辅助分析数据,用类似与穷举法的方法找出Alpha值个Gamma值的最优解,代替了传统靠经验来定值的方法,大大的提高了数据统计分析的效率。
指数平滑法在短期预测上能得到较好的预测结果,因为它遵循“重近轻远”,能使时间序列所包含的历史规律性能显著地体现出来。但在长期预测方面存在较大的缺陷,它是将以往取值的加权平均数作为下一期预测值,显然,当事物发展趋势长期递增,那么将过去的数据进行加权平均作为下一期预测值必然偏低,如在2.3.4节用双指数平滑法对小白菜价格进行预测,在前期小白菜是个增长的趋势,预测值也能成功反映这种趋势,但相对实际值偏低。
ARIMA模型进行预测,效果比指数平滑法好很多,但操作起来较为复杂。在2.4.3节中用非季节的ARIMA模型建模,所得到的模型能够很好的预测未来农产品价格的趋势,但随着预测点向后推移后,这种趋势似乎没有消除,持续增长或下降,它没能够反映出价格波动的趋势,这是非季节ARIMA模型的缺陷。
季节ARIMA能够很好地反映出价格的波动,如在2.4.4节季节ARIMA模型建模中,预测结果很好的地拟合了实际价格整个波动过程,从价格持续增长一段时间,再持续下降。但季节ARIMA又有一个的缺点,它依赖于一个周期,如果历史数据波动比较随机的话,模型无法的到一个确切的季节周期,例如利用2008年至2009年的小白菜价格建季节ARIMA模型,由于2008年小白菜价格波动剧烈,使这两年的价格波动没有个明显的周期,从而得不到一个优秀的季节ARIMA模型。
通过以上分析比较,指数平滑法虽然在短期预测上有优势,但不能满足Web系统的预测服务的需求。ARIMA模型建模随较为复杂,但可以得到较好的预测结果,并满足需求。所以,未来的Web预测系统中采用的预测方法主要是季节ARIMA为主,非季节ARIMA为辅。由于季节ARIMA有时得不到较优的预测模型,这时可以用非季节ARIMA模型来代替,弥补季节ARIMA不足之处。
3 系统支持技术
3.1 B/S结构
本次系统开发将使用B/S结构,B/S结构的优点:
(1)具有分布性特点,可以随时随地进行查询、浏览等业务处理,用户不需要安装专门的客户端,只需一个普通的Web浏览器既可以。
(2)业务扩展简单方便,通过增加相应网页即可增加服务器功能,兼容性好,使用不同的开发工具,也能很好的为系统扩展新的业务和功能模块。
(3)维护简单方便,只需要在服务器端修改相应的部分,而客户端不用任何操作,即可实现所有用户的同步更新。
(4)开发简单,成本较低,共享性强。
3.2 JSP技术
Java Server Pages 简称 JSP[15],是由Sun公司倡导,与多个公司共同建立的一种技术标准,它建立在Servlet之上。应用JSP,程序员或非程序员可以高效率地创建Web应用程序,并使用得开发的Web应用程序具有安全性高、跨平台等优点。
JSP是运行在服务器端的脚本语言之一,与其他的服务器端脚本语言一样,是用来开发动态网页的一种技术。JSP页面由传统的HTML代码和嵌入的Java代码组成。当用户请求一个JSP页面时,服务器会执行这些Java代码,然后将结果与页面的静态部分相结合返回给客户端浏览器。
JSP是在Servlet的基础上开发的技术,它继承了Java Servlet 的各项优秀功能。而Java Servlet 是作为Java 的一种解决方案,在制作网页的过程中,他继承了Java的所有特性。因此JSP同样继承了Java技术简单、便利、面向对象、跨平台和安全可靠的优点,比起其他服务器脚本语言,JSP更加简单、迅速、和有力。JSP技术优势如下:
(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
3.3 框架技术
框架是一个描述性的构建块和服务集合,开发人员可以用来达成某个目标,如开发整个应用、构建部分应用、测试应用等等。一般来说,框架提供了解决某类问题的基础设施,是用来创建方案的工具,而不是问题的解决方案[16]。
为了针对问题设计解决方案,框架的深入程度有所不同。有些框架致力提供不同的方式来构建解决方案,有些提供通用的基础设施,将很多决策留给开发人员来完成。
在提供这种结构是,框架一般会在其体系结果中使用成熟的模式。例如,当前很多Web应用框架中就使用了MVC模式。大多数基于MVC的Web框架都有控制器组件的一个集中表示。有时这个控制器是可以配置,这样请求就能作为控制器多能执行的不同动作的一部分传递给其他类。这些与应用的集成都意味这开发人员可以将更多时间放在解决业务问题上。
3.4 Struts框架中的MVC模式
MVC在Struts框架中的实现如下 [16]:
(1)Model部分
由ActionForm和JavaBean组成,其中ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionFrom里面的请求参数处理用户的请求。JavaBean则封装了底层的业务逻辑,包括数据库访问等。
(2)View部分
该部分采用JSP实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。
(3)Controller组件
Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。系统核心控制器,该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,业务逻辑控制器本身不具备处理能力,而是调用Model来完成处理。
图17 struts工作流程
Struts工作流程如图5-1显示,首先客户端浏览器向服务器发出请求,这个请求被Struts前台的控制器(Controller接收,也就是图中所示的servlet,servlet读取配置文件struts-config.xml,根据所配置的信息,将请求分发到相应的ActionServlet类,该类是struts提供的,并且是框架中Controller组件的基础。Action类在处理请求时,调用到相应的业务逻辑(Model),以完成客户所希望达成的请求操作,Action完成处理以后返回一个显示页面,该显示页面被Servlet解析(通过配置文件解析),服务器端返回一个JSP页面到客户端浏览器。
4 系统需求分析
系统角色类型存在3种,游客、注册用户、第三方软件注册用户、系统管理员。
游客权限较低,基本上不能使用系统一些功能,游客通过注册,根据系统提供的认证规则,填写合法的注册信息,注册成为正式用户。
注册用户能够使用系统前台的提供的所有功能,包括对往年的行情信息的查询,查询功能必须提供一些筛选条件,方便用户快速准确的查询到所需的信息,如按年月进行搜索,按农产品的品种来搜索。系统必须提供一个最主要的功能,既是农产品价格预测功能,在该功能模块,用户可以挑选所需要进行预测的农产品,对未来的预测,系统需返回预测结果,最好返回图表,为用户比较直观显示未来农产品价格的走势。在系统达成这些基本功能时,系统同时可以提供让用户修改自己用户密码或其他信息的功能,以确保用户使用系统的安全性。
第三方软件注册用户应当能使用上系统前台的一些基本功能,与普通注册用户有着同样的权限。
系统应当提供给后台给管理员使用,管理员理应可以查询农产品价格行情,同时管理员可以查看用户的一些信息。管理员所需最为主要的功能是更新农产品价格信息,管理员可以插入新的价格信息或者修改以往输入的有误数据,系统必须提为管理员提供较为友好的服务,让管理方便添加信息和还修改以往数据。管理员可以修改自己的管理员密码。该类管理员权限较为低,不能对数据库数据等有太强的操作(如随意删除用户),以确保系统安全性。
根据用户角色类型和角色需要使用那些功能,使用软件Rational Rose 2003,画如图18的“用例图”。
图18 需求分析用例图
5 系统设计
5.1 系统总体结构设计
图19是系统层次图,顶层是农产品价格预测系统,第二层主要分为三个功能模块。在用户模块,有行情查询、显示系统预测结果、查看与修改个人信息功能。管理员模块,提供管理员查看用户信息、添加新的价格信息、修改个人信息的功能。第三方软件接口,为第三方软件开发商等提供一个接口,通过该接口访问农产品价格预测系统。
图19 系统层次图
5.2 系统服务设计
5.2.1 农产品价格预测服务设计
该农产品价格预测系统采用的主要预测模型是ARIMA模型,自回归移动平均法ARIMA在建模方面比较复杂,通过系统直接分析得出最优模型或较为优的模型显然是不可行的,因为随着时间的推移,所使用的ARIMA模型会不断的改变,一个固定的模型是不能满足准确预测农产品价格的,而这些分析过程的数学算法的实现也非常困难。
系统的价格预测是通过读取存储在数据的数据的实现,这些数据需要价格预测的分析员预先使用预测方法得到预测结果,定期更新到数据库,这样做的优点是降低了系统开发的难度和成本,同时系统去掉一个分析过程,以保证系统运行时的性能,并且保证所使用的预测模型能够准确的预测出未来农产品价格走势,为用户提供优质的服务。当然缺点是需要定期更新,由于已经有一套ARIMA建
展开阅读全文