$TITLE: M7-5.GMS: Small-Group Monopolistic Competition * markup formula is 1/(sigma - (1/(1+N))(sigma - 1) * to calibrate to the same data, sigma = 5, N = 1, a fudge-factor * of 0.6 is used in the markup formula to reproduce the benchmark * markup = 0.6/(sigma - (1/(1+N))(sigma - 1) = 0.20 $ONTEXT Production Sectors Consumers Markets | XC N Y W | CONS ENTR -------------------------------------------------------------- PX | 100 -100 | PY | 100 -100 | PN | 20 | -20 PW | 200 | -200 PL | -80 -20 -100 | 200 MK | -20 | 20 $OFFTEXT PARAMETERS SI SIGMA: elasticity of substitution among varieties FC parameter setting the level of fixed costs ENDOWL endowment of labor MODELSTAT statistic indicating model solved: 0 = solved; SI = 5; FC = 20; ENDOWL = 200; NONNEGATIVE VARIABLES X Activity level for X (output per firm) XC Composite X (utility value of agg X sector output) N Number of X sector firms (variety measure) Y Activity level of Y output W Activity level for welfare PX Price of an individual X variety PE Price index (unit expenditure function): cost of XC = 1 PN Price of fixed costs (price of entering) PY Price of Y PW Price index for utility (consumer price index) PL Price of labor MK Markup CONS Income of the representative consumer; EQUATIONS PRICEX MR = MC in X (associated with X output per firm) PINDEX Price index for X sector goods PRICEN Zero profits - free entry in X (associated with N) PRICEY Zero profit condition for Y (PY = MC) PRICEW Zero profit condition for W (PW = MC of utility) DX Supply-demand balance for X (individual variety) DXC Supply-demand balance for XC DN Supply-demand for firms N: markup rev = fexed cost DY Supply-demand balance for Y DW Supply-demand balance for utility W (welfare) LAB Supply-demand balance for unskilled labor MARKUP Markup equation INCOME National income; PRICEX.. PL =G= PX*(1 - MK); PINDEX.. (N*PX**(1-SI))**(1/(1-SI)) =G= PE; PRICEN.. PL =G= PN; PRICEY.. PL =G= PY; PRICEW.. (PE**0.5)*(PY**0.5) =G= PW; DX.. X*80 =G= PX**(-SI)*(PE**(SI-1))*CONS/2; DXC.. XC =G= N**(SI/(SI-1))*X; DN.. N*FC =G= (PX*MK)*X*80*N/PN; DY.. Y*100 =G= CONS/(2*PY); DW.. 200*W =G= (1.25**0.5)*CONS/PW; LAB.. ENDOWL =E= Y*100 + N*X*80 + N*FC; MARKUP.. MK =E= 0.6/(SI - 1/(N+1)*(SI - 1)); INCOME.. CONS =E= PL*ENDOWL; MODEL M62 /PRICEX.X, PRICEY.Y, PRICEW.W, PRICEN.N, PINDEX.XC, DX.PX, DXC.PE, DN.PN, DY.PY, DW.PW, LAB.PL, MARKUP.MK, INCOME.CONS/; * set benchmark values: PE.L = 1.25; CONS.L = 200; X.L = 1; XC.L = 1; Y.L = 1; N.L = 1; W.L = 1; PX.L = 1.25; PN.L = 1; PY.L = 1; PL.L = 1; PW.L = 1.25**0.5; MK.L = 0.20; * choose the price of good Y as numeraire PY.FX = 1; * check for calibration and starting-value errors M62.ITERLIM = 0; SOLVE M62 USING MCP; M62.ITERLIM = 1000; SOLVE M62 USING MCP; MODELSTAT = M62.MODELSTAT - 1.; DISPLAY MODELSTAT; * Counterfactual: expand the size of the economy *ENDOWL = 400; *SOLVE M62 USING MCP; * show welfare as a function of the economy's size SETS J scenario 1 = small-group mc 2 = large-group /J1*J2/; SETS I indexes 25 different size levels /I1*I25/; PARAMETERS SIZE(I) WELFARE(I,J) WELFCAP(I,J) MARKUPS(I,J) NUMBERF(I,J) RESULTS(I,*); MK.L = 0.2; LOOP(I, LOOP(J, SIZE(I) = 5.2 - 0.2*ORD(I); ENDOWL = 200*SIZE(I); MK.UP = +INF; MK.LO = 0; MK.FX$(ORD(J) EQ 2) = 0.20; SOLVE M62 USING MCP; WELFARE(I,J) = W.L; WELFCAP(I,J) = WELFARE(I,J)/SIZE(I); MARKUPS(I,J) = MK.L; NUMBERF(I,J) = N.L; ); ); RESULTS(I, "SIZE") = SIZE(I); RESULTS(I, "WELFCAP-L") = WELFCAP(I, "J2"); RESULTS(I, "WELFCAP-S") = WELFCAP(I, "J1"); RESULTS(I, "NUMBERF-L") = NUMBERF(I, "J2"); RESULTS(I, "NUMBERF-S") = NUMBERF(I, "J1"); RESULTS(I, "MARKUP-S") = MARKUPS(I,"J1"); DISPLAY RESULTS; * Write parameter RESULTS to an Excel file MCOMP2.XLS, * starting in Sheet1, cell A3 Execute_Unload 'M7.gdx' RESULTS execute 'gdxxrw.exe M7.gdx par=RESULTS rng=SHEET4!A3'