Stata与LaTeX交互(笔记整理)

3 篇文章 1 订阅

昨天看了连玉君老师写的一篇Stata与LaTeX结合的文章,正好最近在学习LaTeX,整理了一下相关代码。Stata是Stata 16,LaTeX是TeX Live 2021。[Stata code]为在Stata里运行的代码,[LaTeX code]为在LaTeX里运行的代码。(TeX Live 2021需要安装的小伙伴也可以私信我哈)

  1. 下载sjlatex.sty文件

[Stata code]

// 输入代码

findit sjlatex

// 点击第3个链接
在这里插入图片描述
// 点击"click here to install",下载文件
在这里插入图片描述
// 找到路径C:\ado\plus\s,查看sjlatex.ado文件位置
// 安装sjlatex.sty

sjlatex install using C:\ado\plus\s\sjlatex

// 安装完毕
在这里插入图片描述
// 将文件夹C:\ado\plus\s\sjlatex下的sjlatex文件夹复制到LaTeX安装文件F:\LaTeX\texlive\2021\texmf-dist\tex\latex下(导入stata.sty),这个目录存放了LaTeX的.tex文件,这里我用了自己的路径,小伙伴们可以找一下相应的路径

// win+R输入cmd,在cmd中输入texhash更新texlive宏包(载入stata.sty),防止之后usepackage{stata}时发生报错

// 如果没有texhash更新宏包也可以直接用路径进行导入,如下面注释行里的F:/LaTex/texlive/2021/texmf-dist/tex/latex/sjlatex/stata

// 更新宏包完毕,可以开始运行了

  1. 复现Stata帮助文件

[LaTeX code]

\documentclass{article}
% \usepackage{F:/LaTex/texlive/2021/texmf-dist/tex/latex/sjlatex/stata}
\usepackage{stata}
\begin{document}
\begin{stsyntax}
\dunderbar{reg}ress {\it depvar}
\optindepvars\
\optif\
\optin\
\optweight\
\optional{,
\underbar{noc}onstant
\underbar{h}ascons tsscons vce({\it vcetype\/}) \underbar{l}evel(\num)
\underbar{b}eta
\underbar{ef}orm(\ststring)
\underbar{nohe}ader plus
\dunderbar{dep}name(\varname) mse1}
\end{stsyntax}
\end{document}

// 结果如下
在这里插入图片描述

  1. 复现Stata命令代码

[LaTeX code]

\documentclass{article}
\usepackage{stata}
\begin{document}
\begin{stlog}
sysuse auto, clear 
sum price 
list price if foreign == 1 
reg price mpg weight length
\end{stlog}
\end{document}

// 结果如下
在这里插入图片描述

  1. 复现Stata储存结果文本

[LaTeX code]

\documentclass{article}
\usepackage{stata}
\begin{document}
\begin{stresults}
\stresultsgroup{Scalars} \\
\stcmd{e(N)} & number of observations & \stcmd{e(F)} & $\scriptstyle F$ statistic\\
\stcmd{e(mss)} & model sum of squares & \stcmd{e(rmse)} & root mean squared error \\
\stcmd{e(df\_m)}& model degrees of freedom& \stcmd{e(ll\_r)}& log likelihood \\
\end{stresults}
\end{document}

// 结果如下
在这里插入图片描述

  1. 复现Stata [list] 命令结果

[Stata code]

/*Install package listtex*/
ssc install listtex
/*Use listtex code*/
sysuse auto, clear 
#delimit;
listtex make price mpg foreign in 1/6 using listex1, type rstyle(tabular) head("\begin{tabular}{rrrr}"
"\textit{Make}&\textit{Price}&\textit{Mpg}&\textit{Foreign}\\") foot("\end{tabular}");
#delimit cr

// 上述命令运行之后会在Stata结果窗口生成如下LaTeX代码
在这里插入图片描述
// 将生成的LaTeX代码粘贴至"begin{document}"与"end{document}"之间进行运行即可

[LaTeX code]

\documentclass{article}
\usepackage{stata}
\begin{document}
\begin{tabular}{rrrr}
\textit{Make}&\textit{Price}&\textit{Mpg}&\textit{Foreign}\\
AMC Concord&4,099&22&Domestic\\
AMC Pacer&4,749&17&Domestic\\
AMC Spirit&3,799&22&Domestic\\
Buick Century&4,816&20&Domestic\\
Buick Electra&7,827&15&Domestic\\
Buick LeSabre&5,788&18&Domestic\\
\end{tabular}
\end{document}

// 结果如下
在这里插入图片描述

  1. 复现Stata结果窗口原始结果

// 用sysuse auto,clear导入auto.dta数据,将Stata结果窗口的原始回归结果导出

[Stata code]

sjlog using output1, replace
sysuse auto, clear 
regress mpg weight length 
sjlog close, replace nolog

// 生成output1.log.tex文件,注意Stata生成的output1.log.tex文件的路径应当与texlive当前工作路径一致,不一致时要按output1.log.tex文件当前所在路径进行导入

[LaTeX code]

\documentclass{article}
\usepackage{stata}
\begin{document}
\begin{stlog}
\input{output1.log.tex}\nullskip
\end{stlog}
\end{document}

// 结果如下
在这里插入图片描述

  1. 输出相关系数表

[Stata code]

// 生成corrtex1.tex

/*Install package corrtex*/
ssc install corrtex
/*Use corrtex code*/
corrtex price mpg weight length gear_ratio, file(corrtex1) /// 
title(\texttt{corrtex}) key(tab:corrtex1) sig replace

[LaTeX code]

// 调用corrtex1.tex

\documentclass{article}
\begin{document}
\input{corrtex1.tex}
\end{document}

// 结果如下
在这里插入图片描述

  1. 输出回归结果表

// 生成esttab1.tex

[Stata code]

*esttab1.tex
qui gen mpg2 = mpg^2
qui reg price mpg length weight 
est store model1 
qui reg price mpg mpg2 length weight 
est store model2 
qui reg price mpg mpg2 length weight foreign 
est store model3
esttab model1 model2 model3 using esttab1.tex, replace

// 调用esttab1.tex

[LaTeX code]

\documentclass{article}
\usepackage{amsmath, stata}
\begin{document}
\input{esttab1.tex}
\end{document}

// 结果如下
在这里插入图片描述
// 生成esttab2.tex

[Stata code]

*esttab2.tex
#delimit;
esttab model* using esttab2.tex, replace 
       title("\stcmd{OLS Regression Output}"\label{tab:esttab2}) 
	   mtitle("Model A" "Model B" "Model C") b(%6.3f) t(%6.3f) 
	   star(* 0.1 ** 0.05 *** 0.01) ar2 coeflabels(mpg2 "mpg$^2$" _cons Constant); 
#delimit cr

// 调用esttab2.tex

[LaTeX code]

\documentclass{article}
\usepackage{amsmath, stata}
\begin{document}
\input{esttab2.tex}
\end{document}

// 结果如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值