PHP 像 excel TREND 函数一样计算趋势线
PHP calculate trend line like excel TREND function
我的数学很差,现在还在琢磨如何用 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 处理这种数学问题?
任何帮助,将不胜感激。谢谢。
Excel 的 TREND()
使用 least squares method.
数学很难,所以我会使用图书馆来完成繁重的工作。在这种情况下 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()
or number_format()
你想要的结果,例如:
echo number_format($regression->predict([428]), 3);
给出:
0.055
我的数学很差,现在还在琢磨如何用 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 处理这种数学问题?
任何帮助,将不胜感激。谢谢。
Excel 的 TREND()
使用 least squares method.
数学很难,所以我会使用图书馆来完成繁重的工作。在这种情况下 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()
or number_format()
你想要的结果,例如:
echo number_format($regression->predict([428]), 3);
给出:
0.055