gretl - фиктивные взаимодействия

Кажется, не существует «простого» способа (например, в R или python) для создания условий взаимодействия между фиктивными переменными в gretl? Нам действительно нужно вручную кодировать те, которые будут трудны для многих уровней? Вот минимальный пример ручного кодирования:

open credscore.gdt
SelfemplOwnRent=OwnRent*Selfempl
# model 1
ols Acc 0 OwnRent Selfempl SelfemplOwnRent

Теперь мой термин ручного взаимодействия не будет работать для многоуровневых факторов и фактически даже не работает для бинарных переменных.

Спасибо, МЛ


person Markus Loecher    schedule 15.01.2019    source источник


Ответы (2)


Один из способов сделать это — использовать списки. Используйте команду 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-команде.

person q42    schedule 18.01.2019
comment
Спасибо! Есть ли способ изменить / повлиять на имена по умолчанию (длинные) на условия взаимодействия, заданные gretl? - person Markus Loecher; 03.07.2019

@Markus Loecher по вашему второму вопросу: вы всегда можете использовать команду rename для переименования серии. Таким образом, вам придется перебрать все элементы в списке INT, чтобы сделать это. Однако я бы предпочел переименовать обе входные серии в приведенном выше примере mrt и med соответственно, прежде чем вычислять условия взаимодействия, если вам нужны более короткие имена серий.

person atecon    schedule 08.03.2020