撤消系列差异

2024-03-09

我有一个包含每月数据的 pandas 系列(df.sales)。我需要减去 12 个月前的数据来拟合时间序列,所以我运行了以下命令:

sales_new = df.sales.diff(periods=12)

然后我拟合了 ARMA 模型,并预测了未来:

model = ARMA(sales_new, order=(2,0)).fit()
model.predict('2015-01-01', '2017-01-01')

因为我已经对销售数据进行了差异,所以当我使用模型进行预测时,它会预测前向差异。如果这是第 1 期的差异,我只会使用np.cumsum(),但因为这是第 12 期,所以有点棘手。

“展开”差异并将其恢复为原始数据规模的最佳方法是什么?


我认为您需要根据前 12 个月的值计算未来值:

periods = 12
df = pd.DataFrame(data={'value': np.random.random(size=24)}, index=pd.date_range(start=date(2014, 1,1), freq='M', periods=24))
diffs = df.diff(periods=periods)

restored = df.copy()
restored.iloc[periods:] = np.nan
for d, val in diffs.iloc[periods:].iterrows():
    restored.loc[d] = restored.loc[d - pd.DateOffset(months=periods)].value + val

res = pd.concat([df, diffs, restored], axis=1)
res.columns = ['original', 'diffs', 'restored']

            original     diffs  restored
2014-01-31  0.926367       NaN  0.926367
2014-02-28  0.688898       NaN  0.688898
2014-03-31  0.297025       NaN  0.297025
2014-04-30  0.139094       NaN  0.139094
2014-05-31  0.375082       NaN  0.375082
2014-06-30  0.490638       NaN  0.490638
2014-07-31  0.789683       NaN  0.789683
2014-08-31  0.236841       NaN  0.236841
2014-09-30  0.263245       NaN  0.263245
2014-10-31  0.547025       NaN  0.547025
2014-11-30  0.243444       NaN  0.243444
2014-12-31  0.385028       NaN  0.385028
2015-01-31  0.823224 -0.103142  0.823224
2015-02-28  0.828245  0.139347  0.828245
2015-03-31  0.753291  0.456266  0.753291
2015-04-30  0.447670  0.308576  0.447670
2015-05-31  0.936667  0.561584  0.936667
2015-06-30  0.223049 -0.267589  0.223049
2015-07-31  0.933942  0.144259  0.933942
2015-08-31  0.325726  0.088886  0.325726
2015-09-30  0.947526  0.684281  0.947526
2015-10-31  0.524749 -0.022276  0.524749
2015-11-30  0.431671  0.188227  0.431671
2015-12-31  0.234028 -0.151000  0.234028
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

撤消系列差异 的相关文章

