【问题标题】:Outreg2 and regressions with interactions c.var1##c.var2Outreg2 和具有交互作用的回归 c.var1##c.var2
【发布时间】:2014-09-28 12:27:18
【问题描述】:

我正在运行一组形式的回归

reg var1 var1_iv var2_iv c.var1_iv##c.var2_iv

outreg2 using "filename", tex(pr frag) label title("title") replace

但是在编译生成的 tex 文件时(我使用 \input{} 将文件“调用”到主文件中),由于交互条款中的 #,我收到一条错误消息。

到目前为止,我的解决方案是手动更正每个 tex 文件,但由于我有很多回归,这变得相当累人。

有没有更有效的方法来解决这个问题?

像标签交互,outreg2 选项,一种在主 tex 文件中忽略 # 的方法?

【问题讨论】:

  • 您希望# 成为什么?在 Stata 中,请参阅 help filefilter。您还可以使用自己喜欢的文本编辑器进行搜索/替换。
  • 在 Stata 中使用## 进行回归,表示您想要交互## 左右的变量。使用c. 表示这些变量是连续的。保存回归输出时,此交互标记为c.var1_iv##c.var2_iv,这在您运行乳胶代码时会出现问题。我已经尝试找到一种方法来标记交互但没有成功。
  • 我知道 #c. 在 Stata 中的含义。我的问题是,你在 .tex 文件中手动替换它们是什么?也就是你在做什么手动调整?我建议了两种可以进行替换的方法。它们不适合你吗?
  • 感谢您的建议,我尝试了“filefilter”,它可以工作,但它需要我创建一个与原始文件不同的文件,我想替换它。使用搜索/替换是我所说的“手动更正”的意思,因为我有 40 个 tex 文件,我正在调用它,它不是很有效。

标签: variables regression stata labels


【解决方案1】:

1.第一个选项

一种方法是使用filefiltercopy。第一个命令创建一个包含所需内容的新文件。使用第二个,您可以将该新文件“复制”为其原始名称。然后erase 剩下的文件。一个例子是这样的:

filefilter testfile.tex testfile2.tex, ///
        from("original") to("modified") replace

copy testfile2.tex testfile.tex, replace
erase testfile2.tex

2。第二种选择

另一个(未经测试的)选项是使用临时文件。在这种情况下,我想您最初可以将 .tex 文件保存到 tempfile,然后将其提供给 filefilter。也就是说,filefilter 的输入是临时文件和输出,无论您想使用什么名称。见help tempfile

编辑

3.第三个选项

以前的 Stata tempfile 方法似乎不起作用(尽管第一个选项有效)。但是使用您自己的“临时文件名”(不是 Stata 的)作为通向最终文件名的桥梁似乎更简单。例如:

sysuse auto,clear

tempfile file

regress mpg foreign weight headroom
outreg2 using xfile, tex replace

filefilter xfile.tex filedef.tex, ///
    from("VARIABLES") to("ACHANGE") replace

erase xfile.tex

xfile.tex 是我用于转换文件的名称。 filedef.tex 是最终文件。根据您的使用情况,相应地使用replace 选项。

【讨论】:

  • 我将选项 3 与我所有文件的循环结合使用,并且它有效。谢谢!我仍然想知道是否有一种方法可以在 Stata 中标记交互...
  • estout,来自 SSC 的用户编写命令,也用于输出回归结果,具有用于标记交互项的 interaction() 选项。见ssc describe estout。如果已安装,只需输入 help estout
猜你喜欢
  • 1970-01-01
  • 2018-05-02
  • 2018-02-08
  • 1970-01-01
  • 2020-12-10
  • 2012-05-20
  • 2021-04-09
  • 2013-02-02
  • 1970-01-01
相关资源
最近更新 更多