快速业务通道

PHP实现简单线性回归之数学库的重要性

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
bsp;    = $this->getR();   
  $this->RSquared        = $this->getRSquared();
  $this->DF              = $this->getDF();          
  $this->SlopeProb       = $this->getStudentProb($this->SlopeTVal, $this->DF);
  $this->YIntProb        = $this->getStudentProb($this->YIntTVal, $this->DF);
  $this->AlphaTVal       = $this->getInverseStudentProb($this->Alpha, $this->DF);
  $this->ConfIntOfSlope  = $this->getConfIntOfSlope(); 
  return true;
}
?>
 

  方法名及其序列是通过结合逆向链接和参考大学本科学生使用的统计学教科书推导得出的,该教科书一步一步地说明了如何计算中间值。我需要计算的中间值的名称带有“get”前缀,从而推导出方法名。

  使模型与数据相吻合

  SimpleLinearRegression 过程用于产生与数据相吻合的直线,其中直线具有以下标准方程:

  y = b + mx

  该方程的 PHP 格式看起来类似于清单 3:

  清单 3. 使模型与数据相吻合的 PHP 方程

 
$PredictedY[$i] = $YIntercept + $Slope * $X[$i]
 

  SimpleLinearRegression 类使用最小二乘法准则推导出 Y 轴截距(Y Intercept)和斜率(Slope)参数的估计值。这些估计的参数用来构造线性方程(请参阅 清单 3),该方程对 X和 Y值之间的关系进行建模。

  使用推导出的线性方程,您就可以得到每个 X值对应的预测 Y值。如果线性方程与数据非常吻合,那么 Y的观测值与预测值趋近于一致。

  如何确定是否非常吻合

  SimpleLinearRegression 类生成了相当多的汇总值。一个重要的汇总值是 T统计值,它可以用来衡量一个线性方程与数据的 吻合程度。如果非常吻合,那么 T 统计值往往很大。如果 T 统计值很小,那么应当用一个模型替换该线性方程,该模型假设 Y值的均值是最佳预测值(也就是说,一组值的均值通常是下一个观测值有用的预测值,使之成为缺省模型)。

  要测试 T 统计值是否大得足以不把 Y值的均值作为最佳预测值,您需要计算获取 T 统计值的随机概率。如果获取 T 统计值的概率很低,那么您可以否定均值是最佳预测值这个无效假设,与此相对应,也就确信简单线性模型与数据非常吻合。

  那么,如何计算 T 统计值的概率呢?

  计算 T 统计值概率

  由于 PHP 缺少计算 T 统计值概率的数学例程,因此我决定将此任务交给统计计算包 R(请参阅 参考资料中的 www.r-project.org)来获得必要的值。我还想提醒大家注意该包,因为:

R 提供了许多想法,PHP 开发人员可能会在 PHP 数学库中模拟这些想法。
有了 R,可以确定从 PHP 数学库获得的值与那些从成熟的免费可用的开放源码统计包中获得的值是否一致。
  清单 4 中的代码演示了交给 R 来处理以获取一个值是多么容易。

  清单 4. 交给 R 统计计算包来处理以获取一个值

 
<?php 
// Copyright 2003, Paul Meagher 
// Distributed under GPL   
class SimpleLinearRegression { 
   
  var $RPath  = "/usr/local/bin/R";  // Your path here
  function getStudentProb($T, $df) {    
    $Probabili

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号