博客内容简介及目录 http://www.cnblogs.com/weibaar/p/6644261.html

纪念一下,在心心念念想从会计本科转为数据分析师快两年后,近期终于迈出了使用R的第一步,在参考他人的例子前提下,成功写了几行代码。用成本的角度来说,省去了部门去买昂贵的数据分析软件的金钱和时间,而对自己来说,则是在数据分析又迈出了一步,往经济宽裕又迈出了一步,往财务自由又迈出了一步,不得不写个随笔纪念一下。

以及,有时候,入门真的没有想象中困难,关键是要找到入门的方法,一窍通,百窍通。

以下为代码。简而言之就是写了一个时间序列预测的代码,包括完整的数据导入,数据处理和数据输出过程。加载了forecast包,应用了auto.arima函数。

 rawdata<-read.table("file.csv",header=TRUE,sep=",")
library(forecast)

4
Rawdata_Grand.Total=rawdata$Grand.Total
TS_Grand.Total=ts(Rawdata_Grand.Total,start=2011,frequency=12)
Arima_Grand.Total<-auto.arima(TS_Grand.Total,trace=T)
Forecast_Grand.Total<-forecast(Arima_Grand.Total,h=12,fan=T)
Forecast_Grand.Total$Mean
Mean_Grand.Total<-Forecast_Grand.Total$mean[3-14]
Lower_Grand.Total<-Forecast_Grand.Total$lower
Lower_Grand.Total_96=Lower_Grand.Total[3-14,16]
Upper_Grand.Total<-Forecast_Grand.Total$upper
Upper_Grand.Total_96=Upper_Grand.Total[3-14,16]
Result_Grand.Total<-data.frame(Mean_Grand.Total,Lower_Grand.Total_96,Upper_Grand.Total_96)
write.csv(Result_Grand.Total,'result.csv')

解决问题中学会几点:

1)有的R没有forecast的包,这一般是因为R版本太低导致的,可以到CRAN上去具体搜这个包的名字,看看版本要求。一般升级R既可以解决(吐槽:R的升级竟然要重新安装包!太不智能了!不过R在一个系统里可以安装N个版本,也很神奇)

2)关于数据载入,最方便的还是read.table引入csv格式,这里空格会变成.,注意标题清理。以及R对大小写的要求超级高……

3)时间序列转换,用ts(data,start=xxxx,frequency=12)可以自动生成月度数据,超级方便。

4)forecast包很万能,有auto.arima可以自动拟合函数,然后forecast可生成观测值,这里我选的是12.然后fan=T(生成一堆预测值),fan=F,生成80%,95%置信区间预测值。

5)forecast生出的那个结果包,表面上生成的是各个置信区间的值,实际上……实际上生成了一个对象,当使用attributes查看时,出来了以下

> attributes(Forecast_Grand.Total)
$names [1] "method" "model" "level" "mean" "lower" "upper" [7] "x" "xname" "fitted" "residuals"
$class [1] "Forecast_Grand.Total"

所以之前我花了很大精力,想直接调用forecast生成的那个预测值以及96置信区间,最后都失败了。最后使用attributes查看后,再用$引用即可了,然后取1-12,第16列等,不知道是否有更简便的方法。

6)r直接输出为csv实在太爽!就是不知道有没有R合并各个文件的好方法,不然太糟心。

随文附上数据,已经做模糊化处理,不要太讲究数据质量

20900,18100,21100,21100,24800,24000,27200,29600,30100,33800,37900,36500,34900,34300,34700,36400,44300,37800,47100,45900,47800,51500,56300,52500,60600,54000,55900,52500,54500,51700,56400,62700,63400,65000,73500,72600

