PHP像excel TREND函数一样计算趋势线
我的math是非常周,现在仍然在想如何用PHP实现这一点。 我正在使用excel TREND()函数。 假设我有2个已知值的列表
| known_x_values | known_y_values | |----------------|----------------| | 323 | 0.038 | | 373 | 0.046 | | 423 | 0.053 | | 473 | 0.062 | | 523 | 0.071 | | 573 | 0.080 |
现在我需要知道x = 428时的值y 。 通过使用excel TREND()函数,我得到0.055作为值y。
任何人都可以告诉我PHP如何处理这种math问题?
任何帮助,将不胜感激。 谢谢。
Excel的TREND()
使用最小二乘法 。
math很难,所以我会用图书馆来完成繁重的工作。 在这种情况下, php-ai / php-ml 。
例:
use Phpml\Regression\LeastSquares; $x = [[323], [373], [423], [473], [523], [573]]; $y = [.038, .046, .053, .062, .071, .080]; $regression = new LeastSquares(); $regression->train($x, $y); echo $regression->predict([428]);
输出:
0.054973333333333235
根据您的精度设置,输出可能会有所不同。
你当然可以round()
或number_format()
结果如你所愿,例如:
echo number_format($regression->predict([428]), 3);
得到:
0.055