• date post

22-Jun-2021
• Category

## Documents

• view

1

0

Embed Size (px)

### Transcript of Simulations for the Paper Tax Compliance and Firms...

finalsimulation.nbSimulations for the Paper "Tax Compliance and Firms' Strategic Interdependance" The simulation in the paper
ü Setup
Invese demand, gross profit, evasion cost, detection rule
P@q1_, q2_D := 1 − q1 − q2 gpi@qi_D := HP@q1, q2D − cL qi ec@qi_, di_D := Hgpi@qiD − diL^2 β@di_, dj_D := a + b Hdj − diL
Expected profit
Π@qi_, qj_, di_, dj_D :=
FullSimplify@H1 − β@di, djDL Hgpi@qiD − t diL + β@di, djDHgpi@qiD − t gpi@qiD − f Hgpi@qiD − diLL − ec@qi, diDD
Reference b=0 Solve@8D@Π@q1, q2, d1, d2D ê. b → 0, d1D 0, D@Π@q2, q1, d2, d1D ê. b → 0, d2D 0,
D@Π@q1, q2, d1, d2D ê. b → 0, q1D 0, D@Π@q2, q1, d2, d1D ê. b → 0, q2D 0<, 8d1, d2, q1, q2<D ::d1 →
1 18
I2 − 4 c + 2 c2 + 9 a f − 9 t + 9 a tM, d2 →
1 18
I2 − 4 c + 2 c2 + 9 a f − 9 t + 9 a tM, q1 → 1 − c 3
, q2 → 1 − c 3
1 18
H2 + 2 H−2 + cL c − 9 t + 9 a Hf + tLL, d2 →
1 18
H2 + 2 H−2 + cL c − 9 t + 9 a Hf + tLL, q1 → 1 − c 3
, q2 → 1 − c 3
d1f = 1 18
I2 − 4 c + 2 c2 + 9 a f − 9 t + 9 a tM df2 =
1 18
I2 − 4 c + 2 c2 + 9 a f − 9 t + 9 a tM qf1 =
1 − c 3
1 18
I2 − 4 c + 2 c2 + 9 a f − 9 t + 9 a tM 1 18
I2 − 4 c + 2 c2 + 9 a f − 9 t + 9 a tM 1 − c 3
1 − c 3
ü Now the case of b>0
Solve@8D@Π@q1, q2, d1, d2D, d1D 0, D@Π@q2, q1, d2, d1D, d2D 0<, 8d1, d2<D; FullSimplify@%D99d1 → −I4 q1 Hq1 + q2L + b2 H−1 + c + q1 + q2L H2 q1 + q2L Hf + tL2 +
2 H2 H−1 + cL q1 + tL + b Hf + tL H2 H−1 + c + q1 + q2L H3 q1 + q2L + 3 tL −
a Hf + tL H2 + 3 b Hf + tLLM ë H4 + b Hf + tL H8 + 3 b Hf + tLLL, d2 → −I4 q2 H−1 + c + q1 + q2L + 2 t + b2 H−1 + c + q1 + q2L Hq1 + 2 q2L Hf + tL2 +
b Hf + tL H2 H−1 + c + q1 + q2L Hq1 + 3 q2L + 3 tL −
a Hf + tL H2 + 3 b Hf + tLLM ë H4 + b Hf + tL H8 + 3 b Hf + tLLL== Declarations as functions of quantities and parameteres
2 finalsimulation.nb
d1b = d1 ê. Flatten@%D d2b = −I4 q2 H−1 + c + q1 + q2L + 2 t +
b2 H−1 + c + q1 + q2L Hq1 + 2 q2L Hf + tL2 + b Hf + tL H2 H−1 + c + q1 + q2L Hq1 + 3 q2L + 3 tL −
a Hf + tL H2 + 3 b Hf + tLLM ë H4 + b Hf + tL H8 + 3 b Hf + tLLL −I4 q1 Hq1 + q2L + b2 H−1 + c + q1 + q2L H2 q1 + q2L Hf + tL2 +
2 H2 H−1 + cL q1 + tL + b Hf + tL H2 H−1 + c + q1 + q2L H3 q1 + q2L + 3 tL −
a Hf + tL H2 + 3 b Hf + tLLM ë H4 + b Hf + tL H8 + 3 b Hf + tLLL −I4 q2 H−1 + c + q1 + q2L + 2 t +
b2 H−1 + c + q1 + q2L Hq1 + 2 q2L Hf + tL2 + b Hf + tL H2 H−1 + c + q1 + q2L Hq1 + 3 q2L + 3 tL −
a Hf + tL H2 + 3 b Hf + tLLM ë H4 + b Hf + tL H8 + 3 b Hf + tLLL Check for the tax rate that induces truthful declarations (in equilibirum for given q1=q2)
d1b − gpi@q1D ê. q2 → q1
−H1 − c − 2 q1L q1 −I8 q12 + 3 b2 q1 H−1 + c + 2 q1L Hf + tL2 + 2 H2 H−1 + cL q1 + tL + b Hf + tL H8 q1 H−1 + c + 2 q1L + 3 tL −
a Hf + tL H2 + 3 b Hf + tLLM ë H4 + b Hf + tL H8 + 3 b Hf + tLLL Solve@% 0, tD ::t → −
a f −1 + a
>> Finding the optimal quantities
D@FullSimplify@Π@q1, q2, d1b, d2bDD, q1D 0; % ê. q2 → q1; FullSimplify@%D; Solve@%, q1D; FullSimplify@%D ::q1 → −
H−1 + cL H4 H−1 + tL + b Hf + tL H−8 + 6 t + Hf + tL Hb H−3 + tL + 2 a H1 + b Hf + tLLLLL 12 H−1 + tL + b Hf + tL H4 H−6 + 5 tL + Hf + tL Hb H−9 + 5 tL + 4 a H1 + b Hf + tLLLL >>
These are the otimal quantities
q1b := − H−1 + cL H4 H−1 + tL + b Hf + tL H−8 + 6 t + Hf + tL Hb H−3 + tL + 2 a H1 + b Hf + tLLLLL 12 H−1 + tL + b Hf + tL H4 H−6 + 5 tL + Hf + tL Hb H−9 + 5 tL + 4 a H1 + b Hf + tLLLL
q2b := − H−1 + cL H4 H−1 + tL + b Hf + tL H−8 + 6 t + Hf + tL Hb H−3 + tL + 2 a H1 + b Hf + tLLLLL 12 H−1 + tL + b Hf + tL H4 H−6 + 5 tL + Hf + tL Hb H−9 + 5 tL + 4 a H1 + b Hf + tLLLL
ü Parameters
0.2
0.5
quantity = FullSimplify@q1b + q2bD; Plot3D@%, 8b, 0, 2.5<, 8t, 0.125, 0.4<, ColorFunction → GrayLevel, PlotPoints → 50D gr1 = ContourPlot@quantity, 8b, 0, 2.5<, 8t, 0.125, 0.4<, Contours → 8,
ContourLabels → None, ContourStyle → Black, ColorFunction → GrayLevel, PlotPoints → 40, PlotLabel → Style@Aggregate Quantity, 24, BoldD , Frame → True, FrameLabel → 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, ImageSize → Large, LabelStyle → LargeD
4 finalsimulation.nb
0.15
0.20
0.25
0.30
0.35
0.40
Now the revenue
revenue = FullSimplify@2 d1b t ê. 8q2 → q1<D; revenue = revenue ê. q1 → q1b;
gr2 = ContourPlot@revenue, 8b, 0, 2.5<, 8t, 0.125, 0.4<, Contours → 20, ContourLabels → None, ContourStyle → Black, ColorFunction → GrayLevel, PlotPoints → 100, PlotLabel → Style@Revenue, 24, BoldD , Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, PlotRange → All, LabelStyle → Large, ImageSize → LargeD
Plot3D@revenue, 8b, 0, 2.5<, 8t, 0.125, 0.4<, ColorFunction → GrayLevel, PlotPoints → 50 D
finalsimulation.nb 5
0.15
0.20
0.25
0.30
0.35
0.40
Waste
waste = 2 ec@q1b, d1bD ê. q2 → q1; waste = waste ê. q1 → q1b;
gr3 = ContourPlot@waste, 8b, 0, 2.5<, 8t, 0.125, 0.4<, Contours → 10, ContourLabels → None, ContourStyle → Black, ColorFunction → GrayLevel, PlotPoints → 40, PlotLabel → Style@Waste, 24, BoldD , Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, ImageSize → Large, LabelStyle → LargeD
0.0 0.5 1.0 1.5 2.0 2.5
0.15
0.20
0.25
0.30
0.35
0.40
finalsimulation.nb 7
Plot3D@−waste, 8b, 0, 2.5<, 8t, 0.125, 0.4<, ColorFunction → GrayLevel, PlotPoints → 50D
Surplus
8 finalsimulation.nb
gr4 = ContourPlot@surplus, 8b, 0, 2.5<, 8t, 0.125, 0.4<, Contours → 35, ContourLabels → None, ContourStyle → Black, ColorFunction → GrayLevel, PlotPoints → 40, PlotLabel → Style@Surplus, 24, BoldD , Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, PlotRange → All, LabelStyle → Large, ImageSize → LargeD
0.0 0.5 1.0 1.5 2.0 2.5
0.15
0.20
0.25
0.30
0.35
0.40
finalsimulation.nb 9
Plot3D@surplus, 8b, 0, 4<, 8t, 0.125, 0.4<, ColorFunction → GrayLevel, PlotPoints → 50D
Here we check the regions where increasing t or b increases surplus
dsdt = D@surplus, tD; First for t
10 finalsimulation.nb
gr5 = RegionPlot@dsdt > 0, 8b, 0, 2.5<, 8t, 0.125, 0.35<, ColorFunction → Gray, PlotPoints → 200, PlotLabel → Style@"∂Surplusê∂t", 24, BoldD , Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, PlotRange → All, LabelStyle → Large, ImageSize → LargeD
RegionPlot::color : GrayLevel@0.5D is not a valid color or gray-level specification. à
In the shaded region increasing t increases surplus. Increasing t has three effects 1) Increasing the primary evasion incentive and therefore the waste 2) For positive b increasing the externality and therefore the quantities, which 3) Decreases profits and therefore the secondary evasion incentives and waste. In the grey region effects 2+3 dominate effect 1
dsdb = D@surplus, bD; Now for b
finalsimulation.nb 11
RegionPlot@dsdb > 0, 8b, 0, 2.5<, 8t, 0.125, 0.4<, ColorFunction → GrayLevel, PlotPoints → 200, PlotLabel → Surplus , Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, PlotRange → AllD
Increasing b always increases welfare
Evasion as a fraction of the total profit
evasion = 1 − d1b ê gpi@q1D; evasion = evasion ê. 8q1 → q1b, q2 → q1b<; Plot3D@−evasion, 8b, 0, 2.5<, 8t, .125, .4<, ColorFunction → GrayLevelD gr6 = ContourPlot@−evasion, 8b, 0, 2.5<, 8t, 0.125, 0.4<, Contours → 15,
ContourLabels → None, ContourStyle → Black, ColorFunction → GrayLevel, PlotPoints → 40, PlotLabel → Style@Evasion Pecentage, 24, BoldD , Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, PlotRange → All, LabelStyle → Large, ImageSize → LargeD
12 finalsimulation.nb
0.15
0.20
0.25
0.30
0.35
0.40
et Evasion Pecentage
Collusion In what follows, we use the same parameters for a simulation of collusive behaviour
ü Collusion at the Declaration Stage
ClearAll@a, c, fD JointΠ := Π@q1, q2, d1, d2D + Π@q2, q1, d2, d1D
finalsimulation.nb 13
Solve@8D@JointΠ, d1D 0, D@JointΠ, d2D 0<, 8d1, d2<D ::d1 →
− 1
2 H1 + 2 b f + 2 b tL I−a f − 2 a b f2 − 2 q1 + 2 c q1 − 3 b f q1 + 3 b c f q1 + 2 q12 + 3 b f q12 − b f q2 +
b c f q2 + 2 q1 q2 + 4 b f q1 q2 + b f q22 + t − a t + 2 b f t − 4 a b f t − 3 b q1 t +
3 b c q1 t + 3 b q12 t − b q2 t + b c q2 t + 4 b q1 q2 t + b q22 t + 2 b t2 − 2 a b t2M, d2 → −
1 2 H1 + 2 b f + 2 b tL I−a f − 2 a b f2 − b f q1 + b c f q1 + b f q12 − 2 q2 + 2 c q2 − 3 b f q2 +
3 b c f q2 + 2 q1 q2 + 4 b f q1 q2 + 2 q22 + 3 b f q22 + t − a t + 2 b f t − 4 a b f t − b q1 t +
b c q1 t + b q12 t − 3 b q2 t + 3 b c q2 t + 4 b q1 q2 t + 3 b q22 t + 2 b t2 − 2 a b t2M>> FullSimplify@%D ::d1 → −
1 2 + 4 b Hf + tL H2 H−1 + cL q1 + 2 q1 Hq1 + q2L + t +
b Hf + tL HH−1 + c + q1 + q2L H3 q1 + q2L + 2 tL − a Hf + tL H1 + 2 b Hf + tLLL, d2 → −
1 2 + 4 b Hf + tL H2 q2 H−1 + c + q1 + q2L + t + b Hf + tL HH−1 + c + q1 + q2L Hq1 + 3 q2L + 2 tL −
a Hf + tL H1 + 2 b Hf + tLLL>> d1c = −
1 2 + 4 b Hf + tL H2 H−1 + cL q1 + 2 q1 Hq1 + q2L + t +
b Hf + tL HH−1 + c + q1 + q2L H3 q1 + q2L + 2 tL − a Hf + tL H1 + 2 b Hf + tLLL; d2c =
− 2 q2 H−1 + c + q1 + q2L + t + b Hf + tL HH−1 + c + q1 + q2L Hq1 + 3 q2L + 2 tL − a Hf + tL H1 + 2 b Hf + tLL
2 + 4 b Hf + tL ;
These are the jointly optimal declarations
D@FullSimplify@Π@q1, q2, d1c, d2cDD, q1D 0; FullSimplify@Solve@% ê. q2 → q1, q1DD ::q1 → −
H−1 + cL H2 H−1 + tL + b Hf + tL H−4 + 3 t + Hf + tL H−b t + a H1 + b Hf + tLLLLL 2 H3 H−1 + tL + b Hf + tL H−6 + 5 t + Hf + tL H−b t + a H1 + b Hf + tLLLLL >>
q1c = − H−1 + cL H2 H−1 + tL + b Hf + tL H−4 + 3 t + Hf + tL H−b t + a H1 + b Hf + tLLLLL
2 H3 H−1 + tL + b Hf + tL H−6 + 5 t + Hf + tL H−b t + a H1 + b Hf + tLLLLL ;
q2c = − H−1 + cL H2 H−1 + tL + b Hf + tL H−4 + 3 t + Hf + tL H−b t + a H1 + b Hf + tLLLLL
2 H3 H−1 + tL + b Hf + tL H−6 + 5 t + Hf + tL H−b t + a H1 + b Hf + tLLLLL ;
ü Parameters
0.2
0.5
Quantities
quantityc = FullSimplify@q1c + q2cD; Plot3D@%, 8b, 0, 2.5<, 8t, 0.125, 0.4<, ColorFunction → GrayLevel, PlotPoints → 50D gr1c = ContourPlot@quantityc, 8b, 0, 2.5<, 8t, 0.125, 0.4<, Contours → 8,
ContourLabels → None, ContourStyle → Black, ColorFunction → GrayLevel, PlotPoints → 40, PlotLabel → Style@Aggregate Quantity, 24, BoldD , Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, LabelStyle → Large, ImageSize → LargeD
finalsimulation.nb 15
0.15
0.20
0.25
0.30
0.35
0.40
Revenue
revenuec = FullSimplify@2 d1c t ê. 8q2 → q1<D; revenuec = revenuec ê. q1 → q1c; gr2c = ContourPlot@revenuec, 8b, 0, 2.5<, 8t, 0.125, 0.35<, Contours → 17,
ContourLabels → None, ContourStyle → Black, ColorFunction → GrayLevel, PlotPoints → 100, PlotLabel → Style@Revenue, 24, BoldD , Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, PlotRange → 80, 0.0272<, ClippingStyle → Black, LabelStyle → Large, ImageSize → LargeD
Plot3D@revenuec, 8b, 0, 2.5<, 8t, 0.125, 0.35<, ColorFunction → GrayLevel, PlotPoints → 50, LabelStyle → Large, ImageSize → LargeD
16 finalsimulation.nb
0.15
0.20
0.25
0.30
0.35
Waste
wastec = 2 ec@q1c, d1cD ê. q2 → q1; wastec = wastec ê. q1 → q1c; gr3c = ContourPlot@wastec, 8b, 0, 2.5<, 8t, 0.125, 0.35<, Contours → 15,
ContourLabels → None, ContourStyle → Black, ColorFunction → GrayLevel, PlotPoints → 40, PlotLabel → Style@Waste , 24, BoldD, Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, PlotRange → All, LabelStyle → Large, ImageSize → LargeD
Plot3D@wastec, 8b, 0, 2.5<, 8t, 0.125, 0.4<, ColorFunction → GrayLevel, PlotPoints → 50D
18 finalsimulation.nb
0.15
0.20
0.25
0.30
0.35
Reactivity b
Ta x
R at
et Waste
finalsimulation.nb 19
surplusc = 2 H1 − cL q1c − 2 q1c^2 − wastec; gr4c = ContourPlot@surplusc, 8b, 0, 2.5<, 8t, 0.125, 0.35<, Contours → 40,
ContourLabels → None, ContourStyle → Black, ColorFunction → GrayLevel, PlotPoints → 40, PlotLabel → Style@"Surplus Collusion HDeclarationL", 24, BoldD , Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, PlotRange → All, LabelStyle → Large, ImageSize → LargeD
0.0 0.5 1.0 1.5 2.0 2.5
0.15
0.20
0.25
0.30
0.35
20 finalsimulation.nb
dsdtc = D@surplusc, tD; gr5c = RegionPlot@dsdtc > 0, 8b, 0, 2.5<, 8t, 0.125, 0.35<, ColorFunction → GrayLevel,
PlotPoints → 200, PlotLabel → Style@"∂Surplusê∂t", 24, BoldD , Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, PlotRange → All, LabelStyle → Large, ImageSize → LargeD
ü Collusion on the production stage (symmetric)
ClearAll@a, c, fD Solve@D@gpi@q1D + gpi@q2D, q1D 0 ê. q2 → q1, q1D ::q1 →
1 − c 4
;
Solve@D@Π@q1p, q2p, d1, d2D, d1D 0 ê. d2 → d1, d1D; FullSimplify@%D ::d1 →
1 4 H2 + b Hf + tLL IH4 a − b H−1 + q1 + q2LL Hf + tL −
2 H−1 + q1 + q2 + 2 tL + c2 H2 + b Hf + tLL + c H−2 + q1 + q2L H2 + b Hf + tLLM>> c = 0.1 a = 0.2 f = 0.5
d1p = 1
4 H2 + b Hf + tLL IH4 a − b H−1 + q1 + q2LL Hf + tL −
2 H−1 + q1 + q2 + 2 tL + c2 H2 + b Hf + tLL + c H−2 + q1 + q2L H2 + b Hf + tLLM; d2p =
dp1; 0.1
0.2
0.5
Revenue
revenuep = FullSimplify@2 d1p t ê. 8q2 → q1<D; revenuep = revenuep ê. q1 → q1p; gr1p = ContourPlot@revenuep, 8b, 0, 2.5<, 8t, 0.125, 0.35<, Contours → 17,
ContourLabels → None, ContourStyle → Black, ColorFunction → GrayLevel, PlotPoints → 100, PlotLabel → Style@Revenue , 24, BoldD, Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, LabelStyle → Large, ImageSize → LargeD
Plot3D@revenuep, 8b, 0, 2.5<, 8t, 0.125, 0.35<, ColorFunction → GrayLevel, PlotPoints → 50D
22 finalsimulation.nb
0.15
0.20
0.25
0.30
0.35
quantityp = FullSimplify@q1p + q2pD; Plot3D@%, 8b, 0, 2.5<, 8t, 0.125, 0.4<, ColorFunction → GrayLevel, PlotPoints → 50D ContourPlot@quantityp, 8b, 0, 2.5<, 8t, 0.125, 0.4<, Contours → 8, ContourLabels → None, ContourStyle → Black, ColorFunction → GrayLevel, PlotPoints → 40, PlotLabel → Aggregate Quantity , Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<D
0.0 0.5 1.0 1.5 2.0 2.5
0.15
0.20
0.25
0.30
0.35
0.40
Reactivityb
waste
wastep = 2 ec@q1p, d1pD ê. q2 → q1; wastep = wastep ê. q1 → q1p; gr2p = ContourPlot@−wastep, 8b, 0, 2.5<, 8t, 0.125, 0.35<, Contours → 15,
ContourLabels → None, ContourStyle → Black, ColorFunction → GrayLevel, PlotPoints → 40, PlotLabel → Style@Waste, 24, BoldD , Frame → True, FrameLabel −> 88"Tax Rate" t, None<, 8"Reactivity" b, None<<, PlotRange → All, LabelStyle → Large, ImageSize → LargeD
Plot3D@wastep, 8b, 0, 2.5<, 8t, 0.125, 0.4<, ColorFunction → GrayLevel, PlotPoints → 50, LabelStyle → Large, ImageSize → LargeD
24 finalsimulation.nb
0.15
0.20
0.25
0.30
0.35
26 finalsimulation.nb
surplusp = 2 H1 − cL q1p − 2 q1p^2 − wastep; gr3p = ContourPlot@surplusp, 8b, 0, 2.5<, 8t, 0.125, 0.35<, Contours → 50,
ContourLabels → None, ContourStyle → Black,…