Stata 如何从两个分类变量生成虚拟变量?

Stata 如何从两个分类变量生成虚拟变量?,stata,Stata,我有两个变量,包含状态标识符和年份。如果我想创建指示每个状态的虚拟变量,我通常会编写以下代码: tab state_id, gen(state_id_) 这将给我一组变量,state_id_1,state_id_2,。。。等等,但是如果我想得到一个状态和年份交互的虚拟变量列表,比如一个表示2005年状态1的虚拟变量,那么可以使用什么操作呢 你试过看xi()吗?它将为每一个分类变量以及这两个变量的交互创建模型。因此,如果你这样做: xi i.state*i.year 这将为您提供所需的内容,

我有两个变量,包含状态标识符和年份。如果我想创建指示每个状态的虚拟变量,我通常会编写以下代码:

tab state_id, gen(state_id_)

这将给我一组变量,state_id_1,state_id_2,。。。等等,但是如果我想得到一个状态和年份交互的虚拟变量列表,比如一个表示2005年状态1的虚拟变量,那么可以使用什么操作呢

你试过看
xi
()吗?它将为每一个分类变量以及这两个变量的交互创建模型。因此,如果你这样做:

 xi i.state*i.year

这将为您提供所需的内容,但请注意,它会自然地对其进行编码,并省略每个分类变量的第一个类别。

或许可以使用Stata的因子变量表示法来帮助您,该表示法通常无需显式创建虚拟变量。因此,如果您不熟悉因子变量,您可以查看Stata安装(版本11及更高版本)附带的Stata用户指南PDF第11.4.3节,可从Stata的“帮助”菜单访问,并查看它们的使用是否能解决您的问题。从方法上讲,因子变量让Stata的命令(特别是
边距
)理解了假人之间的关系:如果state_id_23==1,那么所有其他变量都必须为0。@WilliamLisowski感谢您的评论。这很有帮助。我熟悉因子变量,但我一直认为它相当于手动生成的虚拟变量。显然,与虚拟变量相比,因子变量具有额外的信息。这种差异导致了极大似然估计的不同收敛路径。我已经看过了。它完成了一半的工作。我需要生成两组交互。一个是状态与年份交互,另一个是区域与年份交互。当第二次使用席命令时,在同一数据集上生成具有年交互作用的区域,在一年的交互作用下,所有的状态都会下降。席似乎有一个前缀选项来解决我的后续问题。这是老式的事情,通常只有在你的StATA版本不支持因子变量表示法的情况下才是更好的。@William Lisowski在这方面的评论非常棒。