在R中使用CausalImpact
当我使用max(impact$series$point.effect)时,它会返回max效果,如下所示
> max(impact$series$point.effect)
[1] 4.147952我想知道是否有一种简单的方法也可以得到与这个数字相关的日期。给我一个像1 4.147952,2/14/2017这样的输出,有什么想法吗?
发布于 2020-01-03 19:17:18
有很多方法可以做到这一点,最简单的方法是将数据转换成一个数据帧,并轻松处理它。
我没有尝试使用额外的软件包,即tidyverse,只使用Base,以避免使解决方案复杂化。
另外,我还使用MarketMatching数据复制了一个例子;
library(MarketMatching)
library(CausalImpact)
data(weather, package="MarketMatching")
mm <- best_matches(data=weather,
id_variable="Area",
date_variable="Date",
matching_variable="Mean_TemperatureF",
parallel=TRUE,
warping_limit=1, # warping limit=1
dtw_emphasis=1, # rely only on dtw for pre-screening
matches=5, # request 5 matches
start_match_period="2014-01-01",
end_match_period="2014-10-01")
results <- MarketMatching::inference(matched_markets = mm,
test_market = "CPH",
end_post_period = "2015-10-01")
series <- as.data.frame(results$CausalImpactObject$series)
series$date <- rownames(series)
series[which.max(series$point.effect), "date"]
# [1] "2014-10-08"https://stackoverflow.com/questions/59583804
复制相似问题