线性方程( y = mx + b)有两个参数必需依据所供应的 X和 Y数据预算出来,它们是斜率( m)和 y 轴截距( b)。一旦预算出这两个参数,就能够将不雅测值输出线性方程,并察看方程所生成的 Y展望值。
要利用最小方差法预算出 m和 b参数,就要找到 m 和 b 的估量值,使它们关于一切的 X值失掉的 Y值的不雅测值和展望值最小。不雅测值和展望值之差称为误差( y i- (mx i+ b) ),而且,假如对每一个误差值都求平方,然后求这些残差的和,其了局是一个被称为 展望平方差的数。利用最小方差法来肯定最吻合的直线触及寻觅使展望方差最小的 m和 b的估量值。
可以用两种根基办法来找到知足最小方差法的估量值 m和 b。第一种办法,可使用数值搜刮进程设定分歧的 m和 b值并对它们求值,终究决意发生最小方差的估量值。第二种办法是利用微积分找到用于预算 m和 b 的方程。我不盘算深切会商推导出这些方程所触及的微积分,但我的确在 SimpleLinearRegression 类中利用了这些剖析方程,以找到 m和 b 的最小平方估量值(请参阅 SimpleLinearRegression 类中的 getSlope() 和 getYIntercept 办法)。
可使用统计决议计划进程来否决“直线与数据吻合”这个备择假定。这个进程基于对 T 统计值的盘算,利用几率函数求得随机大的不雅测值的几率。正如第 1 局部所提到的, SimpleLinearRegression 类生成了为数浩瀚的汇总值,个中一个主要的汇总值是 T 统计值,它可以用来权衡线性方程与数据的吻合水平。假如吻合优秀,则 T 统计值常常是一个较大的值;假如 T 值很小,就应当用一个缺省模子取代您的线性方程,该模子假定 Y值的均匀值是最好展望值(由于一组值的均匀值凡是可所以下一个不雅测值的有效的展望值)。
要测试 T 统计值是不是大到可以不必 Y值的均匀值作为最好展望值,需求盘算随机取得 T 统计值的几率。假如几率很低,那就能够不采取均匀值是最好展望值这一有效假定,而且响应地可以确信复杂线性模子是与数据优秀吻合的。(有关盘算 T 统计值几率的更多信息,请参阅第 1 局部。)
我将 Student T 和 Fisher F 函数移植到了 PHP。我对 API 作了一点修改,以便合适 Java 定名作风,并将一切函数嵌入到名为 Distribution 的类中。该完成的一个很棒的功效是 doCommonMath 办法,这个库中的一切函数都重用了它。我没有消费力量去完成的其它测试(正态测试和卡方测试)也都利用 doCommonMath 办法。