关于数据挖掘:MATLABR基于Copula方法和kmeans聚类的股票选择研究上证A股数据

43次阅读

共计 3346 个字符,预计需要花费 9 分钟才能阅读完成。

全文链接:http://tecdat.cn/?p=31733

原文出处:拓端数据部落公众号

Copula 办法是测度金融市场间尾部相关性比拟无效的办法,而且可用于钻研非正态、非线性以及尾部非对称等较简单的相依特色关系。因而,Copula 办法开始逐步代替多元 GARCH 模型的相关性剖析,成为考查金融变量间关系的风行办法,被宽泛地用于市场一体化、风险管理以及期货套期保值的钻研中。

国内外学者对于尾部相关性和 Copula 办法曾经有了深刻的钻研,提出多种 Copula 模型来一直优化尾部相关系数对于不同状况下股票之间相关性的刻画,对于股票的聚类办法也进行了改良和拓展,然而可能联合这些办法对于资产抉择进行钻研的较少。尤其是在面对现今股票市场海量级的股票数据,如何从股票间的尾部相关性开掘到无效信息,失去可能无效躲避危险的资产组合是很少有人钻研的问题。并且大多尾部相干的剖析都只停留在定性的剖析中,并且多是在市场与市场之间,板块与板块之间的相关性剖析,对于股票间定量的相关性钻研还有有余。置信研究成果对于投资者无效的躲避危险,寻求最佳的投资组合有较大的帮忙。

本文联合 Copula 办法和聚类思维对大数量级的股票间尾部相关性进行剖析,帮忙客户构建混合 Copula 模型并计算股票间尾部相关系数,再依据尾部相关系数选用正当高效的聚类办法进行聚类,为投资者抉择投资组合提供无效的倡议。

上证 A 股数据

本文选取上证 A 股数据,其数据来源于 wind 数据库。因为工夫距离较长,本文将通过对相关系数进行计算来剖析其之间的相关性,而后再通过聚类分析将其合并来进行钻研。具体步骤如下:

非参数核预计边缘散布

j=1077

aj=median(sy(:,j)); %(j=1(SZGY),2(SZSY),3(SZDC),4(GYSY))

bj=median(abs(sy(:,j)-aj))/0.6745;

hj=1.06*bj*1077^(-1/5);

1,固定函数的参数,抉择权重的初值为:1/ 3。对权重进行预计。

d=cdf('Normal',(sy(n,j)-wj(i))/hj,0,1);

sum=sum+d;

end

2,固定权重为第 1 步的估计值,抉择参数的初值为第上一节的估计值,对函数的参数进行预计。

% 求似然值

%fenbu=xlsread('fenbu.xlsx'); % 读取数据,fenbu=sy;

u=mean(sy);

3,将第 2 步预计失去的参数值作为固定值,权重初值抉择第 1 步的估计值,进行权重预计。

s(j)=s(j)+b(i); % 求似然值

end

end

预计混合 Copula 权重

theta=0.5;
for j=1:1000;

k1(1)=0.2; % 权重初值

k2(1)=0.3 ;

c3(i)=1077^(-1)*k3(j)*fr(i)*(k1(j)*gu(i)+k2(j)*cl(i)+k3(j)*fr(i))^(-1);

k1(j+1)=k1(j+1)+c1(i); %gu(i),cl(i),fr(i) 示意三个函数的密度函数

abs(k3(j+1)-k3(j))<=0.000001); % 满足收敛条件是跳出

end

l=length(k1') % 收敛时的步骤数目

k1(l),k2(l),k3(l) % 收敛时的后果 

预计混合 Copula 模型的函数参数

%b=b(0); % 参数初值

for j=1:1000; % 运算步骤

h1(i)=k1*gu_p(i)*gu(i)/(gu_m(i)*(k1*gu(i)+k2*cl(i)+k3*fr(i)));

s1=s1+h1(i); %gu_p 是 Gumbel 密度函数,gu_m 是 Gumbel 的密度函数

n=13;d=array(0 dim=c(13 13))  
for(i in 1:(n-1)){d[i i]=1  
  for(j in (i+1):n){clayton.cop=claytonCopula(3 dim=2);clayton.cop  
    u=pobs(b);u
    

生成随机数


M=0.247060*G'+0.441831*C'+0.311109*F'; % 生成混合 Copula 随机数

计算每个不同类时的 k-means 聚类后果, 并计算平均偏差, 且画出图形

for c = 2:8

  [idx,ctrs] = kmeans(M,c);

[aic,bic] = aicbic([logL1;logL2;logL3;logL4],

当聚类数目为 7 时的 k-means 聚类

c=7;

  [idx,ctrs] = kmeans(M,c);

X=M

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)

上尾

hold on

plot(X(idx==4,1),X(idx==4,2),'b.','MarkerSize',12)

hold on

plot(X(idx==5,1),X(idx==5,2),'b.','MarkerSize',12)

hold on

plot(X(idx==6,1),X(idx==6,2),'b.','MarkerSize',12)

hold on

plot(X(idx==7,1),X(idx==7,2),'b.','MarkerSize',12)

hold on

plot(X(idx==8,1),X(idx==8,2),'b.','MarkerSize',12)

hold on

 plot(ctrs(:,1),ctrs(:,2),'kx',...

Average square within cluster

library(cluster)  
agn1=aes(delta method="average");agn1
plot(x with.ss")  
lines(x with.ss lty=2)

下尾

Average square within cluster

输入上尾和下尾相关系数

输入股票类别

本文将 Copula 办法利用到股票市场的相干剖析中,以上证 A 股数据作为钻研对象,基于 Copula 办法构建了对不同投资组合的危险和收益的预测模型;其次,将聚类思维利用到股票抉择中,将抉择进去的股票进行聚类分析,得出各个聚类后果。本文不仅思考了股票之间的相干关系,还思考了它们之间的相关性。


最受欢迎的见解

1.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80%e7%bb%98%e5%88%b6%e7%94%…) R 语言基于 ARMA-GARCH-VaR 模型拟合和预测实证钻研

2.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80%e7%94%9f%e5%ad%98%e5%88%…) r 语言实现 copula 算法建模依赖性案例

3.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80%e5%a6%82%e4%bd%95%e5%9c%…) R 语言 COPULAS 和金融工夫序列数据 VaR 剖析

4.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80%e4%b8%ad%e4%bd%bf%e7%94%…) R 语言多元 COPULA GARCH 模型工夫序列预测

5.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80%e7%94%9f%e5%ad%98%e5%88%…)GARCH(1,1),MA 以及历史模拟法的 VaR 比拟

6.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80ggplot2%e8%af%af%e5%b7%ae…)matlab 应用 Copula 仿真优化市场危险数据分析

7.[](http://tecdat.cn/r-%e8%af%ad%e8%a8%80%e7%bb%98%e5%88%b6%e5%8a…) R 语言实现向量主动回归 VAR 模型

8.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80%e5%a6%82%e4%bd%95%e6%89%…) R 语言随机搜寻变量抉择 SSVS 预计贝叶斯向量自回归(BVAR)模型

9.[](http://tecdat.cn/r%e8%af%ad%e8%a8%80%e4%b8%ad%e7%9a%84%e7%94%…) R 语言 VAR 模型的不同类型的脉冲响应剖析

正文完
 0