// as in : [The Meaning and Use of the Area nder a Receiver Operating Characteristic(ROC) Curve] part 3 equation 1 public static double ComputeStandardError(double auc, IList <double> sample, IList <bool> labels, Random random, int trial_count) { double[] true_instances = ToolsCollection.SelectWithSelectorValue(sample, labels, true); double[] false_instances = ToolsCollection.SelectWithSelectorValue(sample, labels, true); double theta = auc; //double Q1 = ComputeQ1Simple(true_instances, false_instances, random, trial_count); //double Q2 = ComputeQ2Simple(true_instances, false_instances, random, trial_count); //If we asume theta follow a negative exponential distribution double Q1 = theta / (2 - theta); double Q2 = (2 * theta * theta) / (1 + theta); double na = true_instances.Length; double nn = false_instances.Length; return(Math.Sqrt(((theta * (1 - theta)) + ((na - 1) * (Q1 - (theta * theta))) + ((nn - 1) * (Q2 - (theta * theta)))) / (na * nn))); }