此部份为经过前期的数据分析后,得到了显著结果的方法

library("readr")
library("readxl")
library("dplyr")
library(stringr)
library(PerformanceAnalytics)
setwd("e:/R/tail risk/month")
load("r.RData")
listd<-read.csv("listd.csv");listy<-read.csv("listy.csv")
r<-left_join(r,listd,by="Stkcd")
y5<-read.csv("y6.csv")%>%tbl_df()# 读取个股市场月数据
y5<-left_join(y5,listy,by="Stkcd")
sy<-read_excel("sy.xlsx")%>%tbl_df()
wy<-read_excel("wy.xlsx")%>%tbl_df()
varp<-0.05
#
a0b1=numeric();a1b1=numeric();a2b1=numeric();a3b1=numeric();a4b1=numeric()
a0b2=numeric();a1b2=numeric();a2b2=numeric();a3b2=numeric();a4b2=numeric()
a0c1=numeric();a1c1=numeric();a2c1=numeric();a3c1=numeric();a4c1=numeric()
a0c2=numeric();a1c2=numeric();a2c2=numeric();a3c2=numeric();a4c2=numeric()
a0d1=numeric();a1d1=numeric();a2d1=numeric();a3d1=numeric();a4d1=numeric()
a0d2=numeric();a1d2=numeric();a2d2=numeric();a3d2=numeric();a4d2=numeric()
a0e1=numeric();a1e1=numeric();a2e1=numeric();a3e1=numeric();a4e1=numeric()
a0e2=numeric();a1e2=numeric();a2e2=numeric();a3e2=numeric();a4e2=numeric()
a0g1=numeric();a1g1=numeric();a2g1=numeric();a3g1=numeric();a4g1=numeric()
a0g2=numeric();a1g2=numeric();a2g2=numeric();a3g2=numeric();a4g2=numeric()
a0f1=list(NA,NA,NA,NA,NA);a1f1=list(NA,NA,NA,NA,NA);a2f1=list(NA,NA,NA,NA,NA);a3f1=list(NA,NA,NA,NA,NA);a4f1=list(NA,NA,NA,NA,NA)
a0f2=list(NA,NA,NA,NA,NA);a1f2=list(NA,NA,NA,NA,NA);a2f2=list(NA,NA,NA,NA,NA);a3f2=list(NA,NA,NA,NA,NA);a4f2=list(NA,NA,NA,NA,NA)#循环开始。。3年求尾部beta
for(i in 0:20){for(h in 0:11){r1<-filter(r,Trdmnt>=(19950101+100*h+10000*i),Trdmnt<(19980101+100*h+10000*i))# 筛选出上市时期不大于5年窗口期第一个交易日的股票r1<-filter(r1,List<=min(r1$Trdmnt))k<-round(nrow(distinct(r1,Trdmnt))*varp)r2<-distinct(r1,Trdmnt,.keep_all = TRUE)%>%transmute(rme=Cdretwdos-Nrrdaydt/100,rme=-rme)%>%arrange(rme)r3<-slice(r2,(nrow(distinct(r1,Trdmnt))-k+1):n())r4<-transmute(r3,lrme=log(rme));a<-sum(r4)       α1<-1/k*a-log(as.numeric(slice(r2,nrow(distinct(r1,Trdmnt))-k))) #得出 Hill estimatorr5<-mutate(r1,rje=-(Dretwd-Nrrdaydt/100),rme=-(Cdretwdos-Nrrdaydt/100))b<-group_by(r5,Stkcd)%>%arrange(rme)%>%slice(n()-round(n()*varp))%>%select(Stkcd,rme)%>%rename(frme=rme) #市场VARf<-group_by(r5,Stkcd)%>%arrange(rje)%>%slice(n()-round(n()*varp))%>%select(Stkcd,rje)%>%rename(frje=rje) #个股VARe<-group_by(r5,Stkcd)%>%summarise(k=round(n()*varp)) # 也可以求出k值# 检验分组正确性 ff<-filter(r5,Stkcd==2)%>%arrange(rje)# 有时用slice选择行会出错,可以用filter。c<-left_join(r5,f,by="Stkcd")%>%left_join(b,by="Stkcd")c1<-mutate(c,t=ifelse(rje>frje&rme>frme,1,0),tt=ifelse(rme>frme,1,0))c2<-group_by(c1,Stkcd)%>%summarise(τ=sum(t)/sum(tt)) varm<-bvarj<-fd<-left_join(c2,varj,by="Stkcd")%>%left_join(varm,by="Stkcd")%>%mutate(tβ=(τ^α1)*frje/frme)%>%select(-(2:4))%>%arrange(desc(tβ))%>%filter(tβ!="NA",tβ!="NaN")y6<-filter(y5,Trdmnt==(199801+h+100*i))a0b1[i*12+(h+1)]=mean(inner_join(y6,slice(d,1:(n()/5)),by="Stkcd")$eMretwd)a1b1[i*12+(h+1)]=mean(inner_join(y6,slice(d,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$eMretwd)a2b1[i*12+(h+1)]=mean(inner_join(y6,slice(d,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$eMretwd)a3b1[i*12+(h+1)]=mean(inner_join(y6,slice(d,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$eMretwd)a4b1[i*12+(h+1)]=mean(inner_join(y6,slice(d,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$eMretwd)a0b2[i*12+(h+1)]=weighted.mean(inner_join(y6,slice(d,1:(n()/5)),by="Stkcd")$eMretwd,inner_join(y6,slice(d,1:(n()/5)),by="Stkcd")$Msmvosd)a1b2[i*12+(h+1)]=weighted.mean(inner_join(y6,slice(d,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$eMretwd,inner_join(y6,slice(d,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$Msmvosd)a2b2[i*12+(h+1)]=weighted.mean(inner_join(y6,slice(d,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$eMretwd,inner_join(y6,slice(d,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$Msmvosd)a3b2[i*12+(h+1)]=weighted.mean(inner_join(y6,slice(d,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$eMretwd,inner_join(y6,slice(d,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$Msmvosd)a4b2[i*12+(h+1)]=weighted.mean(inner_join(y6,slice(d,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$eMretwd,inner_join(y6,slice(d,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$Msmvosd)#  得出市场贝塔值:filter(n()>=24)%>%summarise(β=as.matrix(lm(eMretwd~ecm)$coefficients)[2]);summarise(β=cov(Mretwd,Cmretwdos)/var(Cmretwdos))y55<-filter(y5,Trdmnt>=(199501+h+100*i),Trdmnt<(199801+h+100*i))# 筛选出上市时期不大于3年窗口期第一个交易日的股票y55<-filter(y55,List<=min(y55$Trdmnt))dd<-group_by(y55,Stkcd)%>%filter(n()>=24)%>%summarise(β=as.matrix(lm(eMretwd~ecm)$coefficients)[2])%>%filter(β!="NA")g<-left_join(d,dd,by="Stkcd")%>%mutate(cβ=tβ-β)%>%select(1,4)%>%arrange(desc(cβ))%>%filter(cβ!="NA")a0c1[i*12+(h+1)]=mean(inner_join(y6,slice(g,1:(n()/5)),by="Stkcd")$eMretwd)a1c1[i*12+(h+1)]=mean(inner_join(y6,slice(g,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$eMretwd)a2c1[i*12+(h+1)]=mean(inner_join(y6,slice(g,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$eMretwd)a3c1[i*12+(h+1)]=mean(inner_join(y6,slice(g,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$eMretwd)a4c1[i*12+(h+1)]=mean(inner_join(y6,slice(g,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$eMretwd)# 作差:a5c1[i*12+(h+1)]=mean(inner_join(y6,slice(g,1:(n()/5)),by="Stkcd")$eMretwd)-mean(inner_join(y6,slice(g,(n()/5*4+1):n()),by="Stkcd")$eMretwd)a0c2[i*12+(h+1)]=weighted.mean(inner_join(y6,slice(g,1:(n()/5)),by="Stkcd")$eMretwd,inner_join(y6,slice(g,1:(n()/5)),by="Stkcd")$Msmvosd)a1c2[i*12+(h+1)]=weighted.mean(inner_join(y6,slice(g,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$eMretwd,inner_join(y6,slice(g,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$Msmvosd)a2c2[i*12+(h+1)]=weighted.mean(inner_join(y6,slice(g,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$eMretwd,inner_join(y6,slice(g,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$Msmvosd)a3c2[i*12+(h+1)]=weighted.mean(inner_join(y6,slice(g,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$eMretwd,inner_join(y6,slice(g,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$Msmvosd)a4c2[i*12+(h+1)]=weighted.mean(inner_join(y6,slice(g,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$eMretwd,inner_join(y6,slice(g,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$Msmvosd)# 作差: a5c2[i*12+(h+1)]=weighted.mean(inner_join(y6,slice(g,1:(n()/5)),by="Stkcd")$eMretwd,inner_join(y6,slice(g,1:(n()/5)),by="Stkcd")$Msmvosd)-weighted.mean(inner_join(y6,slice(g,(n()/5*4+1):n()),by="Stkcd")$eMretwd,inner_join(y6,slice(g,(n()/5*4+1):n()),by="Stkcd")$Msmvosd)#加入capm 的收益:y7<-left_join(y6,dd,by="Stkcd")%>%filter(β!="NA")%>%mutate(eMretwd=eMretwd-ecm*β)a0d1[i*12+(h+1)]=mean(inner_join(y7,slice(g,1:(n()/5)),by="Stkcd")$eMretwd)a1d1[i*12+(h+1)]=mean(inner_join(y7,slice(g,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$eMretwd)a2d1[i*12+(h+1)]=mean(inner_join(y7,slice(g,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$eMretwd)a3d1[i*12+(h+1)]=mean(inner_join(y7,slice(g,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$eMretwd)a4d1[i*12+(h+1)]=mean(inner_join(y7,slice(g,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$eMretwd)a0d2[i*12+(h+1)]=weighted.mean(inner_join(y7,slice(g,1:(n()/5)),by="Stkcd")$eMretwd,inner_join(y7,slice(g,1:(n()/5)),by="Stkcd")$Msmvosd)a1d2[i*12+(h+1)]=weighted.mean(inner_join(y7,slice(g,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$eMretwd,inner_join(y7,slice(g,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$Msmvosd)a2d2[i*12+(h+1)]=weighted.mean(inner_join(y7,slice(g,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$eMretwd,inner_join(y7,slice(g,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$Msmvosd)a3d2[i*12+(h+1)]=weighted.mean(inner_join(y7,slice(g,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$eMretwd,inner_join(y7,slice(g,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$Msmvosd)a4d2[i*12+(h+1)]=weighted.mean(inner_join(y7,slice(g,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$eMretwd,inner_join(y7,slice(g,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$Msmvosd)#FF3因子的结果:y8<-left_join(y55,sy,by="Trdmnt")ddd<-group_by(y8,Stkcd)%>%filter(n()>=24)%>%summarise(β=as.matrix(lm(eMretwd~mkt+smb+hml)$coefficients)[2],SMB=as.matrix(lm(eMretwd~mkt+smb+hml)$coefficients)[3],HML=as.matrix(lm(eMretwd~mkt+smb+hml)$coefficients)[4])ddd1<-filter(ddd,β!="NA",SMB!="NA",HML!="NA")y8<-left_join(y6,sy,by="Trdmnt")y9<-left_join(y8,ddd1,by="Stkcd")%>%filter(β!="NA",SMB!="NA",HML!="NA")y10<-mutate(y9,eMretwd=eMretwd-mkt*β-smb*SMB-hml*HML)a0e1[i*12+(h+1)]=mean(inner_join(y10,slice(g,1:(n()/5)),by="Stkcd")$eMretwd)a1e1[i*12+(h+1)]=mean(inner_join(y10,slice(g,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$eMretwd)a2e1[i*12+(h+1)]=mean(inner_join(y10,slice(g,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$eMretwd)a3e1[i*12+(h+1)]=mean(inner_join(y10,slice(g,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$eMretwd)a4e1[i*12+(h+1)]=mean(inner_join(y10,slice(g,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$eMretwd)a0e2[i*12+(h+1)]=weighted.mean(inner_join(y10,slice(g,1:(n()/5)),by="Stkcd")$eMretwd,inner_join(y10,slice(g,1:(n()/5)),by="Stkcd")$Msmvosd)a1e2[i*12+(h+1)]=weighted.mean(inner_join(y10,slice(g,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$eMretwd,inner_join(y10,slice(g,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$Msmvosd)a2e2[i*12+(h+1)]=weighted.mean(inner_join(y10,slice(g,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$eMretwd,inner_join(y10,slice(g,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$Msmvosd)a3e2[i*12+(h+1)]=weighted.mean(inner_join(y10,slice(g,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$eMretwd,inner_join(y10,slice(g,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$Msmvosd)a4e2[i*12+(h+1)]=weighted.mean(inner_join(y10,slice(g,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$eMretwd,inner_join(y10,slice(g,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$Msmvosd)#FF5因子的结果:yy8<-left_join(y55,wy,by="Trdmnt")ddd2<-group_by(yy8,Stkcd)%>%filter(n()>=24)%>%summarise(α=as.matrix(lm(eMretwd~mkt+smb+hml+rmw+cma)$coefficients)[1],β=as.matrix(lm(eMretwd~mkt+smb+hml+rmw+cma)$coefficients)[2],SMB=as.matrix(lm(eMretwd~mkt+smb+hml+rmw+cma)$coefficients)[3],HML=as.matrix(lm(eMretwd~mkt+smb+hml+rmw+cma)$coefficients)[4],RMW=as.matrix(lm(eMretwd~mkt+smb+hml+rmw+cma)$coefficients)[5],CMA=as.matrix(lm(eMretwd~mkt+smb+hml+rmw+cma)$coefficients)[6])ddd3<-filter(ddd2,β!="NA",SMB!="NA",HML!="NA",RMW!="NA",CMA!="NA")yy8<-left_join(y6,wy,by="Trdmnt")yy9<-left_join(yy8,ddd3,by="Stkcd")%>%filter(β!="NA",SMB!="NA",HML!="NA",RMW!="NA",CMA!="NA")yy10<-mutate(yy9,eMretwd=eMretwd-mkt*β-smb*SMB-hml*HML-rmw*RMW-cma*CMA)%>%select(1:8)a0g1[i*12+(h+1)]=mean(inner_join(yy10,slice(g,1:(n()/5)),by="Stkcd")$eMretwd)a1g1[i*12+(h+1)]=mean(inner_join(yy10,slice(g,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$eMretwd)a2g1[i*12+(h+1)]=mean(inner_join(yy10,slice(g,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$eMretwd)a3g1[i*12+(h+1)]=mean(inner_join(yy10,slice(g,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$eMretwd)a4g1[i*12+(h+1)]=mean(inner_join(yy10,slice(g,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$eMretwd)a0g2[i*12+(h+1)]=weighted.mean(inner_join(yy10,slice(g,1:(n()/5)),by="Stkcd")$eMretwd,inner_join(yy10,slice(g,1:(n()/5)),by="Stkcd")$Msmvosd)a1g2[i*12+(h+1)]=weighted.mean(inner_join(yy10,slice(g,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$eMretwd,inner_join(yy10,slice(g,(n()/5*1+1):(n()/5*(1+1))),by="Stkcd")$Msmvosd)a2g2[i*12+(h+1)]=weighted.mean(inner_join(yy10,slice(g,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$eMretwd,inner_join(yy10,slice(g,(n()/5*2+1):(n()/5*(2+1))),by="Stkcd")$Msmvosd)a3g2[i*12+(h+1)]=weighted.mean(inner_join(yy10,slice(g,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$eMretwd,inner_join(yy10,slice(g,(n()/5*3+1):(n()/5*(3+1))),by="Stkcd")$Msmvosd)a4g2[i*12+(h+1)]=weighted.mean(inner_join(yy10,slice(g,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$eMretwd,inner_join(yy10,slice(g,(n()/5*4+1):(n()/5*(4+1))),by="Stkcd")$Msmvosd)###根据月末流通市值排序大小:ms<-max(slice(group_by(arrange(y55,Trdmnt),Stkcd),n())$Trdmnt)y11<-filter(y5,Trdmnt==ms)%>%select(1,3)y12<-left_join(g,y11,by="Stkcd")%>%filter(Msmvosd!="NA")%>%arrange(Msmvosd)for(l in 0:4){a0f1[[l+1]][i*12+(h+1)]=mean(inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*0+1):(n()/5*(0+1))),-Msmvosd),by="Stkcd")$eMretwd)a1f1[[l+1]][i*12+(h+1)]=mean(inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*1+1):(n()/5*(1+1))),-Msmvosd),by="Stkcd")$eMretwd)a2f1[[l+1]][i*12+(h+1)]=mean(inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*2+1):(n()/5*(2+1))),-Msmvosd),by="Stkcd")$eMretwd)a3f1[[l+1]][i*12+(h+1)]=mean(inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*3+1):(n()/5*(3+1))),-Msmvosd),by="Stkcd")$eMretwd)a4f1[[l+1]][i*12+(h+1)]=mean(inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*4+1):(n()/5*(4+1))),-Msmvosd),by="Stkcd")$eMretwd)a0f2[[l+1]][i*12+(h+1)]=weighted.mean(inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*0+1):(n()/5*(0+1))),-Msmvosd),by="Stkcd")$eMretwd,inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*0+1):(n()/5*(0+1))),-Msmvosd),by="Stkcd")$Msmvosd)a1f2[[l+1]][i*12+(h+1)]=weighted.mean(inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*1+1):(n()/5*(1+1))),-Msmvosd),by="Stkcd")$eMretwd,inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*1+1):(n()/5*(1+1))),-Msmvosd),by="Stkcd")$Msmvosd)a2f2[[l+1]][i*12+(h+1)]=weighted.mean(inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*2+1):(n()/5*(2+1))),-Msmvosd),by="Stkcd")$eMretwd,inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*2+1):(n()/5*(2+1))),-Msmvosd),by="Stkcd")$Msmvosd)a3f2[[l+1]][i*12+(h+1)]=weighted.mean(inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*3+1):(n()/5*(3+1))),-Msmvosd),by="Stkcd")$eMretwd,inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*3+1):(n()/5*(3+1))),-Msmvosd),by="Stkcd")$Msmvosd)a4f2[[l+1]][i*12+(h+1)]=weighted.mean(inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*4+1):(n()/5*(4+1))),-Msmvosd),by="Stkcd")$eMretwd,inner_join(yy10,select(slice(arrange(slice(y12,(n()/5*l+1):(n()/5*(l+1))),desc(cβ)),(n()/5*4+1):(n()/5*(4+1))),-Msmvosd),by="Stkcd")$Msmvosd)}}}
##循环结束。。# 直接生成表格
m1=numeric();m2=numeric();m3=numeric();m4=numeric();m5=numeric();m6=numeric()
for(o in 1:2){for(i in 1:5){m1[i+(o-1)*12]=mean(lapply(paste0("a",0:4,"b",o),get)[[i]])*100}m1[i+(o-1)*12+1]=mean(lapply(paste0("a",0:4,"b",o),get)[[1]]-lapply(paste0("a",0:4,"b",o),get)[[5]])*100for(i in 1:5){m1[i+(o-1)*12+6]=t.test(lapply(paste0("a",0:4,"b",o),get)[[i]])$statistic[[1]]}m1[i+(o-1)*12+7]=t.test(lapply(paste0("a",0:4,"b",o),get)[[1]]-lapply(paste0("a",0:4,"b",o),get)[[5]])$statistic[[1]]}#根据差价分组
for(o in 1:2){for(i in 1:5){m2[i+(o-1)*12]=mean(lapply(paste0("a",0:4,"c",o),get)[[i]])*100}m2[i+(o-1)*12+1]=mean(lapply(paste0("a",0:4,"c",o),get)[[1]]-lapply(paste0("a",0:4,"c",o),get)[[5]])*100for(i in 1:5){m2[i+(o-1)*12+6]=t.test(lapply(paste0("a",0:4,"c",o),get)[[i]])$statistic[[1]]}m2[i+(o-1)*12+7]=t.test(lapply(paste0("a",0:4,"c",o),get)[[1]]-lapply(paste0("a",0:4,"c",o),get)[[5]])$statistic[[1]]}#投资组合收益率经过CAPM模型回归的截距项
for(o in 1:2){for(i in 1:5){m3[i+(o-1)*12]=mean(lapply(paste0("a",0:4,"d",o),get)[[i]])*100}m3[i+(o-1)*12+1]=mean(lapply(paste0("a",0:4,"d",o),get)[[1]]-lapply(paste0("a",0:4,"d",o),get)[[5]])*100for(i in 1:5){m3[i+(o-1)*12+6]=t.test(lapply(paste0("a",0:4,"d",o),get)[[i]])$statistic[[1]]}m3[i+(o-1)*12+7]=t.test(lapply(paste0("a",0:4,"d",o),get)[[1]]-lapply(paste0("a",0:4,"d",o),get)[[5]])$statistic[[1]]}#投资组合收益率经过FF3模型回归的截距项
for(o in 1:2){for(i in 1:5){m4[i+(o-1)*12]=mean(lapply(paste0("a",0:4,"e",o),get)[[i]])*100}m4[i+(o-1)*12+1]=mean(lapply(paste0("a",0:4,"e",o),get)[[1]]-lapply(paste0("a",0:4,"e",o),get)[[5]])*100for(i in 1:5){m4[i+(o-1)*12+6]=t.test(lapply(paste0("a",0:4,"e",o),get)[[i]])$statistic[[1]]}m4[i+(o-1)*12+7]=t.test(lapply(paste0("a",0:4,"e",o),get)[[1]]-lapply(paste0("a",0:4,"e",o),get)[[5]])$statistic[[1]]}#投资组合收益率经过FF5模型回归的截距项
for(o in 1:2){for(i in 1:5){m5[i+(o-1)*12]=mean(lapply(paste0("a",0:4,"g",o),get)[[i]])*100}m5[i+(o-1)*12+1]=mean(lapply(paste0("a",0:4,"g",o),get)[[1]]-lapply(paste0("a",0:4,"g",o),get)[[5]])*100for(i in 1:5){m5[i+(o-1)*12+6]=t.test(lapply(paste0("a",0:4,"g",o),get)[[i]])$statistic[[1]]}m5[i+(o-1)*12+7]=t.test(lapply(paste0("a",0:4,"g",o),get)[[1]]-lapply(paste0("a",0:4,"g",o),get)[[5]])$statistic[[1]]}mm1<-matrix(c(m1,m2,m3,m4,m5),20,6,byrow=TRUE)
#经过规模细分的投资组合收益率经过FF5模型回归的截距项
for(o in 1:2){for(v in 1:5){for(l in 1:5){m5[l+(v-1)*5+(o-1)*60]=mean(lapply(paste0("a",0:4,"f",o),get)[[v]][[l]])*100}}for(l in 1:5){m5[l+(v-1)*5+(o-1)*60+5]=mean(lapply(paste0("a",0:4,"f",o),get)[[1]][[l]]-lapply(paste0("a",0:4,"f",o),get)[[5]][[l]])*100}for(v in 1:5){for(l in 1:5){m5[l+(v-1)*5+(o-1)*60+30]=t.test(lapply(paste0("a",0:4,"f",o),get)[[v]][[l]])$statistic[[1]]}}for(l in 1:5){m5[l+(v-1)*5+(o-1)*60+35]=t.test(lapply(paste0("a",0:4,"f",o),get)[[1]][[l]]-lapply(paste0("a",0:4,"f",o),get)[[5]][[l]])$statistic[[1]]}}# 平均
for(o in 1:2){for(v in 1:5){m6[v+(o-1)*12]=mean(apply(do.call("cbind",lapply(paste0("a",0:4,"f",o),get)[[v]]),1,mean))*100}m6[v+(o-1)*12+1]=mean(apply(do.call("cbind",lapply(paste0("a",0:4,"f",o),get)[[1]]),1,mean)-apply(do.call("cbind",lapply(paste0("a",0:4,"f",o),get)[[5]]),1,mean))*100for(v in 1:5){   m6[v+(o-1)*12+6]=t.test(apply(do.call("cbind",lapply(paste0("a",0:4,"f",o),get)[[v]]),1,mean))$statistic[[1]]}m6[v+(o-1)*12+7]=t.test(apply(do.call("cbind",lapply(paste0("a",0:4,"f",o),get)[[1]]),1,mean)-apply(do.call("cbind",lapply(paste0("a",0:4,"f",o),get)[[5]]),1,mean))$statistic[[1]]}mm2<-matrix(m6,4,6,byrow = TRUE)
mm3<-rbind(mm1,matrix(m5[1:30],5,6),mm2[1,],matrix(m5[31:60],5,6),mm2[2,],matrix(m5[61:90],5,6),mm2[3,],matrix(m5[91:120],5,6),mm2[4,])
write.csv(mm3,"E:/R/tail risk/table/mm.csv",row.names = FALSE)

检验市场收益率处于极端损失时的有效性

# 左右尾分布:
## 1月:
ys<-distinct(y5,Trdmnt,.keep_all = TRUE)%>%filter(Trdmnt>=199801&Trdmnt<=201812)%>%arrange(ecm)
#左尾
s<-slice(ys,1:(0.1*n()))
#右尾
s<-slice(ys,(n()-0.90*n()+1):n())
# 计算分位数值:  slice(ys,0.1*n())$ecm;slice(ys,n()-0.5*n()+1)$ecm# 直接生成表格
##根据尾部贝塔值分组
m1=numeric();m2=numeric();m3=numeric();m4=numeric();m5=numeric();m6=numeric()
# 投资组合收益率
for(o in 1:2){for(i in 1:5){m1[i+(o-1)*12]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"b",o),get)[[i]]),s,by="Trdmnt")$zsy)*100}m1[i+(o-1)*12+1]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"b",o),get)[[1]]),s,by="Trdmnt")$zsy-semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"b",o),get)[[5]]),s,by="Trdmnt")$zsy)*100for(i in 1:5){m1[i+(o-1)*12+6]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"b",o),get)[[i]]),s,by="Trdmnt")$zsy)$statistic[[1]]}m1[i+(o-1)*12+7]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"b",o),get)[[1]]),s,by="Trdmnt")$zsy-semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"b",o),get)[[5]]),s,by="Trdmnt")$zsy)$statistic[[1]]}#根据差价分组
for(o in 1:2){for(i in 1:5){m2[i+(o-1)*12]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"c",o),get)[[i]]),s,by="Trdmnt")$zsy)*100}m2[i+(o-1)*12+1]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"c",o),get)[[1]]),s,by="Trdmnt")$zsy-semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"c",o),get)[[5]]),s,by="Trdmnt")$zsy)*100for(i in 1:5){m2[i+(o-1)*12+6]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"c",o),get)[[i]]),s,by="Trdmnt")$zsy)$statistic[[1]]}m2[i+(o-1)*12+7]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"c",o),get)[[1]]),s,by="Trdmnt")$zsy-semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"c",o),get)[[5]]),s,by="Trdmnt")$zsy)$statistic[[1]]}#投资组合收益率经过CAPM模型回归的截距项
for(o in 1:2){for(i in 1:5){m3[i+(o-1)*12]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"d",o),get)[[i]]),s,by="Trdmnt")$zsy)*100}m3[i+(o-1)*12+1]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"d",o),get)[[1]]),s,by="Trdmnt")$zsy-semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"d",o),get)[[5]]),s,by="Trdmnt")$zsy)*100for(i in 1:5){m3[i+(o-1)*12+6]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"d",o),get)[[i]]),s,by="Trdmnt")$zsy)$statistic[[1]]}m3[i+(o-1)*12+7]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"d",o),get)[[1]]),s,by="Trdmnt")$zsy-semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"d",o),get)[[5]]),s,by="Trdmnt")$zsy)$statistic[[1]]}#投资组合收益率经过FF3模型回归的截距项
for(o in 1:2){for(i in 1:5){m4[i+(o-1)*12]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"e",o),get)[[i]]),s,by="Trdmnt")$zsy)*100}m4[i+(o-1)*12+1]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"e",o),get)[[1]]),s,by="Trdmnt")$zsy-semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"e",o),get)[[5]]),s,by="Trdmnt")$zsy)*100for(i in 1:5){m4[i+(o-1)*12+6]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"e",o),get)[[i]]),s,by="Trdmnt")$zsy)$statistic[[1]]}m4[i+(o-1)*12+7]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"e",o),get)[[1]]),s,by="Trdmnt")$zsy-semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"e",o),get)[[5]]),s,by="Trdmnt")$zsy)$statistic[[1]]}#投资组合收益率经过FF5模型回归的截距项
for(o in 1:2){for(i in 1:5){m5[i+(o-1)*12]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"g",o),get)[[i]]),s,by="Trdmnt")$zsy)*100}m5[i+(o-1)*12+1]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"g",o),get)[[1]]),s,by="Trdmnt")$zsy-semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"g",o),get)[[5]]),s,by="Trdmnt")$zsy)*100for(i in 1:5){m5[i+(o-1)*12+6]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"g",o),get)[[i]]),s,by="Trdmnt")$zsy)$statistic[[1]]}m5[i+(o-1)*12+7]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"g",o),get)[[1]]),s,by="Trdmnt")$zsy-semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,zsy=lapply(paste0("a",0:4,"g",o),get)[[5]]),s,by="Trdmnt")$zsy)$statistic[[1]]}mm1<-matrix(c(m1,m2,m3,m4,m5),20,6,byrow=TRUE)
#经过规模细分的投资组合收益率经过FF5模型回归的截距项
for(o in 1:2){for(v in 1:5){for(l in 1:5){m5[l+(v-1)*5+(o-1)*60]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,eMretwd=lapply(paste0("a",0:4,"f",o),get)[[v]][[l]]),s,by="Trdmnt")$eMretwd)*100}}for(l in 1:5){m5[l+(v-1)*5+(o-1)*60+5]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,eMretwd=lapply(paste0("a",0:4,"f",o),get)[[1]][[l]]-lapply(paste0("a",0:4,"f",o),get)[[5]][[l]]),s,by="Trdmnt")$eMretwd)*100}for(v in 1:5){for(l in 1:5){m5[l+(v-1)*5+(o-1)*60+30]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,eMretwd=lapply(paste0("a",0:4,"f",o),get)[[v]][[l]]),s,by="Trdmnt")$eMretwd)$statistic[[1]]}}for(l in 1:5){m5[l+(v-1)*5+(o-1)*60+35]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,eMretwd=lapply(paste0("a",0:4,"f",o),get)[[1]][[l]]-lapply(paste0("a",0:4,"f",o),get)[[5]][[l]]),s,by="Trdmnt")$eMretwd)$statistic[[1]]}}# 平均
for(o in 1:2){for(v in 1:5){m6[v+(o-1)*12]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,eMretwd=apply(do.call("cbind",lapply(paste0("a",0:4,"f",o),get)[[v]]),1,mean)),s,by="Trdmnt")$eMretwd)*100}m6[v+(o-1)*12+1]=mean(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,eMretwd=apply(do.call("cbind",lapply(paste0("a",0:4,"f",o),get)[[1]]),1,mean)-apply(do.call("cbind",lapply(paste0("a",0:4,"f",o),get)[[5]]),1,mean)),s,by="Trdmnt")$eMretwd)*100for(v in 1:5){   m6[v+(o-1)*12+6]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,eMretwd=apply(do.call("cbind",lapply(paste0("a",0:4,"f",o),get)[[v]]),1,mean)),s,by="Trdmnt")$eMretwd)$statistic[[1]]}m6[v+(o-1)*12+7]=t.test(semi_join(data.frame(Trdmnt=arrange(ys,Trdmnt)$Trdmnt,eMretwd=apply(do.call("cbind",lapply(paste0("a",0:4,"f",o),get)[[1]]),1,mean)-apply(do.call("cbind",lapply(paste0("a",0:4,"f",o),get)[[5]]),1,mean)),s,by="Trdmnt")$eMretwd)$statistic[[1]]}
mm2<-matrix(m6,4,6,byrow = TRUE)
mm3<-rbind(mm1,matrix(m5[1:30],5,6),mm2[1,],matrix(m5[31:60],5,6),mm2[2,],matrix(m5[61:90],5,6),mm2[3,],matrix(m5[91:120],5,6),mm2[4,])
write.csv(mm3,"E:/R/tail risk/table/mm.csv",row.names = FALSE)

