# R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析

for(j in 1:N_SIMULATIONS)

{

oldYields = NSrates(pp, MATURITY_BASES)

newYields = oldYields + rnorm(N_MAT, rep(0.0, N_MAT), VOLAs)

newMATs = MATURITY_BASES - 1.0/365 #next day all mats become 1 day shorter

pp = Nelson.Siegel(newYields, newMATs)

newNsYields = NSrates(pp, newMATs)

npo = c(newYields, oldYields)

plot(MATURITY_BASES, oldYields, ylim=c(min(npo), max(npo)))

lines(MATURITY_BASES, oldYields)

points(MATURITY_BASES, newYields, col="red", pch=4)

points(newMATs, newNsYields, col="blue")

lines(newMATs, newNsYields, col="blue")

oldYieldsArray[j,] = as.numeric(oldYields)

newYieldsArray[j,] = as.numeric(newYields)

newNsYieldsArray[j,] = as.numeric(newNsYields)

maxDistanceArray[j] = max( abs(oldYieldsArray[j,] - newNsYieldsArray[j,]) )

relativeMaxDistanceArray[j] =  maxDistanceArray[j] / max(abs(oldYieldsArray[j,]))

paramArray[j,] = as.numeric(pp)

}

plot(density(maxDistanceArray))

plot(density(log(maxDistanceArray)))

idx=which.max(maxDistanceArray)

maxDistanceArray[which.max(maxDistanceArray)]

relativeMaxDistanceArray[which.max(relativeMaxDistanceArray)]

：我们要做的是：我们从一些收益率曲线开始，然后逐步地随机修改收益率，最后尝试拟合NS模型以新的收益。因此我们对此进行了模拟。

maxDistanceArray[j] = max( abs(oldYieldsArray[j,] - newNsYieldsArray[j,]) )

idx = intersect(intersect(which(b0 < q_b0), which(b1 < q_b1)), which(b2 < q_b2))

par(mfrow=c(3,3))

plot(density(log(b0)))

plot(density(log(b1)))

plot(density(log(b2)))

plot(density(log(b0[idx])))

plot(density(log(b1[idx])))

plot(density(log(b2[idx])))

plot(density(b0[idx]))

plot(density(b1[idx]))

plot(density(b2[idx]))

#de-mean

b0 = b0-mean(b0)

b1 = b1-mean(b1)

b2 = b2-mean(b2)

#train neural network

X = cbind(b0, b1, b2)

Y = array(0, dim=(N_SIMULATIONS-1))

Y[idx] = 1


SPLT = 0.8

library(keras)

b = floor(SPLT*(N_SIMULATIONS-1))

plot(history)

model %>% evaluate(x_test, y_test)

|
19天前
|

31 1
|
2天前
|

9 1
|
2天前
|

【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
10 2
|
2天前
|

【从零开始学习深度学习】27.卷积神经网络之VGG11模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】27.卷积神经网络之VGG11模型介绍及其Pytorch实现【含完整代码】
7 2
|
2天前
|

【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
10 3
|
2天前
|

【从零开始学习深度学习】25.卷积神经网络之LeNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】25.卷积神经网络之LeNet模型介绍及其Pytorch实现【含完整代码】
8 2
|
2天前
|

【从零开始学习深度学习】16. Pytorch中神经网络模型的构造方法：Module、Sequential、ModuleList、ModuleDict的区别
【从零开始学习深度学习】16. Pytorch中神经网络模型的构造方法：Module、Sequential、ModuleList、ModuleDict的区别
14 1
|
11天前
|

25 1
|
15天前
|

54 0
|
26天前
|

54 3