问题标签 [causality]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
35 浏览

r - 解释因果影响图

我无法理解绘制 CausalImpact 图的结果。与实际相比,该模型的预测似乎相当好,但为什么干预后差异会迅速增加?看似“低”/“好”的 MAPE (11%) - 我对这里显示的内容感到困惑。

图表在这里

0 投票
0 回答
95 浏览

r - R(Synth 包)中的综合控制方法:如何使用交叉验证?

我一直在使用该Synth()软件包在 R 上应用 The Synthetic Control Method。在本文中,作者介绍了一种创建合成系列的新方法,将预处理期分为训练期和验证期,并使用交叉验证。

第一个问题:如何使用“交叉验证法” Synth()

(我认为这是可能的,正如本文在比较这两种方法时提到的那样,在图 9 的脚注处)

第二个问题:如果不可能,是否有其他软件包可以做到?到目前为止,我已经找到MSCMT()但无法使用它,并注意到他们甚至提到此功能是在Synth().

0 投票
0 回答
71 浏览

python - python:在治疗向量中找不到对照组0级

我非常陌生,causal inference所以我所做的就是使用库示例尽可能地接近我的潜在答案。我试图使用 causlaml 库来弄清楚它是如何工作的。我将样本分成control group1000x3y = targettreatment group与对照组相同的形状。但是在图书馆里面的例子中,形状是不同的。代码如下:

它会抛出如下错误:

0 投票
0 回答
8 浏览

parallel-processing - DiD 将匹配的治疗前数据与治疗后观察结果相结合

在进行差异设计之前,我正在对预处理观察进行遗传匹配,因为我的平行趋势假设 (PTA) 不成立。

但是,当我匹配协变量并排除单位名称(在我的情况下为公司 ID)和 X 变量(在我的情况下为月份)时,两个数据集看起来不一样,我将无法组合他们是为了检查我的 PTA 持有情况。

在我的预处理匹配中包含月份和公司 ID 变量似乎没有意义,而且我还没有在任何在线示例中看到它。话虽如此,我已尝试对包括的这些进行基因匹配,但我的治疗组和对照组治疗前观察结果不匹配。

对于如何将匹配的治疗前观察与治疗后观察相结合,或者我可能出错的地方,任何帮助将不胜感激。谢谢!!

0 投票
1 回答
366 浏览

architecture - 系统设计问题 - 消息传递应用程序中的有序消息传递

我正在做系统设计面试准备,并且正在练习“设计WhatsApp”问题。我仍然不清楚的一件事是像 WhatsApp 这样的系统如何维持消息传递的顺序。我将给出我的高级理解:

消息传递需要是因果的,但不需要是可线性化的。也就是说,并发消息(其中并发定义为“键入”和“服务器确认”之间的消息)是无与伦比的,可以按任何顺序传递。

排序/因果关系可以应用于组内消息(最突出的情况)或组间消息(例如,如果两个用户是与其他用户的两个不同共享聊天的一部分)。

我见过的大多数设计要么没有明确解决有序消息传递,要么使用每个用户的消息队列来解决它(例如,https ://www.youtube.com/watch?v=WzBzYX1aSrU&t=0s )。这个每用户队列可以是服务器上的队列(例如,RabbitMQ),也可以是类似于以 user_id 作为消息组 id 的 FIFO SQS 队列(尽管 SQS 方法可能无法扩展给定 FIFO SQS 约束)。但是,我不清楚每用户队列如何完全解决消息排序问题。每个用户的队列确保消息的有序传递,但不确保消息以正确的顺序放置在给定用户的队列中。

我可以想到两种主要的方法来避免这种情况。一种是按组分配消息工作者。然后我们有一个架构,其中为每个用户分配了一个网关来处理该用户/客户端的消息(发送和接收 - Gaurav Sen 在https://www.youtube.com/watch?v=vvhC64hQZMk中讨论了这种方法) . 对于每个组,分配有一个消息处理器来处理该组的消息。这样,消息处理器将在处理另一条消息之前将给定消息推送到每个用户的网关队列(或者如果该用户离线,则推送到临时存储)。

解决这个问题的另一种方法是全序广播(尽管也许可以使用某种全序多播)。但是,我不一定看到这将如何扩展,因为尚不清楚多播是否会起作用(并且广播似乎不会扩展)。

TLDR;在设计消息传递应用程序时,似乎有序消息传递定义了一个部分顺序,它需要每个用户队列(用于按顺序传递消息)和每个组队列(用于以相同顺序将消息放在每个收件人的队列中) .

0 投票
0 回答
28 浏览

causality - 因果影响:前后期间的长度?

我正在考虑使用CausalImpact来衡量新的 Facebook 活动对我的网站转换的影响。我有 1-2 年前的每日数据,例如支出、点击次数、转化次数等。我想弄清楚的棘手部分是,我的前期和后期应该多长时间?后期长度基本上就是我运行这个新广告系列的时间。如果需要,前期理论上可以在 1-2 年之间。

希望有此软件包(或类似软件包)经验的人可以提供帮助!如果有帮助的话,非常乐意分享我的“前期”数据框。

提前谢谢了!

0 投票
0 回答
26 浏览

r - 在ggdag中可视化pcAlgo对象?

这里有关于如何为二进制数据运行 pc 算法的文档 ( https://www.rdocumentation.org/packages/pcalg/versions/2.7-3/topics/pc )。

我想知道是否无论如何我可以使用该pc.D对象在ggdaghttps://cran.r-project.org/web/packages/ggdag/vignettes/intro-to-ggdag.html)中可视化它。

有办法吗?

0 投票
1 回答
192 浏览

python - 连续变量的贝叶斯网络

我已经搜索并看到了一些关于此事的问题,但没有答案(由于这些问题是在一年多前提出的,我希望有所改变)

我正在寻找一个库来从一个连续变量的文件中推断出贝叶斯网络有没有任何人遇到过的简单\开箱即用的东西?例如,我尝试过 pyAgrum,但是当我运行时

pyAgrum.BNLearner(numdata).learnDAG()

我明白了

例外:[pyAgrum] 错误类型:无法对连续变量执行计数。不幸的是,以下变量是连续的:V0

已经尝试过 serval 库,但它们似乎都只适用于离散变量,希望提前获得一些帮助。

0 投票
0 回答
41 浏览

r - R中的因果影响库

我正在做干预时间序列分析,并且正在使用CausalImpact R 库。运行代码后,这是我得到的错误消息。

错误信息:

loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) 中的错误:命名空间 'vctrs' 0.2.4 已加载,但 >=需要 0.3.5

0 投票
0 回答
12 浏览

r - R中的causal_forest函数需要永远

我正在尝试在 R 中运行 causal_forest,但它需要永远并且不应该(因为我的朋友正在使用相同的文件并且没有遇到此问题)。我也在使用 RStudio。有谁知道如何解决这个问题?

请注意,我使用的数据集称为JTPA. 这些是我正在使用的库:

我的第一个问题是我会运行代码但随后收到此错误:

(函数(train_matrix,结果索引,sample_weight_index,:函数“Rcpp_precious_remove”未由包“Rcpp”提供)中的错误

我不应该使用这个包(至少我认为),所以我在函数前面加上grf::.

这导致 R 运行了一个多小时,此时我终止了控制台。但这也有奇怪的行为,因为终止控制台并没有阻止代码运行,所以我不得不强制退出 RStudio。

然后,我去掉了前缀,还包含了 Rccp 库。所以我的兴趣线又回到了原来的方向。但是,我仍然遇到与前缀相同的问题grf::