Я пытаюсь создать модель DiD с R. У меня есть базовая фаза и группа лечения. Я пытаюсь рассмотреть базовую и возрастную нагрузку в модели. Поэтому я создал две фиктивные переменные.R - DiD (Разница в разнесении) Модель
young <- Shower_data$Age %in% c("20-29", "30-39")
old <- Shower_data$Age %in% c("40-49", "50-64", "65+")
Shower_data$young_pos <- ifelse(Shower_data$young>0, 1, 0)
Shower_data$young_neg <- ifelse(Shower_data$young<=0, 1, 0)
Shower_data$young_pos <- 1
Shower_data$young_pos [ old ] <- 0
Shower_data$young_neg <- 0
Shower_data$young_neg [ old ] <- 1
#Create a model that considers the baseline and age
model4 <- lm(Volume ~ (Shower + dummy_phase * dummy_exp_group) * (young_pos + young_neg), data = Shower_data)
summary(model4)
Без возраста все шло, как и ожидалось, но когда я добавляю возраста я только получить результаты для young_pos
переменной, но не для young_neg
. Как вы можете увидеть здесь:
#Coefficients: (5 not defined because of singularities)
# Estimate Std. Error t value Pr(>|t|)
#(Intercept) 45.07006 1.65499 27.233 < 2e-16 ***
#Shower -0.04725 0.00819 -5.769 8.09e-09 ***
#dummy_phase -5.35647 1.72401 -3.107 0.00189 **
#dummy_exp_grouptreatment -9.33660 1.95433 -4.777 1.79e-06 ***
#young_pos 8.11264 2.78459 2.913 0.00358 **
#young_neg NA NA NA NA
#dummy_phase:dummy_exp_grouptreatment 6.23700 2.06968 3.014 0.00259 **
#Shower:young_pos 0.07690 0.01361 5.652 1.61e-08 ***
#Shower:young_neg NA NA NA NA
#dummy_phase:young_pos -1.38223 2.87629 -0.481 0.63084
#dummy_phase:young_neg NA NA NA NA
#dummy_exp_grouptreatment:young_pos 1.94658 3.19773 0.609 0.54271
#dummy_exp_grouptreatment:young_neg NA NA NA NA
#dummy_phase:dummy_exp_grouptreatment:young_pos 2.56634 3.39298 0.756 0.44944
#dummy_phase:dummy_exp_grouptreatment:young_neg NA NA NA NA
Как вы можете видеть только NA
в этой переменной. Благодаря
Мое предположение, что у вас нет большого количества данных ('# ... (5 не определено из-за особенностей)') ... –
Сложно сказать, не видя ваши данные, но похоже, что вы делают ваши переменные young_neg и young_pos зеркальными отображениями друг друга, поэтому, когда каждый равен одному, другой равен нулю и наоборот. Это будет соответствовать тому факту, что вы никогда не сможете оценить параметр, включая переменную young_neg. – gfgm