The Discrete Stochastic Gain-Loss in Production Facilities as a Result of an Exogenous Financial Shock¶
Gianmarco Corradini, MS¶
Modules¶
import pandas as pd
import numpy as np
import math as m
import matplotlib as mp
import scipy as sp
2 Assumption¶
Defining $f_{1}$¶
def f_1(r):
f_1=(m.exp(-10*r)+10*r-1)/r**2
return f_1
Defining $\frac{f_{2}}{\gamma}$¶
def f_2_frac_gamma(r):
f_2_frac_gamma=(1-m.exp(-10*r)*(10*r+1))/r**2
return f_2_frac_gamma
Defining $\frac{f_{3}}{\delta}$¶
def f_3_frac_delta(r):
f_3_frac_delta=(1-m.exp(-10*r))/r
return f_3_frac_delta
3 Exogenous Shock in a Discrete Stochastic Enviroment¶
Suppose $r_{t=0}=0.025$¶
r0=0.025
gamma = f_1(r0)/f_2_frac_gamma(r0)
delta = f_1(r0)/f_3_frac_delta(r0)
Check¶
print(gamma, delta)
Than $f_{2}$ and $f_{3}$¶
def f_2(r):
f_2= gamma * (1-m.exp(-10*r)*(10*r+1))/r**2
return f_2
def f_3(r):
f_3=delta*(1-m.exp(-10*r))/r
return f_3
Check¶
print(f_1(r0), f_2(r0), f_3(r0))
All possible value of $r_{t+\epsilon}$¶
rd=0.9
ru=1.25
r= [r0*ru*ru, r0*ru, r0*ru*rd, r0*ru, r0, r0*rd, r0*rd*ru, r0*rd, r0*rd*rd]
print(r)
Value of $f_{i}(r_{t+\epsilon})$¶
for i in r:
print(f_1(i))
for i in r:
print(f_2(i))
for i in r:
print(f_3(i))
Define probability mass function of $r_{t+\epsilon}$¶
p=0.5
q=0.5
pr = [p*p, p*(1-p-q), p*q, (1-p-q)*p, (1-p-q)**2, (1-p-q)*q, q*p, q*(1-p-q), q**2]
Expected value of $f_{1}$ in function on probabilities $\{p, q\}$¶
def Exp_f1(x,y):
z = x**2*f_1(r[0])+(1-x-y)*x*f_1(r[1])+x*y*f_1(r[2])+(1-x-y)*x*f_1(r[3])+(1-x-y)**2*f_1(r[4])*(1-x-y)*y*f_1(r[5])+y*x*f_1(r[6])+y*(1-x-y)*f_1(r[7])+y**2*f_1(r[8])
return z
Y1=$f_{1}$ and $\{j, k\}$ = $\{p, q\}$¶
Y1 = []
j=0.01
while j < 0.66:
k=0.66-j
Y1.append(Exp_f1(j,k))
j+=0.01
print(Y1)
Expected value of $f_{2}$ in function on probabilities $\{p, q\}$¶
def Exp_f2(x,y):
zz = x**2*f_2(r[0])+(1-x-y)*x*f_2(r[1])+x*y*f_2(r[2])+(1-x-y)*x*f_2(r[3])+(1-x-y)**2*f_2(r[4])*(1-x-y)*y*f_2(r[5])+y*x*f_2(r[6])+y*(1-x-y)*f_2(r[7])+y**2*f_2(r[8])
return zz
Y2=$f_{1}$ and $\{j, k\}$ = $\{p, q\}$¶
Y2 = []
j=0.01
while j < 0.66:
k=0.66-j
Y2.append(Exp_f2(j,k))
j+=0.01
print(Y2)
Expected value of $f_{3}$ in function on probabilities $\{p, q\}$¶
def Exp_f3(x, y):
zzz = x**2*f_3(r[0])+(1-x-y)*x*f_3(r[1])+x*y*f_3(r[2])+(1-x-y)*x*f_3(r[3])+(1-x-y)**2*f_3(r[4])*(1-x-y)*y*f_3(r[5])+y*x*f_3(r[6])+y*(1-x-y)*f_3(r[7])+y**2*f_3(r[8])
return zzz
Y3=$f_{1}$ and $\{j, k\}$ = $\{p, q\}$¶
Y3 = []
j=0.01
while j < 0.66:
k=0.66-j
Y3.append(Exp_f3(j,k))
j+=0.01
print(Y3)
Extra: semplification of $f_{1}$ as in the equation (24)¶
def Exp_f1_2(u,v):
z=u**2*(f_1(r[0])-2*f_1(r[1])+f_1(r[4]))+u*(2*f_1(r[1])-2*f_1(r[4]))+u*v*(2*f_1(r[2])-2*f_1(r[1])+2*f_1(r[4])-2*f_1(r[5]))+v*(2*f_1(r[5])-2*(f_1(r[4])))+v**2*(f_1(r[4])-2*f_1(r[5])+f_1(r[8]))+f_1(r[4])
return z