加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 找到一个“最佳拟合”方程

发布时间:2020-12-13 13:39:35 所属栏目:PHP教程 来源:网络整理
导读:自从我上大学以来已经有一段时间了,知道如何计算出最适合的线条,但是我觉得自己需要.假设我有一个点,我想找到那些最好的点. 确定最佳拟合线的方程是什么? 我该怎么用PHP? 额外的兴趣可能是适合这条线的好处. 为此,使用Pearson相关性,这里是PHP函数: /** *
自从我上大学以来已经有一段时间了,知道如何计算出最适合的线条,但是我觉得自己需要.假设我有一个点,我想找到那些最好的点.

确定最佳拟合线的方程是什么?
我该怎么用PHP?

额外的兴趣可能是适合这条线的好处.
为此,使用Pearson相关性,这里是PHP函数:
/**
 * returns the pearson correlation coefficient (least squares best fit line)
 * 
 * @param array $x array of all x vals
 * @param array $y array of all y vals
 */

function pearson(array $x,array $y)
{
    // number of values
    $n = count($x);
    $keys = array_keys(array_intersect_key($x,$y));

    // get all needed values as we step through the common keys
    $x_sum = 0;
    $y_sum = 0;
    $x_sum_sq = 0;
    $y_sum_sq = 0;
    $prod_sum = 0;
    foreach($keys as $k)
    {
        $x_sum += $x[$k];
        $y_sum += $y[$k];
        $x_sum_sq += pow($x[$k],2);
        $y_sum_sq += pow($y[$k],2);
        $prod_sum += $x[$k] * $y[$k];
    }

    $numerator = $prod_sum - ($x_sum * $y_sum / $n);
    $denominator = sqrt( ($x_sum_sq - pow($x_sum,2) / $n) * ($y_sum_sq - pow($y_sum,2) / $n) );

    return $denominator == 0 ? 0 : $numerator / $denominator;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读