* 示例任务:在相同样本上比较两个 OLS 模型,供新练习会话复做。 * 输入:本机 Stata 自带 auto;不分发原始数据,不读取个人研究文件。 * 输出:当前目录下 analysis.log、coefficients.csv、weight-ci.svg/png。 * 已核对 Stata 19.5;无第三方命令、随机计算或种子。 * clear 会替换当前内存;replace 会覆写上述示例成果,请在空目录运行。 * 样本:price、weight、mpg 均非缺失;两个模型均采用稳健标准误。 capture log close set linesize 255 log using "analysis.log", text replace sysuse auto, clear describe price weight mpg summarize price weight mpg generate byte sample = !missing(price, weight, mpg) tempname results tempfile coefficients postfile `results' str12 model str12 term double coefficient double standard_error double ci_lower double ci_upper double n double r_squared using `coefficients', replace regress price weight if sample, vce(robust) estimates store baseline matrix T = r(table) post `results' ("baseline") ("weight") (T[1,1]) (T[2,1]) (T[5,1]) (T[6,1]) (e(N)) (e(r2)) post `results' ("baseline") ("_cons") (T[1,2]) (T[2,2]) (T[5,2]) (T[6,2]) (e(N)) (e(r2)) regress price weight mpg if sample, vce(robust) estimates store extended matrix T = r(table) post `results' ("extended") ("weight") (T[1,1]) (T[2,1]) (T[5,1]) (T[6,1]) (e(N)) (e(r2)) post `results' ("extended") ("mpg") (T[1,2]) (T[2,2]) (T[5,2]) (T[6,2]) (e(N)) (e(r2)) post `results' ("extended") ("_cons") (T[1,3]) (T[2,3]) (T[5,3]) (T[6,3]) (e(N)) (e(r2)) postclose `results' estimates table baseline extended, b(%9.3f) se(%9.3f) stats(N r2) * 用临时结果数据作图,随后恢复原数据;不把结果表误当作原始 auto。 preserve use `coefficients', clear format coefficient standard_error ci_lower ci_upper %21.15g export delimited using "coefficients.csv", replace keep if term == "weight" generate byte model_order = cond(model == "baseline", 1, 2) twoway (rcap ci_lower ci_upper model_order, horizontal lcolor(navy)) (scatter model_order coefficient, mcolor(navy)), ylabel(1 "Baseline" 2 "Add mpg", angle(0)) yscale(range(0.5 2.5)) ytitle("") xtitle("Weight coefficient: price per pound") xline(0, lpattern(dash) lcolor(gs10)) title("Same sample, two regression models") subtitle("Robust standard errors; 95% confidence intervals; N = 74") legend(off) graphregion(color(white)) name(weight_ci, replace) graph export "weight-ci.svg", replace graph export "weight-ci.png", width(1400) replace restore log close