【问题标题】:What is the syntax for a factor-by factor interaction in stata (11)?stata (11) 中逐因子交互的语法是什么?
【发布时间】:2014-04-17 06:23:50
【问题描述】:

我有两个因子变量,一个编码为数字,另一个编码为字符串。打电话给他们CN。我想将它们的交互包含在回归中(这会将它们扩展为虚拟对象。在 R 中我会编写代码

lm(y~as.factor(C)*as.factor(N))

library(plm)
C = as.factor(C)
N = as.factor(N)
plm(y~C:N, index=c('C','N'), effect="twoways")

在stata中,我想做类似的事情

xtset C N
xtreg y c*N, fe

这样做的语法是什么?

【问题讨论】:

  • 看看你真正问题的答案。

标签: r syntax statistics stata interaction


【解决方案1】:

#xtabond 中不起作用。请参阅Statalist 上的类似问题here。这是在 Stata 中解决您真正问题的快速而肮脏的方法:

webuse abdata
tabulate ind,gen(ind) # industry dummies 
tabulate year,gen(yr) # this is not needed because it is already in the dataset
egen ind_year=group(ind year) # interaction of year and ind or gen ind_year=ind*year works
tabulate ind_year,gen(ind_year) # interaction dummies
xtabond n l(0/1).w  ind2-ind9 yr1977-yr1984 ind_year2-ind_year80

注意:在R 中,您可以在Stata 中将interact 用于group

【讨论】:

    【解决方案2】:

    您必须转换为数字的字符串变量。 encode 是一种选择。然后使用 Stata 的因子变量表示法(即#)。一个荒谬的例子:

    clear all
    set more off
    
    sysuse auto
    describe
    keep price mpg make
    
    encode make, gen(make2)
    regress price mpg c.mpg#i.make2
    

    Stata 11 精确引入了因子变量表示法。

    输入help factor variableshelp encode了解详情。

    注意:我没有尝试将您的 R 代码翻译到 Stata。

    【讨论】:

    • 谢谢!不幸的是,它最终并没有解决我真正的问题:xtabond yield ss1#i.vl ss6#i.vl ss5#i.vl ss4#i.vl ss3#i.vl ss2#i.vl ss1-ss6 t L1.yield L2.yield, two robust interactions not allowed 知道如何解决这个问题吗? R 中的 PLM 不利于丢弃共线假人
    • 不客气。实际上,在发布到 Stack Overflow 之类的站点/论坛时,简化问题很有用,但它仍然需要具有代表性。在这种情况下,它看起来离真实的东西太远了。
    猜你喜欢
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    相关资源
    最近更新 更多