【问题标题】:Trying to find inferred volatility and inferred firm value with DtD package in R试图用 R 中的 DtD 包找到推断的波动率和推断的公司价值
【发布时间】:2021-04-15 15:42:47
【问题描述】:

我需要计算 424 家公司的时间序列数据集与默认值的距离(使用 Merton 模型)。我已经指定了变量:

library(DtD)

S <- BS_call(V, D, T, r, vol)

S <- E1
D <- face
T <- 1
vol <- stock_vol
r <- rf
get_underlying(S,D, T, vol, r)

最后一行应该从第一个函数计算 V。但它给了我这个错误: eval(substitute(expr), data, enclos = parent.frame()) 中的错误: 'D' 上的断言失败:元素 408 不是 >= 1e-016。

我能做些什么呢?而这只是距离违约的第一步,我仍然需要找到推断出的公司的波动率,然后是 DD。我希望有人知道这个问题的答案。

【问题讨论】:

  • 您好,欢迎光临,您检查元素 408 是否大于 0?
  • 嗨@布鲁诺!感谢您的评论!我为 D 拥有的数据集中有一些零,是的,因为它是债务的面值,有时可能是 0。另外,我不确定哪个元素是 408,因为它是一个 424 列和 20 列的表生。那么它会是第一个原始和第 408 列吗?
  • 所以,是的,我发现了 408 是什么,是的,它是数据集中的第一个零,但还有更多。有什么办法解决吗?
  • 嗨娜佳。欢迎来到 SO!如果您按照本指南包含一个最小的、可重复的示例,这个问题将更容易回答:stackoverflow.com/questions/5963269/…
  • 我在下面的答案中添加了更多信息

标签: r


【解决方案1】:
        A2.MI  AAL.L AALB.AS   ABBN.S  ABF.L ACCP.PA ACE.MI ACPP.WA   ACS.MC ACX.MC

2000-01-01 0.5624 0.3553 0.3252 0.240100 0.3855 0.3007 0.5664 0.8937 0.476700 0.3362 2001-01-01 0.2291 0.3682 0.3974 0.557800 0.2358 0.3998 0.2539 0.7270 0.195600 0.3812 2002-01-01 0.2906 0.3566 0.3155 0.912128 0.2200 0.3886 0.3359 0.5680 0.172600 0.3032 2003-01-01 0.1410 0.2737 0.3840 0.622400 0.1852 0.2581 0.2695 0.4060 0.135700 0.1936 2004-01-01 0.1065 0.2207 0.2246 0.233100 0.1083 0.1435 0.2546 0.4085 0.090216 0.1409 2005-01-01 0.1825 0.2621 0.2349 0.156800 0.1366 0.1576 0.1750 0.3545 0.204300 0.1986 2006-01-01 0.1457 0.1564 0.2924 0.236500 0.1719 0.1651 0.1735 0.3212 0.127600 0.2371 2007-01-01 0.2085 0.2550 0.2479 0.238300 0.1965 0.2046 0.2414 0.3738 0.208800 0.2569 2008-01-01 0.2887 0.4766 0.3929 0.451800 0.2420 0.3731 0.2664 0.2894 0.261100 0.3095 2009-01-01 0.2589 0.4788 0.6687 0.266400 0.1806 0.4180 0.2020 0.2518 0.248400 0.3935 2010-01-01 0.2313 0.3819 0.3134 0.269700 0.1528 0.2243 0.1215 0.1504 0.250700 0.3373 2011-01-01 0.2396 0.2172 0.3035 0.228300 0.1605 0.3468 0.1641 0.2770 0.186400 0.2903 2012-01-01 0.4578 0.2920 0.2016 0.212100 0.1385 0.2822 0.3608 0.2574 0.519700 0.2531 2013-01-01 0.3948 0.2568 0.1376 0.140200 0.2640 0.2069 0.3055 0.1572 0.227200 0.2077 2014-01-01 0.2120 0.2348 0.1613 0.116000 0.2574 0.2142 0.2402 0.1813 0.161700 0.1751 2015-01-01 0.2025 0.4006 0.1864 0.276800 0.1922 0.2689 0.1825 0.1679 0.321400 0.4289 2016-01-01 0.2554 0.8185 0.2334 0.181500 0.2688 0.2669 0.3203 0.1370 0.255700 0.3339 2017-01-01 0.1620 0.3685 0.1298 0.174100 0.2635 0.1348 0.2892 0.1404 0.158000 0.1802 2018-01-01 0.1915 0.2420 0.1444 0.189500 0.2146 0.2027 0.2034 0.2471 0.241400 0.2840 2019-01-01 0.1517 0.2758 0.3030 0.199000 0.2573 0.2049 0.1323 0.1939 0.185500 0.2581

所以,由于我昨天发布了我的问题,Bruno 指出我要检查元素 408 中的值是否为 0,所以我修复了这个问题。它实际上是 0,并且由于它使用的功能,它不可能是 0(因为某些东西被它除),所以我更正了。然而,紧接着 R 再次显示相同的消息,但是关于不同的数据集(参见上面这条消息中的样本,它是不同公司股票波动率的时间序列,称为 stock_vol。这是子集中的 20 家公司,但我的原始集合中有 424 个。)。而且这次元素不为0。我现在能做什么?

这是我的代码:

S = 1e-016。

【讨论】:

    猜你喜欢
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    相关资源
    最近更新 更多