Changeset 1687
- Timestamp:
- Dec 30, 2008, 11:00:24 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/kolmogorov_smirnov_test.cc
r1626 r1687 35 35 void test_p_value(test::Suite&); 36 36 void test_reset(test::Suite&); 37 void test_ties(test::Suite&); 37 38 38 39 int main(int argc, char* argv[]) … … 44 45 test_p_value(suite); 45 46 test_reset(suite); 47 test_ties(suite); 46 48 47 49 return suite.return_value(); … … 150 152 suite.add(suite.equal(ks.p_value(), p)); 151 153 } 154 155 156 void test_ties(test::Suite& suite) 157 { 158 suite.err() << "test ties" << std::endl; 159 statistics::KolmogorovSmirnov ks; 160 for (size_t i=0; i<5; ++i) 161 ks.add(i, true); 162 ks.add(0, false); 163 suite.equal(ks.score(), 1.0-0.2); 164 } -
trunk/yat/statistics/KolmogorovSmirnov.cc
r1626 r1687 143 143 double f1=0; 144 144 double f2=0; 145 // Peter, we should take care of ties!146 145 while(iter!=data_.end()){ 147 if (iter->second) 148 f1 += iter->first.second; 149 else 150 f2 += iter->first.second; 151 res.push_back(f1/sum_w1_-f2/sum_w2_); 152 ++iter; 146 size_t count=0; 147 double value = iter->first.first; 148 while (iter!=data_.end() && iter->first.first==value) { 149 if (iter->second) { 150 f1 += iter->first.second; 151 } 152 else { 153 f2 += iter->first.second; 154 } 155 ++count; 156 ++iter; 157 } 158 res.resize(res.size()+count, f1/sum_w1_-f2/sum_w2_); 153 159 } 154 160 }
Note: See TracChangeset
for help on using the changeset viewer.