MATLAB代做  | MATLAB代寫  | MATLAB有償編程
首 頁
當前位置:MATLAB代做|MATLAB代寫|MATLAB有償編程matlab源碼參考源碼matlab方面
基于matlab編程Copula理論及應用實例源碼程序        [↓跳到下載地址]
官方主頁:源碼共享網站:www.kggbzb.tw

聯系方式:客服QQ:1747812398 買代碼源碼軟件站,歡迎咨詢

運行環境:Win9X/2000/XP/2003/

源碼語言:簡體中文

源碼類型:源碼程序 - 參考源碼 - matlab方面

推薦星級:

更新時間:2016-04-05 22:33:13

源碼簡介

%--------------------------------------------------------------------------
%                         Copula理論及應用實例
%--------------------------------------------------------------------------

%******************************讀取數據*************************************
% 從文件hushi.xls中讀取數據
hushi = xlsread('hushi.xls');
% 提取矩陣hushi的第5列數據,即滬市的日收益率數據
X = hushi(:,5);
% 從文件shenshi.xls中讀取數據
shenshi = xlsread('shenshi.xls');
% 提取矩陣shenshi的第5列數據,即深市的日收益率數據
Y = shenshi(:,5);


%****************************繪制頻率直方圖*********************************
% 調用ecdf函數和ecdfhist函數繪制滬、深兩市日收益率的頻率直方圖
[fx, xc] = ecdf(X);
figure;
ecdfhist(fx, xc, 30);
xlabel('滬市日收益率');  % 為X軸加標簽
ylabel('f(x)');  % 為Y軸加標簽
[fy, yc] = ecdf(Y);
figure;
ecdfhist(fy, yc, 30);
xlabel('深市日收益率');  % 為X軸加標簽
ylabel('f(y)');  % 為Y軸加標簽


%****************************計算偏度和峰度*********************************
% 計算X和Y的偏度
xs = skewness(X)
ys = skewness(Y)

% 計算X和Y的峰度
kx = kurtosis(X)
ky = kurtosis(Y)


%******************************正態性檢驗***********************************
% 分別調用jbtest、kstest和lillietest函數對X進行正態性檢驗
[h,p] = jbtest(X)  % Jarque-Bera檢驗
[h,p] = kstest(X,[X,normcdf(X,mean(X),std(X))])  % Kolmogorov-Smirnov檢驗
[h, p] = lillietest(X)  % Lilliefors檢驗

% 分別調用jbtest、kstest和lillietest函數對Y進行正態性檢驗
[h,p] = jbtest(Y)  % Jarque-Bera檢驗
[h,p] = kstest(Y,[Y,normcdf(Y,mean(Y),std(Y))])  % Kolmogorov-Smirnov檢驗
[h, p] = lillietest(Y)  % Lilliefors檢驗


%****************************求經驗分布函數值*******************************
% 調用ecdf函數求X和Y的經驗分布函數
[fx, Xsort] = ecdf(X);
[fy, Ysort] = ecdf(Y);
% 調用spline函數,利用樣條插值法求原始樣本點處的經驗分布函數值
U1 = spline(Xsort(2:end),fx(2:end),X);
V1 = spline(Ysort(2:end),fy(2:end),Y);

% 調用ecdf函數求X和Y的經驗分布函數
[fx, Xsort] = ecdf(X);
[fy, Ysort] = ecdf(Y);
% 提取fx和fy的第2個至最后一個元素,即排序后樣本點處的經驗分布函數值
fx = fx(2:end);
fy = fy(2:end);

% 通過排序和反排序恢復原始樣本點處的經驗分布函數值U1和V1
[Xsort,id] = sort(X);
[idsort,id] = sort(id);
U1 = fx(id);
[Ysort,id] = sort(Y);
[idsort,id] = sort(id);
V1 = fy(id);


%*******************************核分布估計**********************************
% 調用ksdensity函數分別計算原始樣本X和Y處的核分布估計值
U2 = ksdensity(X,X,'function','cdf');
V2 = ksdensity(Y,Y,'function','cdf');


% **********************繪制經驗分布函數圖和核分布估計圖**********************
[Xsort,id] = sort(X);  % 為了作圖的需要,對X進行排序
figure;  % 新建一個圖形窗口
plot(Xsort,U1(id),'c','LineWidth',5); % 繪制滬市日收益率的經驗分布函數圖
hold on
plot(Xsort,U2(id),'k-.','LineWidth',2); % 繪制滬市日收益率的核分布估計圖
legend('經驗分布函數','核分布估計', 'Location','NorthWest'); % 加標注框
xlabel('滬市日收益率');  % 為X軸加標簽
ylabel('F(x)');  % 為Y軸加標簽

