La dernière fois, j'ai expliqué comment définir les conditions en utilisant le modèle économique, donc cette fois je vais expliquer quel type de code a été utilisé pour construire la situation. Si vous voulez revenir sur les paramètres de condition, veuillez vérifier la précédente Utilisation de la classe python …… ①.
(1) Remplacez les paramètres du modèle défini la dernière fois par des valeurs numériques spécifiques. ② Vérifiez le code. ③ Vérifiez le résultat.
D'après "Empirical Analysis of Evolving Economics" dans le numéro spécial du Séminaire économique (2016) que j'ai lu l'autre jour, Dans un article récent de macroéconomie, après avoir vérifié quantitativement si un modèle économique peut représenter la réalité, les paramètres estimés sont substitués dans le modèle économique, puis une simulation virtuelle anti-réelle (si une subvention est accordée). Qu'est-il arrivé à la production de l'agriculteur si cela n'avait pas été fait?). Taylor (2005) et Dyer (2006), que j'ai présentés dans l'article précédent, ont également facilement estimé et simulé les paramètres de la fonction de production et de la fonction d'utilité (type Cobb-Douglas) à partir de l'enquête rurale au Mexique. En revanche, dans cette simulation, les paramètres n'ont pas été estimés et les valeurs numériques sélectionnées de manière appropriée ont été remplacées. Ci-dessous, nous présenterons les valeurs numériques appliquées aux paramètres de cette simulation.
\Pi = p_A*Q_A+p_B*Q_B+200*L_n...(1) \\ Q_A = 3*L_A^{0.3} *K_A^{0.7}...(2) \\ Q_B = L_B^{0.7} *K_B^{0.3}...(3) \\ 24 = L_A+L_B+L_n...(4) \\ 10 = K_A+K_B...(5)
$ p_A (prix initial de A) $: 100 $ p_B (prix initial de B) $: 300
U = c_A^{0.4}+c_B^{0.6}...(1) \\ I_t = I_{t-1} + 5000 - C_{t-1} > C_t = p_A*c_A + p_B*c_B...(2:Contraintes budgétaires) \\ Q_{A,t} + s_{A,t-1} > c_{A,t}...(3:La fourniture+Reste> Consommation) \\ Q_{B,t} + s_{B,t-1} > c_{B,t}...(4:La fourniture+Reste> Consommation) \\ c_A + c_B < 40...(5:Contrainte de satiété)
$ p_A (prix initial de A) $: 100 $ p_B (prix initial de B) $: 300
① Prochain budget: $ I_ {t + 1} = I_t + 5000 --c_t $
② Montant reporté pour le trimestre suivant: $ s_ {t + 1} = s_t + Q_t --c_t $
③ Comment déterminer le prix pour le prochain trimestre
if
J'ai expliqué dans l'article précédent pourquoi je l'ai configuré de cette façon. Veuillez vérifier là-bas.
"""
sell&buy.programme py
Les agriculteurs et les consommateurs répètent la production et l'achat
Les agriculteurs maximisent les profits, les consommateurs maximisent l'utilité
Les agriculteurs utilisent leur propre travail et leur propre capital pour la production
Le prix du prochain trimestre fluctuera en fonction du stock + volume de production-volume de consommation du trimestre précédent.
"""
#Importation de module
import random
import numpy as np
import matplotlib.pyplot as plt
#Variables globales
alpha = 0.3 #Paramètres liés à la production du produit A
beta = 0.7 #Paramètres liés à la production du produit B
gamma = 0.4 #Paramètres liés à l'utilité que les consommateurs obtiennent lors de la consommation de chaque produit
w = 200 #salaire
appe = 40 #La quantité maximale qu'une personne peut manger est fixée à 40
SEED = 32768 #Valeur des semences
R = 100 #Nombre de répétitions de transaction
#Définition de classe Farmer
class Farmer:
"""Définition d'une classe qui représente un agriculteur"""
def __init__(self, cat): #constructeur
self.category = cat
self.maxprofit = 0 #Bénéfice maximum (0 pour le moment)
self.mqa = 0 #Un volume de production au maximum de profit
self.mqb = 0 #Production B avec un profit maximum
self.mLA = 0 #Ci-dessous, le montant de chaque élément de production utilisé au profit maximum
self.mKA = 0
self.mLB = 0
self.mKB = 0
self.mLn = 0
self.L = 24 #Travail autonome
self.K = 10 #Montant du capital propre
def solvePmax(self): #Produire A et B pour optimiser les profits
"""Réinitialisez le meilleur profit"""
self.maxprofit = 0
"""Résolvez le problème de l'optimisation des bénéfices"""
for i in range(nlimit):
self.calcprofit(Market) #Le profit est calculé (le profit est calculé)
def calcprofit(self, Market): #Calcul des bénéfices
"""Obtenir au hasard des combinaisons qui satisfont à l'auto-contrainte des facteurs de production"""
LA = int(random.randrange(24)) #Choisissez un entier entre 0 et 24
LB = int(random.randrange(24 - LA)) #Choisissez un entier entre 0 et 24-LA
Ln = self.L - LA - LB #Transférer le surplus de main-d'œuvre dans la main-d'œuvre non agricole
KA = int(random.randrange(10))
KB = self.K - KA
"""Fonction de production"""
qa = 3 * LA ** (alpha) * KA ** (1 - alpha)
qb = 1 * LB ** (beta) * KB ** (1 - beta)
"""Fonction de profit"""
profit = Market.pA * qa + Market.pB * qb + w * Ln
"""Mettre à jour la meilleure solution"""
if profit >= self.maxprofit:
self.maxprofit = profit
self.mqa = qa
self.mqb = qb
self.mLA = LA
self.mKA = KA
self.mLB = LB
self.mKB = KB
self.mLn = Ln
#Fin de la définition de la classe Farmer
#Définition de classe Consommateur
class Consumer:
"""Définition d'une classe qui représente un consommateur"""
def __init__(self, cat): #constructeur
self.category = cat
self.maxutility = 0 #Utilité maximale (0 pour le moment)
self.mca = 0 #Consommation du produit A
self.mcb = 0 #Consommation du produit B
self.C = 0 #Dépenses totales
self.I = 5000 #Enregistrer S comme budget initial=A donné 5000
def solveUmax(self): #Consommez A et B pour maximiser l'utilité
"""Réinitialiser les meilleures contraintes d'utilité et de budget"""
self.maxutility = 0
I = self.I + 5000 #Le revenu unique est de 5000
"""Résoudre les problèmes d'optimisation des utilitaires"""
for i in range(nlimit):
self.calcutil(I, Market) #L'utilité est calculée (l'utilité est calculée)
def calcutil(self, I, Market): #Calcul de l'utilité
"""Sélectionnez au hasard la consommation des produits A et B"""
ca = int(random.randrange(appe)) #0 à appe=Choisissez un entier dans les 40
cb = int(random.randrange(appe - ca)) #0 à appe=40 -Choisissez un entier dans ca
"""Calculez les dépenses totales pour ce terme"""
C = Market.pA * ca + Market.pB * cb
"""Fonction d'utilité"""
utility = ca ** (gamma) + cb ** (1 - gamma)
"""Mettre à jour la meilleure solution"""
if I > C and Market.sa > ca and Market.sb > cb:
if utility >= self.maxutility: #Mettre à jour la meilleure solution
self.maxutility = utility
self.mca = ca
self.mcb = cb
self.C = C
self.I = I - C #Je vais calculer le budget pour le prochain trimestre, donc j'ai soustrait les dépenses
#Consommateur de fin de cours
#Marché de définition de classe
class Market:
def __init__(self):
self.pA = 100 #Prix initial du produit agricole
self.pB = 300
self.sa = 2 * (12 ** 0.3) * (5 ** 0.7) #Nous avons utilisé les valeurs lorsque la moitié des éléments de production que nous possédions étaient affectés à la production de A et B, respectivement.
self.sb = 1 * (12 ** 0.7) * (5 ** 0.3)
def save(self, f): #La quantité produite par l'agriculteur est mise en stock
for i in range(len(f)):
self.sa += f[i].mqa
self.sb += f[i].mqb
def eaten(self, c): #La quantité consommée par le consommateur est attirée par le stockage, et un autre/Seulement 3 peuvent être mangés par les souris
for i in range(len(c)): #Manger par les humains réduit le stockage pour le prochain trimestre
self.sa -= c[i].mca
self.sb -= c[i].mcb
self.sa *= 2 / 3 #Mangez par souris et réduisez le stockage pour le prochain trimestre
self.sb *= 2 / 3
def price(self, c): #Calculez le prix pour le prochain trimestre
Tca = 0
Tcb = 0
for i in range(len(c)):
Tca += c[i].mca
Tcb += c[i].mcb
if (self.sa * 3 / 2) / (self.sa * 3 / 2 + Tca) <= 0.3:
self.pA *= 1.01
else:
self.pA *= 0.99
if (self.sb * 3 / 2) / (self.sb * 3 / 2 + Tcb) <= 0.3:
self.pB *= 1.01
else:
self.pB *= 0.99
#Définition de la fonction de sous-traitance
#Calcn qui supervise le prochain calcul()Définition des fonctions
def calcn(t, f, c, Market):
#(1) Énuméré le temps, le prix du terme précédent et le surplus de produit du terme précédent.
pAlist.append(Market.pA) #prix
pBlist.append(Market.pB)
salist.append(Market.sa) #Produit restant
sblist.append(Market.sb)
tlist.append(t + 1) #temps
#② Optimiser les profits de la ferme
for i in range(len(f)):
f[i].solvePmax()
#③ Valeur agrégée du volume de production des produits sur le marché et autres facteurs
mqa = 0
mqb = 0
maxprofit = 0
mLA = 0
mKA = 0
mLB = 0
mKB = 0
mLn = 0
for i in range(len(f)):
mqa += f[i].mqa
mqb += f[i].mqb
maxprofit += f[i].maxprofit
mLA += f[i].mLA
mKA += f[i].mKA
mLB += f[i].mLB
mKB += f[i].mKB
mLn += f[i].mLn
#④ Mettez la valeur agrégée de la production de chaque agriculteur dans la liste
maxprofitlistF.append(maxprofit)
mqalistF.append(mqa)
mqblistF.append(mqb)
mLAlistF.append(mLA)
mKAlistF.append(mKA)
mLBlistF.append(mLB)
mKBlistF.append(mKB)
mLnlistF.append(mLn)
#⑤ Les produits agricoles sont sur le marché
Market.save(f)
#⑥ Optimiser l'utilité des consommateurs
for i in range(len(c)):
c[i].solveUmax()
#⑦ Valeur agrégée de la consommation de produits et autres facteurs survenant sur le marché
mca = 0
mcb = 0
maxutility = 0
C = 0
mI = 0
for i in range(len(c)):
mca += c[i].mca
mcb += c[i].mcb
maxutility += c[i].maxutility
C += c[i].C
mI += c[i].I
#⑧ Mettez la valeur agrégée de chaque produit consommateur dans la liste
maxutilitylistC.append(maxutility)
mcalistC.append(mca)
mcblistC.append(mcb)
ClistC.append(C)
IlistC.append(mI)
#⑨ Excédent de produits reporté au trimestre suivant
Market.eaten(c)
#⑩ Prix suivant
Market.price(c)
#Exécutif principal
#Initialisation
random.seed(SEED) #Initialisation aléatoire
Market = Market() #Mettre une instance de la classe Market dans une variable
#Dupliquez les instances Farmer et Consumer de catégorie 0 dans la liste (prévu pour le faire, une à la fois). Si vous créez une instance avec une liste, il semble que vous ne pouvez pas utiliser la variable seule.
f = [Farmer(0)]
c = [Consumer(0)]
#Liste du statut d'agriculteur
maxprofitlistF = []
mqalistF = []
mqblistF = []
mLAlistF = []
mKAlistF = []
mLBlistF = []
mKBlistF = []
mLnlistF = []
#Liste du statut de consommateur
maxutilitylistC = []
mcalistC = []
mcblistC = []
ClistC = []
IlistC = []
#Liste des prix et des restes de produits
pAlist = []
pBlist = []
salist = []
sblist = []
#Liste des horaires
tlist = []
#Entrez le nombre d'essais
nlimit = int(input("Spécifiez le nombre de fois pour rechercher la meilleure solution. Plus le nombre est élevé, plus la solution optimale est proche. :"))
#Simulation d'agent
for t in range(R):
calcn(t, f, c, Market) #Calculez l'état à la prochaine fois
#Fin de la partie simulation
#Ajustement des nombres après la virgule décimale dans une liste particulière
#Ajuster le profit, la production, l'utilité, C, s, le revenu
maxprofitlistF = [round(maxprofitlistF[n]) for n in range(len(maxprofitlistF)) ]
mqalistF = [round(mqalistF[n], 1) for n in range(len(mqalistF))]
mqblistF = [round(mqblistF[n], 1) for n in range(len(mqblistF))]
maxutilitylistC = [round(maxutilitylistC[n], 1) for n in range(len(maxutilitylistC))]
ClistC = [round(ClistC[n]) for n in range(len(ClistC))]
IlistC = [round(IlistC[n]) for n in range(len(IlistC))]
salist = [round(salist[n], 2) for n in range(len(salist))]
sblist = [round(sblist[n], 2) for n in range(len(sblist))]
#Affichage du graphique
print("profit","\n",maxprofitlistF,"\n","\n","Un volume de production","\n",mqalistF,"\n","\n","Production B","\n",mqblistF,"\n","\n","LA","\n",mLAlistF,"\n","\n","LB","\n",mLBlistF,"\n","\n","Ln","\n",mLnlistF,"\n","\n","utilitaire","\n",maxutilitylistC, "\n","\n","Une consommation","\n",mcalistC,"\n","\n","Consommation B","\n",mcblistC,"\n","\n","C","\n",ClistC,"\n","\n","pA","\n",pAlist,"\n","\n","pB","\n",pBlist,"\n","\n","sa","\n",salist,"\n","\n","sb","\n",sblist,"\n","\n","le revenu","\n",IlistC)
pA = plt.plot(tlist, pAlist)
pB = plt.plot(tlist, pBlist)
plt.title("the price change of product A and B")
plt.xlabel("time")
plt.ylabel("price")
plt.legend((pA[0], pB[0]), ("pA", "pB"), loc=4)
plt.show()
# sell&buy.py
Comme écrit dans le titre, j'ai essayé d'utiliser la classe. Il existe trois types de classes créées ici: "Agriculteur", "Consommateur" et "Marché". L'agriculteur produit A et B pour maximiser les profits, Le consommateur consomme A et B pour maximiser l'utilité sous contraintes, Market gère l'inventaire A et B et ajuste les prix.
Je ne sais pas comment le problème d'optimisation est résolu dans d'autres simulations économiques, Ici, nous avons essayé au hasard la combinaison de variables de sélection un nombre spécifié de fois, et mis à jour la combinaison lorsque l'utilité ou le profit était le plus grand et que les conditions de contrainte étaient remplies.
Le code est écrit selon Tomohiro Odaka (2018): «Calcul numérique et simulation par Python», mais il peut y avoir une partie où M. Odaka a mal interprété les mots utilisés.
La raison en est que je voulais augmenter le nombre d'agents plus tard. À l'avenir, en le faisant plus comme un multi-agent, j'augmenterai le nombre d'agents avec des paramètres différents. Lorsque disperser les paramètres de l'agent ① Pensez-vous que les paramètres sont ajustés en fonction de la distribution de probabilité? (2) Je m'inquiète de savoir s'il faut faire en sorte que la structure change les paramètres sous l'influence d'autres variables exogènes.
Quand j'ai couru, le résultat était sorti comme suit. Comme il est long, certaines parties sont omises.
Spécifiez le nombre de fois pour rechercher la meilleure solution. Plus le nombre est élevé, plus la solution optimale est proche. : 100 Un volume de production [11.7, 21.2, 22.0, 16.3, 11.4, 21.2, 17.2, 17.9, 19.4, 14.4, 17.9, 17.2, 23.9, 19.4, 15.8, 22.6, 19.5, 19.4, 15.8, 15.8, 19.4, 19.5, 21.2, 17.2, 17.9, 22.0, 14.6, 22.6, 16.3, 17.2, 19.5, 19.4, 25.0, 17.8, 19.5, 23.9, 23.9, 25.0, 17.9, 27.0, 22.6, 14.4, 19.5, 21.2, 19.5, 19.4, 23.9, 15.8, 17.2, 26.1, 17.9, 19.4, 21.2, 17.2, 21.2, 26.1, 19.4, 22.6, 26.1, 22.6, 23.9, 21.2, 23.9, 22.6, 19.0, 26.1, 25.0, 27.9, 19.5, 22.6, 21.2, 25.0, 19.5, 22.6, 22.0, 21.2, 19.4, 27.0, 25.0, 27.0, 24.0, 19.4, 27.9, 21.2, 22.6, 19.5, 27.9, 27.0, 25.0, 27.0, 20.8, 30.1, 25.0, 23.9, 23.9, 26.1, 29.4, 19.4, 17.2, 25.0]
Production B [5.4, 0.0, 3.8, 4.9, 6.3, 1.6, 1.0, 3.2, 0.0, 2.3, 3.2, 2.2, 1.0, 2.6, 3.2, 1.6, 2.0, 1.0, 3.2, 2.0, 2.6, 2.7, 2.2, 0.0, 2.0, 1.2, 5.9, 1.6, 4.3, 1.0, 3.2, 1.0, 1.6, 3.0, 1.2, 1.6, 2.6, 2.6, 1.2, 1.6, 2.2, 3.0, 5.7, 2.6, 1.2, 3.1, 1.6, 3.2, 1.6, 0.0, 1.2, 1.6, 2.6, 0.0, 2.6, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.6, 1.0, 2.3, 2.6, 0.0, 2.2, 3.8, 2.2, 1.0, 2.2, 1.2, 1.0, 3.8, 1.0, 3.9, 0.0, 3.1, 1.0, 2.0, 2.2, 3.1, 1.0, 1.6, 3.2, 1.0, 1.0, 1.6, 0.0, 1.2, 1.0, 0.0, 2.6, 2.2, 1.6, 0.0, 2.2, 1.0, 1.6]
LA [1, 4, 6, 3, 2, 4, 2, 3, 3, 2, 3, 2, 6, 3, 2, 5, 4, 3, 2, 2, 3, 4, 4, 2, 3, 6, 3, 5, 3, 2, 4, 3, 7, 4, 4, 6, 6, 7, 3, 9, 5, 2, 4, 4, 4, 3, 6, 2, 2, 8, 3, 3, 4, 2, 4, 8, 3, 5, 8, 5, 6, 4, 6, 5, 5, 8, 7, 10, 4, 5, 4, 7, 4, 5, 6, 4, 3, 9, 7, 9, 8, 3, 10, 4, 5, 4, 10, 9, 7, 9, 5, 13, 7, 6, 6, 8, 12, 3, 2, 7]
LB [7, 0, 5, 6, 7, 2, 1, 4, 0, 2, 4, 3, 1, 4, 4, 2, 2, 1, 4, 2, 4, 3, 3, 0, 2, 1, 7, 2, 5, 1, 4, 1, 2, 3, 1, 2, 4, 4, 1, 2, 3, 3, 9, 4, 1, 5, 2, 4, 2, 0, 1, 2, 4, 0, 4, 0, 1, 1, 0, 0, 0, 1, 2, 1, 2, 4, 0, 3, 5, 3, 1, 3, 1, 1, 5, 1, 7, 0, 5, 1, 2, 3, 5, 1, 2, 4, 1, 1, 2, 0, 1, 1, 0, 4, 3, 2, 0, 3, 1, 2]
Ln [16, 20, 13, 15, 15, 18, 21, 17, 21, 20, 17, 19, 17, 17, 18, 17, 18, 20, 18, 20, 17, 17, 17, 22, 19, 17, 14, 17, 16, 21, 16, 20, 15, 17, 19, 16, 14, 13, 20, 13, 16, 19, 11, 16, 19, 16, 16, 18, 20, 16, 20, 19, 16, 22, 16, 16, 20, 18, 16, 19, 18, 19, 16, 18, 17, 12, 17, 11, 15, 16, 19, 14, 19, 18, 13, 19, 14, 15, 12, 14, 14, 18, 9, 19, 17, 16, 13, 14, 15, 15, 18, 10, 17, 14, 15, 14, 12, 18, 21, 15]
Une consommation [23, 11, 28, 16, 12, 14, 19, 17, 21, 7, 23, 16, 23, 20, 16, 12, 26, 17, 16, 7, 20, 21, 19, 19, 15, 21, 10, 22, 10, 23, 16, 22, 20, 20, 16, 26, 20, 24, 16, 25, 23, 9, 13, 28, 19, 20, 20, 6, 22, 24, 20, 19, 20, 20, 12, 28, 14, 25, 26, 1, 39, 21, 13, 29, 18, 24, 20, 32, 17, 24, 20, 26, 15, 17, 25, 23, 11, 23, 20, 34, 16, 21, 22, 18, 27, 11, 33, 23, 28, 28, 28, 28, 28, 15, 25, 27, 27, 10, 22, 26]
Consommation B [12, 1, 3, 5, 5, 2, 1, 3, 0, 2, 3, 2, 1, 1, 3, 2, 2, 0, 2, 3, 1, 1, 4, 0, 0, 2, 6, 1, 4, 1, 2, 2, 1, 1, 1, 2, 3, 2, 1, 2, 1, 3, 6, 2, 1, 3, 1, 2, 2, 0, 0, 2, 3, 3, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 2, 3, 0, 2, 3, 2, 1, 2, 1, 1, 4, 1, 2, 1, 3, 1, 2, 1, 3, 1, 2, 3, 0, 1, 2, 2, 2, 2, 2, 0, 2, 1, 0, 2, 0, 2]
C [5900, 1414, 3700, 3101, 2724, 2048, 2244, 2660, 2185, 1341, 3310, 2299, 2753, 2459, 2668, 1930, 3438, 1859, 2391, 1707, 2520, 2651, 3363, 2161, 1723, 3042, 3006, 2861, 2394, 2977, 2486, 3209, 2696, 2717, 2250, 3795, 3368, 3608, 2330, 3797, 3276, 2066, 3479, 4192, 2764, 3521, 2946, 1405, 3502, 3200, 2693, 3165, 3627, 3627, 1681, 3884, 2255, 3468, 3642, 141, 5463, 3256, 2145, 4387, 3135, 4317, 2915, 5279, 3389, 4184, 3326, 4563, 2614, 2947, 5039, 3890, 2334, 3889, 4052, 5613, 3134, 3588, 4385, 3176, 4869, 2676, 5205, 3972, 5115, 5115, 5115, 5115, 5115, 2537, 4867, 4959, 4704, 2351, 3833, 5166]
le revenu [4100, 7686, 8986, 10886, 13162, 16114, 18870, 21210, 24025, 27684, 29374, 32075, 34322, 36863, 39195, 42265, 43827, 46968, 49578, 52870, 55350, 57700, 59337, 62176, 65452, 67410, 69404, 71543, 74149, 76171, 78685, 80477, 82781, 85064, 87813, 89018, 90650, 92042, 94712, 95916, 97639, 100573, 102095, 102902, 105138, 106617, 108672, 112267, 113764, 115565, 117872, 119707, 121080, 121080, 124399, 125515, 128260, 129792, 131150, 136009, 135546, 137290, 140145, 140758, 142623, 143307, 145392, 145112, 146723, 147539, 149212, 149649, 152036, 154089, 154050, 155160, 157827, 158937, 159885, 159272, 161138, 162550, 163164, 164989, 165120, 167444, 167239, 168267, 168152, 168152, 168152, 168152, 168152, 170616, 170748, 170789, 171085, 173734, 174901, 174735]
Si vous essayez vraiment de résumer les résultats de votre examen, cela prendra plus de temps, je voudrais donc décrire brièvement vos impressions sur les résultats.
J'ai trouvé assez difficile de sortir le résultat en utilisant matplotlib. Cette fois, j'ai fait un diagramme des changements de prix uniquement et montré les changements d'autres variables simplement en collant une liste de manière appropriée, mais j'aimerais pouvoir faire de toutes les variables un graphique à barres. Le prochain défi.
La raison pour laquelle je n'ai tabulé que les variations de prix était parce que je me demandais si les prix convergeraient vers quelque chose comme un prix équilibré. En regardant la figure, Vous pouvez voir que le prix du produit A (l'image de céréales à bas prix et à forte intensité de capital) n'a cessé d'augmenter. Et la consommation de A est presque constante, et la production semble avoir augmenté progressivement. Il est normal que les agriculteurs produisent plus de A avec des prix plus élevés, mais il est étrange que la quantité de A consommée par les consommateurs n'ait pas changé. La raison en est peut-être qu'en raison des restrictions de satiété, le montant de l'augmentation de la consommation est trop faible pour le montant de l'augmentation des revenus, et le budget a tellement augmenté que les restrictions budgétaires n'ont pas de sens. Dans ce cas, la répartition de la consommation peut converger vers un équilibre de la consommation (la répartition de la consommation que vous préférez lorsque le prix ne change pas), qui est déterminé par les paramètres de la fonction d'utilité quel que soit le budget. Eh bien, c'est profond ... Vaut-il mieux supprimer la restriction de satiété? Ou peut-être serait-il préférable d'augmenter le nombre d'agents ...
Expliquer la tendance d'entrée des éléments de production en un mot "Les salaires du travail non agricole sont si élevés que tout le monde ne cultive que pour des emplois annexes." Il s'avère que la plupart du temps a été investi dans Ln, mais le salaire de 200 personnes peut avoir été trop élevé. En outre, le produit B (une image de fruits à prix élevé et à forte intensité de main-d'œuvre) était rarement produit, et seul A était produit en grand nombre. Avec cette condition, on peut dire que les agriculteurs avaient tendance à produire beaucoup de A, qui a une productivité élevée des éléments de production, au lieu de B, qui a un prix initial légèrement élevé. Cela ressemble à un riziculteur japonais à temps partiel. En passant, si vous entrez des nombres différents dans les paramètres, des résultats complètement différents seront affichés. Après tout, il peut être nécessaire de s'en tenir un peu plus à la valeur du paramètre.
Comme mon ami l'a dit, le concepteur de l'automate cellulaire ne sait pas quel type de motif sera dessiné à la fin tant que le programme ne sera pas lancé. Cette fois, moi (le dieu de ce programme) j'ai essayé de faire un modèle qui pourrait imiter le comportement des agriculteurs et des consommateurs, mais je ne savais pas quel serait le résultat avant la course, et après avoir vu le résultat, pourquoi? Je n'ai même pas pu déterminer la raison du résultat. Je pense que les scientifiques relèvent peut-être un défi imprudent. La réalité est plus compliquée que cette simulation. Après tout, tout ce que les humains peuvent faire est de "(1) trouver une théorie de base qui est un os pour expliquer un phénomène. (2) coller divers os ensemble pour faire de la viande pour expliquer un phénomène spécifique." pense.
Donc, c'est brusque, mais ça se termine ici. Ensuite, je pense faire une simulation d'un fermier autosuffisant, ou étudier le pygame et faire un jeu simple qui donne envie au fermier de bouger.
~ Papier ~ [1]Alain de Janvry, Marcel Fafchamps and Elisabeth Sadoulet(1991) “Peasant household behavior with missing markets: some paradoxes explained” Economic Journal. Vol.101, pp.1400-1417. [2]George A. Dyer, Steve Boucher, and J. Edward Taylor(2006) “Subsistence response to market shocks” American journal of agricultural economics. Vol. 88, pp. 279-291. [3]J.Edward Taylor, George A. Dyer, Antonio Yu'nez-Naude(2005) "Disaggregated Rural Economywide Models for Policy Analysis" World Development. vol. 33, pp. 1671-1688
~ Manuel ~ [1] Tomohiro Odaka (2018): "Calcul numérique et simulation avec Python", Ohm [2]Jake VanderPlas(2016) "Python Data Science Handbook: Essential Tools for Working with Data", O'Reilly Media
Recommended Posts