Java 通过OLS多重线性回归计算估计值

Java 通过OLS多重线性回归计算估计值,java,linear-regression,apache-commons,Java,Linear Regression,Apache Commons,我正在学习线性回归,并在apache commons数学库3.5中使用它。 我运行了下面的示例代码来计算回归参数 //根据身高和腰围估算体重 OLSMultipleLinearRegression回归=新的OLSMultipleLinearRegression(); //重量 double[]y=新的double[]{50,60,65,65,70,75,80,85,90,95}; //身高、腰围 双精度[]x=新双精度[10][]; x[0]=新的双[]{165,65}; x[1]=新的双[]{

我正在学习线性回归,并在apache commons数学库3.5中使用它。 我运行了下面的示例代码来计算回归参数

//根据身高和腰围估算体重
OLSMultipleLinearRegression回归=新的OLSMultipleLinearRegression();
//重量
double[]y=新的double[]{50,60,65,65,70,75,80,85,90,95};
//身高、腰围
双精度[]x=新双精度[10][];
x[0]=新的双[]{165,65};
x[1]=新的双[]{170,68};
x[2]=新的双[]{172,70};
x[3]=新的双[]{175,65};
x[4]=新的双[]{170,80};
x[5]=新的双[]{172,85};
x[6]=新的双[]{183,78};
x[7]=新的双[]{187,79};
x[8]=新的双[]{180,95};
x[9]=新的双[]{185,97};
回归:新样本数据(y,x);
double[]coe=回归。estimateRegressionParameters();
用于(双p:coe){
系统输出println(p);
}
我想计算每行的估计值,以便绘制它们。 但只要我阅读了文档,库就不会提供这样做的方法。 当然,这并不困难,可以通过以下方式实现:

double[]z=新的双精度[10];
对于(int i=0;i
但是有更好的方法吗?
我发现了它,它似乎接近我的目的,但它是一个受保护的方法。

我决定通过继承OLSMultipleLinearRegression类来创建MyOLSMultipleLinearRegression类,并实现以下函数

public double[] calculateEstimatedValues() {
    RealVector b = calculateBeta();
    return getX().operate(b).toArray();
}