【问题标题】:Causal Impact in Python giving error: exog contains inf or nansPython 给出错误的因果影响:exog 包含 inf 或 nans
【发布时间】:2020-12-11 05:39:01
【问题描述】:

我有以下数据集。

     y          X
0   70.0      10.0
1   59.0      10.0
2   40.0      10.0
3   56.0      10.0
4   46.0      10.0
5   65.0      10.0
6   60.0      10.0
7   45.0      10.0
8   55.0  555267.0
9   69.0  558056.0
10  64.0  176734.0

当我运行以下代码时:

import pandas as pd
import numpy as np
from causalimpact import CausalImpact

y1 = [70.0, 59.0, 40.0, 56.0, 46.0, 65.0, 60.0, 45.0, 55.0, 69.0, 64.0]

X1 = [10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 5552675.0, 5580561.0, 1767342.0]

y = np.array(y1)
X = np.array(X1)

y[8:] += 5

data = pd.DataFrame({'y': y, 'X': X}, columns=['y', 'X'])

pre_period = [0, 7]
post_period = [8, 10]

ci = CausalImpact(data, pre_period, post_period)
print(ci.summary())
print(ci.summary(output='report'))
ci.plot()

我收到错误:exog 包含 inf 或 nans

对此的任何解决方案都会很棒。

【问题讨论】:

    标签: python-3.x pandas numpy statsmodels


    【解决方案1】:

    问题是由于您的X1 数组中有太多相同的值。如果您将任何10.0 更改为11.0,问题就会消失。

    【讨论】:

    • 事实上,更准确地说,问题在于您只有X1 数组(X1[0:8] = [10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0]) 的pre_period 子集中具有相同的值。
    • 感谢@David M。它现在可以工作了。另一个快速的问题,如何更改 CausalImpact 函数中的置信区间。默认值为 95%。我要90%
    • ci = CausalImpact(data=data, pre_period=pre_period, post_period=post_period, alpha=0.1)
    猜你喜欢
    • 1970-01-01
    • 2019-08-01
    • 2013-06-08
    • 1970-01-01
    • 2022-01-14
    • 2020-07-24
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多