|
24 | 24 | -->
|
25 | 25 | <!DOCTYPE html>
|
26 | 26 | <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 | + |
27 | 49 | <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, // Ρ = <div class="frac"> <span>COV(X, Y)</span> <span class="symbol">/</span> <span class="bottom">σ(X) * σ(Y)</span> </div> |
| 62 | + // d<sub>i</sub> is the difference in rank of X member vs. Y member |
| 63 | + // |
| 64 | + spearman = 2, // Ρ = 1 - <div class="frac"> <span>6 * ∑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> |
28 | 74 | <table align="center" border="1">
|
29 | 75 |
|
30 | 76 | <tr bgcolor="lightblue">
|
|
42 | 88 | This functor class calculates the correlation of two given columns.<BR>
|
43 | 89 | <I>
|
44 | 90 | <PRE>
|
45 |
| - explicit CorrVisitor (bool bias = true); |
| 91 | + explicit CorrVisitor(correlation_type t = correlation_type::pearson, |
| 92 | + bool bias = true); |
46 | 93 | </PRE>
|
47 | 94 | </I>
|
48 | 95 | </td>
|
|
54 | 101 |
|
55 | 102 | </table>
|
56 | 103 |
|
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; '><</span><span style='color:#808030; '><</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; '><</span><span style='color:#808030; '><</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; '><</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; '><</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; '><</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; "><</span><span style="color:#808030; "><</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; "><</span><span style="color:#808030; "><</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; "><</span><span style="color:#800000; font-weight:bold; ">double</span><span style="color:#800080; ">></span> p_corr_visitor<span style="color:#800080; ">;</span></span> |
| 107 | +<span class="line_wrapper"> CorrVisitor<span style="color:#800080; "><</span><span style="color:#800000; font-weight:bold; ">double</span><span style="color:#800080; ">></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; "><</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> 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; "><</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> 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; "><</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> 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; "><</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; "><</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> |
66 | 118 |
|
67 | 119 | <img src="https://github.com/hosseinmoein/DataFrame/blob/master/docs/LionLookingUp.jpg?raw=true" alt="C++ DataFrame"
|
68 | 120 | width="200" height="150" style="float:right"/>
|
|
0 commit comments