Как создать новую переменную с изменением (фиктивной) переменной во времени - PullRequest
0 голосов
/ 11 июня 2019

У меня есть данные уровня фирмы за три года (2015, 2016 и 2017).

Мне нужно знать, какие фирмы имеют изменение фиктивной переменной ModelJaarrekening с года 2016 на год 2017 - манекен, который определяет, является ли фирма большой (значение 2) или маленькой(значение 1).

Другими словами, мне нужно выбрать фирмы, которые имеют значение ModelJaarrekening, равное 2 в год 2015 и 2016, но имеют значение 1 в год 2017.

Следующая команда не работает:

gen dummy=1 if (ModelJaarrekening ==2 & year<2017 & ModelJaarrekening ==1 & year==2017)

Я думаю, это потому, что она сначала выполняет первую команду и удаляет другие наблюдения.

Как я могу решить эту проблему?

1 Ответ

1 голос
/ 11 июня 2019

Ваша команда законна.

Не удаляет никаких наблюдений!

Он просто не делает то, что вы хотите. Причина в том, что ничто в вашем синтаксисе не заставляет Stata смотреть дальше каждого наблюдения отдельно. Итак,

ModelJaarrekening == 2 & ModelJaarrekening == 1

никогда не будет верным ни для одного наблюдения: переменная не может быть 1 и 2 в одном наблюдении. Такая же проблема имеет место для

year < 2017 & year == 2017

В результате у вашего индикатора будут отсутствующие значения.

То, что вы хотите, больше похоже на это. Я устанавливаю фирменный идентификатор id.

local foo ModelJaarrekening
egen OK1 = total(`foo' == 2 & year <= 2017), by(id) 
egen OK2 = total(`foo' == 1 & year == 2017), by(id) 
gen wanted = OK1 & OK2 

Тогда OK1 будет равно 1 или более, если и только если было какое-либо значение 2 до 2017 года. «OK2» будет равно 1, если и только если в 2017 году было значение 1 для каждой фирмы.

wanted будет 1, если и только если оба его аргумента не равны нулю (в этом случае отрицательные значения невозможны и учитываются только положительные значения); и 0 в противном случае. Таким образом, это индикатор (вы говорите, фиктивный) со значениями 1 и 0.

Показатели, которые равны 1 или отсутствуют, в Stata менее полезны, чем показатели, равные 1 или 0.

...