趋势预测法-PHP实现

趋势预测法(Trend Forecast)/趋势分析法(Trend method)


 


趋势预测法概述


  趋势预测法又称趋势分析法。是指自变量为时间,因变量为时间的函数的模式。

  具体又包括:趋势平均法、指数平滑法、直线趋势法、非直线趋势法。

  趋势预测法的主要优点是考虑时间序列发展趋势,使预测结果能更好地符合实际。根据对准确程度要求不同, 可选择一次或二次移动平均值来进行预测。 首先是分别移动计算相邻数期的平均值,其次确定变动趋势和趋势平均值,最后以最近期的平均值加趋势平均值与距离预测时间的期数的乘积,即得预测值。

  值得注意得是,趋势移动平均法中的第一次移动平均与简单移动平均法不同, 同样是第 t 期的移动平均值,趋势移动平均法是求第 t 期实际值到第 t-n+1 期之和的平均值,而简单移动平均法是求第 t-1 项实际值到第 t-n 期之和的平均值。 在实际运用过程中,千万不能混淆。

[编辑]


趋势预测法的模型


  趋势移动平均法以最近实际值的一次移动平均值起点,以二次移动平均值估计趋势变化的斜率,建立预测模型,即:

  

  

  式中,at―― 预测直线的截距;

     bt―― 预测直线的斜率;

     n ―― 每次移动平均的长度;

     t ―― 期数。

  趋势移动平均法的预测模型为:

  

  式中, k ―― 趋势预测期数;

     yt + k―― 第t+k期预测值。

  例: 取 n = 5 ,计算出二次移动平均值如表1所示。试用趋势平均法求第 13 期的预测值。

  表1产品销售额及移动平均值

月份 时期 t 实际销售额 一次移动平均
( n = 5 )
二次移动平均
( n = 5 )
1 1 1024    
2 2 1040    
3 3 1052    
4 4 1056    
5 5 1060 1046.40  
6 6 1044 1050.40  
7 7 1064 1055.20  
8 8 1072 1059.20  
9 9 1080 1064.00 1055.04
10 10 1088 1069.60 1059.68
11 11 1096 1080.00 1065.60
12 12 1092 1085.60 1071.68
次年 1 月 13

  解:取t=12,则分别为1085.60和1071.68

  =2*1085.60-1071.68=1099.52

  =0.5*(1085.60-1071.68)=6.96

  yt + k=1099.53+6.96*1=1106.49

[编辑]


趋势分析法案例分析

[编辑]

案例一:某公司的趋势分析法分析[1]

  一、公司概况及规划分析

  1.公司发展战略

  该公司主要从事铁路机车行车安全装备的研发、生产、销售、服务和计算机软件开发工作。到2008年,将争取销售总额达到3-4亿元,实现公司员工培训面达到70%,80%的各类技术人员和管理人员均达到本科以上水平,专业技术人员占公司总人数的80%以上。公司将全力开发新一代安全监控型产品如应答器,积极开展边缘产品的开发如机车状态检测,将市场拓展到汽车、船舶“黑匣子”、城轨ATP,瞄准国外市场,开拓市场新领域。

  2.公司人力资源现状

  公司2005年末有员工220人,人均销售收入110万元35岁以下青年员工 229人,平均年龄不到30岁,专业主要集中在计算机、自动化、电子相关专业,有少量财会专业和其他专业人员84%人员为大专以上学历,本科78人,硕士6人,在读博士1人。

  公司研发部、生产部、软硬件开发部合为技术部门.从表1可见公司最大部门为技术部门和服务部门,营销部能力相对薄弱,营销部34人所要完成的产品销售任务很大。研发人员力量也比较薄弱;高科技人才和综合性管理人才缺乏。由于技术力量的薄弱和服务人员偏多造成结构性冗余。可见,要满足未来日益扩大的市场需求和实现效益最大化,核心科研能力的扩充和提升势在必行。

  公司现有技术管理人员6人,设计开发人员43人(其中教授级高级工程师3人,高级工程师5人)。培训管理与文秘6人。市场推广和售后服务人员87人,分布在全国各地为安全装备产品保驾护航。从人员分类可分为管理类、工程技术类和营销类。

  二、采用趋势分析法的分析

  即根据企业或企业中各个部门过去的员工数量变动状况,对未来的人力需求变动趋势作出预测。其步骤如下:

  1.确定适当的与劳动力数量相关的组织因素。该组织因素与组织的基本特性直接相关,以便根据这一因素来制定组织规划, 所选因素的变化必须与所需劳动力数量的变化成比例。由于时代监控公司是生产型企业,组织因素为销售额。

  2.把过去的趋势直接导向未来是以时间因素为唯一变量的,找出过去的劳动力量与过去的组织因素之间的数量关系。

  该公司的数量关系为2001-2005年的销售额及劳动生产率。

  3.确定劳动生产率的趋势,利用收集到的一定时期的组织因素与劳动力数量的数据,计算出平均的生产率变化和组织因素的变化$作出修正$预测未来的变化。根据前几年的趋势,预测未来几年的劳动生产率不变。

  由上表可知,根据公司发展战略中的经济指标,在2008年销售额达到3-4个亿,预计2008年销售额将达3.8亿.从2006-2008年3年中每年增加销售额0.5亿的数量趋势作出以下预测。

  根据2005年的劳动生产率=23500÷220=106.81万元/人,预测2006-2008年劳动生产率不变的情况下,2006年的预测人数=28000÷106.81=262;2007年的预测人数=33000÷106.81=309人;2008年的预测人数=38000÷106.81=356人。

  通过上述方法,可预测出公司到2008年员工需增加(356-220)=136人。

 

