Hallo,
ich möchte mit commons matt 3.0 eine multiple lineare regression durchführen, dazu habe ich mir dieses beispiel angeschaut: The Commons Math User Guide - Statistics
Leider komme ich immer folgenden Fehler:
Mein code sieht so aus:
Wenn ich den beispiel code Ausführe funktioniert alles, der fehler liegt wohl wenn ich in der region wo ich die xValue zu der xDataMatrix hinzufüge, zumindest laut log aussage.
ich möchte mit commons matt 3.0 eine multiple lineare regression durchführen, dazu habe ich mir dieses beispiel angeschaut: The Commons Math User Guide - Statistics
Leider komme ich immer folgenden Fehler:
Java:
Exception in thread "AWT-EventQueue-0" org.apache.commons.math3.exception.DimensionMismatchException: 98 != 2
at org.apache.commons.math3.stat.regression.AbstractMultipleLinearRegression.validateSampleData(AbstractMultipleLinearRegression.java:230)
at org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression.newSampleData(OLSMultipleLinearRegression.java:69)
Mein code sieht so aus:
Java:
String query = "SELECT "+yData+" FROM APP."+stock.stockName;
System.out.println("QUERY:"+query);
PreparedStatement ps = DBHelperClass.conn.prepareStatement(query,
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = DBHelperClass.getSingelton().getDataFromDB(ps);
rs.last();
int sizeY = rs.getRow();
rs.beforeFirst();
double[] yDataMatrix = new double[sizeY];
for(int i=0;i<sizeY;i++)
{
rs.next();
yDataMatrix[i] = Double.parseDouble(rs.getString(1));
}
double[][] xDataMatrix = new double[xData.size()][];
ps = null;
rs = null;
for(int i=0;i<xData.size();i++)
{
query = "SELECT "+xData.get(i)+" FROM APP."+stock.stockName;
System.out.println("QUERY:"+query);
ps =DBHelperClass.conn.prepareStatement(query,
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = DBHelperClass.getSingelton().getDataFromDB(ps);
rs.last();
int sizeX = rs.getRow();
rs.beforeFirst();
double[] xValue = new double[sizeX];
for(int x=0;x<sizeX;x++)
{
rs.next();
xValue[x] = Double.parseDouble(rs.getString(1));
System.out.println("X:"+x);
}
xDataMatrix[i] = xValue;
}
System.out.println("Y DATA SIZE:"+yDataMatrix.length);
System.out.println("X DATA SIZE:"+xDataMatrix.length);
OLSMultipleLinearRegression regression = new OLSMultipleLinearRegression();
regression.newSampleData(yDataMatrix, xDataMatrix);
}
Wenn ich den beispiel code Ausführe funktioniert alles, der fehler liegt wohl wenn ich in der region wo ich die xValue zu der xDataMatrix hinzufüge, zumindest laut log aussage.