如何用estout/esttab合并两个不同回归结果为对比表格?
用estout/esttab合并两个回归结果的实操步骤
1. 先把回归结果存起来
分别跑完两个回归后,用estimates store命令把结果保存到自定义名称里,示例:
* 跑第一个回归并保存结果 reg a x1 y1 z1 l1 m1 estimates store reg1 * 跑第二个回归并保存结果 reg a x2 y2 z2 estimates store reg2
2. 生成基础并排表格
直接用esttab调用两个保存的结果,就能生成并排对比的表格,基础命令:
esttab reg1 reg2, se star(* 0.1 ** 0.05 *** 0.01) /// title("Table") /// depvar /// 显示因变量(你的案例里是a) mtitles("Regression 1" "Regression 2") /// 给两个回归加标题 nonumbers /// 去掉默认行号
3. 自定义观测值行
要把观测值单独放在表格底部,用stats参数指定显示观测数:
esttab reg1 reg2, se star(* 0.1 ** 0.05 *** 0.01) /// title("Table") /// depvar /// mtitles("Regression 1" "Regression 2") /// nonumbers /// stats(N, labels("Obs")) // 把观测数显示为"Obs"
4. 追加假设检验结果
先计算两个假设检验的p值,再用postfoot把结果加到表格末尾:
* 计算第一个回归x1=1的p值 test x1=1 local p_reg1 = r(p) * 计算第二个回归x2=1的p值 test x2=1 local p_reg2 = r(p) * 生成带假设检验的表格 esttab reg1 reg2, se star(* 0.1 ** 0.05 *** 0.01) /// title("Table") /// depvar /// mtitles("Regression 1" "Regression 2") /// nonumbers /// stats(N, labels("Obs")) /// postfoot("\hline\hline" /// "Hypothesis" " " /// "\\" /// "x_1=1,p-value: `: di %6.4f `p_reg1''" "x_2=1,p-value: `: di %6.4f `p_reg2''" /// "\\" /// )
%6.4f是用来格式化p值的显示位数,你可以改成%5.3f之类的调整精度。
5. 调整样式匹配目标格式
如果要更贴近你给出的表格样式(比如自定义横线位置、列宽),可以加这些参数:
esttab reg1 reg2, se star(* 0.1 ** 0.05 *** 0.01) /// title("Table") /// depvar /// mtitles("Regression 1" "Regression 2") /// nonumbers /// stats(N, labels("Obs")) /// collabels(none) /// 去掉默认的列标签 hline(1 3 7) /// 指定在第1、3、7行加横线 postfoot("\hline\hline" /// "Hypothesis" " " /// "\\" /// "x_1=1,p-value: `: di %6.4f `p_reg1''" "x_2=1,p-value: `: di %6.4f `p_reg2''" /// "\\" /// ) /// varwidth(12) /// 调整变量名列的宽度 modelwidth(15) /// 调整系数列的宽度 separator(0) /// 去掉变量行之间的默认空行
内容的提问来源于stack exchange,提问作者Tilman
相关产品推荐
相关产品推荐