===================================

/** 

 * 数值趋势测算法 

 * @param int $datas 数据样本 

 * @param int $k 测算期数 

 * @param int $n 平均值长度 

 * @return array 预测数据 

 * @author leeldy 

 */ 

function cal_tendency($datas, $k = 1, $n = false) { 

 

 

    //数据期数 

    $t = count($datas); 

    //判断n是否满足要求 

    if ($n) { 

        if ($t < $n + $n - 1) { 

            exit('平均值长度n数值过大!'); 

        } 

    } else { 

        //取最大的n值 

        $n = intval(($t + 1) / 2); 

    } 

    $m = array( 

        //一次平均值 

        1 => array(), 

        //二次平均值 

        2 => array() 

    ); 

    //前n项和 

    $m_1 = 0; 

    //前n项一次平均值和 

    $m_2 = 0; 

    //一次平均值开始计算点下标 

    $n_1 = $n - 1 - 1; 

    //二次平均值开始计算点下标 

    $n_2 = $n_1 + $n - 1; 

 

 

    //计算平均值 

    for ($i = 0; $i < $t; $i++) { 

 

 

        //数据前n项和 

        $m_1 += $datas[$i]; 

 

 

        if ($i > $n_1) { 

            //开始计算一次平均值 

            $m[1][$i] = $m_1 / $n; 

            //去除最前一项 

            $m_1 -= $datas[$i - $n + 1]; 

 

 

            //一次平均值前n项和 

            $m_2 += $m[1][$i]; 

            if ($i > $n_2) { 

                //计算二次平均值 

                $m[2][$i] = $m_2 / $n; 

                $m_2 -= $m[1][$i - $n + 1]; 

            } 

        } 

    } 

 

 

    //计算基本值和趋势系数 

    $at = $m[1][$t - 1] + $m[1][$t - 1] - $m[2][$t - 1]; 

    $bt = 2 / ($n - 1) * ($m[1][$t - 1] - $m[2][$t - 1]); 

 

 

    //计算趋势 

    $result = array($at); 

    $i = 0; 

    while (++$i < $k) { 

        $result[$i] = $result[$i - 1] + $bt; 

    } 

 

 

    return $result; 

}

时间: 2024-08-30 03:39:01

趋势预测法-PHP实现的相关文章

量化项目管理案例:缺陷趋势预测利器(8)

理论知识终于告一段落啦.接下来要和大家分享的是S型曲线模型中的重要模型--Gompertz模型和Logistic模型在公司内部实际项目中的应用.下面的数据都是来自于公司内部实际项目,应用主要分4个场景:进入测试阶段前.测试阶段过程中.测试退出时.以及其它的应用.下面将依据场景,从测试阶段开始一直到结束,分阶段介绍S型曲线的应用. ● 进入测试阶段前的缺陷发现目标的预测 进入测试阶段前的缺陷预测过程可以说是一个静态的预估过程.简单来说,即根据经验.历史数据.预测开始时的缺陷数.release时的缺

