在gretl中的虚拟变量之间创建交互项似乎不是一种“简便”的方法(例如在R或python中)。 我们真的需要手动编写很多级别的代码吗?这是手动编码的最小示例:
open credscore.gdt
SelfemplOwnRent=OwnRent*Selfempl
# model 1
ols Acc 0 OwnRent Selfempl SelfemplOwnRent
现在,我的手动交互作用术语不适用于具有多个级别的因子,并且实际上甚至不适用于二进制变量。
谢谢, ML
答案 0 :(得分:1)
执行此操作的一种方法是使用列表。使用dummify
命令为每个级别生成虚拟对象,并使用^
操作符来创建交互。示例:
open griliches.gdt
discrete med
list X = dummify(med)
list D = dummify(mrt)
list INT = X^D
ols lw 0 X D INT
命令discrete
将变量转换为离散变量并允许使用dummify
(如果变量已经是离散变量,则无需执行此步骤)。现在所有交互项都存储在列表INT
中,您可以在以下ols
命令中轻松评估它们。
答案 1 :(得分:0)
@Markus Loecher关于您的第二个问题:
您始终可以使用rename
命令来重命名系列。因此,您必须循环遍历列表INT中的所有元素。但是,如果要使用较短的序列名称,我宁愿建议在计算交互项之前重命名两个输入序列,分别在上面的示例mrt
和med
中。