楼主: yjhanywhere
1942 5

[问答] 请教一个matlab的问题 [推广有奖]

  • 4关注
  • 4粉丝

已卖:26份资源

副教授

18%

还不是VIP/贵宾

-

TA的文库  其他...

金工策略开发实用文章及书籍

威望
0
论坛币
887 个
通用积分
49.0800
学术水平
16 点
热心指数
16 点
信用等级
12 点
经验
253 点
帖子
438
精华
0
在线时间
995 小时
注册时间
2008-5-20
最后登录
2025-5-11

楼主
yjhanywhere 发表于 2012-4-26 20:31:50 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我写了几个函数我贴在下面
NasdaqPdf与Sp500Pdf函数是变量的概率密度函数
相应的NasdaqCdf与Sp500Cdf是对应的累计概率函数
这几个函数应该没有问题,已经用几个值验证过。
最后一个函数是Copula函数,返回的值应该是一个实数,但是却返回一个复数,虽然虚部是零,但是在计算中却是一个问题,因为这个函数在后续研究中还要用。这个函数在运行中没有报错。

谁能帮我解释一下啊?感激不尽
——————————————————————————————————————————————————————————
function [ fnasdaq ] = NasdaqPdf( x )
%NASDAQPDF Summary of this function goes here
%   Detailed explanation goes here
load nasdaq1261.txt
N=1261;
t=0;
for i=1:1261
    t=t+exp(-0.5*((x-nasdaq1261(i))/0.0025).^2);
end
fnasdaq=1/(sqrt(2*pi)*N*0.0025)*t;
end
————————————————————————————————————————————————————————
function [ fsp500 ] = Sp500Pdf( x )
%SP500PDF Summary of this function goes here
%   Detailed explanation goes here
load sp5001261.txt;
N=1261;
t=0;
for i=1:1261
    t=t+exp(-0.5*((x-sp5001261(i))/0.0025).^2);
end
fsp500=1/(sqrt(2*pi)*N*0.0025)*t;
end
————————————————————————————————————————————————————
function [ y ] = NasdaqCdf( x )
%NASDAQCDF Summary of this function goes here
%   Detailed explanation goes here
y=quadgk(@(u) NasdaqPdf(u),-inf,x);
end
——————————————————————————————————————————————————————
function [ y ] = Sp500Cdf( x )
%SP500CDF Summary of this function goes here
%   Detailed explanation goes here
y=quadgk(@(u) Sp500Pdf(u),-inf,x);
end
————————————————————————————————————-————————————

function [ f ] = GumbleCopulaFunction( x , y )
%GUMBLECOPULAFUNCTION Summary of this function goes here
%   Detailed explanation goes here
a=3.6443;
f=exp(-((-log(NasdaqCdf(x))).^a+(-log(Sp500Cdf(y))).^a).^(1/a));
end nasdaq1261.txt (12.71 KB)
sp5001261.txt (12.7 KB)




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB atlab matla Atl Mat matlab

沙发
bobojin 发表于 2012-4-26 20:52:30
你r 把两个指数数据也贴上来,我帮你看看
copulaj是个0至1之间的实数,负数不对

藤椅
yjhanywhere 发表于 2012-4-26 21:25:20
bobojin 发表于 2012-4-26 20:52
你r 把两个指数数据也贴上来,我帮你看看
copulaj是个0至1之间的实数,负数不对
已上传,不胜感激。
我帖子里面打错了,不是负数,是复数。有一个为零的虚部

板凳
yjhanywhere 发表于 2012-4-28 10:44:44
自己顶一下。求解啊

报纸
epoh 发表于 2012-4-29 20:44:55
yjhanywhere 发表于 2012-4-28 10:44
自己顶一下。求解啊
%% Gumbel copula

alpha = 2;
u=linspace(-4,4,100);
[x,y]=meshgrid(u);
u = normcdf(x,0,1);
v = tcdf(y,3);

% Compute copula cdf
a1 = (-log(u(:,1))).^alpha;
a2 = (-log(v(:,1))).^alpha;
a3 = 1./alpha;
c = exp(-(a1+a2).^a3);

地板
yjhanywhere 发表于 2012-4-29 23:57:33
epoh 发表于 2012-4-29 20:44
%% Gumbel copula

alpha = 2;
谢谢你。我的原因我找到了,是matlab的原因。直接使用Gumble Copula的式子会有问题。参照matlab工具箱里面的copula函数,我对函数做了一个变形结果就没问题了。其实就是把其中一个cdf提出来就好了。呵呵

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-17 06:25