Advanced Macroeconomics

Martin Luther University Halle-Wittenberg Professor Dr. O. Holtemoller ¨


2nd Exam


Winter 2023/2024


General Remarks:


This document contains all problem sets for the second exam in winter 2023.


Each student is assigned a specific problem set. You have to work exactly on the problem


set that is assigned to you. You find the allocation of student ID numbers to problem sets


at the end of the document.


Please read the exercises carefully.


Please confirm by Email to until April 11, 2024, 23:59, that


you accept the exam or that you withdraw.


Questions about the exercises can be sent by Email to until


April 11, 2024, 12:00 (in German or in English). The questions will be answered by


Email to all participants.


Solutions have to be provided in a single pdf file in English together with a zip container including all Octave or Dynare program code and data that you have used to solve


the exercises. Computer code should be commented within the file as far as possible.


Zipping the program code is very important because some Email programs block attached computer code. Send the pdf and the zip container until May 2, 2024, 23:59 to using your MLU Email address. Other formats than pdf and


zipped Octave/Dynare code/data will not be accepted.


For producing your data set with raw data you can use R. In this case add the respective


code to the zip container. But please note that other software than Octave (or Matlab) and


R is not allowed.


All numerical calculations and all graphical expositions have to be produced with Octave


(or Matlab) and Dynare. Do not use other statistical or econometric software.


You need to combine techniques from several Octave and Dynare programs that have


been provided via Stud.IP during the semester. Screen all programs and think about how


to use parts of them for your task. Include a table in your pdf which lists all Octave and


Dynare programs that you are using together with a short description what a program


Page 1 of 5


Advanced Macroeconomics 2nd Exam Winter 2023/24


does. This also includes the information whether Matlab or Octave was used and which version of it. Add a data section in which you explain in detail the data that you use and its exact source.


Cite all the literature that you are using (including the lecture slides, the Dynare manual, and Dynare itself, see Cite consistently and completely (including exact page numbers), following academic standards. If you receive support from another person (including fellow students) or you use artificial intelligence do not forget to acknowledge this. It is important that you explain your code in the answers, otherwise we cannot assess your own contribution. Code without explicit written explanation is not sufficient to pass the exam.


If calculations are required, they must be presented in detail, i.e. comprehensibly and completely, in typed form.


The grading criteria are:


Does the Octave/Dynare code work and does it answer the specific question? (30%)


Is the computer code well documented and explained? (30%)


Are the economic explanations complete and correct? (30%)


Are the results well presented in the pdf file? (10%)


Good luck!


Page 2 of 5


Advanced Macroeconomics 2nd Exam Winter 2023/24


Problem Set #n


1. Download the following data from the AMECO database (European Commission) for the


country which is assigned to your student ID:


table code variable unit ref periods


AMECO01 NETN Employment, persons: 0 0 2000-


total economy 2025 (National accounts)


AMECO06 UVGD Gross domestic product 99 0 2000-


at current prices 2025


AMECO16 UTYG Current taxes on income and wealth 99 0 2000-


(direct taxes): 2025


general government :- ESA 2010


Comment the way you get the data and explain the variables. Document the process of data arrangement such that it is replicable.


2. Calculate the aggregate effective income tax rate τt as well as its average over all time periods τ¯ using national income and tax revenues. Explain how you compute it and provide the formula. Display the value in the command window.


3. Apply the HP-filter to the time series for employment and national income. Set a reasonable value for the smoothing parameter λ and explain your choice. Calculate the correlation coefficient between cyclical employment and cyclical income and display it in the command window. Comment shortly the size of the coefficient.


4. Plot the time series (aggregate effective income tax rate; trend and cycle of employment and income as well as the time series themselves) and show a scatter plot of cyclical employment and cyclical income. Provide descriptions and possible explanations for the observations.


5. Consider the non-linear Monopolistic Competition Model with flexible prices and wages from the lecture. Assume that the government receives lump taxes from households, where tt = Tt PtYt is the share on GDP. Furthermore, it collects tax revenues from labour income, where τt is the respective tax rate, equal to τ¯ in steady state. Set the steady state to the calculated average value from the empirical part of the problem set. Government spending is defined as a constant share γ = 0:2 on GDP and bt = Bt PtYt = 0:6 is the share of public debt on nominal GDP.


Hence, the government budget constraint can be written as


γ + bt11 + πtYt1Yt= bt + τt wtNt + tt:
1 + it Yt

Lump taxes are set according to the fiscal rule (steady state values a marked with a bar) tt = t¯+ φb(bt1 ¯b):


Page 3 of 5


Advanced Macroeconomics 2nd Exam Winter 2023/24


Net real wage is defined as


w~t = (1 τt)wt:


In case of a tax policy shock, the tax rate deviates from its steady state value, in normal times t = 0:


τt = ¯ τ + t


GDP is now used for private and public consumption. Adjust the aggregate resource constraint to


Yt = Ct + γYt: The labour supply condition changes now to


w~t = CNt’


Derive it analytically and discuss the role of the tax rate.


6. The rest of dynamic equations is given as follows:




Ct θ = 1 + Rt


1 + ρ


wt =


1 α




Yt Nt


1 + Rt = 1 + it


1 + πt+1


1 + it = (1 + ρ)(1 + π)(1 + πt π)φ exp(ν)


Furthermore, log total factor productivity and monetary policy shock follow an autoregressive process of order one as in the lecture.


Do a sensitivity analysis: plot steady state . . .


. . . labour hours for values of the labour income tax rate between 0 and 95 percent


in steps of 5 percentage points.


. . . lump sum share on GDP for values of the government consumption share on


GDP between 10 percent and 30 percent in steps of 1 percentage point.


Explain your findings.


Some advice how to adjust the code file from the lecture:


Be careful with variables in logs (exp( ~ w)) and variables in percent (τ, b, t) when adjusting the code file. The timing of bonds is already taken into account in the provided formulas, so you must not declare them as predetermined variable or shift the time index. Add γ as parameter.


Page 4 of 5


Advanced Macroeconomics 2nd Exam Winter 2023/24


Derive the steady state lump-sum tax share t¯from the steady state government budget constraint and use the formula as initial value for this variable.


When implementing the fiscal rule in the model block use the command


steady state(t) for t¯.


See section on for loops in the Dynare manual and use the command steady; to


calculate the steady state values in each iteration.


7. Assume the following fiscal policy scenario: there are elections soon and the government decides to temporarily reduce the labour income tax by 5 percentage points from period 2 to 5 to stimulate the economic activity. Does that work? Present and explain the impulse responses of each variable in the model. Use the perfect foresight solver in Dynare.


Some advice how to produce plots of the results:


Dynare does not automatically produce plots of impulse responses in the deterministic case. For plotting the responses relative to the steady state as %-deviations (y; c; w; w; n ~ ) or %-points (τ; r; i; π; b; t) you will need the steady state value of each variable. Instead of using the command xbar = oo .steady state() you can simply take the first element in the vector of a variable to extract the steady state value: xbar = x(1).


ID n countryFrance
223222917 1

222235729 2 Germany


223223633 3 Italy


221217069 4 Poland


221213087 5 Spain


222222712 6 United Kingdom


Page 5 of 5