类 MillerUpdatingRegression
java.lang.Object
org.hipparchus.stat.regression.MillerUpdatingRegression
- 所有已实现的接口:
-
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[]
getPartialCorrelations
(int in) 在原始算法中,仅将回归器的偏相关返回给用户。boolean
一个获取方法,用于确定是否包含常数。regress()
对模型中的数据进行回归,使用所有回归器。regress
(int numberOfRegressors) 对模型中的数据进行回归,使用回归器的子集。regress
(int[] variablesToInclude) 对模型中的数据进行回归,使用数组中的回归器。调用此方法将更改回归器的内部顺序,解释帽矩阵时需要注意。
-
构造器详细资料
-
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
向回归模型添加一个观测值。- 指定者:
-
addObservation
在接口中UpdatingMultipleLinearRegression
- 参数:
-
x
- 具有回归器值的数组 -
y
- 给定这些回归器的因变量值 - 抛出:
-
MathIllegalArgumentException
- 如果x
的长度与模型中的独立变量数量不相等
-
addObservations
向模型添加多个观测值。- 指定者:
-
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
对模型中的数据进行回归,使用回归器的子集。- 参数:
-
numberOfRegressors
- 要包含的回归器数量(按照规范顺序或当前重新排序状态) - 返回:
- RegressionResults 结构,保存所有回归结果
- 抛出:
-
MathIllegalArgumentException
- - 如果观测数量小于变量数量,或者请求的回归器数量大于模型中的回归器数量,则抛出异常
-
regress
在模型中对数据进行回归分析,使用数组中的回归器。调用此方法将更改回归器的内部顺序,因此在解释帽矩阵时需要谨慎。- 指定者:
-
regress
在接口中UpdatingMultipleLinearRegression
- 参数:
-
variablesToInclude
- 要包含在回归中的变量数组 - 返回:
- RegressionResults 结构,保存所有回归结果
- 抛出:
-
MathIllegalArgumentException
- - 如果观测数量小于变量数量,请求的回归器数量大于模型中的回归器数量,或者回归器数组中的回归器索引不存在,则抛出异常
-