php - PHP - 如何找到温度趋势
问题描述
我有一系列来自温度传感器的最后读数。如何找到趋势正在走高或走低的 id。
我知道我可以比较最后一个值,但这不是一个好主意,因为温度往往会流动。
所以假设我们在数组中有最后的读数:
$temp_array = array(5.1, 5.5, 6, 5.9, 6.2, 6.1);
如何找到问题的答案:温度会上升,还是会根据上次读数下降?
我正在考虑计算最后 3 个与前 3 个的平均值。前 3 个的平均值是 5.533,最近三个的平均值是:6.066 - 所以我会说趋势很高。但也许这样做是一个更聪明的主意?
解决方案
计算趋势取决于许多因素和计算它的环境。
例如,您的测量速率将决定您的解决方案。例如,如果您每小时测量一次室外温度,那么查看最后 3 次测量值可能是有意义的。
另一方面,每分钟测量一次意味着即使有一朵云从太阳前面飘过,你也会陷入不断变化的趋势中,而你很可能不希望这样(除非你试图预测太阳能电池的效率)。
如您所见,使用的答案和算法可能取决于很多因素。
查看 LibreOffice Calc 的 Excel 并调查那里的趋势线。您会看到许多类型和复杂性。
您的建议可能适用于您的用例,但也可能存在问题。您是否考虑过测量缺失或错误?示例:8.1、8.0、0、7.9、7.8、7.7 ? 在这种情况下,您将预测错误的趋势。
保持简单,我会做类似的事情: - 过滤掉大的偏差(你知道你所在的领域,不太可能发生大的变化) - 计算平均值 - 计算有多少测量值低于和高于平均值
请注意,这只是一个快速的替代方案,但它会使预测对最近测量的偏差较小。
祝你好运。
推荐阅读
- informatica-powercenter - 一对多实例加入 infomatica
- javascript - 如何使用 DOM JavaScript 插入元素
- c# - 如何向 Internet 公开 Web API 以授予与同一网络上的不同计算机连接的能力
- flutter - Flutter 对话框关闭侦听器
- javascript - node.js sequelize:多个“或”和“与”运算符
- apache-kafka - 无法从我的本地机器生成和使用 kafka 消息到 ubuntu VM
- flutter - 滑动时如何更改 TabBar 指示器颜色(Flutter)
- html - 我的 CSS 样式正在影响我不想要的其他标签
- kubernetes - Kubernetes:CoreDNS 和解析主机名的问题
- powershell - VMware powercli 连接到单个 esxi homelab 时出错