R语言上证指数及上市个股的对数收益率分布特征

R软件版本:[32-bit] E:\R-3.5.1

## 1) 读取Excel数据 
library(RODBC)              
SSEC_Data <- odbcConnectExcel('stock index.xls')              
SSEC <-sqlFetch(SSEC_Data, 'SSEC')                   
class(SSEC)   
SSEC_shjc <- sqlFetch(SSEC_Data, 'SSEC-600009')        
SSEC_scgf <- sqlFetch(SSEC_Data, 'SSEC-600008')           
SSEC_zggm <- sqlFetch(SSEC_Data, 'SSEC-600007')          
close(SSEC_Data)            
detach(package:RODBC)       

如果用的是[64-bit] E:\R-3.5.1
第二行应该用函数

SSEC_Data <- odbcConnectExcel2007('stock index.xls')              

不过我本地没有运行成功

    ## 2) 计算对数收益序列
head(SSEC)
Close.ptd.SSEC <- SSEC$SSEC_Close                      
Close.rtd.SSEC <- diff(log(Close.ptd.SSEC))*100        
   SSEC_Date SSEC_Open SSEC_High SSEC_Low
1 2010-01-04   3289.75   3295.28  3243.32
2 2010-01-05   3254.47   3290.51  3221.46
3 2010-01-06   3277.52   3295.87  3253.04
4 2010-01-07   3253.99   3268.82  3176.71
5 2010-01-08   3177.26   3198.92  3149.02
6 2010-01-11   3301.61   3306.75  3197.33
  SSEC_Close  #
1    3243.76 NA
2    3282.18 NA
3    3254.22 NA
4    3192.78 NA
5    3196.00 NA
6    3212.75 NA
    ## 3) 从各自个股的数据框中、提取相应的收盘价  
Close.ptd.shjc <- SSEC_shjc$SSEC_600009_Close                        
Close.ptd.scgf <- SSEC_scgf$SSEC_600008_Close  
Close.ptd.zggm <- SSEC_zggm$SSEC_600007_Close
    ## 4) 绘制上证指数收益时间序列图、散点图、自相关图与偏自相关图
par(mfrow=c(2,2),mar=c(5,4,3,2))         
which(SSEC$SSEC_Date=="2010-12-31")      
Close.ptd.SSEC.ts<-ts(Close.ptd.SSEC,start=c(2010,1,4),freq=242)  
plot(Close.ptd.SSEC.ts, type="l",main="(a) 上证指数日收盘价序列图",
     xlab="Date",ylab="Price",cex.main=0.95,las=1)     

plot(Close.ptd.shjc[1:20], type="p",pch=17,main="(b) 上证指数样本股散点图",
     xlab="Time",ylab="Price",cex.main=0.95,ylim=c(4,14),las=1)      
points(Close.ptd.scgf[1:20],pch=15)                                 
points(Close.ptd.zggm[1:20],pch=14)                           
legend("bottomright", legend=c("SHJC_600009","SCGF_600008","ZGGM_600007"),
       pch=c(17,15,14),cex=0.6,lty=c(-1,-1,-1))                      
    
acf(Close.rtd.SSEC,main='',xlab='Lag',ylab='ACF',las=1)    
title(main='(c) 上证指数收益率自相关检验',cex.main=0.95)

pacf(Close.rtd.SSEC,main='',xlab='Lag',ylab='PACF',las=1)               
title(main='(d) 上证指数收益率偏自相关检验',cex.main=0.95)

在这里插入图片描述

    ## 5)  Q-Q图、 经验累积分布ecdf图、 密度图、直方图 
par(mfrow=c(2,2),mar=c(5,4,3,2)) 

qqnorm(Close.rtd.SSEC,main="(a) 上证指数收益率Q-Q图",cex.main=0.95,
       xlab='理论分位数',ylab='样本分位数')            
qqline(Close.rtd.SSEC)                                 

ECD.SSEC <- ecdf(Close.rtd.SSEC[1:10])                 
plot(ECD.SSEC,lwd = 2,main="(b) 上证指数收益率累积分布函数图",cex.main=0.95,las=1) 
xx <- unique(sort(c(seq(-3, 2, length=24), knots(ECD.SSEC))))         
lines(xx, ECD.SSEC(xx))                      
abline(v = knots(ECD.SSEC), lty=2, col='gray70')                           
x1 <- c((-4):3)             # 设定区间范围
lines(x1,pnorm(x1,mean(Close.rtd.SSEC[1:10]),sd(Close.rtd.SSEC[1:10])))  


D <-density(Close.rtd.SSEC)                          
plot(D, main="(c) 上证指数核密度曲线图 ",xlab="收益", ylab='密度',
     xlim = c(-7,7), ylim=c(0,0.5),cex.main=0.95)       
polygon(D, col="gray", border="black")                 
curve(dnorm,lty = 2, add = TRUE)                        

x2 <- c(-7:7)
lines(x2,dnorm(x2,mean=0,sd=1))      
abline(v=0,lty = 3)                                     
legend("topright", legend=c("核密度","正态密度"),lty=c(1,2),cex=0.5)


hist(Close.rtd.SSEC[1:100],xaxt='n',main='(d) 上证指数收益率直方图',
     xlab='收益/100',ylab='密度', freq=F,cex.main=0.95,las=1)        
summary(Close.rtd.SSEC[1:100])   
x2 <- seq(-6, 4, by=0.01)
lines(x2,dnorm(x2,mean(Close.rtd.SSEC[1:100]),sd(Close.rtd.SSEC[1:100]))) 
axis(1,at=axTicks(1),labels = as.integer(axTicks(1))/100 )         

在这里插入图片描述

  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cachel wood

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值