Commons Math学习笔记(4)

// stat test
  double[] data = { 1d, 2d, 2d, 3d };
  System.out.println("sum of data is " + StatUtils.sum(data));
  System.out.println("sum of square of data is " + StatUtils.sumSq(data));
  System.out.println("var of data is " + StatUtils.variance(data));
  System.out.println("mean of data is " + StatUtils.mean(data));
  System.out.println("max value of data is " + StatUtils.max(data));
  System.out.println("min value of data is " + StatUtils.min(data));
  System.out.println("geometry mean of data is "
    + StatUtils.geometricMean(data));
  System.out.println("product of data is " + StatUtils.product(data));
 }

}

6.聚类和回归

package apache.commons.math.test;

import org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression;
import org.apache.commons.math3.stat.regression.SimpleRegression;

/**
 *
 * @ClassName: RegressionTest
 * @Description: 聚类和回归
 * @author zengfh
 * @date 2014年11月21日 下午1:56:19
 *
 */
public class RegressionTest {
    /**
    * @param args
    */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        regression();
        System.out.println("-------------------------------------");
        simple();
    }

private static void simple() {
        // TODO Auto-generated method stub
        double[][] data = { { 0.1, 0.2 }, {338.8, 337.4 }, {118.1, 118.2 },
                {888.0, 884.6 }, {9.2, 10.1 }, {228.1, 226.5 }, {668.5, 666.3 }, {998.5, 996.3 },
                {449.1, 448.6 }, {778.9, 777.0 }, {559.2, 558.2 }, {0.3, 0.4 }, {0.1, 0.6 }, {778.1, 775.5 },
                {668.8, 666.9 }, {339.3, 338.0 }, {448.9, 447.5 }, {10.8, 11.6 }, {557.7, 556.0 },
                {228.3, 228.1 }, {998.0, 995.8 }, {888.8, 887.6 }, {119.6, 120.2 }, {0.3, 0.3 },
                {0.6, 0.3 }, {557.6, 556.8 }, {339.3, 339.1 }, {888.0, 887.2 }, {998.5, 999.0 },
                {778.9, 779.0 }, {10.2, 11.1 }, {117.6, 118.3 }, {228.9, 229.2 }, {668.4, 669.1 },
                {449.2, 448.9 }, {0.2, 0.5 }
        };
        SimpleRegression regression = new SimpleRegression();
        for (int i = 0; i < data.length; i++) {
            regression.addData(data[i][1], data[i][0]);
        }
        System.out.println("slope is "+regression.getSlope());
        System.out.println("slope std err is "+regression.getSlopeStdErr());
        System.out.println("number of observations is "+regression.getN());
        System.out.println("intercept is "+regression.getIntercept());
        System.out.println("std err intercept is "+regression.getInterceptStdErr());
        System.out.println("r-square is "+regression.getRSquare());
        System.out.println("SSR is "+regression.getRegressionSumSquares());
        System.out.println("MSE is "+regression.getMeanSquareError());
        System.out.println("SSE is "+regression.getSumSquaredErrors());
        System.out.println("predict(0) is "+regression.predict(0));
        System.out.println("predict(1) is "+regression.predict(1));
    }

private static void regression() {
        // TODO Auto-generated method stub
        double[] y;
        double[][] x;
        y = new double[]{11.0, 12.0, 13.0, 14.0, 15.0, 16.0};
        x = new double[6][];
        x[0] = new double[]{1.0, 0, 0, 0, 0, 0};
        x[1] = new double[]{1.0, 2.0, 0, 0, 0, 0};
        x[2] = new double[]{1.0, 0, 3.0, 0, 0, 0};
        x[3] = new double[]{1.0, 0, 0, 4.0, 0, 0};
        x[4] = new double[]{1.0, 0, 0, 0, 5.0, 0};
        x[5] = new double[]{1.0, 0, 0, 0, 0, 6.0};
        System.out.println(x[0].length+"-----------");
        OLSMultipleLinearRegression regression = new OLSMultipleLinearRegression();
        regression.newSampleData(y, x);     
        double[] betaHat = regression.estimateRegressionParameters();
        System.out.println("Estimates the regression parameters b:");
        print(betaHat);
        double[] residuals = regression.estimateResiduals();
        System.out.println("Estimates the residuals, ie u = y - X*b:");
        print(residuals);
        double vary = regression.estimateRegressandVariance();
        System.out.println("Returns the variance of the regressand Var(y):");
        System.out.println(vary);
        double[] erros = regression.estimateRegressionParametersStandardErrors();
        System.out.println("Returns the standard errors of the regression parameters:");
        print(erros);
        double[][] varb = regression.estimateRegressionParametersVariance();
    }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2b3344ab111c0a6f8b85c9be183ea318.html