1 #include <Sequence/Correlations.hpp> 13 void shuffle_it( std::vector<int>::iterator beg,
14 std::vector<int>::iterator end,
15 std::mt19937 & generator )
17 std::shuffle(beg,end,generator);
22 std::vector<int> x(12);
23 std::vector<double> y(12);
50 std::mt19937 generator(std::time(0));
52 std::cout <<
"original data:\n";
53 for(
const auto _x : x )
55 std::cout << _x <<
' ';
57 std::cout << std::endl;
58 for (
const auto _y : y )
60 std::cerr << _y <<
' ';
62 std::cout << std::endl;
63 std::cout <<
"Product-moment correlation: " 64 << Sequence::ProductMoment()( x.begin(),x.end(),y.begin() )
66 <<
"Spearman's rank correlation: " 67 << Sequence::SpearmansRank()( x.begin(),x.end(),y.begin() )<<std::endl;
70 std::function<void(std::vector<int>::iterator,
71 std::vector<int>::iterator)> __x = [&generator](std::vector<int>::iterator a,
72 std::vector<int>::iterator b) {
return shuffle_it(a,b,generator); };
74 std::cout <<
"(all pvalues are one-tailed tests of observing a more extreme,\n" 75 <<
"i.e. larger correlation than the observe dvalue)\n" 76 <<
"pval of P-M correlation, seed with time: " 77 << Sequence::PermuteCorrelation(x.begin(),x.end(),y.begin(),
78 Sequence::ProductMoment(),
79 std::greater_equal<double>(),
81 <<
"pval of rank correlation, default seed: " 82 << Sequence::PermuteCorrelation(x.begin(),x.end(),
84 Sequence::SpearmansRank(),
85 std::greater_equal<double>(),
87 <<
"pval of rank correlation, seed with time: " 88 << Sequence::PermuteCorrelation(x.begin(),x.end(),y.begin(),
89 Sequence::SpearmansRank(),
90 std::greater_equal<double>(),
93 std::cout <<
"original data are intact:\n";
94 for(
const auto _x : x )
96 std::cout << _x <<
' ';
98 std::cout << std::endl;
99 for(
const auto _y : y )
101 std::cout << _y <<
' ';
103 std::cout << std::endl;