R语言学习-(金融数据获取和简单的分析)
利用R语言中的quantmod包和fBasics对股票数据的获取和简要的分析,
通过获取的数据进行典型图像绘制,使用JB正态性检验来检验是否服从于正态分布。
前提概要:
quantmod 包默认是访问 yahoo finance 的数据,其中包括上证和深证的股票数据,还有港股数据。
上证代码是 ss,深证代码是 sz,港股代码是 hk
比如茅台:6000519.ss,万科 000002.sz,长江实业 0001.hk
在R的控制台里使用如下命令:
> library(quantmod)
> setSymbolLookup(WK=list(name="000002.sz",src="yahoo"))
> getSymbols("WK")
[1] "WK"
> chartSeries(WK)
head(WK)#查看头部数据
tail(WK)#查看尾部数据
dim(WK)#查看数据的规模
实例:利用公司BSOFT的股票数据分析
> install.packages("quantmod",destdir = "D:/soft/R/R_download")#载入quantmod包
> library(quantmod)
> library(zoo)
> library(xts)
> library(TTR)
> setSymbolLookup(BSOFT=list(name="300451.sz",src="yahoo"))#查询某股票数据
> getSymbols("BSOFT")
[1] "BSOFT"
> chartSeries(BSOFT)
> View(BSOFT)
> tail(BSOFT,10)
> dim(BSOFT)
> getSymbols("BSOFT",from="2019-01-01",to="2019-07-01")#获取1-7月份的股票数据
> chartSeries(BSOFT)
#计算股票收益率通常需要用到 log(求对数) diff(求差分) 函数
> BSOFT.Profit= diff(log(BSOFT$`300451.SZ.Adjusted`))
> chartSeries(BSOFT.Profit,theme = "white") #时序图(K线)
#股票收益率的密度函数图
> install.packages("fBasics")
> install.packages("fBasics",destdir = "D:/soft/R/R_download")
> library(fBasics)
> library(timeDate)
> library(timeSeries)
#由于 BSOFT.Profit 是通过一阶差分得来的数据, 在第一行有一个空值(NA),需要先删除掉第一行才能继续画图。
> BSOFT.Pro=na.omit(BSOFT.Profit)
> de=density(BSOFT.Pro) #获取密度函数
> range(BSOFT.Pro) #查看数据的取值范围,相当于 c(min(x),max(x))
[1] -0.11568179 0.06698923
> x=seq(-.12,.07,.001) #生成一个下界是 -0.12,上界是 .07,时间间隔是 0.001 的数据,取值范围主要由 range 的结果决定
> plot(de$x,de$y,xlab="x",ylab="density",type="l") #画密度函数图
> ys=dnorm(x,mean(BSOFT.Pro),stdev(BSOFT.Pro)) #新建一个与 BSOFT.Pro 均值和标准差一致的正态分布函数
> lines(x,ys,lty=2) #在密度函数图上增加正态分布曲线(图中虚线)
结论:可以看到某公司股票数据的密度函数有明显的高峰厚尾现象,
与正态分布有明显的差别,因此用JB检验来检验SINA股票是否符合正态分布的假设。
---正态性检验----
(1)股票收益率的基本统计量
> basicStats(BSOFT.Pro)
X300451.SZ.Adjusted
nobs 114.000000
NAs 0.000000
Minimum -0.115682
Maximum 0.066989
1. Quartile -0.016940
3. Quartile 0.017947
Mean 0.001556
Median 0.000541
Sum 0.177419
SE Mean 0.002750
LCL Mean -0.003891
UCL Mean 0.007004
Variance 0.000862
Stdev 0.029357
Skewness -0.356699
Kurtosis 1.350244
mean=0.001556,接近于0,也就是说新浪股票收益率具有比较明显的向0集中的趋势。
Variance=0.000862,接近于0,也就是说新浪股票收益率的离散程度较小,不分散。
Skewness=0.166731, 明显不等于0,也就是说新浪股票收益率是非对称分布的。
Kurtosis=1.350244,
(2)股票收益率的正态性检验
> normalTest(BSOFT.Pro,method = "jb")
Title:
Jarque - Bera Normalality Test
Test Results:
STATISTIC:
X-squared: 12.1626
P VALUE:
Asymptotic p Value: 0.002285
检验统计量 JB=12.1626,p<0.002285<0.05,
也就是说在5%的显著性水平上拒绝该公司股票收益率服
从正态分布函数的原假设,即改公司股票收益率不服从正态分布。
结合 :
R 语言的 quantmod 和 fBasics 软件包下载股票数据,实现数据的可视化,包括直观的 K 线图、收益率的时序图,以及密度函数图,最终从图形、统计结果以及 JB 检验三个方面来证明了该股票收益数据程非正态分布。
从数据获取,包的选用和图像绘制,实践中想通过列表来批量获取所有数据失败了,所以做了单股票的分析,面对批量获取数据还需要进一步来实践,检验方法的话借用现成的分析方法,在统计学和金融知识方面还有很大的欠缺。
R语言学习-(金融数据获取和简单的分析)的更多相关文章
- R语言实现金融数据的时间序列分析及建模
R语言实现金融数据的时间序列分析及建模 一 移动平均 移动平均能消除数据中的季节变动和不规则变动.若序列中存在周期变动,则通常以周期为移动平均项数.移动平均法可以通过数据显示出数据长期趋势的变动 ...
- R语言学习 第四篇:函数和流程控制
变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...
- R语言学习路线和常用数据挖掘包(转)
对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑到论坛上吼一嗓子,然后欣然or悲伤的离去,一直到遇到下一个问题再回来.当然,这不是最好的学习方式,最好的方式是——看书.目前,市面上介绍R语言的 ...
- R语言学习笔记之: 论如何正确把EXCEL文件喂给R处理
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html ---- 前言: 应用背景兼吐槽 继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯. ...
- R语言学习笔记-机器学习1-3章
在折腾完爬虫还有一些感兴趣的内容后,我最近在看用R语言进行简单机器学习的知识,主要参考了<机器学习-实用案例解析>这本书. 这本书是目前市面少有的,纯粹以R语言为基础讲解的机器学习知识,书 ...
- R语言学习笔记:小试R环境
买了三本R语言的书,同时使用来学习R语言,粗略翻下来感觉第一本最好: <R语言编程艺术>The Art of R Programming <R语言初学者使用>A Beginne ...
- R语言学习 第一篇:变量和向量
R是向量化的语言,最突出的特点是对向量的运算不需要显式编写循环语句,它会自动地应用于向量的每一个元素.对象是R中存储数据的数据结构,存储在内存中,通过名称或符号访问.对象的名称由大小写字母.数字0-9 ...
- R语言学习笔记(二)
今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述. > vars<-c("mpg","hp","wt") &g ...
- R语言学习笔记(一)
1.不同的行业对数据集(即表格)的行和列称谓不同,统计学家称其为观测(observation)和变量(variable): 2.R语言存储数据的结构: ①向量:类似于C语言里的一位数组,执行组合功能的 ...
随机推荐
- 虚拟机栈(Java Stack)基础知识
虚拟机栈即是程序运行时的单位,而堆是数据存储的单位.换句话说,栈解决的是程序运行的问题,即程序如何执行,如何处理数据,而堆是解决数据的存储问题,数据存在哪,放在哪 虚拟机栈细节如下图所示,其中当前栈帧 ...
- 文件上传限制条件(JS、后缀、文件名、类型、截断)绕过及修复建议
在现代互联网的Web应用程序中,上传文件是一 种常见的功能,因为它有助于提高业务效率,比如企业的OA系统,允许用户上传图片.视频.头像和许多其他类型的文件.然而向用户提供的功能越多,Web应用受到攻击 ...
- spring ioc 源码分析之-- beanDefinition的加载过程以及ComponentScan,@componet,@import @Bean等注解解析过程
背景:我们启动主启动类后,相应的bean就被扫描进来了,原理是啥? 实现该功能的主要核心类就是:ConfigurationClassPostProcessor,我们看看他的继承体系: 它实现了Bean ...
- Machine Learning-特征工程之特征选择
特征工程之特征选择 目录 简介 1 Filter(过滤式选择) 1.1 移除低方差特征(variance threshold) 1.2 信息增益(information gain) 1.3 单变量特征 ...
- Mbedtls和Opesnssl 解码x509Certificate
最近项目需要添加解码x509Certificate功能,可以使用openssl或者mbedtls库.对这两个库的使用总结一下. 一 Openssl解码x509 Certificate 1. 初始化 ...
- IDEA配置jQuery,$符号不再显示黄色波浪线
在使用IDEA搭建Maven的Web环境时,编写的JQuery入口函数时,遇到了未知符号的提示,并且在前端页面js的console里报错. 以下是错误信息: 解决方案: 继续看图: 配置成功生效: ...
- C\C++中strcat()函数
转载:https://blog.csdn.net/smf0504/article/details/52055971 C\C++中strcat()函数 ...
- 【题解】[SDOI2015]星际战争
\(\color{red}{Link}\) \(\text{Solution:}\) 观察到,如果一个时间\(T\)可以完成任务,则\(T+1\)这个时间也可以完成任务. 于是我们可以二分. 为了避免 ...
- CentOS之—双网卡双IP双网关配置
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/77487639 一.配置讲解 1.配置DNS 修改对应网卡的DNS的配置文件 # v ...
- C# 主界面的扁平化
如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! ! --------------------------- ...