获取最大影响发生日期CausalImpact R

问题描述 投票:0回答:1

在R中使用因果关系

当我使用max(impact $ series $ point.effect)返回最大效果,像这样

    >     max(impact$series$point.effect)
[1] 4.147952

我想知道是否有一种简单的方法也可以获取与此数字关联的日期。可以给我类似输出的东西[1] 4.147952,2/14/2017有什么想法吗?

r time-series
1个回答
0
投票

有很多方法可以实现,最简单的方法是将数据转换为数据帧并轻松处理。

我没有尝试使用其他软件包,即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"
© www.soinside.com 2019 - 2024. All rights reserved.