Actual StataMP numerical output. Log header and machine paths omitted. . * BEGIN interaction . regress score c.str##i.high income, vce(robust) Linear regression Number of obs = 420 F(4, 415) = 161.66 Prob > F = 0.0000 R-squared = 0.6647 Root MSE = 11.086 ------------------------------------------------------------------------------ | Robust score | Coefficient std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- str | .6800597 .3532615 1.93 0.055 -.0143453 1.374465 1.high | 28.41596 12.83889 2.21 0.027 3.178593 53.65332 | high#c.str | 1 | -2.192258 .6399264 -3.43 0.001 -3.450159 -.9343566 | income | 1.651672 .1034089 15.97 0.000 1.448401 1.854942 _cons | 622.5112 7.209389 86.35 0.000 608.3397 636.6826 ------------------------------------------------------------------------------ . * END interaction . record low str . record base _cons . record income income . record difference 1.high#c.str . record intercept_difference 1.high . * BEGIN high_slope . lincom str+1.high#c.str ( 1) str + 1.high#c.str = 0 ------------------------------------------------------------------------------ score | Coefficient Std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- (1) | -1.512198 .5359897 -2.82 0.005 -2.565791 -.458605 ------------------------------------------------------------------------------ . * END high_slope . * BEGIN joint . test 1.high 1.high#c.str ( 1) 1.high = 0 ( 2) 1.high#c.str = 0 F( 2, 415) = 98.88 Prob > F = 0.0000 . * END joint . * BEGIN policy . lincom -2*str-2*1.high#c.str ( 1) - 2*str - 2*1.high#c.str = 0 ------------------------------------------------------------------------------ score | Coefficient Std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- (1) | 3.024396 1.071979 2.82 0.005 .91721 5.131582 ------------------------------------------------------------------------------ . * END policy . export delimited score str el income high using "output/meeting_07_data.csv", replace file output/meeting_07_data.csv saved . . postclose results . use "output/meeting_07_estimates.dta", clear . export delimited using "output/meeting_07_estimates.csv", replace file output/meeting_07_estimates.csv saved . display "ECO603_MEETING_07_COMPLETE" ECO603_MEETING_07_COMPLETE Actual StataMP numerical output. Log header and machine paths omitted. . * BEGIN pooled . regress fatality beertax i.year, vce(cluster state) Linear regression Number of obs = 336 F(7, 47) = 6.53 Prob > F = 0.0000 R-squared = 0.0986 Root MSE = .54709 (Std. err. adjusted for 48 clusters in state) ------------------------------------------------------------------------------ | Robust fatality | Coefficient std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- beertax | .3663358 .1213982 3.02 0.004 .1221141 .6105575 | year | 1983 | -.0820359 .034779 -2.36 0.023 -.1520021 -.0120696 1984 | -.0717331 .0453962 -1.58 0.121 -.1630584 .0195922 1985 | -.1105458 .0477362 -2.32 0.025 -.2065787 -.0145129 1986 | -.0161185 .0598606 -0.27 0.789 -.1365425 .1043056 1987 | -.0155355 .0663027 -0.23 0.816 -.1489194 .1178484 1988 | -.0010271 .0648845 -0.02 0.987 -.1315578 .1295036 | _cons | 1.894848 .1413218 13.41 0.000 1.610545 2.179151 ------------------------------------------------------------------------------ . * END pooled . record pooled beertax . * BEGIN fixed . xtreg fatality beertax i.year, fe vce(cluster state) Fixed-effects (within) regression Number of obs = 336 Group variable: state Number of groups = 48 R-squared: Obs per group: Within = 0.0803 min = 7 Between = 0.1101 avg = 7.0 Overall = 0.0876 max = 7 F(7, 47) = 4.36 corr(u_i, Xb) = -0.6781 Prob > F = 0.0009 (Std. err. adjusted for 48 clusters in state) ------------------------------------------------------------------------------ | Robust fatality | Coefficient std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- beertax | -.6399799 .3570783 -1.79 0.080 -1.358329 .078369 | year | 1983 | -.0799029 .0350861 -2.28 0.027 -.1504869 -.0093188 1984 | -.0724206 .0438809 -1.65 0.106 -.1606975 .0158564 1985 | -.1239763 .0460559 -2.69 0.010 -.2166288 -.0313238 1986 | -.0378645 .0570604 -0.66 0.510 -.1526552 .0769262 1987 | -.0509021 .0636084 -0.80 0.428 -.1788656 .0770615 1988 | -.0518038 .0644023 -0.80 0.425 -.1813644 .0777568 | _cons | 2.42847 .2016884 12.04 0.000 2.022725 2.834215 -------------+---------------------------------------------------------------- sigma_u | .70945965 sigma_e | .18788295 rho | .93446372 (fraction of variance due to u_i) ------------------------------------------------------------------------------ . * END fixed . record fixed beertax . * BEGIN policy . lincom .10*beertax ( 1) .1*beertax = 0 ------------------------------------------------------------------------------ fatality | Coefficient Std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- (1) | -.063998 .0357078 -1.79 0.080 -.1358329 .0078369 ------------------------------------------------------------------------------ . * END policy . preserve . keep if inlist(year,1982,1988) (240 observations deleted) . keep state year fatality beertax . reshape wide fatality beertax, i(state) j(year) (j = 1982 1988) Data Long -> Wide ----------------------------------------------------------------------------- Number of observations 96 -> 48 Number of variables 4 -> 5 j variable (2 values) year -> (dropped) xij variables: fatality -> fatality1982 fatality1988 beertax -> beertax1982 beertax1988 ----------------------------------------------------------------------------- . generate double dy=fatality1988-fatality1982 . generate double dx=beertax1988-beertax1982 . * BEGIN differences . regress dy dx, vce(robust) Linear regression Number of obs = 48 F(1, 46) = 8.60 Prob > F = 0.0052 R-squared = 0.1192 Root MSE = .39402 ------------------------------------------------------------------------------ | Robust dy | Coefficient std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- dx | -1.040973 .3550061 -2.93 0.005 -1.755563 -.3263823 _cons | -.0720371 .0653552 -1.10 0.276 -.2035903 .0595161 ------------------------------------------------------------------------------ . * END differences . record difference dx . restore . export delimited state year fatality beertax using "output/meeting_13_data.csv", replace (file output/meeting_13_data.csv not found) file output/meeting_13_data.csv saved . . postclose results . use "output/meeting_13_estimates.dta", clear . export delimited using "output/meeting_13_estimates.csv", replace (file output/meeting_13_estimates.csv not found) file output/meeting_13_estimates.csv saved . display "ECO603_MEETING_13_COMPLETE" ECO603_MEETING_13_COMPLETE Actual StataMP numerical output. Log header and machine paths omitted. . * BEGIN ols . regress logq logp, vce(robust) Linear regression Number of obs = 48 F(1, 46) = 38.86 Prob > F = 0.0000 R-squared = 0.4058 Root MSE = .18962 ------------------------------------------------------------------------------ | Robust logq | Coefficient std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- logp | -1.213057 .1945896 -6.23 0.000 -1.604746 -.8213685 _cons | 10.33892 .9348202 11.06 0.000 8.457229 12.22062 ------------------------------------------------------------------------------ . * END ols . record ols logp . * BEGIN first . regress logp salestax, vce(robust) Linear regression Number of obs = 48 F(1, 46) = 40.39 Prob > F = 0.0000 R-squared = 0.4710 Root MSE = .09394 ------------------------------------------------------------------------------ | Robust logp | Coefficient std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- salestax | .0307289 .0048354 6.35 0.000 .0209956 .0404621 _cons | 4.616546 .0289177 159.64 0.000 4.558338 4.674755 ------------------------------------------------------------------------------ . * END first . record first salestax . scalar first_b=_b[salestax] . * BEGIN reduced . regress logq salestax, vce(robust) Linear regression Number of obs = 48 F(1, 46) = 10.54 Prob > F = 0.0022 R-squared = 0.1525 Root MSE = .22645 ------------------------------------------------------------------------------ | Robust logq | Coefficient std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- salestax | -.0332974 .0102541 -3.25 0.002 -.0539378 -.012657 _cons | 4.717449 .0650586 72.51 0.000 4.586493 4.848405 ------------------------------------------------------------------------------ . * END reduced . record reduced salestax . scalar reduced_b=_b[salestax] . * BEGIN iv . ivregress 2sls logq (logp=salestax), vce(robust) Instrumental-variables 2SLS regression Number of obs = 48 Wald chi2(1) = 12.05 Prob > chi2 = 0.0005 R-squared = 0.4011 Root MSE = .18635 ------------------------------------------------------------------------------ | Robust logq | Coefficient std. err. z P>|z| [95% conf. interval] -------------+---------------------------------------------------------------- logp | -1.083587 .3122036 -3.47 0.001 -1.695495 -.471679 _cons | 9.719877 1.496143 6.50 0.000 6.78749 12.65226 ------------------------------------------------------------------------------ Endogenous: logp Exogenous: salestax . * END iv . record iv logp . assert abs(_b[logp]-reduced_b/first_b)<1e-9 . * BEGIN controls . ivregress 2sls logq logincome (logp=salestax), vce(robust) Instrumental-variables 2SLS regression Number of obs = 48 Wald chi2(2) = 17.47 Prob > chi2 = 0.0002 R-squared = 0.4189 Root MSE = .18355 ------------------------------------------------------------------------------ | Robust logq | Coefficient std. err. z P>|z| [95% conf. interval] -------------+---------------------------------------------------------------- logp | -1.143375 .3604805 -3.17 0.002 -1.849904 -.4368463 logincome | .2145153 .3018477 0.71 0.477 -.3770953 .8061258 _cons | 9.430658 1.219402 7.73 0.000 7.040675 11.82064 ------------------------------------------------------------------------------ Endogenous: logp Exogenous: logincome salestax . * END controls . record controlled logp . * BEGIN relevance . estat firststage First-stage regression summary statistics -------------------------------------------------------------------------- | Adjusted Partial Robust Variable | R-sq. R-sq. R-sq. F(1,45) Prob > F -------------+------------------------------------------------------------ logp | 0.6389 0.6228 0.5009 44.7305 0.0000 -------------------------------------------------------------------------- . * END relevance . export delimited logq logp salestax logincome using "output/meeting_14_data.csv", replace (file output/meeting_14_data.csv not found) file output/meeting_14_data.csv saved . . postclose results . use "output/meeting_14_estimates.dta", clear . export delimited using "output/meeting_14_estimates.csv", replace (file output/meeting_14_estimates.csv not found) file output/meeting_14_estimates.csv saved . display "ECO603_MEETING_14_COMPLETE" ECO603_MEETING_14_COMPLETE Actual StataMP numerical output; machine-specific log header omitted. Actual naive output: . regress dy group, vce(robust) Linear regression Number of obs = 300 F(1, 298) = 514.67 Prob > F = 0.0000 R-squared = 0.5004 Root MSE = 1.3993 ------------------------------------------------------------------------------ | Robust dy | Coefficient std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- group | -3.222965 .1420669 -22.69 0.000 -3.502547 -2.943384 _cons | 2.900887 .1026169 28.27 0.000 2.698941 3.102832 ------------------------------------------------------------------------------ Actual levels output: . regress outcome i.group##i.post baseline_income, vce(cluster person) Linear regression Number of obs = 600 F(4, 299) = 2440.04 Prob > F = 0.0000 R-squared = 0.9562 Root MSE = 1.284 (Std. err. adjusted for 300 clusters in person) --------------------------------------------------------------------------------- | Robust outcome | Coefficient std. err. t P>|t| [95% conf. interval] ----------------+---------------------------------------------------------------- 1.group | 1.407348 .2085804 6.75 0.000 .9968769 1.81782 1.post | 2.900887 .102789 28.22 0.000 2.698605 3.103168 | group#post | 1 1 | -3.222965 .1423051 -22.65 0.000 -3.503012 -2.942919 | baseline_income | 1.184922 .0175994 67.33 0.000 1.150288 1.219557 _cons | 25.93892 .394711 65.72 0.000 25.16215 26.71568 --------------------------------------------------------------------------------- Actual trend_adjusted output: . regress dy group baseline_income, vce(robust) Linear regression Number of obs = 300 F(2, 297) = 8097.41 Prob > F = 0.0000 R-squared = 0.9805 Root MSE = .27667 --------------------------------------------------------------------------------- | Robust dy | Coefficient std. err. t P>|t| [95% conf. interval] ----------------+---------------------------------------------------------------- group | -.0265043 .0508918 -0.52 0.603 -.1266584 .0736499 baseline_income | .399013 .00439 90.89 0.000 .3903736 .4076523 _cons | -5.987238 .0998878 -59.94 0.000 -6.183815 -5.79066 --------------------------------------------------------------------------------- Actual placebo_simple output: . regress re i.experimental##i.post, vce(cluster person) Linear regression Number of obs = 32,834 F(3, 16416) = 869.87 Prob > F = 0.0000 R-squared = 0.0329 Root MSE = 9379 (Std. err. adjusted for 16,417 clusters in person) ----------------------------------------------------------------------------------- | Robust re | Coefficient std. err. t P>|t| [95% conf. interval] ------------------+---------------------------------------------------------------- 1.experimental | -10624.12 262.4661 -40.48 0.000 -11138.58 -10109.66 1.post | 1195.856 60.98505 19.61 0.000 1076.319 1315.394 | experimental#post | 1 1 | 867.509 330.0114 2.63 0.009 220.6508 1514.367 | _cons | 13650.8 73.31059 186.21 0.000 13507.11 13794.5 ----------------------------------------------------------------------------------- Actual dr output: . drdid re age educ black married nodegree hisp re74, /// > ivar(person) time(year) tr(experimental) No estimator selected. Using default drimp Doubly robust difference-in-differences Number of obs = 32,834 Outcome model : weighted least squares Treatment model: inverse probability tilting ------------------------------------------------------------------------------ | Coefficient Std. err. z P>|z| [95% conf. interval] -------------+---------------------------------------------------------------- ATET | experimental | (1 vs 0) | -901.2703 393.6127 -2.29 0.022 -1672.737 -129.8037 ------------------------------------------------------------------------------ Actual dr_without_history output: . drdid re age educ black married nodegree hisp, /// > ivar(person) time(year) tr(experimental) No estimator selected. Using default drimp Doubly robust difference-in-differences Number of obs = 32,834 Outcome model : weighted least squares Treatment model: inverse probability tilting ------------------------------------------------------------------------------ | Coefficient Std. err. z P>|z| [95% conf. interval] -------------+---------------------------------------------------------------- ATET | experimental | (1 vs 0) | -604.0295 405.8351 -1.49 0.137 -1399.452 191.3927 ------------------------------------------------------------------------------ Actual StataMP numerical output; machine-specific log header omitted. . * BEGIN first . regress logp salestax logincome, vce(robust) Linear regression Number of obs = 48 F(2, 45) = 48.98 Prob > F = 0.0000 R-squared = 0.6389 Root MSE = .07848 ------------------------------------------------------------------------------ | Robust logp | Coefficient std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- salestax | .0273948 .0040961 6.69 0.000 .0191449 .0356447 logincome | .3892825 .0653914 5.95 0.000 .2575776 .5209875 _cons | 3.590811 .1727273 20.79 0.000 3.24292 3.938701 ------------------------------------------------------------------------------ . * END first . scalar first_b=_b[salestax] . * BEGIN reduced . regress logq salestax logincome, vce(robust) Linear regression Number of obs = 48 F(2, 45) = 6.37 Prob > F = 0.0037 R-squared = 0.1687 Root MSE = .22675 ------------------------------------------------------------------------------ | Robust logq | Coefficient std. err. t P>|t| [95% conf. interval] -------------+---------------------------------------------------------------- salestax | -.0313226 .0112334 -2.79 0.008 -.0539479 -.0086973 logincome | -.2305807 .2521733 -0.91 0.365 -.7384838 .2773224 _cons | 5.325015 .6694834 7.95 0.000 3.976606 6.673424 ------------------------------------------------------------------------------ . * END reduced . scalar reduced_b=_b[salestax] . * BEGIN controlled . ivregress 2sls logq logincome (logp=salestax), vce(robust) Instrumental-variables 2SLS regression Number of obs = 48 Wald chi2(2) = 17.47 Prob > chi2 = 0.0002 R-squared = 0.4189 Root MSE = .18355 ------------------------------------------------------------------------------ | Robust logq | Coefficient std. err. z P>|z| [95% conf. interval] -------------+---------------------------------------------------------------- logp | -1.143375 .3604805 -3.17 0.002 -1.849904 -.4368463 logincome | .2145153 .3018477 0.71 0.477 -.3770953 .8061258 _cons | 9.430658 1.219402 7.73 0.000 7.040675 11.82064 ------------------------------------------------------------------------------ Endogenous: logp Exogenous: logincome salestax . * END controlled . scalar iv_b=_b[logp] . scalar iv_se=_se[logp] . assert abs(iv_b-reduced_b/first_b)<1e-8 . * BEGIN strength . estat firststage First-stage regression summary statistics -------------------------------------------------------------------------- | Adjusted Partial Robust Variable | R-sq. R-sq. R-sq. F(1,45) Prob > F -------------+------------------------------------------------------------ logp | 0.6389 0.6228 0.5009 44.7305 0.0000 -------------------------------------------------------------------------- . * END strength . * BEGIN weak_test . estat weakrobust, betanull(-1) Test robust to weak instruments Model VCE: Robust ( 1) logp = -1 Anderson–Rubin chi2(1) = 0.16 Prob > chi2 = 0.6914 Note: Anderson–Rubin test reported by default because model is just identified. . * END weak_test . * No overidentification test can be computed with one excluded instrument for . * one endogenous regressor. A weak-robust test does not establish exclusion. . clear . set obs 1 Number of observations (_N) was 0, now 1. . generate double first=first_b . generate double reduced=reduced_b . generate double iv=iv_b . generate double iv_robust_se=iv_se . export delimited using "output/iv_extension_results.csv", replace (file output/iv_extension_results.csv not found) file output/iv_extension_results.csv saved . display "ECO603_IV_EXTENSION_COMPLETE" ECO603_IV_EXTENSION_COMPLETE