随机推荐

  • git:如何从远程分支获取并合并到本地分支?

    我分叉自 github com mantisbt mantisbt https github com mantisbt mantisbt 这导致 github com MYACCOUNT mantisbt 从我克隆它的地方并将分支 我感兴趣
  • 命名空间 .AspNetCore.Hosting 与 .Extensions.Hosting

    在我的 ASP NET Core 2 0 项目中 我一直在使用 Microsoft Extensions Hosting 命名空间中的 IHostingEnvironment 和 IApplicationLifetime 在 ASP NET
  • 如何在 C# 中将字符串数据作为 ZIP 存档上传到 FTP 服务器

    这是我的代码 我想导出 上传这个 dat文件以 zip 格式传输到 FTP 服务器 我尝试了很多但没有找到任何解决方案 任何人都可以帮助我解决这个问题 public string ExportVoid FileSetups fileSetu
  • WebSocket 慢 - Java 和 JavaScript

    我正在处理我的世界插件的编码 但现在我遇到了以下问题 我的 websocket 服务器响应非常非常慢 这是我的 WebSocketClass 用于插件 套接字服务器类 package me mickerd pcoc import java
  • 约束包含仅适用于概念吗?

    考虑这个例子 template
  • 以与输入 R 相同的格式在 R 中输出向量

    也许我在想象这一点 但我认为有一个内置的 R 函数 可以让您以用于输入该对象的格式打印 R 向量 以及可能的其他对象 如矩阵和数据帧 返回为一个字符串 例如 gt x lt c 1 2 3 gt x 1 1 2 3 gt magical f
  • 从表中随机获取3条记录

    我已经阅读了类似查询的多个答案 但似乎没有一个能切中要害 假设我有一个包含 10 行的表 如何使用实体框架从该表中检索 3 个随机行 不只是 1 个随机行 而是 3 个随机行 每行都彼此不同 提前致谢 var threeRandomFoos
  • 如何在Android应用程序中自动填充编辑文本?

    我正在开发一款安卓应用程序 其中我有一些产品和购买该产品的表格 在订单表格中 我有一个 编辑文本作为产品 指产品名称 在我的应用程序中 用户必须输入产品名称 但我想知道有什么方法可以 EditText 字段会自动填充特定的产品 就像 Fli
  • c# 使用linq对数据表中的多列进行分组

    我的数据表中有三列 字符串 日期时间和小数 我想按字符串和小数列进行分组 对于分组的行 我想对小数值求和 我知道如何进行求和部分 但是如何对数据表中的两个不同列进行分组 这是我到目前为止无法正常工作的代码 var newSort from
  • Java - 在两个不同的数组中查找唯一元素

    我需要找到两个不同数组中的唯一元素 public static void main String args TODO Auto generated method stub int arr1 new int 1 2 3 4 5 6 int a
  • 如何清除mysql中的查询缓存?

    我在 root 提示符下尝试过此操作 但没有帮助 mysql gt RESET QUERY CACHE 这显示了 Query OK 0 rows affected 0 00 sec 但历史依然存在 如何清除或删除我输入的查询的历史记录 查询
  • 面向服务的架构建议

    出于个人和大学研究的原因 我正在考虑使用面向服务的架构构建一个简单的 CRM 其意义只是解释架构本身 并非商业用途 我正在考虑实施一个 CRM 提供简单的分析服务和客户服务 用户存储 个人评论和其他一些东西 我正在设计的架构定义 WebGU
  • 在尝试以下发现的实现后,没有可用于“事务可选”的持久性提供程序:

    我正在尝试使用 JPA 2 0 创建一个 Google App Engine GAE 我已遵循我需要的所有操作 将正确的 jar 放入类路径中并确保我的实体得到增强 但我在创建 EntityManager 时遇到问题 我的 persiste
  • 在 Python Pandas DataFrame 或 Jupyter Notebooks 中包装列名称

    我的数据框中的某些列的标题很长 并且我希望能够自动换行文本 我知道这个功能内置在 pandas 中 就像我一样 pd DataFrame np random randn 2 10 columns Very Long Column Title
  • 相当于 Mac 上的 MFMailComposer

    iOS 有不错的MFMailComposer让用户撰写电子邮件的类 在 Mac Mail 中打开新窗口并使用预先格式化的电子邮件的最佳方式是什么 就像通过 Mountain Lion 和 Reeder 应用程序中的 Safari 共享按钮完
  • 将 for-compression 与 scala.util.Try 一起使用时快速失败

    我很喜欢scala util Try在 Scala 2 10 中 以及它如何与 for compression 配合使用 使得处理可能容易出错的多个步骤 例如 我们可以使用以下代码来确保当且仅当一切都在控制之下并且我们正确获取值时才打印出这
  • 如何在 Magento 的非 EAV 模型中使用 setPage() 进行分页/限制?

    我需要得到 collection gt setPage 0 10 在我的非 EAV 模型上工作 但它不起作用 我已经尝试过了 matches gt getSelect gt setPage 0 10 但这没有帮助 The setPage 方
  • 将字符串拆分为具有特定模式和条件的部分

    我有类似下面的大约 5k 字符串的数组作为某些应用程序的输出 出于安全原因 我可能不会提供确切的数据 但示例格式与实际数据非常相似 kasdfhkasdhfaskdfj42345sdsadkfdkfhasdf5345534askfhsad
  • Pascal 中的“#”符号是什么?

    例如 x 123 我尝试在谷歌上搜索 但我根本不知道这意味着什么 IIRC 它表示数字的字符值 例如 32 gt 空格
  • 撤消系列差异

    我有一个包含每月数据的 pandas 系列 df sales 我需要减去 12 个月前的数据来拟合时间序列 所以我运行了以下命令 sales new df sales diff periods 12 然后我拟合了 ARMA 模型 并预测了未