Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Finanzas
Dr. Miguel Angel Navarro Burgos
|2
Método de momentos no paramétrico
|3
Método de momentos no paramétrico
Sea (
dS(t) = f (t, S(t); θ)dt + g(t, S(t); θ)dW (t),
S(0) = s0 ,
Consideramos S = {s0 , s1 , . . . , sN } los datos de un producto financiero dado
y ti = t0 + i∆t, con i ∈ {0, . . . , N }. El problema consiste en cómo estimar
θ = (µ, σ) (puede utilizarse σ 2 ). En un primer paso, consiste en aplicar el
esquema de Euler-Maruyama, es decir
|4
Método de momentos no paramétrico
|5
Método de momentos no paramétrico
|6
Método de momentos no paramétrico
N −1 −1
X 1 NX
(µsi ) = (si+1 − si ),
i=0
∆t i=0
N −1 −1
2 1 NX
(si+1 − si )2 .
X
(σsi ) =
i=0
∆t i=0
|7
Método de momentos no paramétrico
Es decir
−1
NP
(si+1 − si )
1 i=0
µM M M P = ,
−1
NP
∆t
si
i=0
v
−1
u NP
(si+1 − si )2
u
u
u 1
i=0
σM M M P = u .
NP−1
t ∆t
u
2
si
i=0
|8
Validación del modelo
|9
Validación del modelo
| 10
Predicción puntual y por intervalos de confianza
Esta sección está dedicada a aplicar los resultados de este tema a datos
reales. Consideremos las cotizaciones de una compañía que cotiza en el
IBEX-35 en 28 días laborales, desde el 15 de julio del 2019 al 21 de agosto
del 2019.
15/7/2019 24.38 4/8/2019 25.2
16/7/2019 24.23 5/8/2019 25.07
17/7/2019 24.26 6/8/2019 25.33
20/7/2019 24.32 7/8/2019 25.42
21/7/2019 24.89 10/8/2019 25.32
22/7/2019 23.55 11/8/2019 25.61
23/7/2019 23.79 12/8/2019 25.48
24/7/2019 23.95 13/8/2019 25.48
27/7/2019 23.75 14/8/2019 25.56
28/7/2019 23.98 17/8/2019 25.86
29/7/2019 24.59 18/8/2019 25.91
30/7/2019 24.86 19/8/2019 26.08
31/7/2019 24.8 20/8/2019 25.87
3/8/2019 24.95 21/8/2019 26.25
| 11
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
#Dt=1
import numpy as np
import matplotlib.pyplot as plt
S=np.array([24.38,24.23,24.26,24.32,24.89,23.55,23.79,
23.95,23.75,23.98,24.59,24.86,24.8,24.95,25.2,25.07,
25.33,25.42,25.32,25.61,25.48,25.48,25.56,25.86,25.91,
26.08,25.87,26.25])
plt.plot(S)
R=S[1:]/S[0:-1]
| 12
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
#MME
U=np.log(R)
sigmaMME=np.std(U,ddof=1)
muMME=np.mean(U)+sigmaMME**2/2
print("muMME=",muMME,"sigmaMME=",sigmaMME)
#MMV
R-=1
muMMV=np.mean(R)
sigmaMMV=np.std(R,ddof=0)
print("muMMV=",muMMV,"sigmaMMV=",sigmaMMV)
#MMMP
R=S[1:]-S[0:-1]
muMMMP=np.sum(R)/np.sum(S[0:-1])
sigmaMMMP=np.sqrt(np.sum(R**2)/np.sum(S[0:-1]**2))
print("muMMMP=",muMMMP,"sigmaMMMP=",sigmaMMMP)
| 13
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
26.0
25.5
25.0
24.5
24.0
23.5
0 5 10 15 20 25
| 14
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
#modelo log-normal
def St(t,u,s,s0):
return s0*np.exp((u-s**2/2)*t+s*np.sqrt(t)*np.random.randn())
t=np.arange(1,len(S[1:])+1)
#ERROR MME
SSt=St(t,muMME,sigmaMME,S[0])
ECMMME=np.sqrt(np.mean((S[1:]-SSt)**2))
EPAMMME=100*np.mean(abs(1-SSt/S[1:]))
print("ECMMME=",ECMMME,"EPAMMME(%)=",EPAMMME)
#ERROR MMV
SSt=St(t,muMMV,sigmaMMV,S[0])
ECMMMV=np.sqrt(np.mean((S[1:]-SSt)**2))
EPAMMMV=100*np.mean(abs(1-SSt/S[1:]))
print("ECMMMV=",ECMMMV,"EPAMMMV(%)=",EPAMMMV)
| 15
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
#ERROR MMMP
SSt=St(t,muMMMP,sigmaMMMP,S[0])
ECMMMMP=np.sqrt(np.mean((S[1:]-SSt)**2))
EPAMMMMP=100*np.mean(abs(1-SSt/S[1:]))
print("ECMMMMP=",ECMMMMP,"EPAMMMMP(%)=",EPAMMMMP)
#RESULTADOS
ECMMME= 0.952631832932808 EPAMMME(%)= 3.58394389240433
ECMMMV= 1.208891330133252 EPAMMMV(%)= 4.624002426844856
ECMMMMP= 0.4808922892177277 EPAMMMMP(%)= 1.6690106802004774
| 16
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
#mu_S(t) de log-Normal
def ELN(t,u,s,s0):
return s0*np.exp(u*t)
#sigma^2_S(t) de log-Normal
def VLN(t,u,s,s0):
return s0**2*np.exp(2*u*t)*(np.exp(s**2*t)-1)
t=np.arange(0,len(S[1:])+1)
| 17
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
fig,ax=plt.subplots()
ax.plot(t,ELNMME-1.96*SMME,'r',label='IC inf')
ax.plot(t,ELNMME,'g',label='E(S(t))')
ax.plot(t,ELNMME+1.96*SMME,'r',label='IC sup')
ax.plot(t,S,'b',label='S(t)')
ax.set_xlabel('t')
ax.legend()
plt.show()
| 18
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
30 IC inf
E(S(t))
29 IC sup
S(t)
28
27
26
25
24
23
0 5 10 15 20 25
t
| 19
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
| 20
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
fig,ax=plt.subplots()
ax.plot(t,ELNMMV-1.96*SMMV,'r',label='IC inf')
ax.plot(t,ELNMMV,'g',label='E(S(t))')
ax.plot(t,ELNMMV+1.96*SMMV,'r',label='IC sup')
ax.plot(t,S,'b',label='S(t)')
ax.set_xlabel('t')
ax.legend()
plt.show()
| 21
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
30 IC inf
E(S(t))
29 IC sup
S(t)
28
27
26
25
24
23
0 5 10 15 20 25
t
| 22
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
| 23
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
fig,ax=plt.subplots()
ax.plot(t,ELNMMMP-1.96*SMMMP,'r',label='IC inf')
ax.plot(t,ELNMMMP,'g',label='E(S(t))')
ax.plot(t,ELNMMMP+1.96*SMMMP,'r',label='IC sup')
ax.plot(t,S,'b',label='S(t)')
ax.set_xlabel('t')
ax.legend()
plt.show()
| 24
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
30 IC inf
E(S(t))
29 IC sup
S(t)
28
27
26
25
24
23
0 5 10 15 20 25
t
| 25
Predicción puntual y por intervalos de confianza
Estimación de parámetros y resultados
| 26
Referencias bibliográficas
| 27
www.unir.net