{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"#This code replicates Model SIM (from Godley and Lavoie 2007)\n",
"#Created by Marco Veronese Passarella\n",
"#April 24th, 2020"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"%%html\n",
""
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"#Import packages\n",
"%matplotlib inline\n",
"from ipywidgets import interactive \n",
"import matplotlib.pyplot as plt \n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"#Set number of periods\n",
"nperiods=100\n",
"\n",
"#Define variables as matrices of zeros (or ones)\n",
"y = np.zeros([6,nperiods],dtype = float)\n",
"cons = np.zeros([6,nperiods],dtype = float)\n",
"gov = np.zeros([6,nperiods],dtype = float)\n",
"tax = np.zeros([6,nperiods],dtype = float)\n",
"yd = np.zeros([6,nperiods],dtype = float)\n",
"h_h = np.zeros([6,nperiods],dtype = float)\n",
"h_s = np.zeros([6,nperiods],dtype = float)\n",
"n = np.zeros([6,nperiods],dtype = float)\n",
"w = np.ones([6,nperiods],dtype = float)\n",
"sav = np.zeros([6,nperiods],dtype = float)\n",
"\n",
"#Identify coefficients\n",
"alpha1=0.6*np.ones([6,nperiods],dtype = float)\n",
"alpha2=0.4\n",
"theta=0.2"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"#Create model using three loops (time, iterations and scenarios)\n",
"i = 1 #Time index\n",
"z = 1 #Iteration index\n",
"j = 0 #Scenario index\n",
"\n",
"for j in range(0,6): \n",
" for i in range(1,nperiods):\n",
" for z in range (1,20):\n",
" \n",
" if i > 70 and j == 1: alpha1[j,i]=0.70\n",
" if i > 70 and j == 2: alpha1[j,i]=0.75\n",
" if i > 70 and j == 3: alpha1[j,i]=0.80\n",
" if i > 70 and j == 4: alpha1[j,i]=0.85 \n",
" if i > 70 and j == 5: alpha1[j,i]=0.90 \n",
" \n",
" y[j,i]=cons[j,i]+gov[j,i] #Output (income) \n",
" cons[j,i]=alpha1[j,i]*yd[j,i] + alpha2*h_h[j,i-1] #Consumption\n",
" n[j,i]=y[j,i]/w[j,i] #Employment\n",
" tax[j,i]=theta*w[j,i]*n[j,i] #Taxes\n",
" yd[j,i]=w[j,i]*n[j,i]-tax[j,i] #Disposable income\n",
" h_s[j,i]=h_s[j,i-1]+gov[j,i]-tax[j,i] #Supply of money\n",
" h_h[j,i]=h_h[j,i-1]+yd[j,i]-cons[j,i] #Demand for money\n",
" sav[j,i]=h_h[j,i]-h_h[j,i-1] #Saving (not included in original model)\n",
" if i > 5: gov[j,i] = 20 #Government spending (trigger)\n",
" z += 1\n",
" i += 1\n",
" j += 1"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"#Create auxiliary variable (time)\n",
"time = np.linspace(0, nperiods, nperiods)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.0, 50.0, 0.0, 110.0)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"