Notation and output

This article sets out the notation used in the other articles, which follows Leventer (2025), Identification of Child Penalties, and maps it to the output of the package.

1. The 2x2 comparison

The data have one row per person and age, with earnings \(Y\), gender \(G \in \{f, m\}\) and age at first birth \(D\) (\(D = \infty\) for a person who never has a child). A 2x2 comparison is indexed by:

symbol meaning in the package
\(g\) gender, \(f\) or \(m\) female
\(d\) treatment group: first birth at age \(d\) d
\(a\) target age a
\(d'\) control group: first birth at age \(d' > a\), not yet treated at the target age dp
\(d - 1\) baseline age pre (baseline \(d - \text{pre}\))
\(e = a - d\) event time event_time
\(d' - d\) control offset control_offset
\(D_{\max}\) largest age at first birth used as a control group max_control_group

multiple_treatment_group_analysis() uses the closest not-yet-treated group as control group, \(d' = a + 1\) (Section 1.3), so after treatment the control offset is \(e + 1\). For \(d = 26\):

event time \(e\) target age \(a\) control group \(d'\) control offset \(d' - d\)
0 26 27 1
1 27 28 2
2 28 29 3

2. Potential outcomes and causal estimands

\(Y_a(d')\) is earnings at age \(a\) had the first birth been at age \(d'\), and \(Y_a(\infty)\) earnings had there been no child; observed earnings are \(Y_a = Y_a(D)\). Mean observed earnings of gender \(g\) and treatment group \(k\) at age \(t\) are \(\mu(g, k, t) = \mathbb{E}[Y_t \mid G = g, D = k]\). The average potential outcome (APO) is \[ \mathrm{APO}(g, d, d', a) = \mathbb{E}\big[Y_a(d') \mid G = g,\, D = d\big], \] mean earnings at age \(a\) of gender \(g\) and treatment group \(d\), had the first birth been at age \(d'\). For a single \((d, a)\) the paper writes \(\mathrm{APO}(g, d) \equiv \mathrm{APO}(g, d, d, a)\), which equals \(\mu(g, d, a)\), and \(\mathrm{APO}(g, \infty) \equiv \mathrm{APO}(g, d, \infty, a)\), mean earnings absent children. The causal estimands are (Sections 1.3 and 4.1):

symbol definition in words
\(\mathrm{ATE}(g)\) \(\mathrm{APO}(g, d) - \mathrm{APO}(g, \infty)\) effect of parenthood on earnings
\(\theta(g)\) \(\mathrm{ATE}(g) / \mathrm{APO}(g, \infty)\) effect relative to earnings absent children
\(\theta(f) - \theta(m)\) gender gap in normalized effects, the target of normalized event studies
\(\rho(d')\) \(\mathrm{APO}(f, d, d', a) / \mathrm{APO}(m, d, d', a)\) gender earnings ratio; \(\rho(d)\) realized, \(\rho(\infty)\) absent children
\(\rho(d) - \rho(\infty)\) effect of parenthood on the gender earnings ratio

In \(\mathrm{APO}(g, d, d', a)\) and \(\rho(d')\) the argument \(d'\) is a counterfactual age at first birth, as in the paper; elsewhere \(d'\) is the control group.

3. Output

single_treatment_group_analysis() returns one row per method and estimand for a cell \((d, d', a)\), and multiple_treatment_group_analysis() stacks these rows over cells. The columns are the cell (d, dp, a, event_time, control_offset), the row label (method, estimand), the estimate and its inference (est, se, ci_l, ci_h, t, p), and the number of persons by gender in the treatment and control group (n_female_treat, n_female_control, n_male_treat, n_male_control). Gaps are female minus male.

method estimand the estimate causal estimand it targets
DID_Female, DID_Male APO DID-imputed counterfactual earnings \(\mathrm{APO}(g, \infty)\)
DID_Female, DID_Male ATE DID \(\mathrm{ATE}(g)\)
DID_Female, DID_Male theta normalized DID \(\theta(g)\)
TD gap_ATE gender gap in DID \(\mathrm{ATE}(f) - \mathrm{ATE}(m)\)
Conventional gap_theta gender gap in normalized DID (the conventional estimator) \(\theta(f) - \theta(m)\)
NTD rho_effect observed minus DID-imputed gender earnings ratio (the new estimator) \(\rho(d) - \rho(\infty)\)
NTD rho_obs observed gender earnings ratio \(\rho(d)\)
NTD rho_cf gender ratio of DID-imputed counterfactual earnings \(\rho(\infty)\)
NTD share_parenthood parenthood’s share of the observed gender gap \([\rho(\infty) - \rho(d)] / [1 - \rho(d)]\)
NTD share_other the share of other factors \([1 - \rho(\infty)] / [1 - \rho(d)]\)
TD_E_LOGS rho_effect, rho_obs, rho_cf, share_parenthood, share_other as NTD, with counterfactual earnings imputed multiplicatively as NTD
TD_PR gap_theta_pre gender gap in effects relative to baseline earnings, imputed multiplicatively \(\dfrac{\mathrm{ATE}(f)}{\mathrm{APO}(f, d, \infty, d - 1)} - \dfrac{\mathrm{ATE}(m)}{\mathrm{APO}(m, d, \infty, d - 1)}\)

The estimators, their standard errors, and the assumption under which each row identifies its target (with the result in the paper) are in Estimation. aggregate_estimands() returns the same labels averaged over treatment groups (Aggregation).

A cell of simulated data, treatment group \(d = 26\) one year after the first birth (\(a = 27\), \(e = 1\)) against the control group \(d' = 28\):

library(childpen)
sim <- simulate_data(2000, 24:30)
res <- single_treatment_group_analysis(sim, d = 26, dp = 28, a = 27)
res[1, c("d", "dp", "a", "event_time", "control_offset")]
#>    d dp  a event_time control_offset
#> 1 26 28 27          1              2
shown <- res[res$method %in% c("DID_Female", "Conventional", "NTD"),
             c("method", "estimand", "est", "se", "ci_l", "ci_h")]
shown[3:6] <- round(shown[3:6], 3)
shown
#>          method         estimand       est      se      ci_l      ci_h
#> 1    DID_Female              APO 24627.903 592.097 23467.393 25788.413
#> 3    DID_Female              ATE -8230.964 515.899 -9242.125 -7219.803
#> 5    DID_Female            theta    -0.334   0.015    -0.364    -0.304
#> 8  Conventional        gap_theta    -0.279   0.027    -0.332    -0.226
#> 9           NTD       rho_effect    -0.284   0.029    -0.340    -0.228
#> 12          NTD          rho_obs     0.676   0.022     0.634     0.719
#> 13          NTD           rho_cf     0.960   0.032     0.897     1.023
#> 14          NTD share_parenthood     0.876   0.096     0.688     1.065
#> 15          NTD      share_other     0.124   0.096    -0.065     0.312