时间序列的线性回归Python(numpy或pandas)

2024-04-28

我对 python 和一般编程都很陌生,所以请原谅任何简单的错误/应该显而易见的事情。

我想做的事情非常简单,我只想将线性趋势(一维多项式)拟合到一堆时间序列上,看看斜率是正还是负。现在我只是想让它在一个时间序列中工作。

问题:pandas 和 numpy 似乎都无法对日期时间进行回归。我的约会时间不规律(通常每月 1 天,但不是同一天),因此无法使用中提出的建议时间序列 Pandas 的线性回归 https://stackoverflow.com/questions/30425490/linear-regression-from-time-series-pandas/30431930#30431930

我的时间序列 csv 看起来像:

StationName,    year,   month,  day,    depth,  NO3-N,  PO4-P,  TotP,   TotN,
Kvarnbacken (Savaran),  2003,   2,  25, 0.5,    46, 9,  14, 451
Kvarnbacken (Savaran),  2003,   3,  18, 0.5,    64, 15, 17, 310
Kvarnbacken (Savaran),  2003,   3,  31, 0.5,    76, 7,  19, 566

到目前为止我所拥有的是

import datetime as dt
from scipy import stats
import numpy as np

# read in station csv file
data = pd.read_csv('Kvarnbacken (Savaran)_2003.csv')
data.head()
# set up dates to something python can recognize
data['date'] = pd.to_datetime(data.year*10000+data.month *
                          100+data.day, format='%Y%m%d')

I tried

slope, intercept, r_value, p_value, std_err = stats.linregress(data.date,
                                                               data.TotP)

