diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java
index 29d61ae03de5354e6c3756e79ba94e41603aa299..d5d3eb96c177eae43e0fba396d5f5eb82ff1010a 100644
--- a/src/main/java/com/application/GUI/LineChartFunctionality.java
+++ b/src/main/java/com/application/GUI/LineChartFunctionality.java
@@ -8,6 +8,7 @@ import javafx.scene.chart.XYChart;
 import org.apache.commons.math3.distribution.TDistribution;
 import org.apache.commons.math3.exception.MathIllegalArgumentException;
 import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
+import org.apache.commons.math3.stat.regression.SimpleRegression;
 
 import java.util.*;
 
@@ -110,17 +111,99 @@ public class LineChartFunctionality {
                 multiMap.computeIfAbsent(index, k -> new ArrayList<Double>());
                 multiMap.get(index).add(kwhValue);
 
-
                 // Connect the data to a series
                 newSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue));
                 index += 1;
             }
             updateLineChart(newSeries);
+            lineChart.setOpacity(0.5);
         }
 
+        // Stores the data from the confidence interval in a new map
         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);
+        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();
     }
diff --git a/target/classes/com/application/GUI/LineChartFunctionality.class b/target/classes/com/application/GUI/LineChartFunctionality.class
index a7c6a67ecc6871b6999f49cf884d5f375c5ac204..30aa13c4fd74adfb7823e3ea88c92328da5dd2da 100644
Binary files a/target/classes/com/application/GUI/LineChartFunctionality.class and b/target/classes/com/application/GUI/LineChartFunctionality.class differ