我正在用Python进行因果影响分析。这种分析有助于测量干预后治疗组与对照组相比的影响(a/B测试)。我在这里读了一些文献:https://www.analytics-link.com/post/2017/11/03/causal-impact-analysis-in-r-and-now-python
假设我的数据采用以下格式:
以下代码可以完美地工作:
from causalimpact import CausalImpact
cut_off_point = 12
pre_period = [0,cut_off_point-1]
post_period = [cut_off_point,data.shape[0]-1]
impact = CausalImpact(data, pre_period, post_period)
impact.run()
impact.plot()
但是,如果我添加一列日期,并尝试根据日期拆分治疗组和对照组,则会出现错误
比如,我现在按日期定义前期和后期,如下所示:
pre_period = ['2020-04-27','2020-06-29']
post_period = ['2020-07-06','2020-07-27']
impact = CausalImpact(data, pre_period, post_period)
impact.run()
impact.plot()
我得到一个错误:
ConversionError: Failed to convert value(s) to axis units: '2020-06-29'
我已将日期转换为索引,但仍然收到错误
谁能帮忙吗。关于该库及其在A/B测试中的使用的在线文献似乎有限。非常感谢你的帮助
看起来您的数据是一个数据帧,但是您在
pre_period
和post_period
对象中提供了日期,这要求您的数据是一个时间序列对象。这在原始的R包文档here中进行了解释总结:为数据帧提供索引,为时间序列提供日期
将句点传递给
CausalImpact
之前,请定义句点:现在周期是时间序列对象,例如
pre_period
:是
Timestamp
的列表。 尝试之后:对我来说不起作用,它会引发TypeError:float()参数必须是字符串或数字,而不是相当相等的数据集中的“datetime.date”(一个日期列和控制/测试组列),这似乎不是一个非常通用的解决方案
相关问题 更多 >
编程相关推荐