Skip to content

Commit 2c2ded2

Browse files
committed
Implemented spearman correlation and added correaltion_type
1 parent d3f3122 commit 2c2ded2

File tree

5 files changed

+263
-119
lines changed

5 files changed

+263
-119
lines changed

docs/HTML/CorrVisitor.html

+62-10
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,53 @@
2424
-->
2525
<!DOCTYPE html>
2626
<html>
27+
28+
<style>
29+
.frac {
30+
display: inline-block;
31+
position: relative;
32+
vertical-align: middle;
33+
letter-spacing: 0.001em;
34+
text-align: center;
35+
}
36+
.frac > span {
37+
display: block;
38+
padding-top: 0.01em;
39+
padding-bottom: 0.01em;
40+
}
41+
.frac span.bottom {
42+
border-top: thin solid white;
43+
padding-top: 0.4em;
44+
padding-bottom: 0.3em;
45+
}
46+
.frac span.symbol { display: none; }
47+
</style>
48+
2749
<body>
50+
51+
<table align="center" border="1">
52+
53+
<tr bgcolor="lightblue">
54+
<th>Signature</th> <th>Description</th>
55+
</tr>
56+
<tr bgcolor="lightgrey">
57+
<td bgcolor="maroon"> <font color="white">
58+
<PRE><B>
59+
enum class correlation_type : unsigned char {
60+
61+
pearson = 1, // &Rho; = <div class="frac"> <span>COV(X, Y)</span> <span class="symbol">/</span> <span class="bottom">&sigma;(X) * &sigma;(Y)</span> </div>
62+
// d<sub>i</sub> is the difference in rank of X member vs. Y member
63+
//
64+
spearman = 2, // &Rho; = 1 - <div class="frac"> <span>6 * &sum;d<sub>i</sub><sup>2</sup></span> <span class="symbol">/</span> <span class="bottom">n * (n<sup>2</sup> - 1)</span> </div>
65+
}; </font></B></PRE>
66+
</td>
67+
<td>
68+
This specifies different correlation types.<BR>
69+
</td>
70+
</tr>
71+
72+
</table>
73+
<BR>
2874
<table align="center" border="1">
2975

3076
<tr bgcolor="lightblue">
@@ -42,7 +88,8 @@
4288
This functor class calculates the correlation of two given columns.<BR>
4389
<I>
4490
<PRE>
45-
explicit CorrVisitor (bool bias = true);
91+
explicit CorrVisitor(correlation_type t = correlation_type::pearson,
92+
bool bias = true);
4693
</PRE>
4794
</I>
4895
</td>
@@ -54,15 +101,20 @@
54101

55102
</table>
56103

