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语言里的一位数组,执行组合功能的 ...
随机推荐
- (最新 9000 字 )Spring Boot 配置特性解析
爱生活,爱编码,微信搜一搜[架构技术专栏]关注这个喜欢分享的地方.本文 架构技术专栏 已收录,有各种JVM.多线程.源码视频.资料以及技术文章等你来拿 一.概述 目前Spring Boot版本: 2. ...
- Oracle 中 Start With 关键字
Start With (树查询) 基本语法如下: SELECT ... FROM + 表名 WHERE + 条件3 START WITH + 条件1 CONNECT BY PRIOR + 条件2 -- ...
- burp suite 之 Repeater(中继器)
Repeater:对HTTP请求的修改,通常用于上传攻击 通过抓包后将请求包通过选项卡发送到 Repeater下 右下角 显示 页面大小为18809字节 可以自定义添加主机 大小写敏感 正则表达式 文 ...
- Hibernate4.3基础知识2
一.数据库的隔离级别 脏读 不可重复读 幻读 Read uncommited Y Y Y Read commited N Y Y Repeatable read N N Y Serializabl ...
- Centos-本机网络连接、运行端口和路由表等信息-netstat
netstat 网络状态,显示本机网络连接.运行端口和路由表等信息 相关选项 -a 显示本机所有连接和监听端口 -n 以网络IP地址形式显示当前建立的有效连接和端口 -r 显示路由表信息 -t 显示T ...
- 00 在Windows环境中开发Cordova项目的准备工作
1.开发环境准备: 安装nodejs 安装Cordova 安装Visual Studio Code 安装nodejs步骤: 通过nodejs官网(https:/ ...
- 072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法
072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法 本文知识点:综合案例-数组移位-在指定位置处插入数据方法 ...
- 04 Storage and Calculation C语言中的存储和计算
文章内容来源于Programming Hub的学习记录,本人整理添加了中文翻译,如有侵权,联系本人删除 Variables C语言中的变量 Let's extend our mainfunction ...
- Java知识系统回顾整理01基础03变量05变量命名规则
一.命名规则 变量命名只能使用字母 .数字. $. _ 变量第一个字符 只能使用: 字母. $. _ 变量第一个字符 不能使用数字 注:_ 是下划线,不是-减号或者-- 破折号 int a= 5; i ...
- 实验四 CSS样式的应用
实验四 CSS样式的应用 注意:以下实验项目皆以本文件为操作对象,实验结果用记事本保留后预览,最后将添加的CSS代码转载到实验报告中 另本网页中蓝色加下划线的字即为默认的超链接样式 实验目的: 掌握 ...