傲游新式玩法 精彩内容异地收集两妙招

  许多上网场所不太固定的朋友,比如需要在学校机房或网吧上网的在校生,他们进行网页内容的收集就不是那么方便.其实还有像需要移动办公的商务人士等,他们在上网的过程中往往是最需要随手将浏览到的精彩网页内容随时收集保存起来的,但是他们又不能像在自己的电脑中那样进行随时随地的本地收集和直接保存,怎么办呢? 其实,在著名的"傲游(Maxthon)"浏览器中,精彩网页内容的异地收集保存一切都显得格外的简单,这里笔者给大家介绍两种比较常用的方法. 方法一:网页截图收集法 在学校机房或网吧,无论是逛网

mfc-MFC中如何使用求导法判断周期数据中的拐点和鞍点

问题描述 MFC中如何使用求导法判断周期数据中的拐点和鞍点 MFC中如何使用求导法判断周期数据中的拐点和鞍点,分别提取它们到新的数据文件 解决方案 http://zhidao.baidu.com/link?url=hFcevJMBxUipTvIYlyYLYpCQsQkLqhwInXMkJ0Qtt65fs1UPgtAasbpQIxQzk4Tz9ZMBWUbk-ao5PGrGV3w6fAoRv73ZYSgLAh0i3IHurTW

c语言-C语言 关于用矩形法求定积分

问题描述 C语言 关于用矩形法求定积分 #include""stdio.h""#include""math.h""int main(){ double fun1(double x); double fun2(double x); double fun3(double x); double calc(double adouble bdouble (*p)(double)); int type; double ab; double

从咻红包看零售金融的新玩儿法

"改变,是为了不变的年味."从2015年10月28日中标央视春晚的一刻,支付宝春晚红包团队用4个月时间兑现了这一句承诺.尽管利用互联网红包守岁传统中国年已不再是新鲜事,然而"咻红包"的横空出世,还是为2016农历丙申年平添了一种有趣的过年声音.注入了一类全新的送福方式.增加了一个美满的守岁理由,并最终营造了一场盛大而幸福的国民事件. 支付宝统计数据显示,在2016年央视春晚直播期间,参与红包活动用户近2亿人.总参与3245亿次,是2015年春晚红包110亿次的29.

Winform 调用WCF客户端,所有服务端方法在运行的时候均找不到(编译没有问题)

  今天在开发过程中遇到了一个很恶心的问题,就是Form窗体ShowDialog的时候,直接报出下面的错误: 有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾. ************** 异常文本 ************** System.MissingMethodException: 找不到方法:"XXX.XXX.DataObject.SPI.DataObjectColumn[] XXX.XXX.WCFClient.WCFService.ServiceClient

网线水晶头接法详细图解

你以前有过自己制作.连接网线水晶头的经历吗?看到那么多的线头是不是有晕的感觉?想要组建一个局域网,牵网线进家是一个必不可少的过程.甚至水晶头时常会被损坏,那你是一次又一次地去请人来修吗?下给大家介绍网线水晶头接法图解 ,保证大家看过后就能学会. 一般来说,网线水晶头接法主要有两种,一种是平行线接法,另一种是交叉线接法.下面具体来讲解下这两种接法的详细步骤. 必备工具: 压线钳,水晶头,网线 平行线接法 1.用双绞线网线钳把五类双绞线的一端剪齐(最好先剪一段符合布线长度要求的 网线),然后把剪齐的

穷举法解24点游戏

24点游戏: 输入:n1,n2,n3,n4 输出:若能通过+ - * / 和括号混合运算,得到运算结果为24,则输出一个对应的运算表达式 穷举法: 对4个数字全排列有4!=24种排列. 4个数字共需要3个运算符,同一个运算符可以重复出现,则有4x4x4=64种情况. 对于4个数字而言,共有以下5中加括号的方式: (A(B(CD))),(A((BC)D)),((AB)(CD)),((A(BC))D),(((AB)C)D). 所以遍历的表达式最多有24*64*5=7680种.即使采用逆波兰表达式,总

识别-关于光流法是否可以应用在摔跤这一项运动中?

问题描述 关于光流法是否可以应用在摔跤这一项运动中? 尊敬各位大牛,小弟在校研究生一枚,由于学术要求,现在碰到一个问题,导师希望可以实现识别摔跤运动中的动作.请问有什么算法可以识别或者跟踪一下?求推荐,哪怕给点思路也是好的,暂且拜谢各位. 解决方案 kinect中的关节追踪可以看看. 解决方案二: 楼主可以关注一下场景识别这方面的算法.有的算法可以识别跳跃.骑车这些动作.估计摔跤也是可以的 解决方案三: http://blog.sciencenet.cn/blog-849193-834792.h