使用excel结合线性规划求解Holt-Winters参数

摘要:
事实上,这是霍尔特·温特斯的非季节性趋势模型。上述S(t)对应于以下a(t)-截距(平滑值)b(t)仍然对应于b(t)-趋势,t对应于k。α对应于α-γ对应于β。因为(t)-hat是α和γ的函数,所以TSS是α和伽马的函数。为了便于理解和操作,我们使用Excel来解决问题。原始数据如下:设计表的结果如下:即,我们设置了初始值,S1=14
 
使用excel结合线性规划求解Holt-Winters参数第1张
其实上面这个是Holt-Winters无季节趋势模型,
上面的S(t)对应下面的a(t)——截距(平滑值)
           b(t)仍然对应b(t)——趋势,T对应k。
           阿尔法对应阿尔法
           伽马对应贝塔
使用excel结合线性规划求解Holt-Winters参数第2张
使用excel结合线性规划求解Holt-Winters参数第3张
因为(t)-hat是阿尔法和伽马的函数,所以TSS是阿尔法和伽马的函数。
为使方便理解和操作,该我们使用excel求解的。
原始数据如下:
使用excel结合线性规划求解Holt-Winters参数第4张
设计表格结果如下:
使用excel结合线性规划求解Holt-Winters参数第5张
也就是我们设定了初始值,S1=143,b1=- 0.65
把H2和H3看做值会变化的单元格,而H4是我们要通过变化H2和H3的取值使其取得最小值的单元格。
在C3中输入:=$H$2*B3+(1- $H$2)*(C2+D2)
                          对应着公式(1)
在D3中输入:=$H$3*(C3-C2)+(1-$H$3)*D2
                          对应着公式(2)
然后自动填充C和D列其余的值。
在E4中输入:=C3+D3
                          对应着公式(3),那么相当于T全部取1,用上一期预测下预期。
在F4中输入:=(B4-E4)^2
                          对应TSS的公式
                          为什么要另t+T的初始值是3呢,因为T恒为1,则t=2,3,4...
                          那么t-1的初始值是1,否则(1)(2)(3)公式中角标会出现0
此时由于H2和H3中的值还没确定,所以上述计算结果有问题,不必惊慌。
 
 
下面我们使用excel的规划求解功能:
使用excel结合线性规划求解Holt-Winters参数第6张
如果在数据一栏下面找不到规划求解,那么,文件——选项——加载项——excel加载项——转到——勾选规划求解——点击确定。
但是!如果你使用的是office64位的话,问题就来了:
使用excel结合线性规划求解Holt-Winters参数第7张
无法运行“SOLVER.XLAM!GetSolverLabel”宏。可能是因为该宏在此工作簿中不... 
我花了一个早上翻遍了各个论坛和百度知道,都没找到答案,最后,去测试了下同学的office2013,发现他的可以,拷贝相应的文件无效,最后发现其使用的是32位的office,于是换了个32位的office2016,遂解决这个问题,恩,把宏的权限也打开吧。
点击规划求解,按照下图输入。
我们需要输入目标位置,即使得TSS的值最小的那个单元格。
输入可变单元格为H2和H3,使其值变化,最终取得TSS的最小值
点击添加,一个个添加约束条件。
使用excel结合线性规划求解Holt-Winters参数第8张
最后点击求解。
如果你是第一次使用,那么很可能弹出
                   文件未找到Solver32.dll的错误。
dll应当是引导文件。
令人奇怪的是,我使用的安装版本,双击运行后,都是立刻安装,不给我选择的机会(所以悲催的在C盘),装完之后,还要运行BAT文件,将零售版转换VL,最终运行对应的KMS.cmd文件。
我的该引导文件在
C:Program Files (x86)Microsoft Office ootOffice16LibrarySOLVER
复制到C:windows下即可解决上述问题。
最终得到结果:
使用excel结合线性规划求解Holt-Winters参数第9张
最优平滑参数平滑参数α =0.38, γ =0.20, 此 时 误 差 平 和 为 5870.28
参考文献:
Excel在霍尔特指数平滑法参数优选中的应用_吴小明
配套的
 
 
 
 
 
 
 



来自为知笔记(Wiz)



附件列表

 

免责声明:文章转载自《使用excel结合线性规划求解Holt-Winters参数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ES脑裂问题ACCESS和MSSQL-如何随机读取数据库记录下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java 使用POI操作EXCEL及测试框架搭建、测试开发的一些想法

无论是UI自动化测试还是接口自动化测试都需要进行数据驱动,一般很常见的一种方式就是用excel来管理数据,那么就涉及到一些代码对EXCEL的操作,之前我们介绍过用CSV来处理EXCEL,但是它的功能还不够强大。比如接口自动化测试框架搭建的时候我们用excel来进行数据驱动,用excel来进行用例的管理和测试结果的统计,那么我们就需要对excel进行读取,写...

PDF合并

要求:将多个table导出到一个PDF里,然后打印。  问题分析:要求将四个table放一个PDF打印,四个table的列各不相同,第一个是表头,其他三个是列表,列比表头多很多,如果直接生成一个excel,然后再直接导出会发现有些列在PDF中换行了。  原因:因为excle可打印的区域是有限制的,可打印的地方如下方法可见:文件-打印-设置-打印选择区域(如...

[转]tableExport.js 导出excel 如果有负数或是空值 导出前面会自动加上单引号

原文地址:https://blog.csdn.net/private66/article/details/88718285 tableExport.js  导出excel  如果有负数或是空值 导出前面会自动加上单引号 解决办法: 修改源码  修改 tableExport.js   2068 行,把  该行注释后 ,另起一行    return str...

python 将文本txt 转换 excel(xls)

现在有很多工具可以将mysql数据库中数据直接dump为excel表格模式,例如,navicat,sqlyog等,但是个人认为最好用是navicat,但是navicat需要收费。 通过select into outfile 可将数据导出为.txt格式,然后再通过python脚本将.txt格式转换成xls格式。 MySQL导出文本语句: SELECT * F...

MVC3学习:将excel文件导入到sql server数据库

思路: 1、将excel文件导入到服务器中。 2、读取excel文件,转换成dataset. 3、循环将dataset数据插入到数据库中。 本例子使用的表格为一个友情链接表F_Link(LinkId,LinkName,LinkUrl) 使用的excel文件: 准备工作做好后,就直接进入主题: 一、view视图(视图名称为UploadFile,控制器为h...

使用C#和Excel进行报表开发(三)-生成统计图(Chart)

有的Web项目选用Excel作为报表方案,在服务器端生成Excel文件,然后传送到客户端,由客户端进行打印。在国内的环境下,相对PDF方式,Excel的安装率应该比pdf阅读器的安装率要高,同时,微软也为C#操作Excel提供了完备的接口,虽然ZedGraph和其他的商业报表工具生成的统计图也很好,但是人家微软毕竟是大品牌,值得信赖。 本文介绍使用C#调用...