[Ysort,id] = sort(Y);  % 為了作圖的需要,對Y進行排序
figure;  % 新建一個圖形窗口
plot(Ysort,V1(id),'c','LineWidth',5); % 繪制深市日收益率的經驗分布函數圖
hold on
plot(Ysort,V2(id),'k-.','LineWidth',2); % 繪制深市日收益率的核分布估計圖
legend('經驗分布函數','核分布估計', 'Location','NorthWest'); % 加標注框
xlabel('深市日收益率');  % 為X軸加標簽
ylabel('F(x)');  % 為Y軸加標簽


%****************************繪制二元頻數直方圖*****************************
% 調用ksdensity函數分別計算原始樣本X和Y處的核分布估計值
U = ksdensity(X,X,'function','cdf');
V = ksdensity(Y,Y,'function','cdf');
figure;  % 新建一個圖形窗口
% 繪制邊緣分布的二元頻數直方圖,
hist3([U(:) V(:)],[30,30])
xlabel('U(滬市)');  % 為X軸加標簽
ylabel('V(深市)');  % 為Y軸加標簽
zlabel('頻數');  % 為z軸加標簽


%****************************繪制二元頻率直方圖*****************************
figure;  % 新建一個圖形窗口
% 繪制邊緣分布的二元頻數直方圖,
hist3([U(:) V(:)],[30,30])
h = get(gca, 'Children');  % 獲取頻數直方圖的句柄值
cuv = get(h, 'ZData');  % 獲取頻數直方圖的Z軸坐標
set(h,'ZData',cuv*30*30/length(X));  % 對頻數直方圖的Z軸坐標作變換
xlabel('U(滬市)');  % 為X軸加標簽
ylabel('V(深市)');  % 為Y軸加標簽
zlabel('c(u,v)');  % 為z軸加標簽


%***********************求Copula中參數的估計值******************************
% 調用copulafit函數估計二元正態Copula中的線性相關參數
rho_norm = copulafit('Gaussian',[U(:), V(:)])
% 調用copulafit函數估計二元t-Copula中的線性相關參數和自由度
[rho_t,nuhat,nuci] = copulafit('t',[U(:), V(:)])


%********************繪制Copula的密度函數和分布函數圖************************
[Udata,Vdata] = meshgrid(linspace(0,1,31));  % 為繪圖需要,產生新的網格數據
% 調用copulapdf函數計算網格點上的二元正態Copula密度函數值
Cpdf_norm = copulapdf('Gaussian',[Udata(:), Vdata(:)],rho_norm);
% 調用copulacdf函數計算網格點上的二元正態Copula分布函數值
Ccdf_norm = copulacdf('Gaussian',[Udata(:), Vdata(:)],rho_norm);
% 調用copulapdf函數計算網格點上的二元t-Copula密度函數值
Cpdf_t = copulapdf('t',[Udata(:), Vdata(:)],rho_t,nuhat);
% 調用copulacdf函數計算網格點上的二元t-Copula分布函數值
Ccdf_t = copulacdf('t',[Udata(:), Vdata(:)],rho_t,nuhat);
% 繪制二元正態Copula的密度函數和分布函數圖
figure;  % 新建圖形窗口
surf(Udata,Vdata,reshape(Cpdf_norm,size(Udata)));  % 繪制二元正態Copula密度函數圖
xlabel('U');  % 為X軸加標簽
ylabel('V');  % 為Y軸加標簽
zlabel('c(u,v)');  % 為z軸加標簽
figure;  % 新建圖形窗口
surf(Udata,Vdata,reshape(Ccdf_norm,size(Udata)));  % 繪制二元正態Copula分布函數圖
xlabel('U');  % 為X軸加標簽
ylabel('V');  % 為Y軸加標簽
zlabel('C(u,v)');  % 為z軸加標簽

% 繪制二元t-Copula的密度函數和分布函數圖
figure;  % 新建圖形窗口
surf(Udata,Vdata,reshape(Cpdf_t,size(Udata)));  % 繪制二元t-Copula密度函數圖
xlabel('U');  % 為X軸加標簽
ylabel('V');  % 為Y軸加標簽
zlabel('c(u,v)');  % 為z軸加標簽
figure;  % 新建圖形窗口
surf(Udata,Vdata,reshape(Ccdf_t,size(Udata)));  % 繪制二元t-Copula分布函數圖
xlabel('U');  % 為X軸加標簽
ylabel('V');  % 為Y軸加標簽
zlabel('C(u,v)');  % 為z軸加標簽


