mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-03-16 07:10:24 +01:00
Documentation updated
This commit is contained in:
parent
78435f533f
commit
56bf153622
3 changed files with 7 additions and 170 deletions
|
@ -794,7 +794,7 @@
|
|||
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'Theoretical quantiles'</span><span class="p">)</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'Ordered Values'</span><span class="p">)</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">residual_plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">fit_res</span><span class="p">):</span>
|
||||
|
@ -823,7 +823,7 @@
|
|||
<span class="n">ax1</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">([</span><span class="n">xstart</span><span class="p">,</span> <span class="n">xstop</span><span class="p">])</span>
|
||||
<span class="n">ax1</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">'Residuals'</span><span class="p">)</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">subplots_adjust</span><span class="p">(</span><span class="n">wspace</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">hspace</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">covariance_matrix</span><span class="p">(</span><span class="n">y</span><span class="p">):</span>
|
||||
|
@ -898,7 +898,7 @@
|
|||
<span class="n">loc_max_diff</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">argmax</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">diffs</span><span class="p">))</span>
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="n">Xs</span><span class="p">[</span><span class="n">loc_max_diff</span><span class="p">]</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">annotate</span><span class="p">(</span><span class="n">s</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">xy</span><span class="o">=</span><span class="p">(</span><span class="n">loc</span><span class="p">,</span> <span class="n">loc</span><span class="p">),</span> <span class="n">xytext</span><span class="o">=</span><span class="p">(</span><span class="n">loc</span><span class="p">,</span> <span class="n">loc</span> <span class="o">+</span> <span class="n">diffs</span><span class="p">[</span><span class="n">loc_max_diff</span><span class="p">]),</span> <span class="n">arrowprops</span><span class="o">=</span><span class="nb">dict</span><span class="p">(</span><span class="n">arrowstyle</span><span class="o">=</span><span class="s1">'<->'</span><span class="p">,</span> <span class="n">shrinkA</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">shrinkB</span><span class="o">=</span><span class="mi">0</span><span class="p">))</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
|
||||
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">scipy</span><span class="o">.</span><span class="n">stats</span><span class="o">.</span><span class="n">kstest</span><span class="p">(</span><span class="n">Qs</span><span class="p">,</span> <span class="s1">'uniform'</span><span class="p">))</span>
|
||||
|
||||
|
@ -1643,7 +1643,7 @@ a list of Obs, where the dvalues of the Obs are used as xerror for the fit.</p>
|
|||
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'Theoretical quantiles'</span><span class="p">)</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'Ordered Values'</span><span class="p">)</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
</details>
|
||||
|
@ -1690,7 +1690,7 @@ check if the residuals of the fit are gaussian distributed.</p>
|
|||
<span class="n">ax1</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">([</span><span class="n">xstart</span><span class="p">,</span> <span class="n">xstop</span><span class="p">])</span>
|
||||
<span class="n">ax1</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">'Residuals'</span><span class="p">)</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">subplots_adjust</span><span class="p">(</span><span class="n">wspace</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">hspace</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
</details>
|
||||
|
@ -1816,7 +1816,7 @@ check if the residuals of the fit are gaussian distributed.</p>
|
|||
<span class="n">loc_max_diff</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">argmax</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">diffs</span><span class="p">))</span>
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="n">Xs</span><span class="p">[</span><span class="n">loc_max_diff</span><span class="p">]</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">annotate</span><span class="p">(</span><span class="n">s</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">xy</span><span class="o">=</span><span class="p">(</span><span class="n">loc</span><span class="p">,</span> <span class="n">loc</span><span class="p">),</span> <span class="n">xytext</span><span class="o">=</span><span class="p">(</span><span class="n">loc</span><span class="p">,</span> <span class="n">loc</span> <span class="o">+</span> <span class="n">diffs</span><span class="p">[</span><span class="n">loc_max_diff</span><span class="p">]),</span> <span class="n">arrowprops</span><span class="o">=</span><span class="nb">dict</span><span class="p">(</span><span class="n">arrowstyle</span><span class="o">=</span><span class="s1">'<->'</span><span class="p">,</span> <span class="n">shrinkA</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">shrinkB</span><span class="o">=</span><span class="mi">0</span><span class="p">))</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
|
||||
<span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
|
||||
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">scipy</span><span class="o">.</span><span class="n">stats</span><span class="o">.</span><span class="n">kstest</span><span class="p">(</span><span class="n">Qs</span><span class="p">,</span> <span class="s1">'uniform'</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
|
|
@ -290,9 +290,6 @@
|
|||
<li>
|
||||
<a class="function" href="#covariance2">covariance2</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="function" href="#covariance3">covariance3</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="function" href="#pseudo_Obs">pseudo_Obs</a>
|
||||
</li>
|
||||
|
@ -1872,70 +1869,6 @@
|
|||
<span class="k">return</span> <span class="n">dvalue</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">covariance3</span><span class="p">(</span><span class="n">obs1</span><span class="p">,</span> <span class="n">obs2</span><span class="p">,</span> <span class="n">correlation</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""Another alternative implementation of the covariance of two observables.</span>
|
||||
|
||||
<span class="sd"> covariance2(obs, obs) is equal to obs.dvalue ** 2</span>
|
||||
<span class="sd"> Currently only works if ensembles are identical.</span>
|
||||
<span class="sd"> The gamma method has to be applied first to both observables.</span>
|
||||
|
||||
<span class="sd"> If abs(covariance2(obs1, obs2)) > obs1.dvalue * obs2.dvalue, the covariance</span>
|
||||
<span class="sd"> is constrained to the maximum value in order to make sure that covariance</span>
|
||||
<span class="sd"> matrices are positive semidefinite.</span>
|
||||
|
||||
<span class="sd"> Keyword arguments</span>
|
||||
<span class="sd"> -----------------</span>
|
||||
<span class="sd"> correlation -- if true the correlation instead of the covariance is</span>
|
||||
<span class="sd"> returned (default False)</span>
|
||||
<span class="sd"> plot -- if true, the integrated autocorrelation time for each ensemble is</span>
|
||||
<span class="sd"> plotted.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">names</span> <span class="o">+</span> <span class="n">obs2</span><span class="o">.</span><span class="n">names</span><span class="p">)):</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="o">!=</span> <span class="n">obs2</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">))</span> <span class="ow">and</span> <span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">obs2</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Shapes of ensemble'</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="s1">'do not fit'</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="n">obs1</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">obs2</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">_merge_idx</span><span class="p">([</span><span class="n">obs1</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">obs2</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">]])]]))):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Shapes of ensemble'</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="s1">'do not fit'</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">obs1</span><span class="p">,</span> <span class="s1">'e_names'</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">obs2</span><span class="p">,</span> <span class="s1">'e_names'</span><span class="p">):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'The gamma method has to be applied to both Obs first.'</span><span class="p">)</span>
|
||||
|
||||
<span class="n">tau_exp</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">S</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">e_name</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">e_names</span> <span class="o">+</span> <span class="n">obs2</span><span class="o">.</span><span class="n">e_names</span><span class="p">)):</span>
|
||||
<span class="n">t_1</span> <span class="o">=</span> <span class="n">obs1</span><span class="o">.</span><span class="n">tau_exp</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
|
||||
<span class="n">t_2</span> <span class="o">=</span> <span class="n">obs2</span><span class="o">.</span><span class="n">tau_exp</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">t_1</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">t_1</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="k">if</span> <span class="n">t_2</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">t_2</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="n">tau_exp</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="n">t_1</span><span class="p">,</span> <span class="n">t_2</span><span class="p">))</span>
|
||||
<span class="n">S_1</span> <span class="o">=</span> <span class="n">obs1</span><span class="o">.</span><span class="n">S</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
|
||||
<span class="n">S_2</span> <span class="o">=</span> <span class="n">obs2</span><span class="o">.</span><span class="n">S</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">S_1</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">S_1</span> <span class="o">=</span> <span class="n">Obs</span><span class="o">.</span><span class="n">S_global</span>
|
||||
<span class="k">if</span> <span class="n">S_2</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">S_2</span> <span class="o">=</span> <span class="n">Obs</span><span class="o">.</span><span class="n">S_global</span>
|
||||
<span class="n">S</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="n">S_1</span><span class="p">,</span> <span class="n">S_2</span><span class="p">))</span>
|
||||
|
||||
<span class="n">check_obs</span> <span class="o">=</span> <span class="n">obs1</span> <span class="o">+</span> <span class="n">obs2</span>
|
||||
<span class="n">check_obs</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="n">tau_exp</span><span class="o">=</span><span class="n">tau_exp</span><span class="p">,</span> <span class="n">S</span><span class="o">=</span><span class="n">S</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'plot'</span><span class="p">):</span>
|
||||
<span class="n">check_obs</span><span class="o">.</span><span class="n">plot_tauint</span><span class="p">()</span>
|
||||
<span class="n">check_obs</span><span class="o">.</span><span class="n">plot_rho</span><span class="p">()</span>
|
||||
|
||||
<span class="n">cov</span> <span class="o">=</span> <span class="p">(</span><span class="n">check_obs</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">cov</span> <span class="o">/</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">/</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span><span class="p">)</span> <span class="o">></span> <span class="mf">1.0</span><span class="p">:</span>
|
||||
<span class="n">cov</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sign</span><span class="p">(</span><span class="n">cov</span><span class="p">)</span> <span class="o">*</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">*</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">correlation</span><span class="p">:</span>
|
||||
<span class="n">cov</span> <span class="o">=</span> <span class="n">cov</span> <span class="o">/</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">/</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">cov</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">pseudo_Obs</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dvalue</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">samples</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
|
||||
<span class="sd">"""Generate a pseudo Obs with given value, dvalue and name</span>
|
||||
|
||||
|
@ -5277,102 +5210,6 @@ matrices are positive semidefinite.</p>
|
|||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
<section id="covariance3">
|
||||
<div class="attr function"><a class="headerlink" href="#covariance3">#  </a>
|
||||
|
||||
|
||||
<span class="def">def</span>
|
||||
<span class="name">covariance3</span><span class="signature">(obs1, obs2, correlation=False, **kwargs)</span>:
|
||||
</div>
|
||||
|
||||
<details>
|
||||
<summary>View Source</summary>
|
||||
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">covariance3</span><span class="p">(</span><span class="n">obs1</span><span class="p">,</span> <span class="n">obs2</span><span class="p">,</span> <span class="n">correlation</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""Another alternative implementation of the covariance of two observables.</span>
|
||||
|
||||
<span class="sd"> covariance2(obs, obs) is equal to obs.dvalue ** 2</span>
|
||||
<span class="sd"> Currently only works if ensembles are identical.</span>
|
||||
<span class="sd"> The gamma method has to be applied first to both observables.</span>
|
||||
|
||||
<span class="sd"> If abs(covariance2(obs1, obs2)) > obs1.dvalue * obs2.dvalue, the covariance</span>
|
||||
<span class="sd"> is constrained to the maximum value in order to make sure that covariance</span>
|
||||
<span class="sd"> matrices are positive semidefinite.</span>
|
||||
|
||||
<span class="sd"> Keyword arguments</span>
|
||||
<span class="sd"> -----------------</span>
|
||||
<span class="sd"> correlation -- if true the correlation instead of the covariance is</span>
|
||||
<span class="sd"> returned (default False)</span>
|
||||
<span class="sd"> plot -- if true, the integrated autocorrelation time for each ensemble is</span>
|
||||
<span class="sd"> plotted.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">names</span> <span class="o">+</span> <span class="n">obs2</span><span class="o">.</span><span class="n">names</span><span class="p">)):</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="o">!=</span> <span class="n">obs2</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">))</span> <span class="ow">and</span> <span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">obs2</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Shapes of ensemble'</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="s1">'do not fit'</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="n">obs1</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">obs2</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">_merge_idx</span><span class="p">([</span><span class="n">obs1</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">obs2</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">]])]]))):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Shapes of ensemble'</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="s1">'do not fit'</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">obs1</span><span class="p">,</span> <span class="s1">'e_names'</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">obs2</span><span class="p">,</span> <span class="s1">'e_names'</span><span class="p">):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'The gamma method has to be applied to both Obs first.'</span><span class="p">)</span>
|
||||
|
||||
<span class="n">tau_exp</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">S</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">e_name</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">obs1</span><span class="o">.</span><span class="n">e_names</span> <span class="o">+</span> <span class="n">obs2</span><span class="o">.</span><span class="n">e_names</span><span class="p">)):</span>
|
||||
<span class="n">t_1</span> <span class="o">=</span> <span class="n">obs1</span><span class="o">.</span><span class="n">tau_exp</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
|
||||
<span class="n">t_2</span> <span class="o">=</span> <span class="n">obs2</span><span class="o">.</span><span class="n">tau_exp</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">t_1</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">t_1</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="k">if</span> <span class="n">t_2</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">t_2</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="n">tau_exp</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="n">t_1</span><span class="p">,</span> <span class="n">t_2</span><span class="p">))</span>
|
||||
<span class="n">S_1</span> <span class="o">=</span> <span class="n">obs1</span><span class="o">.</span><span class="n">S</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
|
||||
<span class="n">S_2</span> <span class="o">=</span> <span class="n">obs2</span><span class="o">.</span><span class="n">S</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">e_name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">S_1</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">S_1</span> <span class="o">=</span> <span class="n">Obs</span><span class="o">.</span><span class="n">S_global</span>
|
||||
<span class="k">if</span> <span class="n">S_2</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">S_2</span> <span class="o">=</span> <span class="n">Obs</span><span class="o">.</span><span class="n">S_global</span>
|
||||
<span class="n">S</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="n">S_1</span><span class="p">,</span> <span class="n">S_2</span><span class="p">))</span>
|
||||
|
||||
<span class="n">check_obs</span> <span class="o">=</span> <span class="n">obs1</span> <span class="o">+</span> <span class="n">obs2</span>
|
||||
<span class="n">check_obs</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="n">tau_exp</span><span class="o">=</span><span class="n">tau_exp</span><span class="p">,</span> <span class="n">S</span><span class="o">=</span><span class="n">S</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'plot'</span><span class="p">):</span>
|
||||
<span class="n">check_obs</span><span class="o">.</span><span class="n">plot_tauint</span><span class="p">()</span>
|
||||
<span class="n">check_obs</span><span class="o">.</span><span class="n">plot_rho</span><span class="p">()</span>
|
||||
|
||||
<span class="n">cov</span> <span class="o">=</span> <span class="p">(</span><span class="n">check_obs</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">cov</span> <span class="o">/</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">/</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span><span class="p">)</span> <span class="o">></span> <span class="mf">1.0</span><span class="p">:</span>
|
||||
<span class="n">cov</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sign</span><span class="p">(</span><span class="n">cov</span><span class="p">)</span> <span class="o">*</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">*</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">correlation</span><span class="p">:</span>
|
||||
<span class="n">cov</span> <span class="o">=</span> <span class="n">cov</span> <span class="o">/</span> <span class="n">obs1</span><span class="o">.</span><span class="n">dvalue</span> <span class="o">/</span> <span class="n">obs2</span><span class="o">.</span><span class="n">dvalue</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">cov</span>
|
||||
</pre></div>
|
||||
|
||||
</details>
|
||||
|
||||
<div class="docstring"><p>Another alternative implementation of the covariance of two observables.</p>
|
||||
|
||||
<p>covariance2(obs, obs) is equal to obs.dvalue ** 2
|
||||
Currently only works if ensembles are identical.
|
||||
The gamma method has to be applied first to both observables.</p>
|
||||
|
||||
<p>If abs(covariance2(obs1, obs2)) > obs1.dvalue * obs2.dvalue, the covariance
|
||||
is constrained to the maximum value in order to make sure that covariance
|
||||
matrices are positive semidefinite.</p>
|
||||
|
||||
<h6 id="keyword-arguments">Keyword arguments</h6>
|
||||
|
||||
<p>correlation -- if true the correlation instead of the covariance is
|
||||
returned (default False)
|
||||
plot -- if true, the integrated autocorrelation time for each ensemble is
|
||||
plotted.</p>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
<section id="pseudo_Obs">
|
||||
<div class="attr function"><a class="headerlink" href="#pseudo_Obs">#  </a>
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Add table
Reference in a new issue