List of usage examples for org.apache.commons.math3.stat.regression OLSMultipleLinearRegression estimateRegressandVariance
public double estimateRegressandVariance()
From source file:com.mebigfatguy.damus.main.DamusCalculator.java
private boolean calcLinearRegression() { try {//from w w w . j a va 2 s. c o m Context context = Context.instance(); PredictionModel model = context.getPredictionModel(); TrainingData data = context.getTrainingData(); int numMetrics = model.getNumMetrics(); int numResults = model.getNumResults(); int numItems = data.getNumItems(); OLSMultipleLinearRegression regression = new OLSMultipleLinearRegression(); double[][] xx = new double[numItems][]; for (int i = 0; i < numItems; i++) { double[] x = new double[numMetrics]; for (int m = 0; m < numMetrics; m++) { Metric metric = model.getMetric(m); double value; switch (metric.getType()) { case Percent: value = ((Number) data.getItem(i).getValue(metric)).doubleValue(); break; case Real: value = ((BigDecimal) data.getItem(i).getValue(metric)).doubleValue(); break; case YesNo: value = ((Boolean) data.getItem(i).getValue(metric)).booleanValue() ? 1.0 : 0.0; break; default: value = 0.0; break; } x[m] = value; } xx[i] = x; } for (int r = 0; r < numResults; r++) { Metric metric = model.getResult(r); double[] y = new double[numItems]; for (int i = 0; i < numItems; i++) { double value; switch (metric.getType()) { case Percent: value = ((Number) data.getItem(i).getValue(metric)).doubleValue(); break; case Real: value = ((BigDecimal) data.getItem(i).getValue(metric)).doubleValue(); break; case YesNo: value = ((Boolean) data.getItem(i).getValue(metric)).booleanValue() ? 1.0 : 0.0; break; default: value = 0.0; break; } y[i] = value; } regression.newSampleData(y, xx); double result = regression.estimateRegressandVariance(); trainingItem.setValue(metric, new BigDecimal(result)); } return true; } catch (Exception e) { return false; } }
From source file:org.apache.solr.client.solrj.io.eval.OLSRegressionEvaluator.java
@Override public Object doWork(Object... values) throws IOException { Matrix observations = null;// ww w.j av a 2 s . com List<Number> outcomes = null; if (values[0] instanceof Matrix) { observations = (Matrix) values[0]; } else { throw new IOException("The first parameter for olsRegress should be the observation matrix."); } if (values[1] instanceof List) { outcomes = (List) values[1]; } else { throw new IOException("The second parameter for olsRegress should be outcome array. "); } double[][] observationData = observations.getData(); double[] outcomeData = new double[outcomes.size()]; for (int i = 0; i < outcomeData.length; i++) { outcomeData[i] = outcomes.get(i).doubleValue(); } OLSMultipleLinearRegression multipleLinearRegression = (OLSMultipleLinearRegression) regress( observationData, outcomeData); Map map = new HashMap(); map.put("regressandVariance", multipleLinearRegression.estimateRegressandVariance()); map.put("regressionParameters", list(multipleLinearRegression.estimateRegressionParameters())); map.put("RSquared", multipleLinearRegression.calculateRSquared()); map.put("adjustedRSquared", multipleLinearRegression.calculateAdjustedRSquared()); map.put("residualSumSquares", multipleLinearRegression.calculateResidualSumOfSquares()); try { map.put("regressionParametersStandardErrors", list(multipleLinearRegression.estimateRegressionParametersStandardErrors())); map.put("regressionParametersVariance", new Matrix(multipleLinearRegression.estimateRegressionParametersVariance())); } catch (Exception e) { //Exception is thrown if the matrix is singular } return new MultipleRegressionTuple(multipleLinearRegression, map); }
From source file:org.opentestsystem.airose.regression.ols.OLSRegressionModeller.java
protected AbstractModel customProcessData(double[] y, double[][] x) { OLSMultipleLinearRegression regression = new OLSMultipleLinearRegression(); regression.newSampleData(y, x);/* w w w. java 2s . c o m*/ double[] beta = regression.estimateRegressionParameters(); double[] residuals = regression.estimateResiduals(); double[][] parametersVariance = regression.estimateRegressionParametersVariance(); double regressandVariance = regression.estimateRegressandVariance(); double rSquared = regression.calculateRSquared(); double sigma = regression.estimateRegressionStandardError(); OLSModel olsModel = new OLSModel(beta, residuals, parametersVariance, regressandVariance, rSquared, sigma, y, x); return olsModel; }