我有两个因子变量,一个编码为数字,另一个编码为字符串。称他们为C
和N
。我希望将他们的交互包含在回归中(这会将它们扩展为虚拟对象。在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
这样做的语法是什么?
答案 0 :(得分: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 variables
,help encode
,了解详情。
注意:我没有尝试将您的R代码翻译到Stata。
答案 1 :(得分:2)
#
在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
中,您可以interact
使用group
Stata
。