首页 > 解决方案 > PHP - 如何找到温度趋势

问题描述

我有一系列来自温度传感器的最后读数。如何找到趋势正在走高或走低的 id。

我知道我可以比较最后一个值,但这不是一个好主意,因为温度往往会流动。

所以假设我们在数组中有最后的读数:

$temp_array = array(5.1, 5.5, 6, 5.9, 6.2, 6.1);

如何找到问题的答案:温度会上升,还是会根据上次读数下降?

我正在考虑计算最后 3 个与前 3 个的平均值。前 3 个的平均值是 5.533,最近三个的平均值是:6.066 - 所以我会说趋势很高。但也许这样做是一个更聪明的主意?

标签: phpalgorithmtemperature

解决方案


计算趋势取决于许多因素和计算它的环境。

例如,您的测量速率将决定您的解决方案。例如,如果您每小时测量一次室外温度,那么查看最后 3 次测量值可能是有意义的。

另一方面,每分钟测量一次意味着即使有一朵云从太阳前面飘过,你也会陷入不断变化的趋势中,而你很可能不希望这样(除非你试图预测太阳能电池的效率)。

如您所见,使用的答案和算法可能取决于很多因素。

查看 LibreOffice Calc 的 Excel 并调查那里的趋势线。您会看到许多类型和复杂性。

您的建议可能适用于您的用例,但也可能存在问题。您是否考虑过测量缺失或错误?示例:8.1、8.0、0、7.9、7.8、7.7 ? 在这种情况下,您将预测错误的趋势。

保持简单,我会做类似的事情: - 过滤掉大的偏差(你知道你所在的领域,不太可能发生大的变化) - 计算平均值 - 计算有多少测量值低于和高于平均值

请注意,这只是一个快速的替代方案,但它会使预测对最近测量的偏差较小。

祝你好运。


推荐阅读