并得到错误 类型错误:ufunc add 无法使用类型为 dtype('

我也尝试过

coefP = np.polyfit(data.date, data.TotP, 1)
polyP = np.poly1d(coefP)
ys = polyP(data.date)
print 'For P: coef, poly'
print coefP
print polyP

并得到同样的错误。

我猜想解决这个问题的最简单方法是做一些事情,我只计算自第一次测量以来的天数,然后用 days_since 进行回归到总磷浓度(totP),但我不确定最简单的方法这样做或者是否还有其他技巧。


您可以通过以下方式将日期时间转换为天。

data['days_since'] = (data.date - pd.to_datetime('2003-02-25') ).astype('timedelta64[D]')

        date  days_since
0 2003-02-25           0
1 2003-03-18          21
2 2003-03-31          34

现在您应该能够像上面那样进行回归。

slope, intercept, r_value, p_value, std_err = stats.linregress(data.days_since, 
                                                               data.TotP)
slope, intercept
(0.1466591166477916, 13.977916194790488)

您可能还想考虑其他回归选项,例如统计模型 http://www.statsmodels.org/stable/index.html包,特别是如果你经常做这种事情的话。 (请注意,与 linregress 相比,x 和 y 是相反的)

import statsmodels.formula.api as smf

smf.ols( 'TotP ~ days_since', data=data ).fit().params

Intercept     13.977916
days_since     0.146659

顺便说一句,这只是 statsmodels 输出的一小部分(使用summary()代替params以获得额外的输出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

时间序列的线性回归Python(numpy或pandas) 的相关文章

随机推荐

  • 有没有办法查看 Docker for Windows 上的容器磁盘使用情况?

    我很好奇除了作为容器映像一部分的层之外 是否还有一种方法可以查看正在运行的 Windows 容器使用了多少磁盘空间 基本上 容器自创建以来 增长 了多少 在 Linux 或在 HyperV 中运行的 Linux 容器 中 这将是docker
  • 熊猫在移动的数据帧上滚动

    这是一段代码 我不明白为什么在最后一列 rm 5 上 前 4 项得到 NaN 我知道对于 rm 列 前 4 项未填充 因为没有可用数据 但如果我移动列计算 应该进行 不是吗 同样 我不明白为什么 rm 5 列中有 5 个而不是 4 个项目是
  • AWS 上的多租户应用程序 - 多个 SSL 证书安装策略

    我正在为 Rails 多租户应用程序做一些规划 并且想知道处理自定义域证书的最佳方法是什么 应用程序是相当沼泽标准 ELB 应用程序服务器和多租户数据库 在我当前的用例中 每个租户都有一个自己独有的应用程序子域 这通常是通过通配符证书来处理
  • 使用 UIWebView loadRequest 的常规块 56、1024、8、244、24 内存泄漏

    我遇到了内存泄漏 但无法通过泄漏 构建 分析或整体检查来找出如何修复 我有一个非常强烈的想法 这是由于我的 UIWebview 加载 JavaScript 的 loadRequest 命令造成的 但我不知道出了什么问题 这是我的设置 我有一
  • Android WebView - 带有经过身份验证的代理

    我目前正在尝试调试围绕 WebView 构建的 Android 应用程序 我负责处理的开发网络环境 不是我的选择 这是 企业 安全决策 是WPA WiFi 代理服务器 代理身份验证 虽然a上的说明以前的答案非常有帮助 https stack
  • 在通用 C# 类中链接隐式运算符

    对于以下通用 C 类 我想将 T 转换为 K public abstract class ValueType
  • 哪种 jQuery 选择方法更快?

    我想知道使用 jQuery 进行选择时使用上下文参数与使用普通 CSS 范围选择器相比是否有任何优势 假设我有这个 html div class contacts h1 All contacts h1 div class contact n
  • 如何在流体宽度容器中将左侧、中间和右侧的三个按钮放置在同一行?

    我在用着LESS在 Twitter Bootstrap 环境中 但我会直接接受CSS也有答案 Fluid width container Btn1 Btn2 Btn3 另一种宽度 Fluid width container Btn1
  • 关于线程的停止

    我开发了一个代码 它将在执行时启动两个线程 public class MyThread1 extends Thread extend thread class public synchronized void run synchronize
  • 为什么在比较范围内的数字时会在汇编代码中发生分支?

    我正在读书this https stackoverflow com questions 17095324 fastest way in c to determine if an integer is between two integers
  • softmax_cross_entropy_with_logits和loss.log_loss有什么区别?

    之间的主要区别是什么tf nn softmax cross entropy with logits and tf losses log loss 两种方法都接受 1 hot 标签和 logits 来计算分类任务的交叉熵损失 这些方法在理论上
  • 无需互联网的 Google Cast 应用

    仅在本地网络中无需访问互联网的情况下是否也可以在 Chromecast 上运行 Cast 应用程序 也许有自己的网络服务器 对于展示活动 我无法确保可以访问互联网 该用例仅用于演示 感谢您 截至 2015 年 2 月上旬 Chromecas
  • 使用 Angular HTTP Observable 的轮询 API

    在我的组件 html 中 我使用 asyncPipe 来订阅此 http 服务 该服务将 json 响应对象映射到类实例数组 这一切都很好 但我希望 http 服务每隔几秒轮询一次 我已经尝试了很多东西 比如间隔 但目前 RXJS 似乎有点
  • -Ot 标志在 Visual Studio 2017 中代表什么?

    我收到错误 错误 C1007 无法识别 p2 中的标志 Ot 但在项目的命令行字符串中找不到 Ot 谷歌搜索没有帮助 有谁知道那面旗帜代表什么吗 我在编译的一个项目中遇到了类似的问题 这似乎是当 MSVC 2017 链接器尝试将依赖库 li
  • 对 shell 变量中的单引号进行转义

    我编写了一个 Bash 脚本来将值插入到SQLite https en wikipedia org wiki SQLite数据库 命令如下 sqlite3 db name insert into table name column1 col
  • Pandas.read_csv() 列名称中带有特殊字符(重音符号)�

    我有一个csv包含一些带有列名称的数据的文件 时期 IAS brut IAS liss 发生率 哨兵 我对第三个有疑问 IAS liss 这是被误解的pd read csv 方法并返回为 那个角色是什么 因为它在我的烧瓶应用程序中生成错误
  • 如何链接 ndk 应用程序中的任何库

    From 本教程 http marakana com forums android examples 49 html 看到我有一个预构建的静态库 名为stackoverflow a它有stackoverflow h 现在我想使用该静态库的功
  • 同时使用 Vuetify 和 Vue-i18n 翻译

    我正在使用 Vuetify 想要添加我自己的按钮翻译 并使用 Vuetify 提供的翻译 我目前的 Vuetify 配置文件设置如下 import Vue from vue import Vuetify from vuetify impor
  • Python:Facebook Graph API - 使用 facebook-sdk 的分页请求

    我正在尝试向 Facebook 查询不同的信息 例如 好友列表 它工作得很好 但当然它只能给出有限数量的结果 如何获取下一批结果 import facebook import json ACCESS TOKEN def pp o with
  • 时间序列的线性回归Python(numpy或pandas)

    我对 python 和一般编程都很陌生 所以请原谅任何简单的错误 应该显而易见的事情 我想做的事情非常简单 我只想将线性趋势 一维多项式 拟合到一堆时间序列上 看看斜率是正还是负 现在我只是想让它在一个时间序列中工作 问题 pandas 和