fixed granger causality and simplex

main
Prince Joseph Javier 2021-02-24 16:07:10 +08:00
parent 04596cab4d
commit 343937ddbb
178 changed files with 12485 additions and 3954 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -465,8 +465,8 @@
<strong>d</strong>: The number of times that the raw observations are differenced, also called the degree of differencing (<em>deals with order of <strong>differencing</strong> of <span class="math notranslate nohighlight">\(X_t\)</span></em>)<br />
<strong>q</strong>: The size of the moving average window, also called the order of moving average (<em>deals with <strong>residuals</strong></em>)</p>
<p>Given this, the general case of <em><strong>ARIMA(p,d,q)</strong></em> can be written as:</p>
<div class="amsmath math notranslate nohighlight" id="equation-64c65f3e-410a-431f-99a2-7276bb57d9f7">
<span class="eqno">(1)<a class="headerlink" href="#equation-64c65f3e-410a-431f-99a2-7276bb57d9f7" title="Permalink to this equation"></a></span>\[\begin{equation}
<div class="amsmath math notranslate nohighlight" id="equation-1139a832-cb92-40b5-970f-9823735ec044">
<span class="eqno">(1)<a class="headerlink" href="#equation-1139a832-cb92-40b5-970f-9823735ec044" title="Permalink to this equation"></a></span>\[\begin{equation}
X_{t} = \alpha _{1}X_{t-1} + \dots + \alpha _{p}X_{t-p} + \varepsilon _{t}+\theta_{1}\varepsilon _{t-1}+\cdots +\theta _{q}\varepsilon _{t-q}
\end{equation}\]</div>
<p>Or in words :</p>
@ -478,35 +478,35 @@ X_{t} = \alpha _{1}X_{t-1} + \dots + \alpha _{p}X_{t-p} + \varepsilon _{t}+\thet
<p>Before we discuss how we determine p, d, and q that are best to represent a time series, lets first take a look at special cases of ARIMA models that should help us illustrate the formulation of the ARIMA equation.</p>
<p><strong>Case 1: ARIMA(p,0,0) = autoregressive model</strong>: if the series is stationary and autocorrelated, perhaps it can be predicted as a multiple of its own previous value, plus a constant.</p>
<p>The forecasting equation for ARIMA(1,0,0) is:</p>
<div class="amsmath math notranslate nohighlight" id="equation-fbc6d67d-0e9e-4c45-a65e-94ec382ad903">
<span class="eqno">(2)<a class="headerlink" href="#equation-fbc6d67d-0e9e-4c45-a65e-94ec382ad903" title="Permalink to this equation"></a></span>\[\begin{equation}
<div class="amsmath math notranslate nohighlight" id="equation-93218596-c130-4c76-85dd-60b46472a152">
<span class="eqno">(2)<a class="headerlink" href="#equation-93218596-c130-4c76-85dd-60b46472a152" title="Permalink to this equation"></a></span>\[\begin{equation}
X_{t} = \mu + \alpha _{1}X_{t-1}
\end{equation}\]</div>
<p>while ARIMA(2,0,0)</p>
<div class="amsmath math notranslate nohighlight" id="equation-75b89923-01e4-4264-a130-c73d8c56f1c0">
<span class="eqno">(3)<a class="headerlink" href="#equation-75b89923-01e4-4264-a130-c73d8c56f1c0" title="Permalink to this equation"></a></span>\[\begin{equation}
<div class="amsmath math notranslate nohighlight" id="equation-92567d6d-ace7-4089-8c18-fa79a927d5f2">
<span class="eqno">(3)<a class="headerlink" href="#equation-92567d6d-ace7-4089-8c18-fa79a927d5f2" title="Permalink to this equation"></a></span>\[\begin{equation}
X_{t} = \mu + \alpha _{1}X_{t-1} + \alpha _{2}X_{t-2}
\end{equation}\]</div>
<p>or in general ARIMA(p,0,0)</p>
<div class="amsmath math notranslate nohighlight" id="equation-adc7af31-f208-4b8e-9fa5-7a0111895cd7">
<span class="eqno">(4)<a class="headerlink" href="#equation-adc7af31-f208-4b8e-9fa5-7a0111895cd7" title="Permalink to this equation"></a></span>\[\begin{equation}
<div class="amsmath math notranslate nohighlight" id="equation-0ea810a7-3492-4005-80cf-58bb943ede73">
<span class="eqno">(4)<a class="headerlink" href="#equation-0ea810a7-3492-4005-80cf-58bb943ede73" title="Permalink to this equation"></a></span>\[\begin{equation}
X_{t} = \mu + \alpha _{1}X_{t-1} + \alpha _{2}X_{t-2} \dots + \alpha _{p}X_{t-p}
\end{equation}\]</div>
<p><strong>Case 2: ARIMA(0,0,q) = moving average model</strong>: if the series is stationary but is correlated to the errors of previous values, we can regress using the past forecast errors.</p>
<p>The forecasting equation for this is ARIMA(0,0,1) given by:</p>
<div class="amsmath math notranslate nohighlight" id="equation-28c51415-b3e2-449c-93d5-df899f27c89d">
<span class="eqno">(5)<a class="headerlink" href="#equation-28c51415-b3e2-449c-93d5-df899f27c89d" title="Permalink to this equation"></a></span>\[\begin{equation}
<div class="amsmath math notranslate nohighlight" id="equation-a59746c0-dcdd-479a-8f66-c8db5dda9e46">
<span class="eqno">(5)<a class="headerlink" href="#equation-a59746c0-dcdd-479a-8f66-c8db5dda9e46" title="Permalink to this equation"></a></span>\[\begin{equation}
X_{t} = \varepsilon _{t}+\theta_{1}\varepsilon _{t-1}
\end{equation}\]</div>
<p>or in simillar fashion to p, this can be generalized to ARIMA(0,0,q):</p>
<div class="amsmath math notranslate nohighlight" id="equation-93d25e1f-a55a-41f2-ac5c-02dd4a702fd0">
<span class="eqno">(6)<a class="headerlink" href="#equation-93d25e1f-a55a-41f2-ac5c-02dd4a702fd0" title="Permalink to this equation"></a></span>\[\begin{equation}
<div class="amsmath math notranslate nohighlight" id="equation-547e8dff-1cc9-49c2-8cfa-6cb4c8f325f0">
<span class="eqno">(6)<a class="headerlink" href="#equation-547e8dff-1cc9-49c2-8cfa-6cb4c8f325f0" title="Permalink to this equation"></a></span>\[\begin{equation}
X_{t} = \varepsilon _{t}+\theta_{1}\varepsilon _{t-1}+\cdots +\theta _{q}\varepsilon _{t-q}
\end{equation}\]</div>
<p>where <span class="math notranslate nohighlight">\(\theta_{q}\)</span> is the coefficient at time <span class="math notranslate nohighlight">\(t-q\)</span> of the residual <span class="math notranslate nohighlight">\(\varepsilon _{t-q}\)</span>.</p>
<p><strong>Case 3: ARIMA(0,1,0) = Random Walk</strong>: if the series is non-stationary then the simplest model that we can use is a random walk model, which is given by:</p>
<div class="amsmath math notranslate nohighlight" id="equation-510fc4e5-b6ad-4b75-a495-34189a6991fc">
<span class="eqno">(7)<a class="headerlink" href="#equation-510fc4e5-b6ad-4b75-a495-34189a6991fc" title="Permalink to this equation"></a></span>\[\begin{equation}
<div class="amsmath math notranslate nohighlight" id="equation-7514f418-e28b-454a-be6f-85bb58946e13">
<span class="eqno">(7)<a class="headerlink" href="#equation-7514f418-e28b-454a-be6f-85bb58946e13" title="Permalink to this equation"></a></span>\[\begin{equation}
X_{t} = \mu + X_{t-1}
\end{equation}\]</div>
<p><em>This can then further be generalized to ARIMA(0,d,0) simillar to the first two cases.</em></p>
@ -681,8 +681,8 @@ Critical Values:
Dep. Variable: D.value No. Observations: 99
Model: ARIMA(2, 1, 3) Log Likelihood -251.701
Method: css-mle S.D. of innovations 3.050
Date: Mon, 22 Feb 2021 AIC 517.402
Time: 02:49:41 BIC 535.568
Date: Wed, 24 Feb 2021 AIC 517.402
Time: 14:54:10 BIC 535.568
Sample: 1 HQIC 524.752
=================================================================================
@ -723,8 +723,8 @@ MA.3 -1.1296 +0.7624j 1.3628 0.4055
Dep. Variable: D.value No. Observations: 99
Model: ARIMA(1, 1, 1) Log Likelihood -253.790
Method: css-mle S.D. of innovations 3.119
Date: Mon, 22 Feb 2021 AIC 515.579
Time: 02:49:41 BIC 525.960
Date: Wed, 24 Feb 2021 AIC 515.579
Time: 14:54:11 BIC 525.960
Sample: 1 HQIC 519.779
=================================================================================

View File

@ -769,7 +769,7 @@ lr confidence: 0.720499481096278
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7fbc6a183a50&gt;
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7f9d05727610&gt;
</pre></div>
</div>
<img alt="../_images/02_LinearTrendandMomentumForecasting_25_1.png" src="../_images/02_LinearTrendandMomentumForecasting_25_1.png" />
@ -820,7 +820,7 @@ lr confidence: 0.720499481096278
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>[&lt;matplotlib.lines.Line2D at 0x7fbc6a3d9290&gt;]
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>[&lt;matplotlib.lines.Line2D at 0x7f9d06639950&gt;]
</pre></div>
</div>
<img alt="../_images/02_LinearTrendandMomentumForecasting_28_1.png" src="../_images/02_LinearTrendandMomentumForecasting_28_1.png" />
@ -840,7 +840,7 @@ lr confidence: 0.720499481096278
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7fbc6a425650&gt;
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7f9d06680250&gt;
</pre></div>
</div>
<img alt="../_images/02_LinearTrendandMomentumForecasting_30_1.png" src="../_images/02_LinearTrendandMomentumForecasting_30_1.png" />
@ -923,7 +923,7 @@ The mean absolute error, MAE is: 6.973973107834818
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>[&lt;matplotlib.lines.Line2D at 0x7fbc6a0f38d0&gt;]
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>[&lt;matplotlib.lines.Line2D at 0x7f9d056fbd90&gt;]
</pre></div>
</div>
<img alt="../_images/02_LinearTrendandMomentumForecasting_37_1.png" src="../_images/02_LinearTrendandMomentumForecasting_37_1.png" />
@ -1318,9 +1318,7 @@ The mean absolute error, MAE is: 6.973973107834818
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Using Multivariate Linear Regression, we have the following equation:
</pre></div>
</div>
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>CO2= 0.007805257527747128 x1 + 0.007550947270300682 x2 + 79.69471929115939
CO2= 0.0078052575277471215 x1 + 0.007550947270300686 x2 + 79.6947192911594
</pre></div>
</div>
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>array([95.05092409])
@ -1341,7 +1339,7 @@ The mean absolute error, MAE is: 6.973973107834818
</div>
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Mean Absolute Error: 5.670405502652304
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Mean Absolute Error: 5.670405502652306
</pre></div>
</div>
</div>
@ -1389,7 +1387,7 @@ The mean absolute error, MAE is: 6.973973107834818
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Using Multivariate Linear Regression, we have the following equation:
CO2= 0.00771675835477406 x1 + 0.007406759259298179 x2 + 80.02363225450095
CO2= 0.007716758354774065 x1 + 0.007406759259298173 x2 + 80.02363225450095
</pre></div>
</div>
</div>
@ -1402,7 +1400,7 @@ CO2= 0.00771675835477406 x1 + 0.007406759259298179 x2 + 80.02363225450095
</div>
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Mean Absolute Error: 5.65574080048904
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Mean Absolute Error: 5.655740800489042
</pre></div>
</div>
</div>
@ -1428,7 +1426,7 @@ CO2= 0.00771675835477406 x1 + 0.007406759259298179 x2 + 80.02363225450095
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Using Multivariate Linear Regression, we have the following equation:
CO2= 0.007019810017740837 x1 + 0.007728894654883428 x2 + 80.73020505101512
CO2= 0.007019810017740837 x1 + 0.007728894654883425 x2 + 80.73020505101513
</pre></div>
</div>
</div>
@ -1446,7 +1444,7 @@ CO2= 0.007019810017740837 x1 + 0.007728894654883428 x2 + 80.73020505101512
</div>
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Mean Absolute Error: 5.610220319986727
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Mean Absolute Error: 5.610220319986732
</pre></div>
</div>
</div>
@ -1995,7 +1993,7 @@ CO2= 0.007019810017740837 x1 + 0.007728894654883428 x2 + 80.73020505101512
</div>
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Mean Absolute Error: 0.007450963714321594
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Mean Absolute Error: 0.0074509637143215
</pre></div>
</div>
</div>
@ -2046,7 +2044,7 @@ CO2= 0.007019810017740837 x1 + 0.007728894654883428 x2 + 80.73020505101512
</div>
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Mean Absolute Error: 0.11708568925420203
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Mean Absolute Error: 0.11708568925419785
</pre></div>
</div>
</div>
@ -2112,7 +2110,7 @@ CO2= 0.007019810017740837 x1 + 0.007728894654883428 x2 + 80.73020505101512
</div>
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>The average Mean Absolute Error is for 730 sets of 24-hr data: 2.8599732777663385
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>The average Mean Absolute Error is for 730 sets of 24-hr data: 2.859973277766325
</pre></div>
</div>
</div>
@ -2173,7 +2171,7 @@ CO2= 0.007019810017740837 x1 + 0.007728894654883428 x2 + 80.73020505101512
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7fbc6aea7410&gt;
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7f9d0284ed10&gt;
</pre></div>
</div>
<img alt="../_images/02_LinearTrendandMomentumForecasting_105_1.png" src="../_images/02_LinearTrendandMomentumForecasting_105_1.png" />
@ -2254,7 +2252,7 @@ CO2= 0.007019810017740837 x1 + 0.007728894654883428 x2 + 80.73020505101512
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7fbc5080bf90&gt;
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7f9cec26c890&gt;
</pre></div>
</div>
<img alt="../_images/02_LinearTrendandMomentumForecasting_114_1.png" src="../_images/02_LinearTrendandMomentumForecasting_114_1.png" />
@ -2298,7 +2296,7 @@ CO2= 0.007019810017740837 x1 + 0.007728894654883428 x2 + 80.73020505101512
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7fbc50863110&gt;
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7f9cee5bb550&gt;
</pre></div>
</div>
<img alt="../_images/02_LinearTrendandMomentumForecasting_118_1.png" src="../_images/02_LinearTrendandMomentumForecasting_118_1.png" />
@ -2362,7 +2360,7 @@ CO2= 0.007019810017740837 x1 + 0.007728894654883428 x2 + 80.73020505101512
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7fbc50c988d0&gt;
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7f9cee823490&gt;
</pre></div>
</div>
<img alt="../_images/02_LinearTrendandMomentumForecasting_123_1.png" src="../_images/02_LinearTrendandMomentumForecasting_123_1.png" />

View File

@ -964,113 +964,6 @@ This sample dataset contains weekly data of US Treasury rates from January 1982
</pre></div>
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_html"><div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>p (mbar)</th>
<th>T (degC)</th>
<th>Tpot (K)</th>
<th>Tdew (degC)</th>
<th>rh (%)</th>
<th>VPmax (mbar)</th>
<th>VPact (mbar)</th>
<th>VPdef (mbar)</th>
<th>sh (g/kg)</th>
<th>H2OC (mmol/mol)</th>
<th>rho (g/m**3)</th>
<th>wv (m/s)</th>
<th>max. wv (m/s)</th>
<th>wd (deg)</th>
</tr>
<tr>
<th>Date Time</th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<th>2009-01-01 00:10:00</th>
<td>996.52</td>
<td>-8.02</td>
<td>265.40</td>
<td>-8.90</td>
<td>93.3</td>
<td>3.33</td>
<td>3.11</td>
<td>0.22</td>
<td>1.94</td>
<td>3.12</td>
<td>1307.75</td>
<td>1.03</td>
<td>1.75</td>
<td>152.3</td>
</tr>
<tr>
<th>2009-01-01 00:20:00</th>
<td>996.57</td>
<td>-8.41</td>
<td>265.01</td>
<td>-9.28</td>
<td>93.4</td>
<td>3.23</td>
<td>3.02</td>
<td>0.21</td>
<td>1.89</td>
<td>3.03</td>
<td>1309.80</td>
<td>0.72</td>
<td>1.50</td>
<td>136.1</td>
</tr>
<tr>
<th>2009-01-01 00:30:00</th>
<td>996.53</td>
<td>-8.51</td>
<td>264.91</td>
<td>-9.31</td>
<td>93.9</td>
<td>3.21</td>
<td>3.01</td>
<td>0.20</td>
<td>1.88</td>
<td>3.02</td>
<td>1310.24</td>
<td>0.19</td>
<td>0.63</td>
<td>171.6</td>
</tr>
</tbody>
</table>
</div></div></div>
</div>
<div class="cell docutils container">
<div class="cell_input docutils container">
@ -1172,9 +1065,9 @@ This sample dataset contains weekly data of US Treasury rates from January 1982
\[ y_{2,t} = b_{2,0} - b_{2,1}y_{2,t} + \varphi_{2,1}y_{1,t-1} + \varphi_{2,2}y_{2,t-1} + \varepsilon_{2,t}\]</div>
<p>where both <span class="math notranslate nohighlight">\(y_{1,t}\)</span> and <span class="math notranslate nohighlight">\(y_{2,t}\)</span> are assumed to be stationary, and <span class="math notranslate nohighlight">\(\varepsilon_{1,t}\)</span> and <span class="math notranslate nohighlight">\(\varepsilon_{2,t}\)</span> are the uncorrelated error terms with standard deviation <span class="math notranslate nohighlight">\(\sigma_{1,t}\)</span> and <span class="math notranslate nohighlight">\(\sigma_{2,t}\)</span>, respectively.</p>
<p>In matrix notation:
<img src="bivariate1.png" style="width: 480px;"/></p>
<img alt="../_images/bivariate1.png" src="../_images/bivariate1.png" /></p>
<p>Let
<img src="bivariate2.png" style="width: 500px;"/></p>
<img alt="../_images/bivariate2.png" src="../_images/bivariate2.png" /></p>
<p>then</p>
<div class="math notranslate nohighlight">
\[\mathbf B \mathbf y_t = \mathbf Q_0 + \mathbf Q_1 \mathbf y_{t-1} + \boldsymbol\varepsilon_t\]</div>
@ -2185,7 +2078,7 @@ Wall time: 1.48 s
<h4>IRF in the VAR system for Air Quality<a class="headerlink" href="#irf-in-the-var-system-for-air-quality" title="Permalink to this headline"></a></h4>
<p>Let <span class="math notranslate nohighlight">\(y_{1,t}\)</span>, <span class="math notranslate nohighlight">\(y_{2,t}\)</span> and <span class="math notranslate nohighlight">\(y_{3,t}\)</span> be the time series corresponding to CO signal, NO2 signal, and RH signal, respectively. Consider the moving average representation of the system shown below:</p>
<p>Let
<img src="irf_eq.png" style="width: 350px;"/></p>
<img alt="../_images/irf_eq.png" src="../_images/irf_eq.png" /></p>
<p>Suppose <span class="math notranslate nohighlight">\(u_1\)</span> in the first equation increases by a value of one standard deviation.</p>
<ul class="simple">
<li><p>This shock will change <span class="math notranslate nohighlight">\(y_1\)</span> in the current as well as the future periods.</p></li>

File diff suppressed because it is too large Load Diff

View File

@ -487,17 +487,18 @@
<h3>Visualization of EDM Prediction with a Chaotic Time Series<a class="headerlink" href="#visualization-of-edm-prediction-with-a-chaotic-time-series" title="Permalink to this headline"></a></h3>
<p>Given a chaotic time series, the following sets of images visualize how Empirical Dynamic Modelling tries to predict future values using the whole dataset rather that creating a parametrized equation. Lets look at the following <a class="reference external" href="http://opetchey.github.io/RREEBES/Sugihara_and_May_1990_Nature/Simplex_projection_walkthrough.html">walkthrough</a>. [Petchey, O. 2020]</p>
<p>Given the Time Series below, lets try to predict the possible value or location of the pink dot (the succeeding dot in the time series) in the image below.</p>
<img src="./figures/pic1.jpg" style="width:800px">
<img alt="../_images/pic1.jpg" src="../_images/pic1.jpg" />
<p>Since this is an empirical way of looking at data, (no-prior domain knowledge models, no parametrized equations), we will look at the prior dynamics that happened just before the pink dot (the few data points highlighted by the red lines)</p>
<img src="./figures/pic2.jpg" style="width:800px">
<img alt="../_images/pic2.jpg" src="../_images/pic2.jpg" />
<p>Given that short history of the dynamics, we will look at the “past library” of dynamics using the whole dataset and pick those that look similar to the current dynamics that we have (the most similar ones highlighted by the blue lines)</p>
<img src="./figures/pic3.jpg" style="width:800px">
<img alt="../_images/pic3.jpg" src="../_images/pic3.jpg" />
<p>The succeeding point of the selected prior dynamics with similar pattern or trajectory (blue lines) will have their next point in sequence (highlighted by the green dots)</p>
<img src="./figures/pic4.jpg" style="width:800px">
<img alt="../_images/pic4.jpg" src="../_images/pic4.jpg" />
<p>This green dots will then produce valuable information that the system can infer where the next value in the whole sequence (pink dot) might be be located. One way of doing this is to project the values or the location of the green dots towards the front of the sequence. The correct location is Pink dot, Green dot denotes mean location of past values)</p>
<img src="./figures/pic5.jpg" style="width:800px">
<img alt="../_images/pic5.jpg" src="../_images/pic5.jpg" />
<p>Using a time-shifted representation of the system above, using the lagged values corresponding to the number of points used as history, the red line would represent the latest movement of the dynamics and the blue lines would correspond to the most similar ones that can give valuable information for the prediction.</p>
<img src="./figures/pic6.jpg" style="width:800px"></div>
<img alt="../_images/pic6.jpg" src="../_images/pic6.jpg" />
</div>
<div class="section" id="lorenz-attractor">
<h3>Lorenz Attractor<a class="headerlink" href="#lorenz-attractor" title="Permalink to this headline"></a></h3>
<p>Now lets define a specific chaotic system that we can use as an example in the succeeding discussions.</p>
@ -505,12 +506,12 @@
The Lorenz system is notable for having chaotic solutions for certain parameter values and initial conditions. (“Butterfly Effect”). The term “Butterfly Effect” both signifies the characteristic of the Lorenz system of having possibly huge divergent values even with very small perturbations (“the flaps of a butterfly caused a tornado in the other side of the planet”) and the visual look of the system which looks like butterfly wings at certain angles.</p>
<p>Its a coupled dynamic system consisting of 3 differential equations (think of the axes as variables in a dynamic system).
In an ecological examples, it could be a Resource-Prey-Predator dynamic system.</p>
<div class="amsmath math notranslate nohighlight" id="equation-ea930747-5618-44dd-afbc-8b79b4a32e4e">
<span class="eqno">(8)<a class="headerlink" href="#equation-ea930747-5618-44dd-afbc-8b79b4a32e4e" title="Permalink to this equation"></a></span>\[\begin{align} \frac{dX}{dt} = \alpha Y - \alpha X \end{align}\]</div>
<div class="amsmath math notranslate nohighlight" id="equation-3e1e06ba-0480-4cc3-ad20-08738b4478da">
<span class="eqno">(9)<a class="headerlink" href="#equation-3e1e06ba-0480-4cc3-ad20-08738b4478da" title="Permalink to this equation"></a></span>\[\begin{align} \frac{dY}{dt} = -XZ + \rho X - Y \end{align}\]</div>
<div class="amsmath math notranslate nohighlight" id="equation-ededbd03-8cb5-4afb-8efa-eebd6ac20f8b">
<span class="eqno">(10)<a class="headerlink" href="#equation-ededbd03-8cb5-4afb-8efa-eebd6ac20f8b" title="Permalink to this equation"></a></span>\[\begin{align} \frac{dZ}{dt} = XY - \beta Z \end{align}\]</div>
<div class="amsmath math notranslate nohighlight" id="equation-58145e9d-c307-46ef-9ee4-528338c0d631">
<span class="eqno">(8)<a class="headerlink" href="#equation-58145e9d-c307-46ef-9ee4-528338c0d631" title="Permalink to this equation"></a></span>\[\begin{align} \frac{dX}{dt} = \alpha Y - \alpha X \end{align}\]</div>
<div class="amsmath math notranslate nohighlight" id="equation-ba8301e7-7293-4b39-b7a6-96012d598c1d">
<span class="eqno">(9)<a class="headerlink" href="#equation-ba8301e7-7293-4b39-b7a6-96012d598c1d" title="Permalink to this equation"></a></span>\[\begin{align} \frac{dY}{dt} = -XZ + \rho X - Y \end{align}\]</div>
<div class="amsmath math notranslate nohighlight" id="equation-b6b43485-944a-4255-a3f9-1ab70f041f14">
<span class="eqno">(10)<a class="headerlink" href="#equation-b6b43485-944a-4255-a3f9-1ab70f041f14" title="Permalink to this equation"></a></span>\[\begin{align} \frac{dZ}{dt} = XY - \beta Z \end{align}\]</div>
<div class="cell docutils container">
<div class="cell_input docutils container">
<div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="c1"># Visualize Lorenz Attractor [Piziniacco. L, 2020]</span>
@ -571,9 +572,10 @@ In an ecological examples, it could be a Resource-Prey-Predator dynamic system.<
<p>In the visualization above, we see the that dynamic system (Lorenz) was plotted using the each of the point (or system states) computed from the differential equations. From here, we can define system states as points in a high-dimensional system.</p>
<p>Conversely, given a graph of a dynamic system, we can also extract the individual components or states of the system by projecting the dynamic system into on the axes. The axes can be thought as the fundamental state variables in a dynamic system. In an ecosystem, for example, these variables can correspond to population abundances, resources, or environmental conditions.</p>
<p>As an illustration, we can “extract” the values of the time series in one of the states (the Z-component for example) in the Lorenz Attractor above by projecting the 3D plot into just the Z-axis (which would just be similar to the <strong>z_out</strong> component in the code. Although time-series can represent independent state variables, in general, each time series is an observation function of the system state that can convolve several different state variables.</p>
<img src="./figures/projection1.jpg" style="width:600px">
<img alt="../_images/projection1.jpg" src="../_images/projection1.jpg" />
<p>We can also extend the same concept to other state variables by projecting the high-dimensional graph into its individual axes.</p>
<img src="./figures/projection3.jpg" style="width:800px"></div>
<img alt="../_images/projection3.jpg" src="../_images/projection3.jpg" />
</div>
</div>
<div class="section" id="takens-theorem-state-space-reconstruction-ssr">
<h2>Takens Theorem / State-Space Reconstruction (SSR)<a class="headerlink" href="#takens-theorem-state-space-reconstruction-ssr" title="Permalink to this headline"></a></h2>
@ -637,7 +639,8 @@ Takens Theorem states that Mx preserves a number of important characteristics
<li><p>the Lyanpunov exponents</p></li>
</ul>
<p>There is also a 1-to-1 mapping betweent the original manifold and the shadow manifold. These enables us to reconstruct some of the properties of the original manifold by only using a lagged-time series of one of the axes/state variables</p>
<img src="./figures/takens reconstruction.jpg" style="width:300px"></div>
<img alt="05_SimplexandSmapProjections/./figures/takensreconstruction.jpg" src="05_SimplexandSmapProjections/./figures/takensreconstruction.jpg" />
</div>
<div class="section" id="simplex-projection">
<h2>Simplex Projection<a class="headerlink" href="#simplex-projection" title="Permalink to this headline"></a></h2>
<ul class="simple">
@ -688,7 +691,8 @@ such as:</p>
<li><p>mean absolute error (MAE) between the observation</p></li>
<li><p>forecast results (i.e., comparing <span class="math notranslate nohighlight">\(Y(\mathbf{t_k} + 1)\)</span> with <span class="math notranslate nohighlight">\(\hat{Y}(\mathbf{t_k} +1)) \)</span></p></li>
</ul>
<img src="./figures/simplex.jpg" style="width:300px"></div>
<img alt="../_images/simplex.jpg" src="../_images/simplex.jpg" />
</div>
<div class="section" id="example-1-prediction-with-the-simplex-algorithm-chaotic-map-data">
<h3>Example 1: Prediction with the Simplex Algorithm (Chaotic Map Data)<a class="headerlink" href="#example-1-prediction-with-the-simplex-algorithm-chaotic-map-data" title="Permalink to this headline"></a></h3>
<div class="cell docutils container">
@ -700,15 +704,17 @@ such as:</p>
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Requirement already satisfied: pyEDM in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (1.7.5.0)
Requirement already satisfied: pybind11&gt;=2.3 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from pyEDM) (2.6.2)
Requirement already satisfied: pandas&gt;=0.20.3 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from pyEDM) (1.2.2)
Requirement already satisfied: matplotlib&gt;=2.2 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from pyEDM) (3.3.4)
Requirement already satisfied: pybind11&gt;=2.3 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from pyEDM) (2.6.2)
Requirement already satisfied: numpy&gt;=1.15 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from matplotlib&gt;=2.2-&gt;pyEDM) (1.20.0)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,&gt;=2.0.3 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from matplotlib&gt;=2.2-&gt;pyEDM) (2.4.7)
Requirement already satisfied: cycler&gt;=0.10 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from matplotlib&gt;=2.2-&gt;pyEDM) (0.10.0)
Requirement already satisfied: pillow&gt;=6.2.0 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from matplotlib&gt;=2.2-&gt;pyEDM) (8.1.0)
Requirement already satisfied: kiwisolver&gt;=1.0.1 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from matplotlib&gt;=2.2-&gt;pyEDM) (1.3.1)
Requirement already satisfied: python-dateutil&gt;=2.1 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from matplotlib&gt;=2.2-&gt;pyEDM) (2.8.1)
Requirement already satisfied: cycler&gt;=0.10 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from matplotlib&gt;=2.2-&gt;pyEDM) (0.10.0)
</pre></div>
</div>
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,&gt;=2.0.3 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from matplotlib&gt;=2.2-&gt;pyEDM) (2.4.7)
Requirement already satisfied: kiwisolver&gt;=1.0.1 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from matplotlib&gt;=2.2-&gt;pyEDM) (1.3.1)
Requirement already satisfied: numpy&gt;=1.15 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from matplotlib&gt;=2.2-&gt;pyEDM) (1.20.0)
Requirement already satisfied: pillow&gt;=6.2.0 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from matplotlib&gt;=2.2-&gt;pyEDM) (8.1.0)
Requirement already satisfied: six in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from cycler&gt;=0.10-&gt;matplotlib&gt;=2.2-&gt;pyEDM) (1.15.0)
Requirement already satisfied: pytz&gt;=2017.3 in /Users/prince.javier/opt/anaconda3/envs/atsa/lib/python3.7/site-packages (from pandas&gt;=0.20.3-&gt;pyEDM) (2021.1)
</pre></div>
@ -736,8 +742,8 @@ Requirement already satisfied: pytz&gt;=2017.3 in /Users/prince.javier/opt/anaco
<div class="section" id="chaotic-tentmap-data-generation">
<h3>Chaotic TentMap Data Generation<a class="headerlink" href="#chaotic-tentmap-data-generation" title="Permalink to this headline"></a></h3>
<p>TentMap generated from the following function:</p>
<div class="amsmath math notranslate nohighlight" id="equation-d14e57c4-7b57-4543-a6c7-666672717317">
<span class="eqno">(11)<a class="headerlink" href="#equation-d14e57c4-7b57-4543-a6c7-666672717317" title="Permalink to this equation"></a></span>\[\begin{equation}
<div class="amsmath math notranslate nohighlight" id="equation-0cbdb4a4-29eb-4568-ba12-b019df1e7e78">
<span class="eqno">(11)<a class="headerlink" href="#equation-0cbdb4a4-29eb-4568-ba12-b019df1e7e78" title="Permalink to this equation"></a></span>\[\begin{equation}
\mathbf{x_\mathbf{(t+1)}}=
\begin{cases}
2\mathbf{x_t} &amp; 0.5 &gt; \mathbf{x_t} &gt; 0 \\
@ -746,7 +752,8 @@ Requirement already satisfied: pytz&gt;=2017.3 in /Users/prince.javier/opt/anaco
\end{equation}\]</div>
<p>First difference was taken: <span class="math notranslate nohighlight">\(\mathbf{\triangle_t} = \mathbf{x_\mathbf{(t+1)}}- \mathbf{x_t} \)</span></p>
<p>Sample visualization of a tentmap is shown below: [11]</p>
<img src="./figures/tentmap.jpg" style="width:350px"><div class="cell docutils container">
<img alt="../_images/tentmap.jpg" src="../_images/tentmap.jpg" />
<div class="cell docutils container">
<div class="cell_input docutils container">
<div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="c1"># generate TentMap timeseries</span>
@ -800,27 +807,27 @@ Requirement already satisfied: pytz&gt;=2017.3 in /Users/prince.javier/opt/anaco
<tr>
<th>0</th>
<td>0</td>
<td>0.436724</td>
<td>-0.317929</td>
</tr>
<tr>
<th>1</th>
<td>1</td>
<td>-0.621780</td>
<td>0.454183</td>
</tr>
<tr>
<th>2</th>
<td>2</td>
<td>0.251853</td>
<td>-0.726555</td>
</tr>
<tr>
<th>3</th>
<td>3</td>
<td>0.487632</td>
<td>0.182084</td>
</tr>
<tr>
<th>4</th>
<td>4</td>
<td>-0.974777</td>
<td>0.363986</td>
</tr>
</tbody>
</table>
@ -858,11 +865,11 @@ Requirement already satisfied: pytz&gt;=2017.3 in /Users/prince.javier/opt/anaco
</div>
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>ADF Statistic: -12.471919
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>ADF Statistic: -11.825553
p-value: 0.000000
Critical Values:
1%: -3.437
5%: -2.864
5%: -2.865
10%: -2.568
</pre></div>
</div>
@ -1078,16 +1085,16 @@ Important properties of many natural systems is that nearby trajectories eventua
<div class="cell_output docutils container">
<img alt="../_images/05_Empirical Dynamic Modelling (Simplex and SMap_Projections)_32_0.png" src="../_images/05_Empirical Dynamic Modelling (Simplex and SMap_Projections)_32_0.png" />
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span> E rho
0 1.0 0.749869
1 2.0 0.994908
2 3.0 0.987766
3 4.0 0.972111
4 5.0 0.925278
5 6.0 0.804946
6 7.0 0.713870
7 8.0 0.653457
8 9.0 0.578866
9 10.0 0.534057
0 1.0 0.812343
1 2.0 0.996088
2 3.0 0.980800
3 4.0 0.947798
4 5.0 0.863612
5 6.0 0.766514
6 7.0 0.579716
7 8.0 0.504249
8 9.0 0.475404
9 10.0 0.402229
</pre></div>
</div>
</div>
@ -1174,16 +1181,16 @@ In the plot below, using Optimal Embedding E=2, we can plot the decreasing predi
<div class="cell_output docutils container">
<img alt="../_images/05_Empirical Dynamic Modelling (Simplex and SMap_Projections)_40_0.png" src="../_images/05_Empirical Dynamic Modelling (Simplex and SMap_Projections)_40_0.png" />
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span> E rho
0 1.0 -0.017961
1 2.0 -0.002996
2 3.0 0.000203
3 4.0 0.055508
4 5.0 0.092762
5 6.0 0.088180
6 7.0 0.043276
7 8.0 0.067235
8 9.0 0.009978
9 10.0 0.004450
0 1.0 -0.013664
1 2.0 -0.035236
2 3.0 0.013915
3 4.0 0.007673
4 5.0 0.040837
5 6.0 -0.020455
6 7.0 -0.012874
7 8.0 0.003359
8 9.0 0.020575
9 10.0 0.033107
</pre></div>
</div>
</div>
@ -1225,7 +1232,8 @@ comparing the performance of equivalent linear
(h = 0) and nonlinear (h &gt; 0) S-map models, one can
distinguish nonlinear dynamical systems from linear
stochastic systems.</p>
<img src="./figures/smap.jpg" style="width:500px"><div class="section" id="compare-s-map-performance-of-a-logistic-map-chaotic-and-gaussian-red-noise">
<img alt="../_images/smap.jpg" src="../_images/smap.jpg" />
<div class="section" id="compare-s-map-performance-of-a-logistic-map-chaotic-and-gaussian-red-noise">
<h3>Compare S-Map Performance of a Logistic Map (Chaotic) and Gaussian Red Noise<a class="headerlink" href="#compare-s-map-performance-of-a-logistic-map-chaotic-and-gaussian-red-noise" title="Permalink to this headline"></a></h3>
<p>In the steps below, we will try to distinguish differences between Chaotic Signals and Gaussian Red Noise, which may look similar visually.</p>
<div class="cell docutils container">
@ -1251,7 +1259,7 @@ stochastic systems.</p>
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7fc3db6295d0&gt;
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7fc6e7191590&gt;
</pre></div>
</div>
<img alt="../_images/05_Empirical Dynamic Modelling (Simplex and SMap_Projections)_44_1.png" src="../_images/05_Empirical Dynamic Modelling (Simplex and SMap_Projections)_44_1.png" />
@ -1731,7 +1739,7 @@ sufficient</p></li>
<ul class="simple">
<li><p>top k = <span class="math notranslate nohighlight">\(\sqrt(19)\)</span>, ~ top-4 or top-5 views based on forecasting skill</p></li>
</ul>
<img src="./figures/lorenz.jpg" style="width:500px">
<img alt="05_SimplexandSmapProjections/./figures/lorenz.jpg" src="05_SimplexandSmapProjections/./figures/lorenz.jpg" />
</div>
</div>
<div class="section" id="in-the-next-section">

View File

@ -521,20 +521,20 @@
</div>
<div class="section" id="attractors">
<h3>Attractors<a class="headerlink" href="#attractors" title="Permalink to this headline"></a></h3>
<img src=https://fromsystosys.netlify.com/img/lorenz_custom_pers_small.gif>
<img alt="https://fromsystosys.netlify.com/img/lorenz_custom_pers_small.gif" src="https://fromsystosys.netlify.com/img/lorenz_custom_pers_small.gif" />
<p>An attractor is a “space” of states that the system tends to get attracted to as time goes on. When attractors can be thought of as curved spaces, they are called “manifolds.” I like to think of attractors as a way to summarize our system, like an embedding layer in a neural network architecture.</p>
<p><em>Q: What do you think is the simplest type of attractor?</em></p>
</div>
<div class="section" id="takens-embedding-theorem-and-shadow-manifolds">
<h3>Takens Embedding Theorem and Shadow Manifolds<a class="headerlink" href="#takens-embedding-theorem-and-shadow-manifolds" title="Permalink to this headline"></a></h3>
<img src = https://www.researchgate.net/profile/Pablo_Verdes/publication/51595532/figure/fig4/AS:305687352627206@1449892952960/Color-online-Schematic-representation-of-the-measurement-process-and-reconstruction-of.png width=500>
<a class="reference internal image-reference" href="https://www.researchgate.net/profile/Pablo_Verdes/publication/51595532/figure/fig4/AS:305687352627206&#64;1449892952960/Color-online-Schematic-representation-of-the-measurement-process-and-reconstruction-of.png"><img alt="https://www.researchgate.net/profile/Pablo_Verdes/publication/51595532/figure/fig4/AS:305687352627206&#64;1449892952960/Color-online-Schematic-representation-of-the-measurement-process-and-reconstruction-of.png" src="https://www.researchgate.net/profile/Pablo_Verdes/publication/51595532/figure/fig4/AS:305687352627206&#64;1449892952960/Color-online-Schematic-representation-of-the-measurement-process-and-reconstruction-of.png" style="width: 500px;" /></a>
<p>Uzal, Lucas &amp; Grinblat, G &amp; Verdes, Pablo. (2011). Optimal reconstruction of dynamical systems: A noise amplification approach. Physical review. E, Statistical, nonlinear, and soft matter physics. 84. 016223. 10.1103/PhysRevE.84.016223.</p>
<p>From the term “shadow”, shadow manifolds are “projections” of the true system manifold on some variable <span class="math notranslate nohighlight">\(X\)</span>. What Takens theorem tells us is if <span class="math notranslate nohighlight">\(X\)</span> belongs to a system <span class="math notranslate nohighlight">\(S\)</span> then we can generate a shadow manifold of the true manifold <span class="math notranslate nohighlight">\(M_s\)</span> using vectors of lagged (historical) values of <span class="math notranslate nohighlight">\(X\)</span>. The points in this shadow manifold <span class="math notranslate nohighlight">\(M_x\)</span> will have a 1:1 correspondence with the points in the true (unknown) manifold <span class="math notranslate nohighlight">\(M_s\)</span>.</p>
</div>
</div>
<div class="section" id="overview-of-ccm">
<h2>Overview of CCM<a class="headerlink" href="#overview-of-ccm" title="Permalink to this headline"></a></h2>
<img src=https://media.springernature.com/lw785/springer-static/image/chp%3A10.1007%2F978-3-319-58895-7_27/MediaObjects/429072_1_En_27_Fig1_HTML.gif width=400>
<a class="reference internal image-reference" href="https://media.springernature.com/lw785/springer-static/image/chp%3A10.1007%2F978-3-319-58895-7_27/MediaObjects/429072_1_En_27_Fig1_HTML.gif"><img alt="https://media.springernature.com/lw785/springer-static/image/chp%3A10.1007%2F978-3-319-58895-7_27/MediaObjects/429072_1_En_27_Fig1_HTML.gif" src="https://media.springernature.com/lw785/springer-static/image/chp%3A10.1007%2F978-3-319-58895-7_27/MediaObjects/429072_1_En_27_Fig1_HTML.gif" style="width: 400px;" /></a>
<p>Tsonis A.A., Deyle E.R., Ye H., Sugihara G. (2018) Convergent Cross Mapping: Theory and an Example. In: Tsonis A. (eds) Advances in Nonlinear Geosciences. Springer, Cham. https://doi.org/10.1007/978-3-319-58895-7_27</p>
<div class="section" id="cross-mapping">
<h3>Cross Mapping<a class="headerlink" href="#cross-mapping" title="Permalink to this headline"></a></h3>
@ -622,7 +622,7 @@
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7f9567a14e90&gt;
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7f8ad660ec10&gt;
</pre></div>
</div>
<img alt="../_images/ccm_sugihara_11_1.png" src="../_images/ccm_sugihara_11_1.png" />
@ -644,7 +644,7 @@
</div>
<div class="cell_output docutils container">
<img alt="../_images/ccm_sugihara_12_0.png" src="../_images/ccm_sugihara_12_0.png" />
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>(0.005395539983091767, 0.8646878689811068)
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>(0.005395539983091772, 0.8646878689811068)
</pre></div>
</div>
</div>
@ -1075,7 +1075,7 @@ def plot_ccm_correls(self):
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7f9552ac0bd0&gt;
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7f8ac124b4d0&gt;
</pre></div>
</div>
<img alt="../_images/ccm_sugihara_33_1.png" src="../_images/ccm_sugihara_33_1.png" />
@ -1210,7 +1210,7 @@ def plot_ccm_correls(self):
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7f9552a2b950&gt;
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7f8ac12a0c10&gt;
</pre></div>
</div>
<img alt="../_images/ccm_sugihara_41_1.png" src="../_images/ccm_sugihara_41_1.png" />
@ -1233,7 +1233,7 @@ def plot_ccm_correls(self):
</div>
<div class="cell_output docutils container">
<img alt="../_images/ccm_sugihara_42_0.png" src="../_images/ccm_sugihara_42_0.png" />
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>(0.24813484131913205, 1.6963889777956713e-15)
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>(0.24813484131913208, 1.6963889777954784e-15)
</pre></div>
</div>
</div>
@ -1806,7 +1806,7 @@ Y-&gt;X r 0.2 p value 0.0
<div class="section" id="dam-system-inferred-causal-relationships">
<h3>Dam System Inferred Causal Relationships<a class="headerlink" href="#dam-system-inferred-causal-relationships" title="Permalink to this headline"></a></h3>
<p>Based on the results above, we can infer a network of causal relationships. Relationships with unclear convergence are shown in broken lines while relationships with clear convergence are shown in solid lines.
<img src='media/dam_inferred_causality.png' width="400"/></p>
<a class="reference internal" href="../_images/dam_inferred_causality.png"><img alt="../_images/dam_inferred_causality.png" src="../_images/dam_inferred_causality.png" style="width: 400px;" /></a></p>
</div>
<div class="section" id="jena-climate-data">
<h3>Jena climate data<a class="headerlink" href="#jena-climate-data" title="Permalink to this headline"></a></h3>
@ -2034,7 +2034,7 @@ Y-&gt;X r 0.69 p value 0.0
</div>
<div class="section" id="inferred-climate-system-causal-relationships">
<h3>Inferred Climate System Causal Relationships<a class="headerlink" href="#inferred-climate-system-causal-relationships" title="Permalink to this headline"></a></h3>
<img src='media/climate_causality.png' width="400"/>
<a class="reference internal image-reference" href="../_images/climate_causality.png"><img alt="../_images/climate_causality.png" src="../_images/climate_causality.png" style="width: 400px;" /></a>
<p>Based on the results above, we can infer a network of causal relationships. There seems to be a strong feedback loops between all three elements in the system. Upon checking past researches on the topic, we find that there are papers that support the seemingly unintuitive interactions in the inferred causal network:</p>
<ul class="simple">
<li><p><a class="reference external" href="https://www.pnas.org/content/113/3/514">Evolution of South Atlantic density and chemical stratification across the last deglaciation</a></p></li>

View File

@ -453,7 +453,7 @@
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>(0.2775286246309841, 5.4283283439476714e-126)
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>(0.27752862463098416, 5.428328343942734e-126)
</pre></div>
</div>
</div>
@ -505,7 +505,7 @@
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Y-&gt;X r 0.02 p value 0.0775
</pre></div>
</div>
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7fad1e31db50&gt;
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>&lt;matplotlib.legend.Legend at 0x7fd2ae393690&gt;
</pre></div>
</div>
<img alt="../_images/using_causal_ccm_package_12_3.png" src="../_images/using_causal_ccm_package_12_3.png" />

View File

@ -505,7 +505,7 @@
</div>
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Maximum at: 0.236 (in $s$)
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Maximum at: 0.25 (in $s$)
</pre></div>
</div>
<img alt="../_images/07_CrosscorrelationsFourierTransformandWaveletTransform_10_1.png" src="../_images/07_CrosscorrelationsFourierTransformandWaveletTransform_10_1.png" />
@ -859,8 +859,8 @@ Critical Values:
<div class="section" id="the-fourier-transform">
<h2>The Fourier Transform:<a class="headerlink" href="#the-fourier-transform" title="Permalink to this headline"></a></h2>
<p>Transforming a signal from the time domain into the frequency (<span class="math notranslate nohighlight">\(\omega\)</span>) domain using this method is called the \textbf{Fourier Transform (FT)}. The FT is given by:</p>
<div class="amsmath math notranslate nohighlight" id="equation-7881af04-0fcd-48b7-9292-d9e8350fb3e3">
<span class="eqno">(12)<a class="headerlink" href="#equation-7881af04-0fcd-48b7-9292-d9e8350fb3e3" title="Permalink to this equation"></a></span>\[\begin{align} \hat{y}(\omega) = \int_{-\infty}^{\infty}{y(t)e^{-2\pi i \omega t}d\omega} \end{align}\]</div>
<div class="amsmath math notranslate nohighlight" id="equation-c8718931-076c-4ef3-93fd-7ad7a482dd42">
<span class="eqno">(12)<a class="headerlink" href="#equation-c8718931-076c-4ef3-93fd-7ad7a482dd42" title="Permalink to this equation"></a></span>\[\begin{align} \hat{y}(\omega) = \int_{-\infty}^{\infty}{y(t)e^{-2\pi i \omega t}d\omega} \end{align}\]</div>
<p>To better understand the FT, let us take a look at some of its applications.</p>
<div class="section" id="ft-of-a-pure-signal">
<h3>FT of a Pure Signal<a class="headerlink" href="#ft-of-a-pure-signal" title="Permalink to this headline"></a></h3>
@ -974,8 +974,8 @@ Critical Values:
<h2>Noise Filtering<a class="headerlink" href="#noise-filtering" title="Permalink to this headline"></a></h2>
<p>Real time series data are never free from noise making it tricky to find the real dynamics of whatever it is measuring. We may end up trying to model noise and end up overlooking the real behavior of the time series.</p>
<p>Thankfully, we can manipulate time series data in the frequency domain to eliminate one of the most types of noise - white noise. White noise pervades time series data and by definition, has components across all frequencies. Usually, a time series with white noise is represented as:</p>
<div class="amsmath math notranslate nohighlight" id="equation-26437f41-be18-4069-b5be-9c527d96c09a">
<span class="eqno">(13)<a class="headerlink" href="#equation-26437f41-be18-4069-b5be-9c527d96c09a" title="Permalink to this equation"></a></span>\[\begin{align} y(t) = s(t) + v(t) \end{align}\]</div>
<div class="amsmath math notranslate nohighlight" id="equation-05016bf0-b61f-4fab-9711-767b0867bd08">
<span class="eqno">(13)<a class="headerlink" href="#equation-05016bf0-b61f-4fab-9711-767b0867bd08" title="Permalink to this equation"></a></span>\[\begin{align} y(t) = s(t) + v(t) \end{align}\]</div>
<p>where <span class="math notranslate nohighlight">\(s(t)\)</span> is the true signal we want to retrieve from <span class="math notranslate nohighlight">\(y(t)\)</span> and <span class="math notranslate nohighlight">\(v(t)\)</span> is white noise we want to eliminate. We simulate this below by adding white noise to the signal.</p>
<div class="section" id="filtering-by-energy-level">
<h3>Filtering by Energy Level<a class="headerlink" href="#filtering-by-energy-level" title="Permalink to this headline"></a></h3>
@ -1040,41 +1040,42 @@ Critical Values:
</div>
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Peaks at: [ 0.4 1.4 2. 2.6 3.2 4.2 4.8 6.4 7. 7.4 8. 8.6
9.2 9.8 10.4 10.8 11.8 12.2 12.8 13.6 14. 15. 15.6 16.2
17. 18. 18.4 19.2 19.6 20.2 21. 21.6 22.2 22.6 23.2 23.8
24.6 25.2 25.6 26.4 26.8 27.4 28. 28.8 29.4 30.4 30.8 31.2
31.6 32.4 33.2 33.6 34.2 34.6 35.2 35.8 36.6 37.6 38.2 38.8
39.4 40.2 41. 41.4 42.2 43. 43.8 44.2 44.6 45.2 45.8 46.4
46.8 47.4 48.2 48.8 49.6 50.8 51.2 52.2 53. 53.4 53.8 54.4
55.2 55.6 56. 56.4 56.8 57.4 57.8 58.4 59.4 59.8 60.4 61.
61.6 62. 62.6 63.2 64. 64.6 65.2 65.8 66.4 67. 67.8 69.
69.6 70. 71.4 71.8 72.8 73.2 73.6 74. 75.2 75.8 76.6 77.
77.8 78.6 79. 79.8 80.6 81.2 81.6 82.4 82.8 83.2 83.6 84.8
85.2 85.6 86. 86.6 87.2 87.6 88.2 88.8 89.2 90. 90.6 91.2
91.6 92.2 92.8 93.4 94. 94.8 95.6 96. 96.6 97.2 97.6 98.
98.6 99. 99.8 100.2 101.2 102. 102.8 103.2 103.8 104.2 104.6 105.
105.6 106. 106.4 107. 107.6 108. 108.8 109.4 110. 111.2 112.2 112.8
113.6 114.2 114.6 115.6 116.2 116.6 117. 117.4 118. 118.6 119.2 120.
120.4 121.4 121.8 122.4 123. 123.8 124.4 124.8 125.4 126.2 126.8 127.4
128.4 129. 129.4 129.8 130.4 131. 132. 132.4 133.2 133.8 134.2 134.8
135.2 136. 136.4 137. 137.6 138. 138.6 139.2 139.6 140.2 140.6 141.6
142. 142.4 143.8 144.6 145.4 146. 146.8 147.2 148. 148.4 148.8 149.4
149.8 150.4 150.8 151.4 152.2 153. 153.4 153.8 154.4 155. 155.4 156.
156.6 157.2 158. 158.4 159. 159.8 160.2 161. 161.4 162.2 163. 163.4
164. 164.6 165. 165.8 166.2 167. 167.6 168. 168.4 168.8 169.2 169.6
170. 170.4 171. 172. 172.6 173. 174.2 174.6 175. 175.4 176.2 176.6
177.2 177.8 178.2 178.8 179.6 180. 180.4 181.4 182. 182.8 183.2 183.6
184.4 185. 185.4 186. 186.8 187.2 187.6 188.4 189.2 189.6 190.2 190.8
191.2 192. 192.4 192.8 193.6 194. 194.8 195.4 196.2 196.8 197.8 198.4
199. 199.4 200.4 200.8 201.2 201.8 202.4 203. 203.6 204. 204.8 205.2
205.6 206.2 206.8 207.6 208.4 208.8 209.4 210. 210.6 211.6 212. 212.4
212.8 213.6 214. 214.6 215.2 216. 216.8 217.2 217.6 218.4 218.8 219.2
219.6 220.6 221.4 221.8 222.4 222.8 223.6 224.2 225.8 226.2 226.6 227.4
228. 228.4 228.8 229.4 230. 230.6 231. 231.6 232. 232.6 233. 234.
234.8 235.2 235.6 236.8 237.2 238.2 238.8 239.2 239.6 240.4 241.2 241.6
242.2 242.6 243.2 243.6 244. 244.6 245. 245.8 246.6 247. 247.6 248.
248.8 249.6]
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Peaks at: [ 0.8 1.2 1.6 2. 2.6 3.2 4. 4.6 5. 5.8 6.2 7.
7.6 8.2 8.8 9.8 11. 11.6 12.6 13.6 14.2 15. 15.4 16.2
17. 17.4 18.4 18.8 19.4 20. 20.6 21.4 21.8 22.6 23.2 23.6
24. 24.6 25.2 26. 26.4 27.2 27.6 28. 28.4 29.2 29.6 30.4
31.2 31.8 32.4 33.2 33.8 34.2 34.6 35. 35.4 36.2 36.8 37.6
38.4 39.4 39.8 40.2 40.6 41. 41.4 41.8 42.2 42.6 43.4 44.
44.4 44.8 45.8 46.6 47.4 48.2 48.6 49. 49.4 50. 51. 51.6
52. 52.4 53.8 54.2 54.6 55.4 55.8 56.4 57. 57.6 58. 58.4
59. 59.6 60.2 60.6 61.4 62. 63. 63.6 64.4 64.8 65.4 65.8
66.2 66.6 67.2 67.8 68.4 69. 69.4 70.2 70.8 71.2 71.8 72.2
72.8 73.4 73.8 74.8 75.4 76.4 77. 77.4 78. 78.4 79. 79.4
79.8 80.2 80.6 81.4 82. 82.6 83.2 83.8 84.4 84.8 85.4 85.8
86.4 87.4 87.8 88.6 89.4 90.2 91.2 91.6 92.2 93.2 93.8 94.2
94.8 95.2 95.6 96.4 96.8 97.6 98. 98.8 99.6 100.2 100.8 101.6
102. 102.4 103. 104. 104.6 105.2 106. 106.4 106.8 107.2 107.6 108.2
109.4 110. 110.8 111.2 111.8 112.4 113. 113.8 114.2 114.8 115.2 115.6
116.2 116.6 117. 117.8 118.4 118.8 119.4 120. 120.8 121.6 122.4 123.2
124.4 125.2 126. 126.8 127.4 128. 128.6 129. 129.6 130.2 130.6 131.
131.4 131.8 132.6 133.2 133.6 134.2 134.8 135.2 135.6 136. 136.6 137.2
137.8 138.2 139. 140. 140.4 140.8 141.6 142.4 143.2 143.6 144. 144.4
144.8 145.2 145.8 146.4 146.8 147.2 147.6 148.4 149.2 149.8 150.2 150.6
151.4 151.8 152.4 153. 153.6 154.6 155. 155.8 156.4 156.8 157.4 158.
158.6 159.2 159.8 160.6 161.4 161.8 162.2 162.6 163. 163.6 164.6 165.
165.8 166.4 166.8 167.2 167.8 168.4 169.2 170.4 170.8 171.4 172.2 172.8
174. 174.6 175.2 176. 176.4 176.8 177.4 178.2 178.8 179.2 179.8 180.2
180.8 181.2 182. 182.6 183. 183.8 184.2 184.6 185. 185.6 186.2 186.8
187.2 187.6 188.2 188.6 189.2 189.6 190.4 191. 191.6 192. 192.6 193.2
193.6 194. 194.8 195.2 195.8 196.2 197. 197.4 198.2 198.6 199.6 200.
200.4 200.8 201.2 201.8 202.2 202.6 203.2 203.8 204.2 205. 205.4 205.8
206.6 207. 207.6 208. 208.6 209.2 209.6 210.2 210.6 211.2 212.2 212.8
213.2 213.8 214.2 215. 215.6 216.2 216.8 217.6 218. 218.6 219.2 220.2
221. 221.6 222. 222.4 222.8 223.4 223.8 224.2 224.8 225.4 226. 226.4
227.2 227.8 228.4 229.2 229.6 230.2 230.8 231.4 231.8 232.4 233.2 233.6
234.8 235.6 236.6 237.2 237.6 238.4 239. 239.6 240. 240.4 241. 241.6
242.2 242.8 243.2 243.8 244.2 244.6 245.4 245.8 246.6 247.6 248.2 248.8
249.4]
</pre></div>
</div>
<img alt="../_images/07_CrosscorrelationsFourierTransformandWaveletTransform_56_1.png" src="../_images/07_CrosscorrelationsFourierTransformandWaveletTransform_56_1.png" />
@ -1092,7 +1093,7 @@ Critical Values:
</div>
</div>
<div class="cell_output docutils container">
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Peaks at: [ 17. 60.4 67. 224.2 246.8]
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>Peaks at: [ 9.8 17. ]
</pre></div>
</div>
</div>
@ -1346,7 +1347,7 @@ Critical Values:
</tr>
</tbody>
</table>
</div></div><div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>[&lt;matplotlib.lines.Line2D at 0x7fe67a606350&gt;]
</div></div><div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>[&lt;matplotlib.lines.Line2D at 0x7f9976353550&gt;]
</pre></div>
</div>
<img alt="../_images/07_CrosscorrelationsFourierTransformandWaveletTransform_71_2.png" src="../_images/07_CrosscorrelationsFourierTransformandWaveletTransform_71_2.png" />
@ -1364,7 +1365,7 @@ Critical Values:
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>[&lt;matplotlib.lines.Line2D at 0x7fe67a89a810&gt;]
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>[&lt;matplotlib.lines.Line2D at 0x7f9967cc3150&gt;]
</pre></div>
</div>
<img alt="../_images/07_CrosscorrelationsFourierTransformandWaveletTransform_73_1.png" src="../_images/07_CrosscorrelationsFourierTransformandWaveletTransform_73_1.png" />
@ -1381,7 +1382,7 @@ Critical Values:
</div>
</div>
<div class="cell_output docutils container">
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>[&lt;matplotlib.lines.Line2D at 0x7fe67a9b7dd0&gt;]
<div class="output text_plain highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>[&lt;matplotlib.lines.Line2D at 0x7f996800fd10&gt;]
</pre></div>
</div>
<img alt="../_images/07_CrosscorrelationsFourierTransformandWaveletTransform_75_1.png" src="../_images/07_CrosscorrelationsFourierTransformandWaveletTransform_75_1.png" />

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 KiB

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 KiB

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 32 KiB

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More