ChatGPT, AI, and wage inequality

Version of August, 23, 2023.
David Bloom (Harvard TH Chan School of Public Health, dbloom@hsph.harvard.edu)​
Klaus Prettner (Vienna University of Economics and Business, klaus.prettner@wu.ac.at)​
Jamel Saadaoui (University of Strasbourg, saadaoui@unistra.fr)​
Mario Veruete (Quantum DataLab, veruete.mario@quantum-datalab.com)
You can freely download a copy of this notebook to your own computer or make a copy of it to your Wolfram Cloud account (it is possible to create a free account).
This notebook contains "Initialization Cells" we recommend to say "yes" when asked to evaluate them.
You can also evaluate this notebook step by step or simply by clicking on the menu Evaluation then in Evaluate Notebook.
1
.
Production function
Y
t
.
2
.
Computation of the wage rates
w
u,t
=
∂Y
∂
L
u
and
w
s,t
=
∂Y
∂
L
s
.
3
.
Computation of the skill premium =
W
s
w
u
.
4
.
Computation of
∂
w
s
∂
,
∂
w
s
∂P
.
5
.
Computation of
∂
w
u
∂
,
∂
w
u
∂P
.
6
.
Plots
1 Notation and Assumptions
In[]:=
β[i_]:=
β
i
In[]:=
$Assumptions=And[​​0<θ<=1(*θ==1meansfullsubsituabilityofworkersbyindustrialrobots*),​​0<γ<1,​​0<φ<1,​​0<α<1,​​0<β1<1,​​0<β2<1,​​0<β3<1,​​0<β[1]<1,​​0<β[2]<1,​​0<β[3]<1​​];
In[]:=
Clear[style];​​style[x_,c_]:=Framed[x,Background->c,RoundingRadius->20];
In[]:=
Clear[colorRules];​​colorRules={​​
L
u
[t]->style[
L
u
[t],RGBColor[0.64,0.87,0.32]],​​
L
s
[t]->style[
L
s
[t],RGBColor[0.84,0.68,0.3]],​​P[t]->style[P[t],RGBColor[0.21,0.79,0.74]],​​[t]->style[[t],RGBColor[1,0.29,0.35,0.53]],​​φ->Style[φ,Red,18,Bold],​​θ->Style[θ,Blue,18,Bold],​​γ->Style[γ,Orange,18,Bold],​​α->Style[α,Purple,18,Bold]​​};
In[]:=
stateVariables={
L
u
[t],
L
s
[t],P[t],[t]};
In[]:=
parameters={θ,γ,φ,α,β[1],β[2],β[3]};
In[]:=
Mrule={M[
L
u
,
L
s
,P,]->M};​​MTrule={M[
L
u
[t],
L
s
[t],P[t],[t]]->M};​​Trule={f_[t]:>f};
2
Production function
Y
t
◼
  • P[t] = industrial robots
  • ◼
  • L
    s
    [t]
    = skilled workers
  • ◼
  • L
    u
    [t]
    = unskilled workers
  • ◼
  • [t] = AI
  • ◼
  • [t] = capital stocks, machines, etc.
  • In[]:=
    Clear[productionFunctionYt,productionFunctionYtM];​​productionFunctionYtM=
    1-α
    γ
    (M[
    L
    u
    [t],
    L
    s
    [t],P[t],[t]])
    α
    [t]
    ;​​productionFunctionYt=
    1-α
    γ
    β[3]
    γ/θ
    β[1]
    θ
    (
    L
    u
    [t])
    +(1-β[1])
    θ
    (P[t])
    
    +(1-β[3])
    γ/φ
    (β[2]
    φ
    (
    L
    s
    [t])
    +(1-β[2])
    φ
    ([t])
    )
    
    α
    [t]
    ;
    In the following, for readability purposes, we introduce the notation:​​
    M=
    γ/θ
    β
    3
    
    θ
    β
    1
    (
    L
    u
    [t])
    +(1-
    β
    1
    )
    θ
    (P[t])
    
    +(1-
    β
    3
    )
    γ/φ
    (
    φ
    β
    2
    (
    L
    s
    [t])
    +(1-
    β
    2
    )
    φ
    ([t])
    )
    .
    In[]:=
    TraditionalForm[productionFunctionYtM/.MTrule/.Trule]
    Out[]//TraditionalForm=
    α
    
    1-α
    γ
    M
    In[]:=
    TraditionalForm[productionFunctionYt/.Trule]
    Out[]//TraditionalForm=
    α
    
    1-α
    γ
    
    β
    3
    γ/θ
    
    β
    1
    θ
    L
    u
    +(1-
    β
    1
    )
    θ
    P
    
    +(1-
    β
    3
    )
    γ/φ
    (1-
    β
    2
    )
    φ
    
    +
    β
    2
    φ
    L
    s
    
    
    3
    Computation of the wage rates
    w
    u,t
    =
    ∂Y
    ∂
    L
    u
    and
    w
    s,t
    =
    ∂Y
    ∂
    L
    s

    Wage unskilled
    w
    u

    In[]:=
    wageRateUShort=D[productionFunctionYtM,
    L
    u
    [t]];​​TraditionalForm[​​wageRateUShort/.MTrule/.Trule​​]
    Out[]//TraditionalForm=
    1
    γ
    (1-α)
    α
    
    1-α
    γ
    -1
    M
    (1,0,0,0)
    M
    (
    L
    u
    ,
    L
    s
    ,P,)
    NB. In Wolfram Language,
    Derivative
    [{
    n
    1
    ,
    n
    2
    ,…}][f]
    represents the derivative of
    f[{
    x
    1
    ,
    x
    2
    ,…}]
    taken
    n
    i
    times with respect to
    x
    i
    . In general, arguments given in lists in
    f
    can be handled by using a corresponding list structure in
    Derivative
    . ​ If
    f=f(
    x
    1
    ,
    x
    2
    ,...,
    x
    i,
    ...,
    x
    n
    ),then,thefirstorderpartialderivative
    ∂f
    x
    i
    isgivenby:
    ​ ​
    ∂f
    x
    i
    (
    x
    1
    ,
    x
    2
    ,...,
    x
    i,
    ...,
    x
    n
    )=
    Derivative[0,0,...,1,0,...,0][f][
    x
    1
    ,
    x
    2
    ,...,
    x
    i
    ,...,
    x
    n
    ]
    =
    (0,0,...,1,0...,0)
    f
    (
    x
    1
    ,
    x
    2
    ,...,
    x
    i,
    ...,
    x
    n
    )
    . In particular,
    (0,1,0,0)
    M
    (
    L
    u
    ,
    L
    s
    ,P,)
    represents
    ∂M
    ∂
    L
    s
    . Similarly,
    (0,1,0,1)
    M
    (
    L
    u
    ,
    L
    s
    ,P,)
    represents
    2
    ∂
    M
    ∂
    L
    s
    ∂
    .​For more details, the documentation page of the function
    Derivative
    .
    In[]:=
    wageRateU=D[productionFunctionYt,
    L
    u
    [t]];​​TraditionalForm[wageRateU/.Trule]
    Out[]//TraditionalForm=
    (1-α)
    β
    1
    β
    3
    α
    
    θ-1
    L
    u
    γ
    θ
    -1
    
    β
    1
    θ
    L
    u
    +(1-
    β
    1
    )
    θ
    P
    
    1-α
    γ
    -1
    
    β
    3
    γ/θ
    
    β
    1
    θ
    L
    u
    +(1-
    β
    1
    )
    θ
    P
    
    +(1-
    β
    3
    )
    γ/φ
    (1-
    β
    2
    )
    φ
    
    +
    β
    2
    φ
    L
    s
    
    

    Wage skilled
    w
    s

    In[]:=
    wageRateSShort=D[productionFunctionYtM,
    L
    s
    [t]];​​TraditionalForm[​​wageRateSShort/.MTrule/.Trule​​]
    If you are in the cloud, in order to see the following plots you should open the file as a copy on your cloud account OR download a copy of the file and open it with Mathematica or with WolframPlayer (for those who does not have access to Mathematica).