在R中使用因果关系
当我使用max(impact $ series $ point.effect)返回最大效果,像这样
> max(impact$series$point.effect)
[1] 4.147952
我想知道是否有一种简单的方法也可以获取与此数字关联的日期。可以给我类似输出的东西[1] 4.147952,2/14/2017有什么想法吗?
有很多方法可以实现,最简单的方法是将数据转换为数据帧并轻松处理。
我没有尝试使用其他软件包,即tidyverse,而是仅使用Base R,以免使解决方案复杂化。
此外,我还使用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"