【问题标题】:Synthetic Control Method in R: "dataprep.out$X1 NULL"R 中的综合控制方法:“dataprep.out$X1 NULL”
【发布时间】:2020-09-02 16:22:22
【问题描述】:

我目前正在研究 2017 年可再生能源法案 (Erneuerbare-Energien-Gesetz) 对采用合成控制方法的德国可再生能源生产的影响。

library(Synth)
data("EuEnergy")
dim(EuEnergy) #840*14
EuEnergy[28:32, 1:6]

dataprep.out <-
  EuEnergy <- as.data.frame(EuEnergy)
  dataprep(foo = EuEnergy,
           predictors = c("coal" ,"oil" ,"gas" ,"nuc"),
           predictors.op = c("mean") , # the operator
           dependent = c("renew"), #dv
           unit.variable = c("countrynumber"), #identifying unit numbers
           time.variable = c("year"), #time-periods
           special.predictors = list(
             list("renew" , 2000:2016, c("mean")),
             list("feconsum" , seq(2001,2016,2), c("mean")),
             list("netimp" , seq(2001,2016,2), c("mean")),
             list("capacity" , seq(2001,2016,2), c("mean")),
             list("fenpercap" , seq(2001,2016,2), c("mean")),
             list("coemiss" , seq(2001,2016,2), c("mean")),
             list("gdp" , seq(2001,2016,2), c("mean"))
                  ),
           treatment.identifier = 5, #the treated case/ Germany
           controls.identifier = c(1:4,6:28),#the control cases; all EU countries except Germany
           time.predictors.prior = c(2001:2016) , #the entire time frame from start to end
           time.optimize.ssr = c(2000:2016),#the time-period over which to optimize
           unit.names.variable = c("countryname"), #identifying unit names
           time.plot = c(1990:2018) #the entire time period before/after the treatment
                  )
  dataprep.out$X1

当我运行代码时,我得到 dataprep.out$X1 NULL 这不是用于进一步计算的 X1 矩阵。

如果你有任何线索该怎么做,请帮助我。

【问题讨论】:

    标签: r version-control


    【解决方案1】:

    在上面的代码中,您将dataprep.out 分配为.data.frame(EuEnergy),然后对dataprep() 的调用仅打印到控制台(即,它没有分配给任何东西)。没有数据,我无法对其进行测试,但我认为这会起作用:

    library(Synth)
    data("EuEnergy")
    dim(EuEnergy) #840*14
    EuEnergy[28:32, 1:6]
    
    EuEnergy <- as.data.frame(EuEnergy)
    dataprep.out <- dataprep(foo = EuEnergy,
             predictors = c("coal" ,"oil" ,"gas" ,"nuc"),
             predictors.op = c("mean") , # the operator
             dependent = c("renew"), #dv
             unit.variable = c("countrynumber"), #identifying unit numbers
             time.variable = c("year"), #time-periods
             special.predictors = list(
               list("renew" , 2000:2016, c("mean")),
               list("feconsum" , seq(2001,2016,2), c("mean")),
               list("netimp" , seq(2001,2016,2), c("mean")),
               list("capacity" , seq(2001,2016,2), c("mean")),
               list("fenpercap" , seq(2001,2016,2), c("mean")),
               list("coemiss" , seq(2001,2016,2), c("mean")),
               list("gdp" , seq(2001,2016,2), c("mean"))
             ),
             treatment.identifier = 5, #the treated case/ Germany
             controls.identifier = c(1:4,6:28),#the control cases; all EU countries except Germany
             time.predictors.prior = c(2001:2016) , #the entire time frame from start to end
             time.optimize.ssr = c(2000:2016),#the time-period over which to optimize
             unit.names.variable = c("countryname"), #identifying unit names
             time.plot = c(1990:2018) #the entire time period before/after the treatment
    )
    dataprep.out$X1
    

    【讨论】:

      猜你喜欢
      • 2019-06-01
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      相关资源
      最近更新 更多