Skip to content

Commit

Permalink
Replaced _slope_lstsq by _linear_regression (added intercept)
Browse files Browse the repository at this point in the history
  • Loading branch information
raphaelvallat committed Oct 21, 2018
1 parent ffcd5e0 commit c10ab43
Show file tree
Hide file tree
Showing 14 changed files with 183 additions and 382 deletions.
3 changes: 2 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
.. figure:: https://github.com/raphaelvallat/entropy/blob/master/docs/pictures/logo.png
:align: center

EntroPy is a Python 3 package for computing several complexity metrics of one-dimensional time series.
EntroPy is a Python 3 package providing several time-efficient algorithms for computing the complexity of one-dimensional time series.
It can be used for example to extract features from EEG signals.

Documentation
=============
Expand Down
Binary file modified docs/build/doctrees/environment.pickle
Binary file not shown.
Binary file modified docs/build/doctrees/index.doctree
Binary file not shown.
4 changes: 2 additions & 2 deletions docs/build/html/_modules/entropy/fractal.html
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ <h1>Source code for entropy.fractal</h1><div class="highlight"><pre>
<span class="kn">from</span> <span class="nn">numba</span> <span class="k">import</span> <span class="n">jit</span>
<span class="kn">from</span> <span class="nn">math</span> <span class="k">import</span> <span class="n">log</span><span class="p">,</span> <span class="n">floor</span>

<span class="kn">from</span> <span class="nn">.utils</span> <span class="k">import</span> <span class="n">_slope_lstsq</span>
<span class="kn">from</span> <span class="nn">.utils</span> <span class="k">import</span> <span class="n">_linear_regression</span>

<span class="nb">all</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;petrosian_fd&#39;</span><span class="p">,</span> <span class="s1">&#39;katz_fd&#39;</span><span class="p">,</span> <span class="s1">&#39;higuchi_fd&#39;</span><span class="p">]</span>

