32 double numOfPairs = (
double)set1.size ();
34 if (numOfPairs != set2.size ())
38 <<
"PairedTTest *** ERROR *** The two sets are not the same length." << std::endl
40 <<
" set1.size [" << set1.size () <<
"] set2.size [" << set2.size () <<
"]" << std::endl
64 for (foldNum = 0; foldNum < numOfPairs; foldNum++)
66 xTotal += set1[foldNum];
67 yTotal += set2[foldNum];
70 double xMean = xTotal / numOfPairs;
71 double yMean = yTotal / numOfPairs;
77 double totalDeltaSquared = 0.0f;
79 for (foldNum = 0; foldNum < numOfPairs; foldNum++)
81 double xDelta = set1[foldNum] - xMean;
82 double yDelta = set2[foldNum] - yMean;
84 double deltaDelta = xDelta - yDelta;
85 totalDeltaSquared += (deltaDelta * deltaDelta);
94 if (totalDeltaSquared != 0.0)
95 tValue = fabs ((xMean - yMean) * sqrt ((numOfPairs * (numOfPairs - 1.0)) / totalDeltaSquared));
103 return float (tValue);
110 const bool* classedCorrectly1,
111 const bool* classedCorrectly2
121 for (x = 0; x < size; x++)
123 bool ca = classedCorrectly1[x];
124 bool cb = classedCorrectly2[x];
139 float y = (
float)fabs ((
float)(n01 - n10)) - 1.0f;
141 float mcNemars = 0.0;
142 float divisor = (
float)n01 + (
float)n10;
145 mcNemars = y * y / divisor;
171 if (bins.size () < 1)
178 for (x = 0; x < bins.size (); x++)
181 mean = total /
double (bins.size ());
183 double totalDeltaSquared = 0.0;
185 for (x = 0; x < bins.size (); x++)
187 double delta =
double (bins[x]) - mean;
188 totalDeltaSquared += delta * delta;
191 double var = totalDeltaSquared / bins.size ();
194 double varDivMean = var / mean;
195 double oneDivMean = 1.0 / mean;
197 float p =
float ((varDivMean - 1.0 + mean) * oneDivMean);
float McNemarsTest(kkint32 size, const bool *classedCorrectly1, const bool *classedCorrectly2)
std::vector< int > VectorInt
unsigned __int32 kkuint32
std::vector< float > VectorFloat
float PairedTTest(const KKB::VectorFloat &set1, const KKB::VectorFloat &set2)
float LLoydsIndexOfPatchiness(const KKB::VectorInt &bins)