SimpleRegression - 拦截&斜率计算误差

时间:2014-02-04 20:04:03

标签: java math regression apache-commons linear-regression

我想从apache commons math libary实现Simple Regression模型。

我已实施:

//estimate alpha and beta parameters
regression = new SimpleRegression();
for (int l = 0; l < xList.size(); l++) {
    regression.addData(Double.parseDouble(xList.get(l).replace(',', '.')), yList.get(l));
}

//add alpha
regression.getIntercept();

//add beta
regression.getSlope();

//add R^2
regression.getRSquare();

与简单的Google电子表格相比,以验证我的结果:

我得到完全不同的结果。在这里你还可以看到一张图片:

enter image description here

我很感激如何解决这个问题?

更新

我从统计上知道这些数据没有价值。(例如参见R^2)但是我想知道计算的错误而不是某些统计属性!

我正在使用:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-math3</artifactId>
    <version>3.0</version>
</dependency>

我很欣赏每一个想法!

2 个答案:

答案 0 :(得分:0)

相关系数非常小:0.85%为0.0085。你无法真正相信你从任何地方得到的斜率和截距,因为X和Y之间几乎没有相关性。

答案 1 :(得分:0)

R^2的值并未确定其他问题中建议的alfabeta系数的准确性。它仅包含有关变量之间线性关系的信息。如果通过回归得到的关于这种关系的信息在方程系数方面仍然有意义,取决于您的特定需求。 R^2只能为0.5%,您可能仍然希望使用您的模型,因为例如您声称这是一些长期关系。您获得的错误结果仅仅是计算的结果。 Excel将点视为千位分隔符(尽管可以更改)。