【问题标题】:R - DiD (Difference in DIfference) ModelR - DiD(差异中的差异)模型
【发布时间】: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


【解决方案1】:

看看这部分代码:

Shower_data$young_pos <- 1
Shower_data$young_pos [ old ] <- 0
Shower_data$young_neg <- 0
Shower_data$young_neg [ old ] <- 1

向量young_pos 包括0s 和1s。向量young_neg 也包括0s 和1s。但是,一个向量与另一个向量完全相反。因此,两个向量编码相同的信息,模型只能估计其中一个的效果。

【讨论】:

    猜你喜欢
    • 2019-11-26
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 2022-10-02
    • 1970-01-01
    • 2016-09-08
    • 2017-09-06
    • 2021-01-07
    相关资源
    最近更新 更多