Skip to content
Snippets Groups Projects
Commit 067d1857 authored by Eilert Tunheim's avatar Eilert Tunheim
Browse files

Merge branch 'Eilerts_branch' into 'master'

Eilerts branch

See merge request mesji/bacheloroppgave_2022!41
parents dbf7850c f564b448
No related branches found
No related tags found
No related merge requests found
...@@ -8,6 +8,7 @@ import javafx.scene.chart.XYChart; ...@@ -8,6 +8,7 @@ import javafx.scene.chart.XYChart;
import org.apache.commons.math3.distribution.TDistribution; import org.apache.commons.math3.distribution.TDistribution;
import org.apache.commons.math3.exception.MathIllegalArgumentException; import org.apache.commons.math3.exception.MathIllegalArgumentException;
import org.apache.commons.math3.stat.descriptive.SummaryStatistics; import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
import org.apache.commons.math3.stat.regression.SimpleRegression;
import java.util.*; import java.util.*;
...@@ -110,17 +111,99 @@ public class LineChartFunctionality { ...@@ -110,17 +111,99 @@ public class LineChartFunctionality {
multiMap.computeIfAbsent(index, k -> new ArrayList<Double>()); multiMap.computeIfAbsent(index, k -> new ArrayList<Double>());
multiMap.get(index).add(kwhValue); multiMap.get(index).add(kwhValue);
// Connect the data to a series // Connect the data to a series
newSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue)); newSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue));
index += 1; index += 1;
} }
updateLineChart(newSeries); updateLineChart(newSeries);
lineChart.setOpacity(0.5);
} }
// Stores the data from the confidence interval in a new map
Map<Integer, ArrayList<Double>> confidenceIntervalData = statistics(multiMap); Map<Integer, ArrayList<Double>> confidenceIntervalData = statistics(multiMap);
// Checks the max size for the arraylists needed for the data array later
int jMaxSize = 0;
for (int i = 0; i < confidenceIntervalData.size(); i++) {
if(confidenceIntervalData.get(i).size() > jMaxSize){
jMaxSize = confidenceIntervalData.get(i).size();
}
}
// Defines an array to be used for the regression
double[][] data = new double[confidenceIntervalData.size()][jMaxSize];
System.out.println(confidenceIntervalData); System.out.println(confidenceIntervalData);
for (int i = 0; i < confidenceIntervalData.size(); i++) {
ArrayList<Double> list = confidenceIntervalData.get(i);
System.out.println(list.size());
for (int j = 0; j < list.size(); j++) {
data[i][j] = list.get(j);
}
for (int j = 0; j < data[i].length; j++) {
System.out.println("data[i][j]: "+data[i][j]);
if(data[i][j] == 0.0){
double sum = 0.0;
double index = 0.0;
for (int k = 0; k < list.size(); k++) {
if(data[i][k] != 0.0){
sum += data[i][k];
index += 1;
}
}
System.out.println("sum/index: "+ sum/index);
data[i][j] = sum/index;
}
}
}
System.out.println(data.length);
System.out.println(data[12][1]);
SimpleRegression simpleRegression = new SimpleRegression();
simpleRegression.addData(data);
simpleRegression.regress();
for (double[] datum : data) {
System.out.println("");
for (double v : datum) {
System.out.println(v);
}
}
XYChart.Series<String, Number> regressionSeries = new XYChart.Series<String, Number>();
for (int i = 0; i < simpleRegression.getN(); i++) {
// Connect the data to a series
System.out.println(simpleRegression.predict(i));
regressionSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(i), simpleRegression.predict(i)));
}
updateLineChart(regressionSeries);
lineChart.setOpacity(1);
System.out.println("Get R: " + simpleRegression.getR());
System.out.println("Get getRSquare: " + simpleRegression.getRSquare());
System.out.println("Get getRegressionSumSquares: " + simpleRegression.getRegressionSumSquares());
System.out.println("Get N: " + simpleRegression.getN());
// and then you can predict the time at a given temperature value
System.out.println("Predicted Time: " + simpleRegression.predict(35));
// You can also get the slope and intercept from your data
System.out.println("slope = " + simpleRegression.getSlope());
System.out.println("intercept = " + simpleRegression.getIntercept());
//simpleRegression.add
return getLineChart(); return getLineChart();
} }
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment