【发布时间】:2017-05-29 16:10:01
【问题描述】:
我正在尝试使用 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 not defined because of singularities))... -
如果不查看您的数据很难判断,但看起来您正在使 young_neg 和 young_pos 变量相互镜像,因此只要一个等于一个,另一个就为零,反之亦然.这与您永远无法估计包含 young_neg 变量的参数这一事实是一致的。
标签: r statistics dummy-variable