Home

  Publications

  Labor Economics

  Codes

  Contact

  Software

  CV (PDF)
Friends:

  Translations
  Labor Market Observatory
 

SIMPLE SEARCH AND MATCHING MODEL


The basic equilibrium search model of labor market is developed in this section. I implement the model equation in Python programming language.

Modele tej klasy stanowią przeciwieństwo modeli Walrasowskich, gdzie dopasowanie pomiędzy podażą a popytem następowało niezwłocznie. Kluczowe jest tu założenie o braku dostępu do informacji jak i heterogeniczności zarówno poszukujących zatrudnienia jak i wakatów. Powyższe założenia są przyczyną występowania kosztownych opóźnień (tarć) w procesie łączenia pracowników i pracodawców i w konsekwencji przyczynia się do powstania bezrobocia i dyspersji płac.

Model omawiany w ramach wykłady pochodzi z podręcznika „Advanced Macroecononomics” Davida Romera, jednak pewne elementy równań zostały nieco zmodyfikowane.

MODEL

Modelowana gospodarka składa się z poszukujących zatrudnienia bezrobotnych U zatrudnionych E oraz wakujących V i obsadzonych F stanowisk. Na jednym stanowisku może pracować dokładnie jedna osoba. Ponadto wszyscy uczestnicy gospodarki mają te same preferencje, a także zasiedlają odcinek o jednostkowej długości. Żyją oni w nieskończoność, są obojętni wobec ryzyka i dyskontują przyszłość z pewną stałą stopą r. Obowiązuje warunek swobodnego wejścia – wakaty są tworzone bez ponoszenia dodatków kosztów. Pracodawca musi ponieść jednak pewien koszt utrzymania stanowiska C – może to być np. koszt związany z rekrutacją. Gdy bezrobotny zostaje zatrudniony rozpoczyna on wytwarzać pewną ilość dobra A w jednostce czasu, otrzymując jednocześnie pensję w. Załóżmy też, że A > C .

Za modelowanie skomplikowane i czasochłonnego procesu poszukiwań na rynku pracy odpowiada mechanizm funkcji dopasowań, która przedstawia strumień odpływu do zatrudnienia w danym czasie jako funkcję wakatów i bezrobotnych:

\[ M=M(U,V) \hspace{1cm} (1)\]

Przyjmujemy, że funkcja powyższa jest rosnąca w obu argumentach, a jej przyrosty są malejące:

\[ \frac{\partial M}{\partial U} > 0, \frac{\partial M}{\partial V} > 0; \frac{\partial^2 M}{\partial^2 U} > 0, \frac{\partial^2 M}{\partial^2 V} > 0\]

Oznaczmy teraz przez a częstotliwość odpływu do zatrudnienia, a przez α częstotliwość z jaką są zapełniane wolne miejsca pracy:

\[ a=\frac{M}{U} \hspace{1cm} (2) \] \[ \alpha = \frac{M}{V} \hspace{1cm} (3) \]

Po połączeniu bezrobotnego z wakatem, produkcja trwa, dopóki z pewną egzogeniczną częstotliwością szok nie spowoduje likwidacji stanowiska pracy. W tego typu modelach poszukiwań i dopasowań, aby opisać możliwe stany poszczególnych agentów wykorzystujemy programowanie dynamiczne. Wartość obsadzonego stanowiska pracy dla pracownika składa się więc z pewnej pensji, którą otrzymuje w oraz ryzyka utraty kapitału w przypadku wystąpienia egzogenicznego szoku b:

\[ rV_E=w-b(V_E-V_U) \hspace{1cm} (4) \]

Wartość obsadzonego stanowiska pracy dla pracodawcy przedstawia się następująco:

\[ rV_F=A-w-C-b(V_F-V_V) \hspace{1cm} (5) \]

W tym przypadku składa się ona wielkości wytwarzanego produktu pomniejszonego o pensję, którą musi on wypłacać pracownikowi, pewien stały koszt C utrzymania stanowiska, a także ryzyka straty kapitału w przypadku wystąpienia egzogenicznego szoku.

Dla bezrobotnego równanie Bellmana można zapisać następująco:

\[ rV_U=a(V_E-V_U) \hspace{1cm} (6) \]

Funkcja wartości składa się w tym przypadku z prawdopodobieństwa otrzymania kapitału w przypadku podjęcia zatrudnienia. Z uwagi na prostotę analizy pomięto tu wysokość zasiłków dla bezrobotnych, które w równaniu są zwykle uwzględniane.

Dla wakującego stanowiska możemy zapisać równanie:

\[ rV_V=-C+\alpha(V_F-V_V) \hspace{1cm} (7) \]

W tym przypadku na jego wartość składają się pewne stałe koszty C oraz prawdopodobieństwo uzyskania przychodu w przypadku udanej rekrutacji.

Po spotkaniu się pracodawcy i poszukującego zatrudnienia jest ustalana płaca. Musi ona być na tyle wysoka, aby bezrobotny zgodził się podjąć zatrudnienie i na tyle niska, aby pracodawca mógł czerpać zysk z zatrudnienia. Negocjacje płacowe odbywają się zgodnie z symetrycznym rozwiązaniem Nasha, zapożyczonym z teorii gier. Każdy z agentów uczestniczący w negocjacjach otrzymuje taki sam udział:

\[ V_E-V_U=V_F-V_V \hspace{1cm} (8) \]

Tym sposobem model jest kompletny.

PROCEDURA ROZWIĄZANIA

Romer proponuje nieco inną procedurę rozwiązania niż ma to miejsce w przypadku klasycznej pozycji Pissaridesa (2000). Przyjrzyjmy się bliżej metodyce Romera. Proponuje on, aby wyjść od wartości nieobsadzonego stanowiska pracy oraz całkowitej populacji zasiedlającej gospodarkę L, którą stanowią bezrobotni U i zatrudnieni E. Zastanówmy się jak wyrazić płace realne w warunkach VV oraz L ?

