Finding the optimal solution for a data with two variables

I have a data set for two variables (two columns) in which each variable has thousands of solutions (rows). I also have the actual solution.
I want to find the best solution (row) with the lowest error considering both variables (not only one variable).
As a simple example containing only 10 solutions (rows), I have the following:
% actual solution:
X1_actual = 0.4722;
X2_actual = 4.4;
% predicted data:[X1_predicted X2_predicted]
Predicted_data = [0.4742 4.4557
0.4739 4.4553
0.4732 4.4549
0.4730 4.4545
0.4725 4.4540
0.4723 4.4536
0.4715 4.4532
0.4714 4.4528
0.4713 4.4505
0.4701 4.4501]
Where the first and second columns represent the predicted values of X1 and X2, respectively.
The problem is that the minimum errors for both variables are not at the same row. As can be seen in this example, the minimum error for X1 is in the 6th row while for X2 it is in the last row.
Is there a scientific method to find the optimal row that considers the minimum errors of both variables?

3 comentarios

Torsten
Torsten el 11 de Jun. de 2023
Editada: Torsten el 11 de Jun. de 2023
It's up to you to define a measure that gives the "distance" between two points (x1,y1) and (x2,y2) in 2d-space and choose the row that has the minimum "distance" to the given point according to this measure.
One possibility is the usual Euclidean distance d = sqrt((x1-x2)^2 + (y1-y2)^2), but there are many other options.
OK. Thanks What are the other methods so that I search for these methods and compare the results with this method?
Torsten
Torsten el 11 de Jun. de 2023
Editada: Torsten el 11 de Jun. de 2023
As I wrote: all norms on IR^2 can be used:

Iniciar sesión para comentar.

 Respuesta aceptada

Here's a possible approach (I've used relative errors as the values of the two columns are an order of magnitude different):
% actual solution:
X1_actual = 0.4722;
X2_actual = 4.4;
% predicted data:[X1_predicted X2_predicted]
Predicted_data = [0.4742 4.4557
0.4739 4.4553
0.4732 4.4549
0.4730 4.4545
0.4725 4.4540
0.4723 4.4536
0.4715 4.4532
0.4714 4.4528
0.4713 4.4505
0.4701 4.4501];
Relative_error = [Predicted_data(:,1)/X1_actual, ...
Predicted_data(:,2)/X2_actual] ...
- ones(10,2);
combined_error = sqrt(Relative_error(:,1).^2 + Relative_error(:,2).^2);
minerror = min(combined_error)
minerror = 0.0116
minerror_row = find(combined_error == minerror)
minerror_row = 9

2 comentarios

Great This worked very well. But is the scaling you did very compulsory? How if we use the data as it is without doing any scaling? Will this affect the results?
If the errors of X2 are much larger than those of X1 they will dominate the combined contribution and you might find that the result is the same as if you only used X2!
However, you could try it and see!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Statistics and Machine Learning Toolbox en Centro de ayuda y File Exchange.

Preguntada:

el 11 de Jun. de 2023

Comentada:

el 12 de Jun. de 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by