R入门-第一次写了一个完整的时间序列分析代码的更多相关文章

  1. 今天我自己第一次写了一个Windows批处理bat脚本,一起学习一下吧。

    今天我自己第一次写了一个Windows批处理bat脚本,备注一下 事情原由:自己使用Java开发了一个加解密的工具.但是当把工具给别人使用的时候,别人还需要把代码编译打包, 然后还需要看一下代码里面的 ...

  2. 如何写好一个完整的Essay写作论证

    主体段是我们留学生在Essay写作中陈述观点和论述观点的核心段落,那么一个完整的论证应该包含哪些要素呢?我觉得有这么几项:主旨句.解释.例证.小结(非必需) 这些其实也是我们在说服他人接受我们的观点时 ...

  3. Orchard入门:如何创建一个完整Module

    这是一个Orchard-Modules的入门教程.在这个教程里,我们将开发两个功能页面分别用于数据录入与数据展示. 完成上述简单功能开发,我们一共需要6个步骤.分别为: 创建Module 创建Mode ...

  4. nodejs入门学习笔记一——一个完整的http路由服务实现

    开始学习nodejs! 参考书籍:The Node Beginner Book ,所有问题和讨论都围绕本书. 1.学习nodejs需要具备的基础知识: js基本语法,基本上写过前端的都能满足,原生js ...

  5. java nio 写一个完整的http服务器 支持文件上传 chunk传输 gzip 压缩 使用过程 和servlet差不多

    java nio 写一个完整的http服务器  支持文件上传   chunk传输    gzip 压缩      也仿照着 netty处理了NIO的空轮询BUG        本项目并不复杂 代码不多 ...

  6. 和S5933比较起来,开发PLX9054比较不幸,可能是第一次开发PCI的缘故吧。因为,很多PCI的例子都是对S5933,就连微软出版的《Programming the Microsoft Windows Driver Model》都提供了一个完整的S5933的例子。 在这篇有关DDK的开发论文里。

    和S5933比较起来,开发PLX9054比较不幸,可能是第一次开发PCI的缘故吧.因为,很多PCI的例子都是对S5933,就连微软出版的<Programming the Microsoft Wi ...

  7. Scheme语言实例入门--怎样写一个“新型冠状病毒感染风险检测程序”

    小学生都能用的编程语言 2020的春季中小学受疫情影响,一直还没有开学,孩子宅在家说想做一个学校要求的研究项目,我就说你做一个怎么样通过编程来学习数学的小项目吧,用最简单的计算机语言来解决小学数学问题 ...

  8. 《Java从入门到失业》第四章:类和对象(4.3):一个完整的例子带你深入类和对象

    4.3一个完整的例子带你深入类和对象 到此为止,我们基本掌握了类和对象的基础知识,并且还学会了String类的基本使用,下面我想用一个实际的小例子,逐步来讨论类和对象的一些其他知识点. 4.3.1需求 ...

  9. Istio技术与实践04:最佳实践之教你写一个完整的Mixer Adapter

    Istio内置的部分适配器以及相应功能举例如下: circonus:微服务监控分析平台. cloudwatch:针对AWS云资源监控的工具. fluentd:开源的日志采集工具. prometheus ...

随机推荐

  1. 帝国备份王(Empirebak) \class\functions.php、\class\combakfun.php GETSHELL vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 EmpireBak是一款完全免费.专门为Mysql大数据的备份与导入而设 ...

  2. POJ 3617 Best Cow Line (贪心)

    Best Cow Line   Time Limit: 1000MS      Memory Limit: 65536K Total Submissions: 16104    Accepted: 4 ...

  3. java连接数据源-读取tomcat数据源配置

    读取数据源配置,获取连接 1.配置数据源 D:\apache-tomcat-7.0.70\conf\context.xml <Resource name="jdbc/news" ...

  4. HTML5学习总结-03 地理定位

    一 地理定位 HTML5 Geolocation(地理定位)用于定位用户的位置. 1 地理定位 地理位置 经度  :   南北极的连接线 纬度  :   东西连接的线 位置信息从何而来: IP地址 G ...

  5. Altium Designer 15 --- Nets Update

    Now I want to introduce the use of 'Configure Physical Nets', as follows: If you has finished the PC ...

  6. 安装和使用Linux花生壳(公网版)

    一.安装说明 1.下载相应的安装包,安装程序 2.运行程序.配置程序(默认使用/etc/phlinux.conf,如果不存在这个文件则自动进入交互配置) [root@localhost -]# phd ...

  7. 如何排查APP服务端和客户端是否支持ATS

    服务端排查 取得客户端直接连接的服务端域名及端口,例如mob.com.cn,端口443,即HTTPS默认端口.针对公网可访问的生产环境地址,建议使用的在线监测工具.https://wosign.ssl ...

  8. logo上传

  9. ubuntu下安装wine1.8和阿里旺旺

    参考:http://www.linuxidc.com/Linux/2015-12/126722.htm和http://www.linuxidc.com/Linux/2016-05/131131.htm ...

  10. JavaWeb学习笔记——JSTL核心标签库