我正在使用 R 中的因果影响包来推断干预对一些高度相关和季节性的数据的因果影响。
具体来说,我得到了 17 天的每小时数据,干预发生在第 13 天结束时。我有两个完全不受干预影响的控制数据集(线性相关性为 0.708 和 0.701)和包含干预的数据集(又名“治疗”)
一段数据可以在 这里找到
我的代码如下
days <- 4
daily.obser <- days*24
data.1 <- cbind(treated.signal.3n,the.control.3,the.control.2)
data.1 <- data.1[1:((length(bsl)+1)+daily.obser), ] #check the required amount of data only
matplot(data.1, type = "l",col = c(2,4,9))
legend("bottomright", inset=.05, legend=c("Treated Zone", "Control Zone 1", "Control Zone 2"), pch=1, col=c(2,4,9), horiz=TRUE)
preperiod <- c(1,length(bsl))
postperiod <- c((length(bsl)+1),(length(bsl)+1+daily.obs))
prior.level.sd.level <- 0.01
imp.1 <- CausalImpact(data.1, pre.period = preperiod, post.period = postperiod,
model.args = list(niter = 2500,nseasons=17, season.duration = 24,
dynamic.regression = FALSE, prior.level.sd =prior.level.sd.level,standardize.data = TRUE))
summary(imp.1)
plot(imp.1,c("original","pointwise"))
summary(imp.1,"report")
我的问题是:
我已经阅读了这篇论文,并且在某些时候它正在谈论方差的先验分布。prior.level.sd
根据我的数据,我不明白我应该将参数设置为什么。
我面临的另一个问题是nseasons,season.duration
争论。当我在结果中指定这一点时,我得到干预是微不足道的(并且 CI 变得巨大),而当我不这样做时,干预是重要的。nseasons
应该说是整个数据集的天数还是只是干预前的天数(例如 17 或 13)?指定季节性的真正含义是什么?我可以根据数据跳过这个吗?
(不提供累积,因为它在我的情况下没有用)
(您会注意到,在干预前期间,合身性不是那么好。我能以某种方式解决这个问题吗?)
我不明白,我应该如何指定是否要标准化数据。
最后,我正在考虑静态或动态回归。我在论文中读到,当控制和处理之间的关系稳定时,建议使用静态。有人能解释一下稳定是什么意思吗?
你可以在这里找到论文