F6-conf-04 — Training hours and productivity growth (simulated data)
Question
What is the causal effect of one more training hour per employee on next-year productivity growth (pp per hour), assuming that conditional on the pre-programme skill index, training hours are as good as random, and that the effect is linear and homogeneous? The unadjusted OLS slope is reported as a baseline.
Data and exclusions
data/firms.csv: 1,200 rows (simulated). There are no missing values, no duplicate rows and no duplicate firm_ids. Issue: 12 firms have negative training_hours (minimum −7.585), which is impossible. They were excluded, leaving n = 1,188 for the main estimates. A sensitivity check that keeps all 1,200 rows gives almost the same answer (adjusted slope 0.252 vs 0.254; unadjusted −0.135 vs −0.132). skill_index is measured before the programme, so it cannot be affected by training and can safely be used as a control. Its correlation with training hours is 0.68 in the analysis sample.
Method
- Baseline: OLS of
productivity_growthontraining_hourswith an intercept. - Main model: OLS of
productivity_growthontraining_hoursandskill_index. Under the stated assumption,skill_indexis the only pre-programme confounder in the file. It is strongly related both to how much training a firm gets (positively) and to its growth (negatively), so leaving it out biases the slope downward. - Standard errors: HC1 (heteroskedasticity-robust), with normal-based 95% CIs. Firms are independent rows, so no clustering is needed.
- Diagnostic: I added skill², hours² and a hours×skill interaction. The training slope barely moves (0.257), and none of the extra terms is significant (smallest p = 0.44), which supports the linear specification.
Results
| model | estimate | SE (HC1) | 95% CI |
|---|---|---|---|
| Unadjusted | −0.132 | 0.0146 | [−0.160, −0.103] |
| Adjusted for skill_index | 0.254 | 0.0098 | [0.234, 0.273] |
See table1.csv (it also has the all-rows sensitivity rows) and figure1.png.
- The unadjusted association is negative. Adjusting for baseline skill reverses the sign: one additional training hour per employee raises next-year productivity growth by about 0.25 pp.
- The skill_index coefficient is −4.62 pp per SD.
- Residual RMSE falls from 3.86 pp (baseline) to 1.98 pp (adjusted).
- Conclusion code:
positive_effect.
The sign reversal is a classic case of confounding. Firms with more skilled workforces received more training but grew more slowly.
Uncertainty
The robust 95% CI for the effect is [0.234, 0.273], which is far from zero. These intervals reflect sampling variation only, given that the model is correct. They do not include any uncertainty about whether the identifying assumption holds, which matters more here. Results are deterministic, and no random seed is used.
Limitations and open issues
- Identification rests entirely on selection on observables given one index. Suppose any other factor affects both the training allocation and growth, such as management quality, sector, firm size, prior growth trends, or mean reversion. Then the estimate is biased, and the bias could even be large enough to change the sign, as the switch from the naive to the adjusted estimate shows. This cannot be tested with these data, and I did not run a formal sensitivity analysis for unobserved confounding (e.g., Oster or E-value bounds).
- Measurement error in skill_index would leave residual confounding. Because the confounding runs in the negative direction, the adjusted estimate would then probably be biased downward.
- Negative training hours suggest a recording or simulation problem. If other
training_hoursvalues have the same kind of error but stayed positive, they could not be detected, and classical measurement error would attenuate the slope. Excluding the 12 rows conditions on the treatment variable, but the sensitivity check shows this does not matter. - Linearity and homogeneity are assumed. The quadratic/interaction check found no evidence against them, but heterogeneous effects would make the coefficient a variance-weighted average rather than the average treatment effect.
- Not checked: outliers or influence diagnostics beyond residual normality, and overlap or common support in training hours across skill levels (the correlation of 0.68 means extrapolation happens at the extremes).
- The data are simulated, so nothing here describes real training programmes.