金融数据分析导论同济大学数学系教材本书应用开源的R软件结合具体的金融数据来讲解金融数据的分析方法和模型第1章可视化金融数据的基本概念、金融计量模型和它们在现实世界中的丰富应用第2章常见的金融数据分析模型第3章金融数据分析的实际案例第4章波动率模型第5章波动率模型在金融中的实际应用第6章高频金融数据处理第7章用量化方法进行风险管理--包括风险值和条件风险值数字资源1、教材配套网站:2、数据下载网站:提取密码:xyh13、R软件下载网址:第一章金融数据及其特征资产收益率债券收益和价格隐含波动率R软件介绍金融数据的例子收益率的分布性质金融数据的可视化一些统计分布正态分布对数正态分布稳态分布正态分布的尺度混合多元收益率资产收益率大多数金融研究都是针对资产收益率,而不是资产价格。Campbell等给出了使用资产收益率的两个主要原因:1、首先,对于一个普通的投资者来说,资产收益率代表一个完全的、尺度自由的投资机会的总结和概括;2、其次,资产收益率序列比价格序列更容易处理。简单收益率连续复利收益率连续复合收益率资产组合收益率红利支付R软件的下载和安装说明下载网址:R软件免费并且有数千个用于完成特定任务的添加包R软件功能强大通过教材给出的金融数据分析的几个关键添加包以及提供的数据集,就可以应用R软件来学习金融时间序列的实际应用安装R添加包安装程序包-添加镜像-选择所需添加包加载程序包点击加载程序包-选择已下载添加包供选择加载常用的添加包可以从一些开放源直接下载金融数据这些网站包括雅虎财经、谷歌财经和圣路易斯联邦储备银行的联邦储备经济数据库强烈建议安装Jeffry开发的quantmod添加包该添加包还需要安装TTR、xts、zoo三个额外的添加包添加包允许用户与互联网连接。可以使用一些命令符来访问雅虎和谷歌财经的日股票数据使用这些序列名称来访问来自联邦储备经济数据库超过1000个经济和金融时间序列数据画股票走势图library(TTR)library(xts)library(zoo)library(quantmod)getSymbols(AAPL)#从雅虎下载苹果股票价格dim(AAPL)#数据集的维数head(AAPL)#检查头六行数据tail(AAPL)#检查尾六行数据chartSeries(AAPL,theme=white)#画每日成交量和成交价chartSeries(AAPL)#底板是默认黑色getSymbols(AAPL,from=2005-01-02,to=2010-12-31)#下载部分数据head(AAPL)#检查头六行数据chartSeries(AAPL,theme=white)#画每日成交量和成交价getSymbols(UNRATE,src=FRED)#从美联储经济在线数据库下载失业率数据head(UNRATE)chartSeries(UNRATE,theme=white)#画每月失业率走势图getSymbols(^TNX)#下载从CBOE(芝加哥期权交易所)来的10年期国库票据数据chartSeries(TNX,theme=white,TA=NULL)#画出不含成交量的价格走势图R软件介绍给出数据集mtcars的基本信息?mtcars#显示数据集mtcars的详细信息Mtcars#显示数据集mtcars的全部32个观测值head(mtcars)#显示数据集mtcars中前6个观测值tail(mtcars)#显示数据集mtcars中后6个观测值names(mtcars)#显示数据集mtcars中的变量data.entry(mtcars)#浏览和修改mtcars数据集浏览和修改mtcars数据集mtcars-edit(mtcars)#修改数据后,存入同名数据集MTcars-edit(mtcars)#修改数据后,存入新数据集MTcarsxnew-edit(data.frame())#编辑生成新的数据集xnew比较下列命令区别x-c(10.4,5.6,3.1,6.4,21.7)#建立数据向量x1、data.entry(x)#打开数据编辑器修改数据2、edit(x)#打开R编辑器修改数据直接修改mtcars(下面两个命令相同)fix(mtcars)mtcars-edit(mtcars)作图attach(mtcars)#激活mtcars,数据加入内存mpg#激活后,可直接用数据集的变量名属性变量table(cyl)#cyl是属性变量,计算其频数表barplot(table(cyl))#频数条形图(对属性变量的)数值变量stem(mpg)#茎叶图hist(mpg)#直方图boxplot(mpg)#盒形图计算统计量mean(mpg)#均值mean(mpg,trim=0.1)#截取上下各10%数据后遗留数的均值tapply(mpg,cyl,mean)#按分组变量cyl计算mpg的分组均值,如果将mean替换成其他统计量,就可以计算其它各种分组统计量IQR(mpg)#计算四分位差(函数大写)Q3-Q1quantile(mpg)#计算四分位点,标明各分位点的位置fivenum(mpg)#计算四分位点,不标明各分位点的位置skewness(mpg)#偏度probs=c(0.1,0.5,99.5/100)#给出指定百分位quantile(mpg,probs)#计算按向量prob给定的各百分位的样本值summary(mpg)#描述性统计sd(mpg)#标准差var(mpg)#方差kurtosis(mpg)#峰度散点图一般散点图plot(cyl,mpg)#气缸数与油耗的散点图plot(hp,mpg)#马力与油耗的散点图分组散点图(不同气缸数下的散点图)plot(hp,mpg,pch=cyl)#马力与油耗的散点图,pch表示用字符图案画点legend(250,30,pch=c(4,6,8),legend=c(4cylinders,6cylinders,8cylinders))#做出各气缸符号的说明标记。这里250,30是说明框的左上角位置线形回归z-lm(cyl~mpg)#将回归所有结果放入z中z得到线性回归的截距和斜率,也就是回归方程的两个参数的估计值cor(cyl,mpg)#计算汽缸数与油耗的相关系数cor(cyl,mpg)^2#一元回归中,Rsquare即为相关系数的平方残差分析lm.res-lm(cyl~mpg)#将回归所有结果放入lm.res中lm.resids-resid(lm.res)#提取lm.res中的残差向量plot(lm.resids)#画残差图hist(lm.resids)#残差的直方图qqnorm(lm.resids)#画残差的qq图qqline(lm.resids)#加上qq线,判断残差是否正态结束分析并退出Rdetach(mtcars)#从内存中清除指定数据集mtcarsq()#退出R改变内存变量name-“Carmen”;n1-10;n2-100;m-0.5#定义四个内存变量ls()#显示所有定义的内存对象ls(pat=m)#显示内存中含m的指定对象ls(pat=^m)#显示内存中打头字为m的指定对象ls.str()#显示内存中所有对象的详细信息rm(x,y)#从内存中删除对象x与yrm(list=ls())#从内存中删除所有对象rm(list=ls(pat=^m))#从内存中删除所有打头字为m的指定对象建立数值型向量向量具有简单规律seq()或”:”1:10#建立1到10的数字向量1:10-1#建立0到9的数字向量1:(10-1)#建立1到9的数字向量z-seq(1,5,by=0.5)#从1到5,每次递增0.5z-seq(from=1,to=5,by=0.5)#等价于z-seq(1,5,by=0.5)z-seq(1,10,length=11)#从1到10,等分为11个点z-seq(1,10,length.out=11)#等价于z-seq(1,10,length=11)向量具有复杂规律z-rep(2:5,2)#2到5循环2次z-rep(2:5,times=2)#等价于z-rep(2:5,2)z-rep(2:5,rep(2,4))#等价于z-rep(2:5,2)z-rep(1:3,times=4,each=2)#数字1到3每个重复2次,共循环4次向量没有规律z-rep(c(3,5),c(2,4))#3按后面2循环2次,5按后面4循环4次通过键盘逐个输入z-scan()#直接输入数据,回车键输入数据,空数据表示停止输入sequence(3:5)#建立连着的数据,从1到3,1到4,再1到5sequence(c(10,5))#建立连着的数据,从1到10,再从1到5建立逻辑向量x-c(10.4,5.6,3.1,6.4,21.7)#建立数值向量xtemp-x13#建立一个x是否满足大于13的逻辑向量转换因子字符型向量转换为因子a-c(green,blue,green,yellow)a-factor(a)数值型向量转换为因子b-c(1,2,3,1)b-factor(b)字符型因子转换为数值型因子a-c(green,blue,green,yellow)a-factor(a)levels(a)-c(1,2,3,4)参考类似b-factor(c(A,B,C),labels=c(1,2,3))数值型因子转换为字符型因子b-c(1,2,3,1)b-factor(b)levels(b)-c(low,middle,high)参考ff-factor(1:3,labels=c(A,B,C))提取向量中的元素x-seq(1:100)#建立1:100的数据向量,存入xx[1:10]#提取x的前10个元素x[c(1,4)]#提取x的第1和第4个元素y-x[-(6:10)]#去除向量中与索引向量对应的元素提取逻辑向量x-c(42,7,64,9)#产生数值向量xx10#产生x10是否成立的逻辑向量x[x10]#取x10的值x[x40&x10]#取x40且x10的值x[x10]-10#修改x中所有满足条件的数据为10y=runif(100,min=0,max=1)#产生0-1上的100个均匀分布的随机数sum(y0.5)#求小于0.5的元素的个数sum(y[y0.5])#求小于0.5的元素的和y-x[!is.na(x)]#求出x中的非缺失值放入向量y中z-x[(!is.na(x))&(x0)]#求出x中的大于零的非缺失值放入向量z中建立数组array(data,dim,dimnames)A-array(a,dim=c(3,4,2))#以a中数据建立维数为(3,4,2)的数组AA-array(1:8,dim=c(2,2,2))#建立一个2x2x2的数组,里面放置1到8dim(A)#求出A的维数dimnames(A)-list(c(a,b),c(c,d),c(e,f))#定义数组中向量名colnames(A)#提取A的列变量名rownames(A)#提取A的行变量名建立矩阵A-array(1:6,c(2,3))#建立2行3列矩阵A,用1-6填入A-array(1:4,c(2,3))#如果数据不够,自动循环A-array(1:8,c(2,3))#建