Expand Down Expand Up @@ -238,7 +238,7 @@ <h1>Source code for entropy.fractal</h1><div class="highlight"><pre>
<span class="n">lk</span><span class="p">[</span><span class="n">k</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">m_lm</span>
<span class="n">x_reg</span><span class="p">[</span><span class="n">k</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">log</span><span class="p">(</span><span class="mf">1.</span> <span class="o">/</span> <span class="n">k</span><span class="p">)</span>
<span class="n">y_reg</span><span class="p">[</span><span class="n">k</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">log</span><span class="p">(</span><span class="n">m_lm</span><span class="p">)</span>
<span class="n">higuchi</span> <span class="o">=</span> <span class="n">_slope_lstsq</span><span class="p">(</span><span class="n">x_reg</span><span class="p">,</span> <span class="n">y_reg</span><span class="p">)</span>
<span class="n">higuchi</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">_linear_regression</span><span class="p">(</span><span class="n">x_reg</span><span class="p">,</span> <span class="n">y_reg</span><span class="p">)</span>
<span class="k">return</span> <span class="n">higuchi</span>


Expand Down
13 changes: 4 additions & 9 deletions docs/build/html/_modules/entropy/others.html
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ <h1>Source code for entropy.others</h1><div class="highlight"><pre>
<span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">from</span> <span class="nn">numba</span> <span class="k">import</span> <span class="n">jit</span>

<span class="kn">from</span> <span class="nn">.utils</span> <span class="k">import</span> <span class="n">_slope_lstsq</span><span class="p">,</span> <span class="n">_log_n</span>
<span class="kn">from</span> <span class="nn">.utils</span> <span class="k">import</span> <span class="n">_linear_regression</span><span class="p">,</span> <span class="n">_log_n</span>

<span class="nb">all</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;detrended_fluctuation&#39;</span><span class="p">]</span>

Expand All @@ -107,20 +107,15 @@ <h1>Source code for entropy.others</h1><div class="highlight"><pre>
<span class="k">for</span> <span class="n">i_n</span><span class="p">,</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">nvals</span><span class="p">):</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">walk</span><span class="p">[:</span><span class="n">N</span> <span class="o">-</span> <span class="p">(</span><span class="n">N</span> <span class="o">%</span> <span class="n">n</span><span class="p">)],</span> <span class="p">(</span><span class="n">N</span> <span class="o">//</span> <span class="n">n</span><span class="p">,</span> <span class="n">n</span><span class="p">))</span>
<span class="n">ran_n</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="nb">float</span><span class="p">(</span><span class="n">na</span><span class="p">)</span> <span class="k">for</span> <span class="n">na</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">)])</span>
<span class="n">ran_n_mean</span> <span class="o">=</span> <span class="n">ran_n</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span>
<span class="n">d_len</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
<span class="n">slope</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty</span><span class="p">(</span><span class="n">d_len</span><span class="p">)</span>
<span class="n">intercept</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty</span><span class="p">(</span><span class="n">d_len</span><span class="p">)</span>
<span class="n">trend</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">empty</span><span class="p">((</span><span class="n">d_len</span><span class="p">,</span> <span class="n">ran_n</span><span class="o">.</span><span class="n">size</span><span class="p">))</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">d_len</span><span class="p">):</span>
<span class="n">sl</span> <span class="o">=</span> <span class="n">_slope_lstsq</span><span class="p">(</span><span class="n">ran_n</span><span class="p">,</span> <span class="n">d</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
<span class="n">di_mean</span> <span class="o">=</span> <span class="n">d</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span>
<span class="n">inter</span> <span class="o">=</span> <span class="n">di_mean</span> <span class="o">-</span> <span class="n">sl</span> <span class="o">*</span> <span class="n">ran_n_mean</span>
<span class="n">slope</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">sl</span>
<span class="n">intercept</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">inter</span>
<span class="n">slope</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">intercept</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">_linear_regression</span><span class="p">(</span><span class="n">ran_n</span><span class="p">,</span> <span class="n">d</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros_like</span><span class="p">(</span><span class="n">ran_n</span><span class="p">)</span>
<span class="c1"># Equivalent to np.polyval function</span>
<span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="p">[</span><span class="n">sl</span><span class="p">,</span> <span class="n">inter</span><span class="p">]:</span>
<span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="p">[</span><span class="n">slope</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">intercept</span><span class="p">[</span><span class="n">i</span><span class="p">]]:</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">y</span> <span class="o">*</span> <span class="n">ran_n</span> <span class="o">+</span> <span class="n">p</span>
<span class="n">trend</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">y</span>
<span class="c1"># calculate standard deviation (fluctuation) of walks in d around trend</span>
Expand All @@ -136,7 +131,7 @@ <h1>Source code for entropy.others</h1><div class="highlight"><pre>
<span class="c1"># all fluctuations are zero =&gt; we cannot fit a line</span>
<span class="n">dfa</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">dfa</span> <span class="o">=</span> <span class="n">_slope_lstsq</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">nvals</span><span class="p">),</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">fluctuations</span><span class="p">))</span>
<span class="n">dfa</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">_linear_regression</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">nvals</span><span class="p">),</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">fluctuations</span><span class="p">))</span>
<span class="k">return</span> <span class="n">dfa</span>


Expand Down
3 changes: 2 additions & 1 deletion docs/build/html/_sources/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
.. figure:: https://raw.githubusercontent.com/raphaelvallat/entropy/master/docs/pictures/logo.png
:align: center

EntroPy is a Python 3 package for computing several complexity metrics of one-dimensional time series.
EntroPy is a Python 3 package providing several time-efficient algorithms for computing the complexity of one-dimensional time series.
It can be used for example to extract features from EEG signals.

Installation
============
Expand Down
3 changes: 2 additions & 1 deletion docs/build/html/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,8 @@
<div class="figure align-center">
<img alt="https://raw.githubusercontent.com/raphaelvallat/entropy/master/docs/pictures/logo.png" src="https://raw.githubusercontent.com/raphaelvallat/entropy/master/docs/pictures/logo.png" />
</div>
<p>EntroPy is a Python 3 package for computing several complexity metrics of one-dimensional time series.</p>
<p>EntroPy is a Python 3 package providing several time-efficient algorithms for computing the complexity of one-dimensional time series.
It can be used for example to extract features from EEG signals.</p>
<div class="section" id="installation">
<h1>Installation</h1>
<p><strong>Develop mode</strong></p>
Expand Down
Loading

0 comments on commit c10ab43

Please sign in to comment.