线性回归,标准错误问题

时间:2013-08-18 23:29:07

标签: java math apache-commons

好的,我有一个双打列表,我首先想用它作为回归数据,然后将观察结果与相应的估计值(标准误差)进行比较。

但是,当我使用SimpleRegression时,它只记录2个参数(我猜第一个和最后一个),所以当我尝试检查标准错误时,我得到一个OutOfRangeException。

我做错了什么?我应该使用除SimpleRegression之外的其他东西吗?看起来奇怪的是它没有在RegressionResults变量中存储每对(x,y)估计值。

这是我的代码

//Linear Least Squares method
    SimpleRegression regression = new SimpleRegression();

    for (int i = 0; i < list.size(); i++) {
        regression.addData(i, list.get(i));
    }
    //I want to see how much a certain max differs from its estimate value.
    int indexOfTop = list.indexOf(secondTop);
    RegressionResults results = regression.regress();

    //How much this calculated top differ from the regression line

    double errorOfEstimate = 0;
    try {
        System.out
                .println("Parameters: " + results.getNumberOfParameters());
        errorOfEstimate = results.getStdErrorOfEstimate(indexOfTop);
    } catch (OutOfRangeException e) {
        System.out.println(e);
    }

1 个答案:

答案 0 :(得分:0)

  

但是,当我使用SimpleRegression时,它只记录2个参数(我是   猜测第一个和最后一个),所以当我尝试检查   标准错误我得到一个OutOfRangeException。

如果您想查看已添加的样本数量,请仅估算两个参数,X和Y,以便进行简单回归检查getN()方法http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/stat/regression/RegressionResults.html#getN()

  

我做错了什么?我应该使用别的东西吗?   SimpleRegression?看起来奇怪的是它没有存储每个(x,y)   RegressionResults变量中的估计对。

我想你想得到预测并与你的观察进行比较,这里有一些解释http://commons.apache.org/proper/commons-math/userguide/stat.html#a1.4_Simple_regression