类 MillerUpdatingRegression

java.lang.Object
org.hipparchus.stat.regression.MillerUpdatingRegression
所有已实现的接口:
UpdatingMultipleLinearRegression

public class MillerUpdatingRegression extends Object implements UpdatingMultipleLinearRegression
This class is a concrete implementation of the UpdatingMultipleLinearRegression interface.

The algorithm is described in:

 Algorithm AS 274: Least Squares Routines to Supplement Those of Gentleman
 Author(s): Alan J. Miller
 Source: Journal of the Royal Statistical Society.
 Series C (Applied Statistics), Vol. 41, No. 2
 (1992), pp. 458-478
 Published by: Blackwell Publishing for the Royal Statistical Society
 Stable URL: http://www.jstor.org/stable/2347583 

This method for multiple regression forms the solution to the OLS problem by updating the QR decomposition as described by Gentleman.

  • 构造器概要

    构造器
    构造器
    说明
    MillerUpdatingRegression(int numberOfVariables, boolean includeConstant)
    MillerUpdatingRegression的主要构造函数。
    MillerUpdatingRegression(int numberOfVariables, boolean includeConstant, double errorTolerance)
    这是MillerUpdatingRegression类的增强构造函数。
  • 方法概要

    修饰符和类型
    方法
    说明
    void
    addObservation(double[] x, double y)
    向回归模型添加一个观测值。
    void
    addObservations(double[][] x, double[] y)
    向模型添加多个观测值。
    void
    clear()
    如其名称所示,clear会清除内部并重新按照规范顺序排列所有内容。
    double
    getDiagonalOfHatMatrix(double[] row_data)
    获取帽矩阵的对角线,也称为杠杆矩阵。
    long
    getN()
    获取添加到回归模型中的观测数量。
    int[]
    获取回归器的顺序,如果已调用某种重新排序,则很有用。
    double[]
    在原始算法中,仅将回归器的偏相关返回给用户。
    boolean
    一个获取方法,用于确定是否包含常数。
    对模型中的数据进行回归,使用所有回归器。
    regress(int numberOfRegressors)
    对模型中的数据进行回归,使用回归器的子集。
    regress(int[] variablesToInclude)
    对模型中的数据进行回归,使用数组中的回归器。调用此方法将更改回归器的内部顺序,解释帽矩阵时需要注意。

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 构造器详细资料

    • MillerUpdatingRegression

      public MillerUpdatingRegression(int numberOfVariables, boolean includeConstant, double errorTolerance) throws MathIllegalArgumentException
      这是MillerUpdatingRegression类的增强构造函数。
      参数:
      numberOfVariables - 预期的回归器数量,不包括常数
      includeConstant - 自动包含常数
      errorTolerance - 零容差,确定机器零的方式
      抛出:
      MathIllegalArgumentException - 如果numberOfVariables小于1
    • MillerUpdatingRegression

      public MillerUpdatingRegression(int numberOfVariables, boolean includeConstant) throws MathIllegalArgumentException
      MillerUpdatingRegression的主要构造函数。
      参数:
      numberOfVariables - 潜在回归器的最大数量
      includeConstant - 自动包含常数
      抛出:
      MathIllegalArgumentException - 如果numberOfVariables小于1
  • 方法详细资料

    • hasIntercept

      public boolean hasIntercept()
      一个获取方法,用于确定是否包含常数。
      指定者:
      hasIntercept 在接口中 UpdatingMultipleLinearRegression
      返回:
      true表示回归有截距,false表示无截距
    • getN

      public long getN()
      获取添加到回归模型中的观测数量。
      指定者:
      getN 在接口中 UpdatingMultipleLinearRegression
      返回:
      观测数量
    • addObservation

      public void addObservation(double[] x, double y) throws MathIllegalArgumentException
      向回归模型添加一个观测值。
      指定者:
      addObservation 在接口中 UpdatingMultipleLinearRegression
      参数:
      x - 具有回归器值的数组
      y - 给定这些回归器的因变量值
      抛出:
      MathIllegalArgumentException - 如果x的长度与模型中的独立变量数量不相等
    • addObservations

      public void addObservations(double[][] x, double[] y) throws MathIllegalArgumentException
      向模型添加多个观测值。
      指定者:
      addObservations 在接口中 UpdatingMultipleLinearRegression
      参数:
      x - 回归器的观测值
      y - 回归变量的观测值
      抛出:
      MathIllegalArgumentException - 如果x不是矩形的,与y的长度不匹配,或者不包含足够的数据来估计模型
    • clear

      public void clear()
      如其名称所示,clear会清除内部并重新按照规范顺序排列所有内容。
      指定者:
      clear 在接口中 UpdatingMultipleLinearRegression
    • getPartialCorrelations

      public double[] getPartialCorrelations(int in)
      在原始算法中,仅将回归器的偏相关返回给用户。在此实现中,我们有
       corr =
       {
         corrxx - 下三角
         corrxy - 矩阵的底行
       }
       替换了以下子例程的PCORR和COR:
       ALGORITHM AS274  APPL. STATIST. (1992) VOL.41, NO. 2 

      在将行1、2、...、IN中的变量强制进入回归后,计算偏相关。如果IN = 1,并且R的第一行表示模型中的常数,则将返回通常的简单相关性。

      如果IN = 0,则数组CORMAT中返回的Xi和Xj变量的相关性为:

       sum ( Xi.Xj ) / Sqrt ( sum (Xi^2) . sum (Xj^2) )

      返回时,数组CORMAT包含按行存储的偏相关矩阵的上三角,不包括对角线上的1。例如,如果IN = 2,则连续返回的元素是:(3,4) (3,5) ... (3,ncol),(4,5) (4,6) ... (4,ncol),等等。数组YCORR存储从Y变量开始的偏相关,从YCORR(IN+1) = 位置为(IN+1)的变量的偏相关开始。

      参数:
      in - 包括多少个回归器(按规范顺序或当前重新排序状态)
      返回:
      一个数组,其中包含剩余回归器之间以及与回归变量的偏相关性,以下三角形式
    • getDiagonalOfHatMatrix

      public double getDiagonalOfHatMatrix(double[] row_data)
      获取帽矩阵的对角线,也称为杠杆矩阵。
      参数:
      row_data - 返回此观测的帽矩阵的对角线
      返回:
      帽矩阵的对角元素
    • getOrderOfRegressors

      public int[] getOrderOfRegressors()
      获取回归器的顺序,如果已调用某种重新排序,则很有用。使用int[]{}参数调用regress将触发重新排序。
      返回:
      当前回归器顺序的int[]
    • regress

      对模型中的数据进行回归,使用所有回归器。
      指定者:
      regress 在接口中 UpdatingMultipleLinearRegression
      返回:
      RegressionResults结构,保存所有回归结果
      抛出:
      MathIllegalArgumentException - - 如果观测数量小于变量数量
    • regress

      public RegressionResults regress(int numberOfRegressors) throws MathIllegalArgumentException
      对模型中的数据进行回归,使用回归器的子集。
      参数:
      numberOfRegressors - 要包含的回归器数量(按照规范顺序或当前重新排序状态)
      返回:
      RegressionResults 结构,保存所有回归结果
      抛出:
      MathIllegalArgumentException - - 如果观测数量小于变量数量,或者请求的回归器数量大于模型中的回归器数量,则抛出异常
    • regress

      public RegressionResults regress(int[] variablesToInclude) throws MathIllegalArgumentException
      在模型中对数据进行回归分析,使用数组中的回归器。调用此方法将更改回归器的内部顺序,因此在解释帽矩阵时需要谨慎。
      指定者:
      regress 在接口中 UpdatingMultipleLinearRegression
      参数:
      variablesToInclude - 要包含在回归中的变量数组
      返回:
      RegressionResults 结构,保存所有回归结果
      抛出:
      MathIllegalArgumentException - - 如果观测数量小于变量数量,请求的回归器数量大于模型中的回归器数量,或者回归器数组中的回归器索引不存在,则抛出异常