Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Latex-tabulate a combined matrix of coefficients and of t-statistics

    I have many regressions (one per year, over 15 years) for 4 outcome variables. I have created 2 [15x4] matrices: one with the coefficients and one with the t-statistics. I am stuck now that I want to tabulate them in the classic way, each row having the coefficients for each model and under them the respective t-statistics between brackets. I can tabulate a single matrix but even using estadd I wasn't able to obtain said result.

    This is my code:
    *creates matrix of all results row(year) column(outcome)
    Code:
    matrix OLS_years = r_Mall, r_hotMall, r_totMall, r_irpMall matrix list OLS_years matrix TSTATS = ex_Tall, hot_Tall, tot_Tall, irp_Tall matrix list TSTATS
    This bit only produces a table with the coefficients:
    Code:
      
         estout matrix(OLS_years), ///      cells(OLS_years TSTATS(par)) ///      stats(N, fmt(0) labels ("No. of Obs." )) ///      starlevels(* 0.1 ** 0.05 *** 0.001) ///      varwidth(20) ///      modelwidth(12) ///      delimiter(&) ///      end(\\) ///      prehead(`"\begin{tabular}{l*{4}{c}}"' `"\toprule"') ///      posthead("\midrule") ///      prefoot("\midrule") ///      postfoot(`"\bottomrule"' `"\multicolumn{@span}{l}{\footnotesize t-statistics in parentheses}\\"' `"\multicolumn{@span}{l}{\footnotesize *** p{$<$}0.01; ** p{$<$}0.05; * p{$<$}0.10.}\\"' `"\end{tabular}"') ///      varlabels(_cons Constant, end("" \addlinespace) nolast) ///      eqlabels(, begin("\midrule" "") nofirst) ///      substitute(_ \_ "\_cons " \_cons) ///      interaction(" $\times$ ") ///      notype ///      level(95) ///      style(esttab)
    Could anyone help? Thanks

  • #2
    I found a solution, which I should be able to post in the next days.

    Comment


    • #3
      I realised I had to change strategy and use -eststo- for each model specification. I then had to stack regression estimates from 4 different specification and 15 years in one ready-to-input Latex table. I solved that by using -esttab- with the -noisily- option, which is very handy because it shows you the estout commands behind it (esttab is a wrapper for estout). That way I managed to personalise the three parts of the table (top, mid, bottom) so that I could nicely stack them. I am posting the code in a general fashion, where y1, y2, y3, y4 are different outcome variables and T is a treatment variable, for which you want to see the effect on the y's.
      Code:
       
       set more off  *-----------------FIRST YEAR I.E. TOP PART OF THE TABLE eststo clear     label var T "T 2002"                  qui reg Y1 T `x_prop' ///                 if year==2002                  eststo y1_2002                  qui reg Y2 T `x_prop' ///                 if year==2002                  eststo y2_2002                  qui reg Y3 T `x_prop' ///                 if year==2002                  eststo y3_2002                  qui reg Y4 T `x_prop' ///                 if year==2002                  eststo y4_2002  qui cap erase "C:\Users\...\tabz.tex"   // the replace option did not seem to work, so I used this way instead  estout using `"C:\Users\...\tabz.tex"' , ///  cells(b(fmt(a3) star) t(fmt(2) par)) ///  starlevels(* 0.1 ** 0.05 *** 0.001) ///  varwidth(20) ///  modelwidth(12) ///  delimiter(&) ///  end(\\) ///  prehead("{\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi} \begin{tabular}{l*{4}{c}} \toprule  &\multicolumn{1}{c}{(5)}&\multicolumn{1}{c}{(6)}&\multicolumn{1}{c}{(7)}&\multicolumn{1}{c}{(8)}\\") ///  posthead("\midrule") ///  label ///  varlabels(_cons Constant, end("" \addlinespace) nolast) ///  mlabels(, depvar span prefix(\multicolumn{@span}{c}{) suffix(})) ///  collabels(none) ///  eqlabels(, begin("\midrule" "") nofirst) ///  substitute(_ \_ "\_cons " \_cons) ///  interaction(" $\times$ ") ///  notype ///  level(95) ///  style(esttab) ///  keep(T)    *-----------------OTHER YEARS I.E. MID PART OF THE TABLE forval i=2003/2015 {  eststo clear      label var T "T `i'"                 qui reg Y1 T `x_prop' ///                 if year==`i'                 eststo y1_`i'                  qui reg Y2 T `x_prop' ///                 if year==`i'                 eststo y2_`i'                  qui reg Y3 T `x_prop' ///                 if year==`i'                 eststo y3_`i'                  qui reg Y4 T `x_prop' ///                 if year==`i'                 eststo y4_`i'  esttab using "C:\Users\...\tabz.tex\tabz.tex", keep(T) append f label nomtitle nonumber collabels(none) /// starlevels(* 0.1 ** 0.05 *** 0.001) booktabs gaps noline ///     notes addnotes("t-statistics in parentheses" "*** p{$<$}0.01; ** p{$<$}0.05; * p{$<$}0.10.") ///     noobs }   *-----------------OTHER YEARS I.E. BOTTOM PART OF THE TABLE  eststo clear      label var T "T 2016"                 qui reg Y1 T `x_prop' ///                 if year==2016 & violat_2016==0                 eststo y1_2016                  qui reg Y2 T `x_prop' ///                 if year==2016 & violat_2016==0                 eststo y2_2016                  qui reg Y3 T `x_prop' ///                 if year==2016 & violat_2016==0                 eststo y3_2016                  qui reg Y4 T `x_prop' ///                 if year==2016 & violat_2016==0                 eststo y4_2016  esttab using "C:\Users\...\tabz.tex", keep(T) append f label nomtitle nonumber collabels(none) /// starlevels(* 0.1 ** 0.05 *** 0.001) booktabs gaps noline ///     notes addnotes("t-statistics in parentheses" "*** p{$<$}0.01; ** p{$<$}0.05; * p{$<$}0.10.") ///      prefoot("\midrule") ///      postfoot("\bottomrule \multicolumn{5}{l}{\footnotesize t-statistics in parentheses}\\ \multicolumn{5}{l}{\footnotesize *** p{$<$}0.01; ** p{$<$}0.05; * p{$<$}0.10.}\\ \end{tabular}")
      I hope this will be useful for someone else, as it took me long long hours.

      Click image for larger version

Name:	blackbelt.png
Views:	1
Size:	100.8 KB
ID:	1473816

      Comment

      Working...
      X