%**************求Kendall秩相關系數和Spearman秩相關系數***********************
% 調用copulastat函數求二元正態Copula對應的Kendall秩相關系數
Kendall_norm = copulastat('Gaussian',rho_norm)
% 調用copulastat函數求二元正態Copula對應的Spearman秩相關系數
Spearman_norm = copulastat('Gaussian',rho_norm,'type','Spearman')
% 調用copulastat函數求二元t-Copula對應的Kendall秩相關系數
Kendall_t = copulastat('t',rho_t)
% 調用copulastat函數求二元t-Copula對應的Spearman秩相關系數
Spearman_t = copulastat('t',rho_t,'type','Spearman')

% 直接根據滬、深兩市日收益率的原始觀測數據,調用corr函數求Kendall秩相關系數
Kendall = corr([X,Y],'type','Kendall')
% 直接根據滬、深兩市日收益率的原始觀測數據,調用corr函數求Spearman秩相關系數
Spearman = corr([X,Y],'type','Spearman')


%******************************模型評價*************************************
% 調用ecdf函數求X和Y的經驗分布函數
[fx, Xsort] = ecdf(X);
[fy, Ysort] = ecdf(Y);
% 調用spline函數,利用樣條插值法求原始樣本點處的經驗分布函數值
U = spline(Xsort(2:end),fx(2:end),X);
V = spline(Ysort(2:end),fy(2:end),Y);
% 定義經驗Copula函數C(u,v)
C = @(u,v)mean((U <= u).*(V <= v));
% 為作圖的需要,產生新的網格數據
[Udata,Vdata] = meshgrid(linspace(0,1,31));
% 通過循環計算經驗Copula函數在新產生的網格點處的函數值
for i=1:numel(Udata)
    CopulaEmpirical(i) = C(Udata(i),Vdata(i));
end

figure;  % 新建圖形窗口
% 繪制經驗Copula分布函數圖像
surf(Udata,Vdata,reshape(CopulaEmpirical,size(Udata)))
xlabel('U');  % 為X軸加標簽
ylabel('V');  % 為Y軸加標簽
zlabel('Empirical Copula C(u,v)');  % 為z軸加標簽

% 通過循環計算經驗Copula函數在原始樣本點處的函數值
CUV = zeros(size(U(:)));
for i=1:numel(U)
    CUV(i) = C(U(i),V(i));
end

% 計算線性相關參數為0.9264的二元正態Copula函數在原始樣本點處的函數值
rho_norm = 0.9264;
Cgau = copulacdf('Gaussian',[U(:), V(:)],rho_norm);
% 計算線性相關參數為0.9325,自由度為4的二元t-Copula函數在原始樣本點處的函數值
rho_t = 0.9325;
k = 4.0089;
Ct = copulacdf('t',[U(:), V(:)],rho_t,k);
% 計算平方歐氏距離
dgau2 = (CUV-Cgau)'*(CUV-Cgau)
dt2 = (CUV-Ct)'*(CUV-Ct)
 


提 示:本站所有源碼只提供瀏覽,需要定制的朋友可以聯系在線客服!
注意:價格根據項目的難易程度來定價格業務咨詢

基于matlab編程Copula理論及應用實例源碼程序 --下載地址

注意:為避免不必要的誤會,本站項目里的源碼只公開部分需要的聯系在線客服

本站長期招聘程序代寫高手,歡迎加入華南地區matlab團隊

想創業卻沒有經驗的人

無論你是否有過網上開店的經驗,都可以隨時聯系在線客服,建立自己獨立的網站
想開網店卻不知道如何入手

淘寶創業成本低而且風險小,如果想開淘寶店的朋友可以聯系在線客服。
想兼職創業,卻不擅長交際與服務的人

在家創業月入5000元。網站程序+百套群發工具+網賺資料+域名+空間+本站終身代理資格,這樣你網賺的條件全具備了。每天3小時管理、推廣、收錢。
缺乏能快速贏利型產品的人

導入多種最新流行營銷軟件+網賺教程,讓入駐者輕松加盟、復制有效成交技巧、快速賺錢。

源碼評論評論內容只代表網友觀點,與本站立場無關!

   評論摘要(共 0 條,得分 0 分,平均 0 分) 查看完整評論

瀏覽說明

* 本站所有源碼全部公開,隨時隨地瀏覽!
* MATLAB軟件如用于商業用途,請購買正版!
* 如果您發現下載鏈接錯誤,請點擊報告錯誤謝謝!
* 站內提供的所有軟件包含破解及注冊碼均是由網上搜集,若侵犯了你的版權利益,敬請來信通知我們!
Copyright © 2008-2014 www.kggbzb.tw. All Rights Reserved.
頁面執行時間:250.00000 毫秒
安微25选5开奖号