我正在使用该quantreg包在R中运行以下分位数回归:
bank <-rq(gekX~laggekVIXclose+laggekliquidityspread+lagdiffthreeMTBILL+
lagdiffslopeyieldcurve+lagdiffcreditspread+laggekSPret, tau=0.99)
Run Code Online (Sandbox Code Playgroud)
并通过提取系数和摘要统计
bank$coefficients
summary(bank)
Run Code Online (Sandbox Code Playgroud)
我得到的结果是
Call: rq(formula = gekX ~ laggekVIXclose + laggekliquidityspread +
lagdiffthreeMTBILL + lagdiffslopeyieldcurve + lagdiffcreditspread +
laggekSPret, tau = 0.99)
tau: [1] 0.99
Coefficients:
Value Std. Error t value Pr(>|t|)
(Intercept) -0.03005 0.01018 -2.95124 0.00319
laggekVIXclose 0.00471 0.00069 6.81515 0.00000
laggekliquidityspread -0.01295 0.01619 -0.79976 0.42392
lagdiffthreeMTBILL -0.12273 0.12016 -1.02136 0.30717
lagdiffslopeyieldcurve -0.13100 0.06457 -2.02876 0.04258
lagdiffcreditspread -0.21198 0.15659 -1.35377 0.17592
laggekSPret -0.01205 0.46559 -0.02588 0.97936
Run Code Online (Sandbox Code Playgroud)
但是,我想知道R ^ 2 /调整后的R ^ …
我正在写我的硕士论文,我在R代码中遇到了这个问题.在数学上,我想用R-package"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")
Run Code Online (Sandbox Code Playgroud)
我已经尝试了这个代码的几个版本,现在我收到错误:
error: error in pnorm(q, mean, sd, lower.tail, log.p): not numerical.
Pnorm分别是d1和d2的累积标准正态分布.我真的不知道,当我在Teterevas幻灯片上定位我的模型时我做错了什么(在5号幻灯片上是她的模型代码),谁的演示是googeling的第一个结果
与我一样,无论多么成功,她都会通过Black-Scholes-Merton方法计算违约距离风险度量.在这个模型中,权益的价值(通常由市值表示, - > SO1)可以写成欧洲看涨期权 - 我在上面的代码中标记为y2,但是,之前的等式设置为0!
其他变量是:
x [1] - >我想要得到的变量,总资产的价值
x [2] - >我想得出的变量,总资产的波动性
D1 - >债务账面价值(1998-2009)
R - >无风险利率
T - >设置为1(时间)
sigmaS - >估计(历史)股票波动率
谢谢!我很高兴,任何人都可以帮助我.卡罗