gpt4 book ai didi

r - 在 R/Black-Scholes-Merton 模型中求解非线性方程组

转载 作者:行者123 更新时间:2023-12-04 22:32:07 24 4
gpt4 key购买 nike

我正在写我的硕士论文,但在我的 R 代码中遇到了这个问题。在数学上,我想用 R 包“nleqslv”解决这个非线性方程组:

fnewton <- function(x){

y <- numeric(2)

d1 = (log(x[1]/D1)+(R+x[2]^2/2)*T)/x[2]*sqrt(T)

d2 = d1-x[2]*sqrt(T)

y1 <- SO1 - (x[1]*pnorm(d1) - exp(-R*T)*D1*pnorm(d2))

y2 <- sigmaS*SO1 - pnorm(d1)*x[2]*x[1]

y}

xstart <- c(21623379, 0.526177094846878)

nleqslv(xstart, fnewton, control=list(btol=.01), method="Newton")

我已经尝试了这个代码的几个版本,现在我得到了错误:

error: error in pnorm(q, mean, sd, lower.tail, log.p): not numerical.



Pnorm 分别是 d1 和 d2 的累积标准正态分布。我真的不知道,我做错了什么,因为我在 Teterevas 幻灯片上定位我的模型(幻灯片 5 是她的模型代码),谁的演示文稿是谷歌搜索的第一个结果

https://www.google.de/search?q=moodys+KMV+in+R&rlz=1C1SVED_enDE401DE401&aq=f&oq=moodys+KMV+in+R&aqs=chrome.0.57.13309j0&sourceid=chrome&ie=UTF-8#q=distance+to+default+in+R



和我一样,无论更成功,她还是通过 Black-Scholes-Merton 方法计算违约风险度量的距离。在这个模型中,股权的值(value)(通常由市值表示,->SO1)可以写成一个欧式看涨期权——我在上面的代码中标记为 y2,但是,之前的等式设置为 0!

其他变量是:

x[1] -> 我想导出的变量,总 Assets 的值(value)

x[2] -> 我想导出的变量,总 Assets 的波动率

D1 -> 债务账面值(value)(1998-2009)

R -> 无风险利率

T -> 设置为 1(时间)

sigmaS -> 估计(历史)股票波动率

已经谢谢了!!!我会很高兴,任何人都可以帮助我。
卡罗

最佳答案

我是 nleqslv 的作者,我对您使用它的方式感到非常惊讶。
正如其他人所提到的,您没有返回任何明智的东西。

y1 应该是 y[1],y2 应该是 y[2]。如果您希望我们说合理的话,您必须提供 D1、R、T、sigmaS 和 SO1 的数值。我试过这个:

T <- 1; D1 <- 1000; R <- 0.01; sigmaS <- .1; SO1 <- 1000  

这些已在函数定义之前输入。看到这个
library(nleqslv)

T <- 1
D1 <- 1000
R <- 0.01

sigmaS <- .1
SO1 <- 1000

fnewton <- function(x){
y <- numeric(2)
d1 <- (log(x[1]/D1)+(R+x[2]^2/2)*T)/x[2]*sqrt(T)
d2 <- d1-x[2]*sqrt(T)
y[1] <- SO1 - (x[1]*pnorm(d1) - exp(-R*T)*D1*pnorm(d2))
y[2] <- sigmaS*SO1 - pnorm(d1)*x[2]*x[1]
y
}

xstart <- c(21623379, 0.526177094846878)
nleqslv 在这种情况下找到解决方案没有问题。找到的解决方案是: c(1990.04983,0.05025) 。似乎不需要设置 btol 参数,您可以使用方法 Broyden

关于r - 在 R/Black-Scholes-Merton 模型中求解非线性方程组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18958372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com