楼主: jing467676
6653 7

[问答] 请教高人VaR(Value at Risk)值方差-协方差法R编程问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:534份资源

讲师

47%

还不是VIP/贵宾

-

威望
0
论坛币
2822 个
通用积分
7.1812
学术水平
1 点
热心指数
2 点
信用等级
1 点
经验
6725 点
帖子
199
精华
0
在线时间
876 小时
注册时间
2006-12-24
最后登录
2025-5-18

楼主
jing467676 发表于 2011-4-30 12:36:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教高人VaR(Value at Risk)值方差-协方差法R编程问题
先拟合金融资产序列,如用GARCH族模型拟合金融资产价值序列,可以得到其在各期的条件标准差序列,设计算所得条件标准差为h:
h=c(0.0630,0.0036 ,0.1621 ,0.0076 ,-0.0486, -0.0938 ,0.0535 ,0.0254 ,0.2659, -0.0911)
代码:

x=c(189.9390,206.5707,186.4814,210.9900,195.1849,200.6311,182.0851,200.5738,202.8953 ,210.8375);
h=c(0.0630,0.0036 ,0.1621 ,0.0076 ,-0.0486, -0.0938 ,0.0535 ,0.0254 ,0.2659, -0.0911);
alpha=0.05;
fun2=function(x,h,alpha){
n=length(x);
r=rep(0,times=n-1);
for( i in 2:n){
r[i-1]=log(x)-log(x[i-1]);
r;
}
VaR=rep(0,time=n-1);
for(i in 2:n){
VaR[i-1]=qnorm(1-alpha)*x[i-1]*h-x[i-1]*mean(r);
}
VaR
}
fun2(x,h,alpha)



请教高人 代码中的错误在哪里?
二维码

扫码加我 拉你入群

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

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

关键词:value 请教高人 Risk alue VaR VaR value Risk 高人 协方差

沙发
shierfeishilixu 发表于 2012-12-10 17:22:24
准确的说网上的参考语言没有问题。我也一直在做这个。我的数据带入之后就会出错。楼主如果找到解决的办法,恳请指点