57-
<pre style='color:#000000;background:#ffffff;'> <span style='color:#666616; '>std</span><span style='color:#800080; '>::</span><span style='color:#603000; '>cout</span> <span style='color:#808030; '>&lt;</span><span style='color:#808030; '>&lt;</span> <span style='color:#800000; '>"</span><span style='color:#0f69ff; '>\n</span><span style='color:#0000e6; '>Testing Correlation Visitor ...</span><span style='color:#800000; '>"</span> <span style='color:#808030; '>&lt;</span><span style='color:#808030; '>&lt;</span> <span style='color:#666616; '>std</span><span style='color:#800080; '>::</span><span style='color:#603000; '>endl</span><span style='color:#800080; '>;</span>
58-
59-
CorrVisitor<span style='color:#800080; '>&lt;</span><span style='color:#800000; font-weight:bold; '>double</span><span style='color:#800080; '>></span> corr_visitor<span style='color:#800080; '>;</span>
60-
<span style='color:#800000; font-weight:bold; '>auto</span> fut10 <span style='color:#808030; '>=</span> df<span style='color:#808030; '>.</span>visit_async<span style='color:#800080; '>&lt;</span><span style='color:#800000; font-weight:bold; '>double</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>double</span><span style='color:#800080; '>></span><span style='color:#808030; '>(</span><span style='color:#800000; '>"</span><span style='color:#0000e6; '>dbl_col</span><span style='color:#800000; '>"</span><span style='color:#808030; '>,</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>dbl_col_2</span><span style='color:#800000; '>"</span><span style='color:#808030; '>,</span> corr_visitor<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
61-
<span style='color:#800000; font-weight:bold; '>const</span> <span style='color:#800000; font-weight:bold; '>double</span> corr <span style='color:#808030; '>=</span> fut10<span style='color:#808030; '>.</span>get<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#808030; '>.</span>get_result<span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
62-
63-
assert<span style='color:#808030; '>(</span><span style='color:#603000; '>fabs</span><span style='color:#808030; '>(</span>corr <span style='color:#808030; '>-</span> <span style='color:#808030; '>-</span><span style='color:#008000; '>0.358381</span><span style='color:#808030; '>)</span> <span style='color:#808030; '>&lt;</span> <span style='color:#008000; '>0.000001</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
64-
</pre>
65-
<!--Created using ToHtml.com on 2020-05-07 15:50:30 UTC -->
104+
<pre class="code_syntax" style="color:#000000;background:#ffffff;"><span class="line_wrapper"> <span style="color:#666616; ">std</span><span style="color:#800080; ">::</span><span style="color:#603000; ">cout</span> <span style="color:#808030; ">&lt;</span><span style="color:#808030; ">&lt;</span> <span style="color:#800000; ">"</span><span style="color:#0f69ff; ">\n</span><span style="color:#0000e6; ">Testing Correlation Visitor ...</span><span style="color:#800000; ">"</span> <span style="color:#808030; ">&lt;</span><span style="color:#808030; ">&lt;</span> <span style="color:#666616; ">std</span><span style="color:#800080; ">::</span><span style="color:#603000; ">endl</span><span style="color:#800080; ">;</span></span>
105+
<span class="line_wrapper"></span>
106+
<span class="line_wrapper"> CorrVisitor<span style="color:#800080; ">&lt;</span><span style="color:#800000; font-weight:bold; ">double</span><span style="color:#800080; ">&gt;</span> p_corr_visitor<span style="color:#800080; ">;</span></span>
107+
<span class="line_wrapper"> CorrVisitor<span style="color:#800080; ">&lt;</span><span style="color:#800000; font-weight:bold; ">double</span><span style="color:#800080; ">&gt;</span> s_corr_visitor<span style="color:#808030; ">(</span>correlation_type<span style="color:#800080; ">::</span>spearman<span style="color:#808030; ">)</span><span style="color:#800080; ">;</span></span>
108+
<span class="line_wrapper"> </span>
109+
<span class="line_wrapper"> df<span style="color:#808030; ">.</span>single_act_visit<span style="color:#800080; ">&lt;</span><span style="color:#800000; font-weight:bold; ">double</span><span style="color:#808030; ">,</span> <span style="color:#800000; font-weight:bold; ">double</span><span style="color:#800080; ">&gt;</span><span style="color:#808030; ">(</span><span style="color:#800000; ">"</span><span style="color:#0000e6; ">dbl_col</span><span style="color:#800000; ">"</span><span style="color:#808030; ">,</span> <span style="color:#800000; ">"</span><span style="color:#0000e6; ">dbl_col_2</span><span style="color:#800000; ">"</span><span style="color:#808030; ">,</span> s_corr_visitor<span style="color:#808030; ">)</span><span style="color:#800080; ">;</span></span>
110+
<span class="line_wrapper"></span>
111+
<span class="line_wrapper"> <span style="color:#800000; font-weight:bold; ">auto</span> fut10 <span style="color:#808030; ">=</span> df<span style="color:#808030; ">.</span>visit_async<span style="color:#800080; ">&lt;</span><span style="color:#800000; font-weight:bold; ">double</span><span style="color:#808030; ">,</span> <span style="color:#800000; font-weight:bold; ">double</span><span style="color:#800080; ">&gt;</span><span style="color:#808030; ">(</span><span style="color:#800000; ">"</span><span style="color:#0000e6; ">dbl_col</span><span style="color:#800000; ">"</span><span style="color:#808030; ">,</span> <span style="color:#800000; ">"</span><span style="color:#0000e6; ">dbl_col_2</span><span style="color:#800000; ">"</span><span style="color:#808030; ">,</span> p_corr_visitor<span style="color:#808030; ">)</span><span style="color:#800080; ">;</span></span>
112+
<span class="line_wrapper"> <span style="color:#800000; font-weight:bold; ">auto</span> rev_fut10 <span style="color:#808030; ">=</span> df<span style="color:#808030; ">.</span>visit_async<span style="color:#800080; ">&lt;</span><span style="color:#800000; font-weight:bold; ">double</span><span style="color:#808030; ">,</span> <span style="color:#800000; font-weight:bold; ">double</span><span style="color:#800080; ">&gt;</span><span style="color:#808030; ">(</span><span style="color:#800000; ">"</span><span style="color:#0000e6; ">dbl_col</span><span style="color:#800000; ">"</span><span style="color:#808030; ">,</span> <span style="color:#800000; ">"</span><span style="color:#0000e6; ">dbl_col_2</span><span style="color:#800000; ">"</span><span style="color:#808030; ">,</span> rev_p_corr_visitor<span style="color:#808030; ">,</span> <span style="color:#800000; font-weight:bold; ">true</span><span style="color:#808030; ">)</span><span style="color:#800080; ">;</span></span>
113+
<span class="line_wrapper"> <span style="color:#800000; font-weight:bold; ">const</span> <span style="color:#800000; font-weight:bold; ">double</span> corr <span style="color:#808030; ">=</span> fut10<span style="color:#808030; ">.</span>get<span style="color:#808030; ">(</span><span style="color:#808030; ">)</span><span style="color:#808030; ">.</span>get_result<span style="color:#808030; ">(</span><span style="color:#808030; ">)</span><span style="color:#800080; ">;</span></span>
114+
<span class="line_wrapper"></span>
115+
<span class="line_wrapper"> assert<span style="color:#808030; ">(</span><span style="color:#603000; ">fabs</span><span style="color:#808030; ">(</span>corr <span style="color:#808030; ">-</span> <span style="color:#808030; ">-</span><span style="color:#008000; ">0.358381</span><span style="color:#808030; ">)</span> <span style="color:#808030; ">&lt;</span> <span style="color:#008000; ">0.000001</span><span style="color:#808030; ">)</span><span style="color:#800080; ">;</span></span>
116+
<span class="line_wrapper"> assert<span style="color:#808030; ">(</span><span style="color:#603000; ">fabs</span><span style="color:#808030; ">(</span>s_corr_visitor<span style="color:#808030; ">.</span>get_result<span style="color:#808030; ">(</span><span style="color:#808030; ">)</span> <span style="color:#808030; ">-</span> <span style="color:#808030; ">-</span><span style="color:#008000; ">0.380952</span><span style="color:#808030; ">)</span> <span style="color:#808030; ">&lt;</span> <span style="color:#008000; ">0.000001</span><span style="color:#808030; ">)</span><span style="color:#800080; ">;</span></span>
117+
<span class="line_wrapper"></span></pre>
66118

67119
<img src="https://github.com/hosseinmoein/DataFrame/blob/master/docs/LionLookingUp.jpg?raw=true" alt="C++ DataFrame"
68120
width="200" height="150" style="float:right"/>

docs/HTML/DataFrame.html

+4-4
Original file line numberDiff line numberDiff line change
@@ -601,10 +601,6 @@ <H2><font color="blue">API Reference with code samples</font></H2>
601601
<td title="Calculates dot product">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/DotProdVisitor.html">DotProdVisitor</a>{ }</td>
602602
</tr>
603603

604-
<tr class="item" onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
605-
<td title="Calculates information Entropy">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/EntropyVisitor.html">EntropyVisitor</a>{ }</td>
606-
</tr>
607-
608604
<tr class="item" onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
609605
<td title="Applies calculations in a expanding rolling window">struct <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/ExpandingRollAdopter.html">ExpandingRollAdopter</a>{ }</td>
610606
</tr>
@@ -1175,6 +1171,10 @@ <H2><font color="blue">API Reference with code samples</font></H2>
11751171
<td title="Concatenation policies">enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/concat.html">concat_policy</a>{ }</td>
11761172
</tr>
11771173

1174+
<tr class="item" onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
1175+
<td title="Correlation types">enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/CorrVisitor.html">correlation_type</a>{ }</td>
1176+
</tr>
1177+
11781178
<tr class="item" onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">
11791179
<td title="Specification for time-series decomposition">enum class <a href="https://htmlpreview.github.io/?https://github.com/hosseinmoein/DataFrame/blob/master/docs/HTML/DecomposeVisitor.html">decompose_type</a>{ }</td>
11801180
</tr>

0 commit comments

Comments
 (0)