Создайте фиктивную переменную времени в R (данные панели)

Я пытаюсь создать фиктивную переменную времени в R. Я анализирую квартальные панельные данные (1990q1-2013q3). Как мне сгенерировать фиктивную переменную времени для периода 2007q1-2009q1, то есть для фиктивной переменной 2007q1 = 1 ...

Данные выглядят как на картинке. Рейтинг актива - это переменная id.

введите здесь описание изображения

С уважением и благодарностью!


person Demet    schedule 20.02.2016    source источник
comment
Я думаю, вы найдете StackOverflow более полезным для такого рода вопросов.   -  person usεr11852    schedule 20.02.2016


Ответы (3)


Я бы сказал, что model.matrix, вероятно, ваш лучший выбор.

date.f <- factor(dat$date)
dummies = model.matrix(~date.f)
person Vedda    schedule 20.02.2016

Я использовал более простой способ, следуя этому ответу . Думаю, здесь нет разницы между временными рядами и панельными данными с точки зрения применения.

print date
dummy <- as.numeric(date >= "2007 Q1" & date<="2008 Q4")
print (dummy)
person Demet    schedule 21.02.2016

Ответ @Demet полезен, но становится утомительным, если у вас их много (например, 50 периодов).

Ответ @Amstell тоже полезен, он возвращает матрицу, включающую перехват с единицами. В зависимости от того, как вы хотите продолжить анализ данных, которые вам нужно извлечь, какие из них наиболее полезны для последующего анализа.

В дополнение к предложенным ответам я предлагаю следующий код, который показывает вам только одну фиктивную переменную вместо огромной матрицы.

dummies = table(1:length(date),as.factor(date))  

Кроме того, важно позаботиться о том, какой период времени является эталонной группой для интерпретации модели. Вы можете изменить контрольную группу, если у вас есть два периода времени, применив следующий код.

abs(Date(-1))
person Ferdi    schedule 08.09.2016