Odejmijmy początkowo równanie wartości bezrobotnego od zatrudnionego (6) – (4):

\[ V_E-V_U=\frac{w}{a+b+r} \hspace{1cm} (9) \]

Podobnie postępujemy z wartością pustego i obsadzonego stanowiska dla pracodawców (7) – (5):

\[ V_F-V_V=\frac{A-w}{\alpha+b+r} \hspace{1cm} (10) \]

Przytoczmy teraz (8) z którego wynika, że (9) i (10) muszą być sobie równe, a także rozważmy warunek swobodnego wejścia Vv=0:

\[\frac{w}{a+b+r}=\frac{A-w}{\alpha+b+r} \hspace{1cm} (11) \]

Po przekształceniu otrzymujemy równanie płac jako funkcję parametrów i zmiennych endogenicznych modelu:

\[ w=\frac{(a+b+r)A}{a+\alpha+2b+2r} \hspace{1cm} (12) \]

Teraz możemy w w równaniu (9) zastąpić płace równaniem (12) i przekształcić równanie wartości wakującego stanowiska:

\[ rV_V=-C+\frac{A\alpha}{a+\alpha+2b+2r} \hspace{1cm} (13) \] W powyższym równaniu α i a to zmienne endogeniczne. Ostatnie co nam zostaje, to wyrazić obie częstotliwości w warunkach E. Częstotliwość odpływu do zatrudnienia otrzymujemy przywołując (2) i przypominając, że E + U = L: \[ a=\frac{bE}{L-E} \hspace{1cm} (14) \]

Częstotliwość zapełniania wakatów można uzyskać w podobny, jednak w tym przypadku konieczne jest sprecyzowanie funkcji dopasowań. Zakładamy, że przyjmuje ona postać Cobba-Douglasa:

\[ M =KU^\beta V^\gamma \] tak więc przekształćmy (3): \[ \alpha=\frac{bE}{bE/[(K(L-E)^\beta)]^\frac{1}{\gamma}} \hspace{1cm} (15) \]

Równania (14) i (15) wskazują, że wraz ze wzrostem E rośnie a, natomiast α spada. Poziom zatrudnienia w stanie równowagi E w danej gospodarce jest określony przez przecięcie się krzywej VV z warunkiem swobodnego wejścia. Podstawmy teraz wyprowadzone częstotliwości a i α do 13 oraz skorzystajmy z warunku VV=0:

\[ A\frac{K^\frac{1}{\gamma}(bE)^\frac{\gamma-1}{\gamma}(L-E)\frac{\beta}{\gamma}}{[\frac{bE}{L-E}]+K^\frac{1}{\gamma}bE^\frac{\gamma-1}{\gamma}(L-E)^\frac{\beta}{\gamma}+2b+2r)}=C \hspace{1cm} (16) \]

Powyższe równanie wskazuje na wielkość zatrudnienia w równowadze E i zamyka model.

IMPLEMENTACJA

Zanim przejdziemy do obliczeń numerycznych, zauważmy, że powyższy model składa się z ośmiu parametrów C, A, L, K, r, b, β, γ oraz czterech głównych zmiennych endogenicznych E, U, w, V. Kluczowe równanie to (16) - jest to równanie z jedną niewiadomą E, rozwiązywanie ręczne byłoby jednak znacznie utrudnione.

Zobaczmy więc jak implementacja powyższego problemu wygląda w Pythonie!


# -*- coding: utf-8 -*-
"""
Created on Fri Feb 14 15:03:41 2014

@author: Marcin Wozniak
Equilibrium Search Model with Exogenous Job Destruction
"""
"""Definiuje parametry i ich wartości. Jest to tzw. proces kalibracji
parametrów strukturalnych modelu. W tym przykładowym zadaniu posłużymy
się wartościami parametrów zaproponowanych przez Shimmera i sprawdzimy
czy rezultat obliczeń numerycznych będzie ten sam"""

C = 0.5 # koszty pracodawcy związane z rekrutacją pracownika i utrzymaniem
        # stanowiska

A = 1   # wielkość produkcji wytwarzana na obsadzonym stanowisku pracy

K = 0.4 # parametr funkcji dopasowań

r = 0.012 # stopa dyskontowa, przy założeniu kwartalnego czasu modelu

b =  0.02 # częstotliwość występowania śmiertelnych szoków. Po wystąpieniu
            # szoku obsadzone stanowiksko pracy jest likwidowane

L = 1   # całkowita liczba ludności zasiedlająca modelowaną gospodarkę

gamma = 0.5 # elastyczność funkcji dopasowań

beta = 0.5 # elastyczność funkcji dopasowań 

"""Kolejnym krokiem jest zdefiniowanie równania, które zostanie rozwiązane
jako pierwsze. Z analizy symbolicznej wiemy, że kluczowe dla rozwiązania
jest równanie 16. Spróbujmy więc zapisać funkcję"""

def f(E):
    return (A*K**(1/gamma)*(b*E)**((gamma-1)/gamma)*(L-E)**(beta/gamma))/  \
    (b*E/(L-E))+K**(1/gamma)*b*E**((gamma-1)/gamma)*(L-E)**(beta/gamma)+  \
    2*b+2*r-C

"""importujemy teraz algorytmy odpowieni algorytm 
z biblioteki scipy.optimize"""

from scipy.optimize import fsolve

E = fsolve (f, 0.8)
print E


Web site and all contents © Copyright Marcin Wozniak 2014, All rights reserved.
Free website templates