利用3年日数据检验尾部风险测度(基于风险调整收益)相关推荐

  1. 尾部相关性尾部风险价圣分

    转 尾部相关性.尾部风险平价和圣杯分布 作者:石川,量信投资创始合伙人,清华大学学士.硕士,麻省理工学院博士:精通各种概率模型和统计方法,擅长不确定性随机系统的建模及优化.知乎专栏:https://z ...

  2. 尾部相性尾部风险平价和圣杯布

    转 尾部相关性.尾部风险平价和圣杯分布 作者:石川,量信投资创始合伙人,清华大学学士.硕士,麻省理工学院博士:精通各种概率模型和统计方法,擅长不确定性随机系统的建模及优化.知乎专栏:https://z ...

  3. 尾部关性尾部风险平价和圣杯分布

    转 尾部相关性.尾部风险平价和圣杯分布 作者:石川,量信投资创始合伙人,清华大学学士.硕士,麻省理工学院博士:精通各种概率模型和统计方法,擅长不确定性随机系统的建模及优化.知乎专栏:https://z ...

  4. DL之CNN可视化:利用SimpleConvNet算法【3层,im2col优化】基于mnist数据集训练并对卷积层输出进行可视化

    DL之CNN可视化:利用SimpleConvNet算法[3层,im2col优化]基于mnist数据集训练并对卷积层输出进行可视化 导读 利用SimpleConvNet算法基于mnist数据集训练并对卷 ...

  5. python 适合做什么生意赚钱投资小_使用Python进行优化:如何以最小的风险赚取最多的收益?...

    原标题:使用Python进行优化:如何以最小的风险赚取最多的收益?

  6. 资产风险的分类及风险测度理论与方法

    风险概述 风险是指事件发生与否的不确定性,用在金融资产上,风险指的是获得收益的不确定性,通常以实际收益与期望收益的偏离来表示. 风险分类 市场风险 又称为系统性风险,是指能够对所有金融资产造成影响的风 ...

  7. 利用python进行单边T检验

    可以利用 python 中的 scipy.stats.ttest_ind 做关于两组数据的双边 t 检验,结果比较简单.但是做 大于或者小于的单边检测的时候需要做一些处理,才能得到正确的结果. fro ...

  8. 福建自贸区利用大数据防控涉税风险 拟在全国推广

    随着商事制度改革逐步推进,自贸试验区纳税人数量井喷式增长.与此同时,自贸试验区企业经营业态趋于复杂,税收遵从水平有待提升.如何化解事中事后税收监管难题,对税务部门提出了更高要求. 省国税局运用&quo ...

  9. 利用Eviews进行格兰杰因果检验

    1.打开Eviews(点击Create a new Eviews workfile) 2.在observations输入你的数据的列数 3.在command中输入data **(data后面是数据列的 ...

最新文章

  1. android tombstone发生过程,Android Tombstone 分析
  2. 用Unity和C#创建在线多人游戏学习教程
  3. LUA C 交互 cocos
  4. 代码对比与文件对比的一个简单方法
  5. LVS峰会 | 阿里云李刚:下一代低延时的直播CDN
  6. java生成数据插入hbase_hbase实战之javaAPI插入数据
  7. 《白日梦想家》观后感
  8. 计算机二级access什么时候报名_全国计算机等级考试什么时候报名
  9. 轴固定位置_何为轴?来看看你对轴了解了么
  10. 反编译object文件c语言,能不能通过反编译程序看.sys文件的源代码!
  11. python滤波器信号处理_详解利用Python scipy.signal.filtfilt() 实现信号滤波
  12. HTML5期末大作业:动漫网站设计——千与千寻(10页) 含设计报告 HTML+CSS+JavaScript 学生动漫网页设计模板下载 海贼王大学生HTML网页制作作品
  13. matlab功能特点,MATLAB的特点及应用领域
  14. 【中科院信工所】22考研经验分享
  15. 那些年啊,那些事——一个程序员的奋斗史 ——18
  16. win10系统ltsc和服务器版哪个好,win10哪个版本最稳定流畅
  17. wxpy登录 KeyError: 'pass_ticket'
  18. 英语计算机单词怎么记,英语单词快速记忆法
  19. 直播http-flv小调研
  20. 等保合规是什么意思?怎么做?

热门文章

  1. 饿了么并入口碑,一场“非典型”新零售大战的开始
  2. 小Q书桌-界面和操作类似iphone风格的快速启动器
  3. 能在电脑桌面提醒待办事项的日程安排管理软件
  4. H3CNE-rip协议
  5. mysql关键字的区别_Mysql关键字和保留字(注意)
  6. axure专业级图表/地图可视化元件库 – Axhub Charts Pro V2.1.1
  7. 机械制图和计算机编程,不懂机械制图可以学习CNC编程吗?
  8. 计算机毕业设计Java宠物领养管理系统(源码+系统+mysql数据库+lw文档
  9. 如何屏蔽键盘按键或者更改键盘按键
  10. 攻守一体,酣畅淋漓——分析《只狼》的战斗系统