繁体   English   中英

基于现有日期的时间预测:时间记录

[英]Time Prediction based on existing date:time records

我有一个系统记录日期:时间,它返回如下结果:

05.28.2013 11:58pm
05.27.2013 10:20pm
05.26.2013 09:47pm
05.25.2013 07:30pm
05.24.2013 06:24pm
05.23.2013 05:36pm

我希望能够做的是有一个日期列表:接下来几天的时间预测 - 这样一个人就可以看到下一个事件可能发生的时间。

预测结果示例:

06.01.2013 04:06pm
05.31.2013 03:29pm
05.30.2013 01:14pm

关于如何用php做这种时间预测的想法?

基本答案是“不”。 编程工具不是为预测而设计的。 统计工具是为此目的而设计的。 您应该更多地考虑R,SPSS,SAS或其他类似工具。 一些数据库内置了基本的数据分析工具,这是另一种(通常是次要的)选择。

时间序列预测的标准统计技术称为ARIMA分析(自回归积分移动平均值)。 你不太可能在php / SQL中实现它。 用于估计事件之间的时间的标准统计技术是泊松回归。 你也不太可能在php / SQL中实现它。

我发现你的数据点是每天晚上一次。 我猜可能这是白天运行的某个进程的结束。 结束时间基于开始时间和过程的持续时间。

你能做什么? 通常合理的预测是“昨天发生的事情”。 你会惊讶地发现,在天气预报和估算股市方面,这个预测有多难。 另一个非常合理的方法是历史值的平均值。

如果您对过程有所了解,那么每周平均值可以很好地运行。 您还可以通过测量平均值和标准偏差,然后从统计分布中提取随机值来获得更复杂的蒙特卡罗估计。 但是,平均值在您的情况下也可以正常工作。

我建议您在尝试进行任何“预测”之前先研究一下统计/数据挖掘/预测分析。 至少,如果您在此域中确实遇到问题,那么您应该寻找合适的工具来使用。

正如Gordon Linoff所说,简单的回答是“不”,但你可以编写一些代码来粗略猜测下一次会是什么。

我在我的网站http://livinglion.com/2013/05/next-occurrence-in-datetime-sequence/上写了一个非常基本的例子。

使用PHP + MySQL可以实现这一点:

  • 您可以拥有一个包含两个字段的表:DATE字段和TIME字段(基本上分别存储日期+时间部分)。 假设该表名为“timeData”,字段为:

  • eventDate:date

  • eventTime:时间

您的主键是eventDate和eventTime的组合,因此它们永远不会作为一对重复。

然后,您可以执行以下查询:

SELECT eventTime, count(*) as counter FROM timeData GROUP BY eventTime ORDER BY counter DESC LIMIT 0, 10

上述查询将始终返回前10个最频繁的事件时间,按频率排序。 然后,您可以从最小到最大再次订购这些。

这样,您可以返回非常准确的时间预测结果,这会在您每天收集数据时变得更加准确

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM