【问题标题】:how to check time series data is linear or non linear如何检查时间序列数据是线性还是非线性
【发布时间】:2017-07-11 09:20:03
【问题描述】:

我有系统空闲时长的数据如下:

日期 |空闲时间开始 |空闲时间结束 |空闲时间 |

2017/07/11 | 10:36:21 | 10:37:28 | 67 |

2017/07/11 | 10:45:44 | 10:46:58 | 74 | .......

我想使用 python 检查空闲持续时间是线性的还是非线性的。我的第二个问题是,如果我想预测未来的空闲时间,那么任何关于如何将这些数据转换为数据帧以便我可以执行某种回归分析的建议。 我已将空闲持续时间和空闲持续时间的开始存储在一个数组中。我还使用以下代码绘制了数据:

SampleOne, Times = get_idletime_set(1000)
FMT = '%Y-%m-%d %H:%M:%S'
Dates=[]
for i in Times:
    Dates.append(datetime.strptime(i, FMT))


plt.plot(Dates, SampleOne)
plt.ylabel('Idle Duration')
plt.xlabel('Time')
plt.show()

我得到了这张图表。 enter image description here

得到的图形不是直线。这是否意味着空闲时长与时间不是线性关系。

【问题讨论】:

  • 你尝试了什么?计算时间步之间的持续时间并检查它们的变化是否不超过给定百分比应该非常简单。
  • 1.请展示你的努力,这就是堆栈溢出的工作原理 2. 对于 DataFrames,请参阅 pandas 3. 考虑 Stat,因为这也是统计数据,并且有很多测试可以检查非线性
  • @MarvinTaschenberger 我没有问如何在 python 中创建数据框。我的问题是如何将持续时间表示为数据框中的索引。我的动机是预测系统在未来某个时刻的空闲情况。问题是 idleduration 值是在一个间隔(即空闲的开始时间和结束时间)中给出的,而不是在特定的时间实例上给出的。

标签: python machine-learning non-linear-regression


【解决方案1】:
  1. 对不起,我现在要让这个更统计一点。所以你想检查你的模型是否看起来像 idle = c * t + u 或 idle = g(t) + u (有一些常数 c , t 作为时间, u 作为所有未观察到的因素)对吗?所以首先,你的图不是一个有效的时间序列图,因为日期似乎没有正确排序(有些线交叉是不正确的)

  2. 正如提议的那样,这是一个关于模型选择的统计问题。因此,您可以对两个变量之间的线性或非线性关系进行测试,也可以将其作为没有自回归项的时间序列模型进行回归,并与信息标准进行比较。但是模型选择是一个巨大的话题。简单的方法是计算每天的平均空闲时间,并将其回归到时间指数上,如 idel ~ t + t²+ln(t) 以各种组合形式进行比较,然后比较它们的性能和意义。

  3. 我认为您已阅读此内容或提出此问题作为统计堆栈exchange

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 2011-07-05
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    相关资源
    最近更新 更多