I generated data like this, hypothetically:

sampleName, expected_value, observed_value_by_X, observed_value_by_Y, observed_value_by_Z

S1, 1, 0.5, 1.1, 3.3

S2, 1, 1.3, 0.9, 0.7

S3, 2, 1.8, 2.2, 5.2

S4, 2, 2.8, 1.9, 1.1

S5, 2, 2.2, 2.0, 2.9

S6, 3, 2.9, 3.1, 6.0

S7, 3, 1.1, 2.9, 5.9

S8, 4, ......

Ultimately I need develop a method that can assign samples based on observed values into groups (with expected values of 1, 2, 3, or 4). Of course the more correctly assigned samples, the better.

I need to know which one from X, Y, Z perform the best. From hypothetical data above, we know method Y would be the best, since its observed values are close to expected ones. However, in reality I would get values from 0.5 to 3.5 for expected value of 1 from all methods, and 0.9~4.2 for expected value of 2, 1.2~6.1 for 3, 3.1~12 for 4