藤椅
zhangtao 发表于 2012-12-10 20:20:18
> x=c(189.9390,206.5707,186.4814,210.9900,195.1849,200.6311,182.0851,200.5738,202.8953 ,210.8375);
> h=c(0.0630,0.0036 ,0.1621 ,0.0076 ,-0.0486, -0.0938 ,0.0535 ,0.0254 ,0.2659, -0.0911);
> alpha=0.05;
> fun2=function(x,h,alpha){
+ n=length(x);
+ r=rep(0,times=n-1);
+ for( i in 2:n){
+ r[i-1]=log(x)-log(x[i-1]);
+ r;
+ }
+ VaR=rep(0,time=n-1);
+ for(i in 2:n){
+ VaR[i-1]=qnorm(1-alpha)*x[i-1]*h-x[i-1]*mean(r);
+ }
+ VaR
+ }
> value=fun2(x,h,alpha);
共有18个警告 (用warnings()来显示)
> value
[1] 26.66648 29.00149 26.18106 29.62194 27.40298 28.16760 25.56384 28.15956
[9] 28.48548
> warnings()
警告信息:
1: In r[i - 1] = log(x) - log(x[i - 1]) : 被替换的项目不是替换值长度的倍数
2: In r[i - 1] = log(x) - log(x[i - 1]) : 被替换的项目不是替换值长度的倍数
3: In r[i - 1] = log(x) - log(x[i - 1]) : 被替换的项目不是替换值长度的倍数
4: In r[i - 1] = log(x) - log(x[i - 1]) : 被替换的项目不是替换值长度的倍数
5: In r[i - 1] = log(x) - log(x[i - 1]) : 被替换的项目不是替换值长度的倍数
6: In r[i - 1] = log(x) - log(x[i - 1]) : 被替换的项目不是替换值长度的倍数
7: In r[i - 1] = log(x) - log(x[i - 1]) : 被替换的项目不是替换值长度的倍数
8: In r[i - 1] = log(x) - log(x[i - 1]) : 被替换的项目不是替换值长度的倍数
9: In r[i - 1] = log(x) - log(x[i - 1]) : 被替换的项目不是替换值长度的倍数
10: In VaR[i - 1] = qnorm(1 - alpha) * x[i - 1] * h - x[i -  ... :
  被替换的项目不是替换值长度的倍数
11: In VaR[i - 1] = qnorm(1 - alpha) * x[i - 1] * h - x[i -  ... :
  被替换的项目不是替换值长度的倍数
12: In VaR[i - 1] = qnorm(1 - alpha) * x[i - 1] * h - x[i -  ... :
  被替换的项目不是替换值长度的倍数
13: In VaR[i - 1] = qnorm(1 - alpha) * x[i - 1] * h - x[i -  ... :
  被替换的项目不是替换值长度的倍数
14: In VaR[i - 1] = qnorm(1 - alpha) * x[i - 1] * h - x[i -  ... :
  被替换的项目不是替换值长度的倍数
15: In VaR[i - 1] = qnorm(1 - alpha) * x[i - 1] * h - x[i -  ... :
  被替换的项目不是替换值长度的倍数
16: In VaR[i - 1] = qnorm(1 - alpha) * x[i - 1] * h - x[i -  ... :
  被替换的项目不是替换值长度的倍数
17: In VaR[i - 1] = qnorm(1 - alpha) * x[i - 1] * h - x[i -  ... :
  被替换的项目不是替换值长度的倍数
18: In VaR[i - 1] = qnorm(1 - alpha) * x[i - 1] * h - x[i -  ... :
  被替换的项目不是替换值长度的倍数
>

本文来自: 人大经济论坛 S-Plus&R专版 版,详细出处参考: https://bbs.pinggu.org/forum.php? ... 1&from^^uid=11232
数学好就是要天天学

板凳
jmpamao 发表于 2012-12-10 20:46:58
还不懂var
但从程序上看, 循环不循环, 向量化不向量化。
改下看看,
x=c(189.9390,206.5707,186.4814,210.9900,195.1849,200.6311,182.0851,200.5738,202.8953 ,210.8375);
h=c(0.0630,0.0036 ,0.1621 ,0.0076 ,-0.0486, -0.0938 ,0.0535 ,0.0254 ,0.2659, -0.0911);
alpha=0.05;
fun2=function(x,h,alpha){
  n=length(x);
  r=rep(0,times=n-1);
  for( i in 2:n){
    r[i-1]=log(x)-log(x[i-1]);  #x 改为x[ i  ]
    r;
  }
  VaR=rep(0,time=n-1);
  for(i in 2:n){
    VaR[i-1]=qnorm(1-alpha)*x[i-1]*
h-x[i-1]*mean(r);  #h 改为 h[ i  ]
  }
  VaR
}
fun2(x,h,alpha)

[1]  -1.0782514  52.6822358   0.1683152 -19.3136425 -32.3783590[6]  15.3284901   5.4955066  85.3979611 -32.7563238 也不知道红色部分改的对不对,是不是var的计算方式
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
zhangtao + 5 + 5 + 5 好的意见建议

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

报纸
jmpamao 发表于 2012-12-10 20:57:51
发现 不是 大家的程序出现错误了
是 论坛出现错误了 x/[/i/] 连在一起打的时候只会 出现 x
x

地板
gssdzc 在职认证  发表于 2014-9-5 22:09:02
有意思。。。。。

7
黎明前的。 学生认证  发表于 2016-6-17 18:00:07
r[i-1]=log(x)-log(x[i-1]); 这里第一个log应该是log(x[i])吧

8
黎明前的。 学生认证  发表于 2016-6-17 18:01:03
黎明前的。 发表于 2016-6-17 18:00
r=log(x)-log(x); 这里第一个log应该是log(x)吧
哦才发现楼上已经说过了

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

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