mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-10-14 16:39:57 +02:00
Documentation updated
This commit is contained in:
parent
8a798c838d
commit
35df837bb4
23 changed files with 1983 additions and 1928 deletions
|
@ -109,26 +109,26 @@
|
|||
|
||||
<label class="view-source-button" for="mod-fits-view-source"><span>View Source</span></label>
|
||||
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span> <span class="nn">gc</span>
|
||||
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">from</span> <span class="nn">collections.abc</span> <span class="kn">import</span> <span class="n">Sequence</span>
|
||||
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span> <span class="nn">warnings</span>
|
||||
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
|
||||
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span> <span class="nn">autograd.numpy</span> <span class="k">as</span> <span class="nn">anp</span>
|
||||
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">import</span> <span class="nn">scipy.optimize</span>
|
||||
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">import</span> <span class="nn">scipy.stats</span>
|
||||
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
|
||||
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">gridspec</span>
|
||||
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span> <span class="nn">scipy.odr</span> <span class="kn">import</span> <span class="n">ODR</span><span class="p">,</span> <span class="n">Model</span><span class="p">,</span> <span class="n">RealData</span>
|
||||
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">import</span> <span class="nn">iminuit</span>
|
||||
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="kn">from</span> <span class="nn">autograd</span> <span class="kn">import</span> <span class="n">jacobian</span> <span class="k">as</span> <span class="n">auto_jacobian</span>
|
||||
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="kn">from</span> <span class="nn">autograd</span> <span class="kn">import</span> <span class="n">hessian</span> <span class="k">as</span> <span class="n">auto_hessian</span>
|
||||
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="kn">from</span> <span class="nn">autograd</span> <span class="kn">import</span> <span class="n">elementwise_grad</span> <span class="k">as</span> <span class="n">egrad</span>
|
||||
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="kn">from</span> <span class="nn">numdifftools</span> <span class="kn">import</span> <span class="n">Jacobian</span> <span class="k">as</span> <span class="n">num_jacobian</span>
|
||||
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="kn">from</span> <span class="nn">numdifftools</span> <span class="kn">import</span> <span class="n">Hessian</span> <span class="k">as</span> <span class="n">num_hessian</span>
|
||||
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="kn">from</span> <span class="nn">.obs</span> <span class="kn">import</span> <span class="n">Obs</span><span class="p">,</span> <span class="n">derived_observable</span><span class="p">,</span> <span class="n">covariance</span><span class="p">,</span> <span class="n">cov_Obs</span><span class="p">,</span> <span class="n">invert_corr_cov_cholesky</span>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">gc</span>
|
||||
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">collections.abc</span><span class="w"> </span><span class="kn">import</span> <span class="n">Sequence</span>
|
||||
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span>
|
||||
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
|
||||
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">autograd.numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">anp</span>
|
||||
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.optimize</span>
|
||||
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">scipy.stats</span>
|
||||
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
|
||||
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">matplotlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">gridspec</span>
|
||||
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.odr</span><span class="w"> </span><span class="kn">import</span> <span class="n">ODR</span><span class="p">,</span> <span class="n">Model</span><span class="p">,</span> <span class="n">RealData</span>
|
||||
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">import</span><span class="w"> </span><span class="nn">iminuit</span>
|
||||
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">autograd</span><span class="w"> </span><span class="kn">import</span> <span class="n">jacobian</span> <span class="k">as</span> <span class="n">auto_jacobian</span>
|
||||
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">autograd</span><span class="w"> </span><span class="kn">import</span> <span class="n">hessian</span> <span class="k">as</span> <span class="n">auto_hessian</span>
|
||||
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">autograd</span><span class="w"> </span><span class="kn">import</span> <span class="n">elementwise_grad</span> <span class="k">as</span> <span class="n">egrad</span>
|
||||
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">numdifftools</span><span class="w"> </span><span class="kn">import</span> <span class="n">Jacobian</span> <span class="k">as</span> <span class="n">num_jacobian</span>
|
||||
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">numdifftools</span><span class="w"> </span><span class="kn">import</span> <span class="n">Hessian</span> <span class="k">as</span> <span class="n">num_hessian</span>
|
||||
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="kn">from</span><span class="w"> </span><span class="nn">.obs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Obs</span><span class="p">,</span> <span class="n">derived_observable</span><span class="p">,</span> <span class="n">covariance</span><span class="p">,</span> <span class="n">cov_Obs</span><span class="p">,</span> <span class="n">invert_corr_cov_cholesky</span>
|
||||
</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a>
|
||||
</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a>
|
||||
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="k">class</span> <span class="nc">Fit_result</span><span class="p">(</span><span class="n">Sequence</span><span class="p">):</span>
|
||||
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="k">class</span><span class="w"> </span><span class="nc">Fit_result</span><span class="p">(</span><span class="n">Sequence</span><span class="p">):</span>
|
||||
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="w"> </span><span class="sd">"""Represents fit results.</span>
|
||||
</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a>
|
||||
</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="sd"> Attributes</span>
|
||||
|
@ -144,22 +144,22 @@
|
|||
</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="sd"> Hotelling t-squared p-value for correlated fits.</span>
|
||||
</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="sd"> """</span>
|
||||
</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a>
|
||||
</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a>
|
||||
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
|
||||
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
|
||||
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span>
|
||||
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a>
|
||||
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">)</span>
|
||||
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a>
|
||||
</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="k">def</span> <span class="nf">gamma_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">gamma_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="w"> </span><span class="sd">"""Apply the gamma method to all fit parameters"""</span>
|
||||
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">]</span>
|
||||
</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a>
|
||||
</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="n">gm</span> <span class="o">=</span> <span class="n">gamma_method</span>
|
||||
</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a>
|
||||
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="n">my_str</span> <span class="o">=</span> <span class="s1">'Goodness of fit:</span><span class="se">\n</span><span class="s1">'</span>
|
||||
</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">'chisquare_by_dof'</span><span class="p">):</span>
|
||||
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">my_str</span> <span class="o">+=</span> <span class="s1">'</span><span class="se">\u03C7\u00b2</span><span class="s1">/d.o.f. = '</span> <span class="o">+</span> <span class="sa">f</span><span class="s1">'</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">chisquare_by_dof</span><span class="si">:</span><span class="s1">2.6f</span><span class="si">}</span><span class="s1">'</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span>
|
||||
|
@ -176,12 +176,12 @@
|
|||
</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="n">my_str</span> <span class="o">+=</span> <span class="nb">str</span><span class="p">(</span><span class="n">i_par</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\t</span><span class="s1">'</span> <span class="o">+</span> <span class="s1">' '</span> <span class="o">*</span> <span class="nb">int</span><span class="p">(</span><span class="n">par</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">par</span><span class="p">)</span><span class="o">.</span><span class="n">rjust</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">par</span> <span class="o"><</span> <span class="mf">0.0</span><span class="p">))</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span>
|
||||
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">return</span> <span class="n">my_str</span>
|
||||
</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a>
|
||||
</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">m</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">len</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">keys</span><span class="p">())))</span> <span class="o">+</span> <span class="mi">1</span>
|
||||
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="k">return</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">key</span><span class="o">.</span><span class="n">rjust</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> <span class="o">+</span> <span class="s1">': '</span> <span class="o">+</span> <span class="nb">repr</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">items</span><span class="p">())])</span>
|
||||
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a>
|
||||
</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a>
|
||||
</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="k">def</span> <span class="nf">least_squares</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">priors</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">silent</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><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="k">def</span><span class="w"> </span><span class="nf">least_squares</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">priors</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">silent</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><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">'''Performs a non-linear fit to y = func(x).</span>
|
||||
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="sd"> ```</span>
|
||||
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a>
|
||||
|
@ -455,15 +455,15 @@
|
|||
</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="n">x0</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.1</span><span class="p">]</span> <span class="o">*</span> <span class="n">n_parms</span>
|
||||
</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a>
|
||||
</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <span class="k">if</span> <span class="n">priors</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">def</span> <span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
|
||||
</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
|
||||
</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">anp</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">funcd</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">p</span><span class="p">,</span> <span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">])</span>
|
||||
</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="k">return</span> <span class="p">(</span><span class="n">ivars</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span>
|
||||
</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="k">def</span> <span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
|
||||
</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
|
||||
</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">anp</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">funcd</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">p</span><span class="p">,</span> <span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">])</span>
|
||||
</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(((</span><span class="n">ivars</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">,</span> <span class="p">(</span><span class="n">p</span><span class="p">[</span><span class="n">prior_mask</span><span class="p">]</span> <span class="o">-</span> <span class="n">pr</span><span class="p">)</span> <span class="o">/</span> <span class="n">dp_f</span><span class="p">))</span>
|
||||
</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a>
|
||||
</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="k">def</span> <span class="nf">chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a>
|
||||
</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> <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">'correlated_fit'</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
|
||||
|
@ -481,11 +481,11 @@
|
|||
</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="n">inverrdiag</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">diag</span><span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">dy_f</span><span class="p">))</span>
|
||||
</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="n">chol_inv</span> <span class="o">=</span> <span class="n">invert_corr_cov_cholesky</span><span class="p">(</span><span class="n">corr</span><span class="p">,</span> <span class="n">inverrdiag</span><span class="p">)</span>
|
||||
</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a>
|
||||
</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">def</span> <span class="nf">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
|
||||
</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
|
||||
</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">anp</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">funcd</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">p</span><span class="p">,</span> <span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">])</span>
|
||||
</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">anp</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">chol_inv</span><span class="p">,</span> <span class="p">(</span><span class="n">ivars</span> <span class="o">-</span> <span class="n">model</span><span class="p">)),</span> <span class="p">(</span><span class="n">p</span><span class="p">[</span><span class="n">prior_mask</span><span class="p">]</span> <span class="o">-</span> <span class="n">pr</span><span class="p">)</span> <span class="o">/</span> <span class="n">dp_f</span><span class="p">))</span>
|
||||
</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a>
|
||||
</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="k">def</span> <span class="nf">chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="n">general_chisqfunc</span> <span class="o">=</span> <span class="n">general_chisqfunc_uncorr</span>
|
||||
|
@ -519,12 +519,12 @@
|
|||
</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a> <span class="k">if</span> <span class="s1">'tol'</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
||||
</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">'tol cannot be set for Levenberg-Marquardt'</span><span class="p">)</span>
|
||||
</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a>
|
||||
</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="k">def</span> <span class="nf">chisqfunc_residuals_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_residuals_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> <span class="k">return</span> <span class="n">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span>
|
||||
</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a>
|
||||
</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> <span class="n">fit_result</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">least_squares</span><span class="p">(</span><span class="n">chisqfunc_residuals_uncorr</span><span class="p">,</span> <span class="n">x0</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">'lm'</span><span class="p">,</span> <span class="n">ftol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">gtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">xtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">)</span>
|
||||
</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> <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">'correlated_fit'</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
|
||||
</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> <span class="k">def</span> <span class="nf">chisqfunc_residuals</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_residuals</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> <span class="k">return</span> <span class="n">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span>
|
||||
</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a>
|
||||
</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> <span class="n">fit_result</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">least_squares</span><span class="p">(</span><span class="n">chisqfunc_residuals</span><span class="p">,</span> <span class="n">fit_result</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">'lm'</span><span class="p">,</span> <span class="n">ftol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">gtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">xtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">)</span>
|
||||
|
@ -551,7 +551,7 @@
|
|||
</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">'chisquare/d.o.f.:'</span><span class="p">,</span> <span class="n">output</span><span class="o">.</span><span class="n">chisquare_by_dof</span><span class="p">)</span>
|
||||
</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">'fit parameters'</span><span class="p">,</span> <span class="n">fit_result</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
|
||||
</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a>
|
||||
</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a> <span class="k">def</span> <span class="nf">prepare_hat_matrix</span><span class="p">():</span>
|
||||
</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">prepare_hat_matrix</span><span class="p">():</span>
|
||||
</span><span id="L-444"><a href="#L-444"><span class="linenos">444</span></a> <span class="n">hat_vector</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="L-445"><a href="#L-445"><span class="linenos">445</span></a> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">:</span>
|
||||
</span><span id="L-446"><a href="#L-446"><span class="linenos">446</span></a> <span class="k">if</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">):</span>
|
||||
|
@ -576,11 +576,11 @@
|
|||
</span><span id="L-465"><a href="#L-465"><span class="linenos">465</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="L-466"><a href="#L-466"><span class="linenos">466</span></a> <span class="n">hess</span> <span class="o">=</span> <span class="n">hessian</span><span class="p">(</span><span class="n">chisqfunc</span><span class="p">)(</span><span class="n">fitp</span><span class="p">)</span>
|
||||
</span><span id="L-467"><a href="#L-467"><span class="linenos">467</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
|
||||
</span><span id="L-468"><a href="#L-468"><span class="linenos">468</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details."</span><span class="p">)</span> <span class="kn">from</span> <span class="kc">None</span>
|
||||
</span><span id="L-468"><a href="#L-468"><span class="linenos">468</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details."</span><span class="p">)</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
|
||||
</span><span id="L-469"><a href="#L-469"><span class="linenos">469</span></a>
|
||||
</span><span id="L-470"><a href="#L-470"><span class="linenos">470</span></a> <span class="n">len_y</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">y_f</span><span class="p">)</span>
|
||||
</span><span id="L-471"><a href="#L-471"><span class="linenos">471</span></a>
|
||||
</span><span id="L-472"><a href="#L-472"><span class="linenos">472</span></a> <span class="k">def</span> <span class="nf">chisqfunc_compact</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
</span><span id="L-472"><a href="#L-472"><span class="linenos">472</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_compact</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
</span><span id="L-473"><a href="#L-473"><span class="linenos">473</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">general_chisqfunc</span><span class="p">(</span><span class="n">d</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span> <span class="n">n_parms</span> <span class="o">+</span> <span class="n">len_y</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">len_y</span><span class="p">:])</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="L-474"><a href="#L-474"><span class="linenos">474</span></a>
|
||||
</span><span id="L-475"><a href="#L-475"><span class="linenos">475</span></a> <span class="n">jac_jac_y</span> <span class="o">=</span> <span class="n">hessian</span><span class="p">(</span><span class="n">chisqfunc_compact</span><span class="p">)(</span><span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">fitp</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)))</span>
|
||||
|
@ -614,7 +614,7 @@
|
|||
</span><span id="L-503"><a href="#L-503"><span class="linenos">503</span></a> <span class="k">return</span> <span class="n">output</span>
|
||||
</span><span id="L-504"><a href="#L-504"><span class="linenos">504</span></a>
|
||||
</span><span id="L-505"><a href="#L-505"><span class="linenos">505</span></a>
|
||||
</span><span id="L-506"><a href="#L-506"><span class="linenos">506</span></a><span class="k">def</span> <span class="nf">total_least_squares</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">silent</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><span id="L-506"><a href="#L-506"><span class="linenos">506</span></a><span class="k">def</span><span class="w"> </span><span class="nf">total_least_squares</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">silent</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><span id="L-507"><a href="#L-507"><span class="linenos">507</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">'''Performs a non-linear fit to y = func(x) and returns a list of Obs corresponding to the fit parameters.</span>
|
||||
</span><span id="L-508"><a href="#L-508"><span class="linenos">508</span></a>
|
||||
</span><span id="L-509"><a href="#L-509"><span class="linenos">509</span></a><span class="sd"> Parameters</span>
|
||||
|
@ -742,7 +742,7 @@
|
|||
</span><span id="L-631"><a href="#L-631"><span class="linenos">631</span></a>
|
||||
</span><span id="L-632"><a href="#L-632"><span class="linenos">632</span></a> <span class="n">m</span> <span class="o">=</span> <span class="n">x_f</span><span class="o">.</span><span class="n">size</span>
|
||||
</span><span id="L-633"><a href="#L-633"><span class="linenos">633</span></a>
|
||||
</span><span id="L-634"><a href="#L-634"><span class="linenos">634</span></a> <span class="k">def</span> <span class="nf">odr_chisquare</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="L-634"><a href="#L-634"><span class="linenos">634</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">odr_chisquare</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="L-635"><a href="#L-635"><span class="linenos">635</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">p</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">p</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span>
|
||||
</span><span id="L-636"><a href="#L-636"><span class="linenos">636</span></a> <span class="n">chisq</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">y_f</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">x_f</span> <span class="o">-</span> <span class="n">p</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span> <span class="o">/</span> <span class="n">dx_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="L-637"><a href="#L-637"><span class="linenos">637</span></a> <span class="k">return</span> <span class="n">chisq</span>
|
||||
|
@ -777,9 +777,9 @@
|
|||
</span><span id="L-666"><a href="#L-666"><span class="linenos">666</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="L-667"><a href="#L-667"><span class="linenos">667</span></a> <span class="n">hess</span> <span class="o">=</span> <span class="n">hessian</span><span class="p">(</span><span class="n">odr_chisquare</span><span class="p">)(</span><span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">fitp</span><span class="p">,</span> <span class="n">out</span><span class="o">.</span><span class="n">xplus</span><span class="o">.</span><span class="n">ravel</span><span class="p">())))</span>
|
||||
</span><span id="L-668"><a href="#L-668"><span class="linenos">668</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
|
||||
</span><span id="L-669"><a href="#L-669"><span class="linenos">669</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details."</span><span class="p">)</span> <span class="kn">from</span> <span class="kc">None</span>
|
||||
</span><span id="L-669"><a href="#L-669"><span class="linenos">669</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details."</span><span class="p">)</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
|
||||
</span><span id="L-670"><a href="#L-670"><span class="linenos">670</span></a>
|
||||
</span><span id="L-671"><a href="#L-671"><span class="linenos">671</span></a> <span class="k">def</span> <span class="nf">odr_chisquare_compact_x</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
</span><span id="L-671"><a href="#L-671"><span class="linenos">671</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">odr_chisquare_compact_x</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
</span><span id="L-672"><a href="#L-672"><span class="linenos">672</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">d</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span>
|
||||
</span><span id="L-673"><a href="#L-673"><span class="linenos">673</span></a> <span class="n">chisq</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">y_f</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">d</span><span class="p">[</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">:]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span> <span class="o">/</span> <span class="n">dx_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="L-674"><a href="#L-674"><span class="linenos">674</span></a> <span class="k">return</span> <span class="n">chisq</span>
|
||||
|
@ -792,7 +792,7 @@
|
|||
</span><span id="L-681"><a href="#L-681"><span class="linenos">681</span></a> <span class="k">except</span> <span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">LinAlgError</span><span class="p">:</span>
|
||||
</span><span id="L-682"><a href="#L-682"><span class="linenos">682</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"Cannot invert hessian matrix."</span><span class="p">)</span>
|
||||
</span><span id="L-683"><a href="#L-683"><span class="linenos">683</span></a>
|
||||
</span><span id="L-684"><a href="#L-684"><span class="linenos">684</span></a> <span class="k">def</span> <span class="nf">odr_chisquare_compact_y</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
</span><span id="L-684"><a href="#L-684"><span class="linenos">684</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">odr_chisquare_compact_y</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
</span><span id="L-685"><a href="#L-685"><span class="linenos">685</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">d</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span>
|
||||
</span><span id="L-686"><a href="#L-686"><span class="linenos">686</span></a> <span class="n">chisq</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">d</span><span class="p">[</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">:]</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">x_f</span> <span class="o">-</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span> <span class="o">/</span> <span class="n">dx_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="L-687"><a href="#L-687"><span class="linenos">687</span></a> <span class="k">return</span> <span class="n">chisq</span>
|
||||
|
@ -818,7 +818,7 @@
|
|||
</span><span id="L-707"><a href="#L-707"><span class="linenos">707</span></a> <span class="k">return</span> <span class="n">output</span>
|
||||
</span><span id="L-708"><a href="#L-708"><span class="linenos">708</span></a>
|
||||
</span><span id="L-709"><a href="#L-709"><span class="linenos">709</span></a>
|
||||
</span><span id="L-710"><a href="#L-710"><span class="linenos">710</span></a><span class="k">def</span> <span class="nf">fit_lin</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="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="L-710"><a href="#L-710"><span class="linenos">710</span></a><span class="k">def</span><span class="w"> </span><span class="nf">fit_lin</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="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="L-711"><a href="#L-711"><span class="linenos">711</span></a><span class="w"> </span><span class="sd">"""Performs a linear fit to y = n + m * x and returns two Obs n, m.</span>
|
||||
</span><span id="L-712"><a href="#L-712"><span class="linenos">712</span></a>
|
||||
</span><span id="L-713"><a href="#L-713"><span class="linenos">713</span></a><span class="sd"> Parameters</span>
|
||||
|
@ -835,7 +835,7 @@
|
|||
</span><span id="L-724"><a href="#L-724"><span class="linenos">724</span></a><span class="sd"> LIist of fitted observables.</span>
|
||||
</span><span id="L-725"><a href="#L-725"><span class="linenos">725</span></a><span class="sd"> """</span>
|
||||
</span><span id="L-726"><a href="#L-726"><span class="linenos">726</span></a>
|
||||
</span><span id="L-727"><a href="#L-727"><span class="linenos">727</span></a> <span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
</span><span id="L-727"><a href="#L-727"><span class="linenos">727</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
</span><span id="L-728"><a href="#L-728"><span class="linenos">728</span></a> <span class="n">y</span> <span class="o">=</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span>
|
||||
</span><span id="L-729"><a href="#L-729"><span class="linenos">729</span></a> <span class="k">return</span> <span class="n">y</span>
|
||||
</span><span id="L-730"><a href="#L-730"><span class="linenos">730</span></a>
|
||||
|
@ -849,7 +849,7 @@
|
|||
</span><span id="L-738"><a href="#L-738"><span class="linenos">738</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s1">'Unsupported types for x'</span><span class="p">)</span>
|
||||
</span><span id="L-739"><a href="#L-739"><span class="linenos">739</span></a>
|
||||
</span><span id="L-740"><a href="#L-740"><span class="linenos">740</span></a>
|
||||
</span><span id="L-741"><a href="#L-741"><span class="linenos">741</span></a><span class="k">def</span> <span class="nf">qqplot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">o_y</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s2">""</span><span class="p">):</span>
|
||||
</span><span id="L-741"><a href="#L-741"><span class="linenos">741</span></a><span class="k">def</span><span class="w"> </span><span class="nf">qqplot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">o_y</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s2">""</span><span class="p">):</span>
|
||||
</span><span id="L-742"><a href="#L-742"><span class="linenos">742</span></a><span class="w"> </span><span class="sd">"""Generates a quantile-quantile plot of the fit result which can be used to</span>
|
||||
</span><span id="L-743"><a href="#L-743"><span class="linenos">743</span></a><span class="sd"> check if the residuals of the fit are gaussian distributed.</span>
|
||||
</span><span id="L-744"><a href="#L-744"><span class="linenos">744</span></a>
|
||||
|
@ -879,7 +879,7 @@
|
|||
</span><span id="L-768"><a href="#L-768"><span class="linenos">768</span></a> <span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
|
||||
</span><span id="L-769"><a href="#L-769"><span class="linenos">769</span></a>
|
||||
</span><span id="L-770"><a href="#L-770"><span class="linenos">770</span></a>
|
||||
</span><span id="L-771"><a href="#L-771"><span class="linenos">771</span></a><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> <span class="n">title</span><span class="o">=</span><span class="s2">""</span><span class="p">):</span>
|
||||
</span><span id="L-771"><a href="#L-771"><span class="linenos">771</span></a><span class="k">def</span><span class="w"> </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> <span class="n">title</span><span class="o">=</span><span class="s2">""</span><span class="p">):</span>
|
||||
</span><span id="L-772"><a href="#L-772"><span class="linenos">772</span></a><span class="w"> </span><span class="sd">"""Generates a plot which compares the fit to the data and displays the corresponding residuals</span>
|
||||
</span><span id="L-773"><a href="#L-773"><span class="linenos">773</span></a>
|
||||
</span><span id="L-774"><a href="#L-774"><span class="linenos">774</span></a><span class="sd"> For uncorrelated data the residuals are expected to be distributed ~N(0,1).</span>
|
||||
|
@ -916,7 +916,7 @@
|
|||
</span><span id="L-805"><a href="#L-805"><span class="linenos">805</span></a> <span class="n">plt</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span>
|
||||
</span><span id="L-806"><a href="#L-806"><span class="linenos">806</span></a>
|
||||
</span><span id="L-807"><a href="#L-807"><span class="linenos">807</span></a>
|
||||
</span><span id="L-808"><a href="#L-808"><span class="linenos">808</span></a><span class="k">def</span> <span class="nf">error_band</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">beta</span><span class="p">):</span>
|
||||
</span><span id="L-808"><a href="#L-808"><span class="linenos">808</span></a><span class="k">def</span><span class="w"> </span><span class="nf">error_band</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">beta</span><span class="p">):</span>
|
||||
</span><span id="L-809"><a href="#L-809"><span class="linenos">809</span></a><span class="w"> </span><span class="sd">"""Calculate the error band for an array of sample values x, for given fit function func with optimized parameters beta.</span>
|
||||
</span><span id="L-810"><a href="#L-810"><span class="linenos">810</span></a>
|
||||
</span><span id="L-811"><a href="#L-811"><span class="linenos">811</span></a><span class="sd"> Returns</span>
|
||||
|
@ -940,7 +940,7 @@
|
|||
</span><span id="L-829"><a href="#L-829"><span class="linenos">829</span></a> <span class="k">return</span> <span class="n">err</span>
|
||||
</span><span id="L-830"><a href="#L-830"><span class="linenos">830</span></a>
|
||||
</span><span id="L-831"><a href="#L-831"><span class="linenos">831</span></a>
|
||||
</span><span id="L-832"><a href="#L-832"><span class="linenos">832</span></a><span class="k">def</span> <span class="nf">ks_test</span><span class="p">(</span><span class="n">objects</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
</span><span id="L-832"><a href="#L-832"><span class="linenos">832</span></a><span class="k">def</span><span class="w"> </span><span class="nf">ks_test</span><span class="p">(</span><span class="n">objects</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
</span><span id="L-833"><a href="#L-833"><span class="linenos">833</span></a><span class="w"> </span><span class="sd">"""Performs a Kolmogorov–Smirnov test for the p-values of all fit object.</span>
|
||||
</span><span id="L-834"><a href="#L-834"><span class="linenos">834</span></a>
|
||||
</span><span id="L-835"><a href="#L-835"><span class="linenos">835</span></a><span class="sd"> Parameters</span>
|
||||
|
@ -984,7 +984,7 @@
|
|||
</span><span id="L-873"><a href="#L-873"><span class="linenos">873</span></a> <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">p_values</span><span class="p">,</span> <span class="s1">'uniform'</span><span class="p">))</span>
|
||||
</span><span id="L-874"><a href="#L-874"><span class="linenos">874</span></a>
|
||||
</span><span id="L-875"><a href="#L-875"><span class="linenos">875</span></a>
|
||||
</span><span id="L-876"><a href="#L-876"><span class="linenos">876</span></a><span class="k">def</span> <span class="nf">_extract_val_and_dval</span><span class="p">(</span><span class="n">string</span><span class="p">):</span>
|
||||
</span><span id="L-876"><a href="#L-876"><span class="linenos">876</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_extract_val_and_dval</span><span class="p">(</span><span class="n">string</span><span class="p">):</span>
|
||||
</span><span id="L-877"><a href="#L-877"><span class="linenos">877</span></a> <span class="n">split_string</span> <span class="o">=</span> <span class="n">string</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'('</span><span class="p">)</span>
|
||||
</span><span id="L-878"><a href="#L-878"><span class="linenos">878</span></a> <span class="k">if</span> <span class="s1">'.'</span> <span class="ow">in</span> <span class="n">split_string</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">'.'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">split_string</span><span class="p">[</span><span class="mi">1</span><span class="p">][:</span><span class="o">-</span><span class="mi">1</span><span class="p">]:</span>
|
||||
</span><span id="L-879"><a href="#L-879"><span class="linenos">879</span></a> <span class="n">factor</span> <span class="o">=</span> <span class="mi">10</span> <span class="o">**</span> <span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">split_string</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="s1">'.'</span><span class="p">)[</span><span class="mi">2</span><span class="p">])</span>
|
||||
|
@ -993,7 +993,7 @@
|
|||
</span><span id="L-882"><a href="#L-882"><span class="linenos">882</span></a> <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="n">split_string</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="nb">float</span><span class="p">(</span><span class="n">split_string</span><span class="p">[</span><span class="mi">1</span><span class="p">][:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">*</span> <span class="n">factor</span>
|
||||
</span><span id="L-883"><a href="#L-883"><span class="linenos">883</span></a>
|
||||
</span><span id="L-884"><a href="#L-884"><span class="linenos">884</span></a>
|
||||
</span><span id="L-885"><a href="#L-885"><span class="linenos">885</span></a><span class="k">def</span> <span class="nf">_construct_prior_obs</span><span class="p">(</span><span class="n">i_prior</span><span class="p">,</span> <span class="n">i_n</span><span class="p">):</span>
|
||||
</span><span id="L-885"><a href="#L-885"><span class="linenos">885</span></a><span class="k">def</span><span class="w"> </span><span class="nf">_construct_prior_obs</span><span class="p">(</span><span class="n">i_prior</span><span class="p">,</span> <span class="n">i_n</span><span class="p">):</span>
|
||||
</span><span id="L-886"><a href="#L-886"><span class="linenos">886</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">i_prior</span><span class="p">,</span> <span class="n">Obs</span><span class="p">):</span>
|
||||
</span><span id="L-887"><a href="#L-887"><span class="linenos">887</span></a> <span class="k">return</span> <span class="n">i_prior</span>
|
||||
</span><span id="L-888"><a href="#L-888"><span class="linenos">888</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">i_prior</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
|
@ -1016,7 +1016,7 @@
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#Fit_result"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="Fit_result-21"><a href="#Fit_result-21"><span class="linenos">21</span></a><span class="k">class</span> <span class="nc">Fit_result</span><span class="p">(</span><span class="n">Sequence</span><span class="p">):</span>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="Fit_result-21"><a href="#Fit_result-21"><span class="linenos">21</span></a><span class="k">class</span><span class="w"> </span><span class="nc">Fit_result</span><span class="p">(</span><span class="n">Sequence</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-22"><a href="#Fit_result-22"><span class="linenos">22</span></a><span class="w"> </span><span class="sd">"""Represents fit results.</span>
|
||||
</span><span id="Fit_result-23"><a href="#Fit_result-23"><span class="linenos">23</span></a>
|
||||
</span><span id="Fit_result-24"><a href="#Fit_result-24"><span class="linenos">24</span></a><span class="sd"> Attributes</span>
|
||||
|
@ -1032,22 +1032,22 @@
|
|||
</span><span id="Fit_result-34"><a href="#Fit_result-34"><span class="linenos">34</span></a><span class="sd"> Hotelling t-squared p-value for correlated fits.</span>
|
||||
</span><span id="Fit_result-35"><a href="#Fit_result-35"><span class="linenos">35</span></a><span class="sd"> """</span>
|
||||
</span><span id="Fit_result-36"><a href="#Fit_result-36"><span class="linenos">36</span></a>
|
||||
</span><span id="Fit_result-37"><a href="#Fit_result-37"><span class="linenos">37</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-37"><a href="#Fit_result-37"><span class="linenos">37</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-38"><a href="#Fit_result-38"><span class="linenos">38</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
</span><span id="Fit_result-39"><a href="#Fit_result-39"><span class="linenos">39</span></a>
|
||||
</span><span id="Fit_result-40"><a href="#Fit_result-40"><span class="linenos">40</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-40"><a href="#Fit_result-40"><span class="linenos">40</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-41"><a href="#Fit_result-41"><span class="linenos">41</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span>
|
||||
</span><span id="Fit_result-42"><a href="#Fit_result-42"><span class="linenos">42</span></a>
|
||||
</span><span id="Fit_result-43"><a href="#Fit_result-43"><span class="linenos">43</span></a> <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-43"><a href="#Fit_result-43"><span class="linenos">43</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-44"><a href="#Fit_result-44"><span class="linenos">44</span></a> <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">)</span>
|
||||
</span><span id="Fit_result-45"><a href="#Fit_result-45"><span class="linenos">45</span></a>
|
||||
</span><span id="Fit_result-46"><a href="#Fit_result-46"><span class="linenos">46</span></a> <span class="k">def</span> <span class="nf">gamma_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-46"><a href="#Fit_result-46"><span class="linenos">46</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">gamma_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-47"><a href="#Fit_result-47"><span class="linenos">47</span></a><span class="w"> </span><span class="sd">"""Apply the gamma method to all fit parameters"""</span>
|
||||
</span><span id="Fit_result-48"><a href="#Fit_result-48"><span class="linenos">48</span></a> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">]</span>
|
||||
</span><span id="Fit_result-49"><a href="#Fit_result-49"><span class="linenos">49</span></a>
|
||||
</span><span id="Fit_result-50"><a href="#Fit_result-50"><span class="linenos">50</span></a> <span class="n">gm</span> <span class="o">=</span> <span class="n">gamma_method</span>
|
||||
</span><span id="Fit_result-51"><a href="#Fit_result-51"><span class="linenos">51</span></a>
|
||||
</span><span id="Fit_result-52"><a href="#Fit_result-52"><span class="linenos">52</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-52"><a href="#Fit_result-52"><span class="linenos">52</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-53"><a href="#Fit_result-53"><span class="linenos">53</span></a> <span class="n">my_str</span> <span class="o">=</span> <span class="s1">'Goodness of fit:</span><span class="se">\n</span><span class="s1">'</span>
|
||||
</span><span id="Fit_result-54"><a href="#Fit_result-54"><span class="linenos">54</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">'chisquare_by_dof'</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-55"><a href="#Fit_result-55"><span class="linenos">55</span></a> <span class="n">my_str</span> <span class="o">+=</span> <span class="s1">'</span><span class="se">\u03C7\u00b2</span><span class="s1">/d.o.f. = '</span> <span class="o">+</span> <span class="sa">f</span><span class="s1">'</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">chisquare_by_dof</span><span class="si">:</span><span class="s1">2.6f</span><span class="si">}</span><span class="s1">'</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span>
|
||||
|
@ -1064,7 +1064,7 @@
|
|||
</span><span id="Fit_result-66"><a href="#Fit_result-66"><span class="linenos">66</span></a> <span class="n">my_str</span> <span class="o">+=</span> <span class="nb">str</span><span class="p">(</span><span class="n">i_par</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\t</span><span class="s1">'</span> <span class="o">+</span> <span class="s1">' '</span> <span class="o">*</span> <span class="nb">int</span><span class="p">(</span><span class="n">par</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">par</span><span class="p">)</span><span class="o">.</span><span class="n">rjust</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">par</span> <span class="o"><</span> <span class="mf">0.0</span><span class="p">))</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span>
|
||||
</span><span id="Fit_result-67"><a href="#Fit_result-67"><span class="linenos">67</span></a> <span class="k">return</span> <span class="n">my_str</span>
|
||||
</span><span id="Fit_result-68"><a href="#Fit_result-68"><span class="linenos">68</span></a>
|
||||
</span><span id="Fit_result-69"><a href="#Fit_result-69"><span class="linenos">69</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-69"><a href="#Fit_result-69"><span class="linenos">69</span></a> <span class="k">def</span><span class="w"> </span><span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
</span><span id="Fit_result-70"><a href="#Fit_result-70"><span class="linenos">70</span></a> <span class="n">m</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">len</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">keys</span><span class="p">())))</span> <span class="o">+</span> <span class="mi">1</span>
|
||||
</span><span id="Fit_result-71"><a href="#Fit_result-71"><span class="linenos">71</span></a> <span class="k">return</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">key</span><span class="o">.</span><span class="n">rjust</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> <span class="o">+</span> <span class="s1">': '</span> <span class="o">+</span> <span class="nb">repr</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">items</span><span class="p">())])</span>
|
||||
</span></pre></div>
|
||||
|
@ -1110,7 +1110,7 @@ Hotelling t-squared p-value for correlated fits.</li>
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#Fit_result.gamma_method"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="Fit_result.gamma_method-46"><a href="#Fit_result.gamma_method-46"><span class="linenos">46</span></a> <span class="k">def</span> <span class="nf">gamma_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="Fit_result.gamma_method-46"><a href="#Fit_result.gamma_method-46"><span class="linenos">46</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">gamma_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="Fit_result.gamma_method-47"><a href="#Fit_result.gamma_method-47"><span class="linenos">47</span></a><span class="w"> </span><span class="sd">"""Apply the gamma method to all fit parameters"""</span>
|
||||
</span><span id="Fit_result.gamma_method-48"><a href="#Fit_result.gamma_method-48"><span class="linenos">48</span></a> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">]</span>
|
||||
</span></pre></div>
|
||||
|
@ -1132,7 +1132,7 @@ Hotelling t-squared p-value for correlated fits.</li>
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#Fit_result.gm"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="Fit_result.gm-46"><a href="#Fit_result.gm-46"><span class="linenos">46</span></a> <span class="k">def</span> <span class="nf">gamma_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="Fit_result.gm-46"><a href="#Fit_result.gm-46"><span class="linenos">46</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">gamma_method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="Fit_result.gm-47"><a href="#Fit_result.gm-47"><span class="linenos">47</span></a><span class="w"> </span><span class="sd">"""Apply the gamma method to all fit parameters"""</span>
|
||||
</span><span id="Fit_result.gm-48"><a href="#Fit_result.gm-48"><span class="linenos">48</span></a> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">gamma_method</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">fit_parameters</span><span class="p">]</span>
|
||||
</span></pre></div>
|
||||
|
@ -1155,7 +1155,7 @@ Hotelling t-squared p-value for correlated fits.</li>
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#least_squares"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="least_squares-74"><a href="#least_squares-74"><span class="linenos"> 74</span></a><span class="k">def</span> <span class="nf">least_squares</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">priors</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">silent</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>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="least_squares-74"><a href="#least_squares-74"><span class="linenos"> 74</span></a><span class="k">def</span><span class="w"> </span><span class="nf">least_squares</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">priors</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">silent</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><span id="least_squares-75"><a href="#least_squares-75"><span class="linenos"> 75</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">'''Performs a non-linear fit to y = func(x).</span>
|
||||
</span><span id="least_squares-76"><a href="#least_squares-76"><span class="linenos"> 76</span></a><span class="sd"> ```</span>
|
||||
</span><span id="least_squares-77"><a href="#least_squares-77"><span class="linenos"> 77</span></a>
|
||||
|
@ -1429,15 +1429,15 @@ Hotelling t-squared p-value for correlated fits.</li>
|
|||
</span><span id="least_squares-345"><a href="#least_squares-345"><span class="linenos">345</span></a> <span class="n">x0</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.1</span><span class="p">]</span> <span class="o">*</span> <span class="n">n_parms</span>
|
||||
</span><span id="least_squares-346"><a href="#least_squares-346"><span class="linenos">346</span></a>
|
||||
</span><span id="least_squares-347"><a href="#least_squares-347"><span class="linenos">347</span></a> <span class="k">if</span> <span class="n">priors</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
</span><span id="least_squares-348"><a href="#least_squares-348"><span class="linenos">348</span></a> <span class="k">def</span> <span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
|
||||
</span><span id="least_squares-348"><a href="#least_squares-348"><span class="linenos">348</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
|
||||
</span><span id="least_squares-349"><a href="#least_squares-349"><span class="linenos">349</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">anp</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">funcd</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">p</span><span class="p">,</span> <span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">])</span>
|
||||
</span><span id="least_squares-350"><a href="#least_squares-350"><span class="linenos">350</span></a> <span class="k">return</span> <span class="p">(</span><span class="n">ivars</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span>
|
||||
</span><span id="least_squares-351"><a href="#least_squares-351"><span class="linenos">351</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="least_squares-352"><a href="#least_squares-352"><span class="linenos">352</span></a> <span class="k">def</span> <span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
|
||||
</span><span id="least_squares-352"><a href="#least_squares-352"><span class="linenos">352</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
|
||||
</span><span id="least_squares-353"><a href="#least_squares-353"><span class="linenos">353</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">anp</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">funcd</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">p</span><span class="p">,</span> <span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">])</span>
|
||||
</span><span id="least_squares-354"><a href="#least_squares-354"><span class="linenos">354</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(((</span><span class="n">ivars</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">,</span> <span class="p">(</span><span class="n">p</span><span class="p">[</span><span class="n">prior_mask</span><span class="p">]</span> <span class="o">-</span> <span class="n">pr</span><span class="p">)</span> <span class="o">/</span> <span class="n">dp_f</span><span class="p">))</span>
|
||||
</span><span id="least_squares-355"><a href="#least_squares-355"><span class="linenos">355</span></a>
|
||||
</span><span id="least_squares-356"><a href="#least_squares-356"><span class="linenos">356</span></a> <span class="k">def</span> <span class="nf">chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="least_squares-356"><a href="#least_squares-356"><span class="linenos">356</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="least_squares-357"><a href="#least_squares-357"><span class="linenos">357</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="least_squares-358"><a href="#least_squares-358"><span class="linenos">358</span></a>
|
||||
</span><span id="least_squares-359"><a href="#least_squares-359"><span class="linenos">359</span></a> <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">'correlated_fit'</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
|
||||
|
@ -1455,11 +1455,11 @@ Hotelling t-squared p-value for correlated fits.</li>
|
|||
</span><span id="least_squares-371"><a href="#least_squares-371"><span class="linenos">371</span></a> <span class="n">inverrdiag</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">diag</span><span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">dy_f</span><span class="p">))</span>
|
||||
</span><span id="least_squares-372"><a href="#least_squares-372"><span class="linenos">372</span></a> <span class="n">chol_inv</span> <span class="o">=</span> <span class="n">invert_corr_cov_cholesky</span><span class="p">(</span><span class="n">corr</span><span class="p">,</span> <span class="n">inverrdiag</span><span class="p">)</span>
|
||||
</span><span id="least_squares-373"><a href="#least_squares-373"><span class="linenos">373</span></a>
|
||||
</span><span id="least_squares-374"><a href="#least_squares-374"><span class="linenos">374</span></a> <span class="k">def</span> <span class="nf">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
|
||||
</span><span id="least_squares-374"><a href="#least_squares-374"><span class="linenos">374</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">ivars</span><span class="p">,</span> <span class="n">pr</span><span class="p">):</span>
|
||||
</span><span id="least_squares-375"><a href="#least_squares-375"><span class="linenos">375</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">([</span><span class="n">anp</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">funcd</span><span class="p">[</span><span class="n">key</span><span class="p">](</span><span class="n">p</span><span class="p">,</span> <span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">])</span>
|
||||
</span><span id="least_squares-376"><a href="#least_squares-376"><span class="linenos">376</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">anp</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">chol_inv</span><span class="p">,</span> <span class="p">(</span><span class="n">ivars</span> <span class="o">-</span> <span class="n">model</span><span class="p">)),</span> <span class="p">(</span><span class="n">p</span><span class="p">[</span><span class="n">prior_mask</span><span class="p">]</span> <span class="o">-</span> <span class="n">pr</span><span class="p">)</span> <span class="o">/</span> <span class="n">dp_f</span><span class="p">))</span>
|
||||
</span><span id="least_squares-377"><a href="#least_squares-377"><span class="linenos">377</span></a>
|
||||
</span><span id="least_squares-378"><a href="#least_squares-378"><span class="linenos">378</span></a> <span class="k">def</span> <span class="nf">chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="least_squares-378"><a href="#least_squares-378"><span class="linenos">378</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="least_squares-379"><a href="#least_squares-379"><span class="linenos">379</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="least_squares-380"><a href="#least_squares-380"><span class="linenos">380</span></a> <span class="k">else</span><span class="p">:</span>
|
||||
</span><span id="least_squares-381"><a href="#least_squares-381"><span class="linenos">381</span></a> <span class="n">general_chisqfunc</span> <span class="o">=</span> <span class="n">general_chisqfunc_uncorr</span>
|
||||
|
@ -1493,12 +1493,12 @@ Hotelling t-squared p-value for correlated fits.</li>
|
|||
</span><span id="least_squares-409"><a href="#least_squares-409"><span class="linenos">409</span></a> <span class="k">if</span> <span class="s1">'tol'</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
||||
</span><span id="least_squares-410"><a href="#least_squares-410"><span class="linenos">410</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">'tol cannot be set for Levenberg-Marquardt'</span><span class="p">)</span>
|
||||
</span><span id="least_squares-411"><a href="#least_squares-411"><span class="linenos">411</span></a>
|
||||
</span><span id="least_squares-412"><a href="#least_squares-412"><span class="linenos">412</span></a> <span class="k">def</span> <span class="nf">chisqfunc_residuals_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="least_squares-412"><a href="#least_squares-412"><span class="linenos">412</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_residuals_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="least_squares-413"><a href="#least_squares-413"><span class="linenos">413</span></a> <span class="k">return</span> <span class="n">general_chisqfunc_uncorr</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span>
|
||||
</span><span id="least_squares-414"><a href="#least_squares-414"><span class="linenos">414</span></a>
|
||||
</span><span id="least_squares-415"><a href="#least_squares-415"><span class="linenos">415</span></a> <span class="n">fit_result</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">least_squares</span><span class="p">(</span><span class="n">chisqfunc_residuals_uncorr</span><span class="p">,</span> <span class="n">x0</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">'lm'</span><span class="p">,</span> <span class="n">ftol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">gtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">xtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">)</span>
|
||||
</span><span id="least_squares-416"><a href="#least_squares-416"><span class="linenos">416</span></a> <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">'correlated_fit'</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span>
|
||||
</span><span id="least_squares-417"><a href="#least_squares-417"><span class="linenos">417</span></a> <span class="k">def</span> <span class="nf">chisqfunc_residuals</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="least_squares-417"><a href="#least_squares-417"><span class="linenos">417</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_residuals</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="least_squares-418"><a href="#least_squares-418"><span class="linenos">418</span></a> <span class="k">return</span> <span class="n">general_chisqfunc</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)</span>
|
||||
</span><span id="least_squares-419"><a href="#least_squares-419"><span class="linenos">419</span></a>
|
||||
</span><span id="least_squares-420"><a href="#least_squares-420"><span class="linenos">420</span></a> <span class="n">fit_result</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">optimize</span><span class="o">.</span><span class="n">least_squares</span><span class="p">(</span><span class="n">chisqfunc_residuals</span><span class="p">,</span> <span class="n">fit_result</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s1">'lm'</span><span class="p">,</span> <span class="n">ftol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">gtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">,</span> <span class="n">xtol</span><span class="o">=</span><span class="mf">1e-15</span><span class="p">)</span>
|
||||
|
@ -1525,7 +1525,7 @@ Hotelling t-squared p-value for correlated fits.</li>
|
|||
</span><span id="least_squares-441"><a href="#least_squares-441"><span class="linenos">441</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">'chisquare/d.o.f.:'</span><span class="p">,</span> <span class="n">output</span><span class="o">.</span><span class="n">chisquare_by_dof</span><span class="p">)</span>
|
||||
</span><span id="least_squares-442"><a href="#least_squares-442"><span class="linenos">442</span></a> <span class="nb">print</span><span class="p">(</span><span class="s1">'fit parameters'</span><span class="p">,</span> <span class="n">fit_result</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
|
||||
</span><span id="least_squares-443"><a href="#least_squares-443"><span class="linenos">443</span></a>
|
||||
</span><span id="least_squares-444"><a href="#least_squares-444"><span class="linenos">444</span></a> <span class="k">def</span> <span class="nf">prepare_hat_matrix</span><span class="p">():</span>
|
||||
</span><span id="least_squares-444"><a href="#least_squares-444"><span class="linenos">444</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">prepare_hat_matrix</span><span class="p">():</span>
|
||||
</span><span id="least_squares-445"><a href="#least_squares-445"><span class="linenos">445</span></a> <span class="n">hat_vector</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</span><span id="least_squares-446"><a href="#least_squares-446"><span class="linenos">446</span></a> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">key_ls</span><span class="p">:</span>
|
||||
</span><span id="least_squares-447"><a href="#least_squares-447"><span class="linenos">447</span></a> <span class="k">if</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">xd</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">):</span>
|
||||
|
@ -1550,11 +1550,11 @@ Hotelling t-squared p-value for correlated fits.</li>
|
|||
</span><span id="least_squares-466"><a href="#least_squares-466"><span class="linenos">466</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="least_squares-467"><a href="#least_squares-467"><span class="linenos">467</span></a> <span class="n">hess</span> <span class="o">=</span> <span class="n">hessian</span><span class="p">(</span><span class="n">chisqfunc</span><span class="p">)(</span><span class="n">fitp</span><span class="p">)</span>
|
||||
</span><span id="least_squares-468"><a href="#least_squares-468"><span class="linenos">468</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
|
||||
</span><span id="least_squares-469"><a href="#least_squares-469"><span class="linenos">469</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details."</span><span class="p">)</span> <span class="kn">from</span> <span class="kc">None</span>
|
||||
</span><span id="least_squares-469"><a href="#least_squares-469"><span class="linenos">469</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details."</span><span class="p">)</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
|
||||
</span><span id="least_squares-470"><a href="#least_squares-470"><span class="linenos">470</span></a>
|
||||
</span><span id="least_squares-471"><a href="#least_squares-471"><span class="linenos">471</span></a> <span class="n">len_y</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">y_f</span><span class="p">)</span>
|
||||
</span><span id="least_squares-472"><a href="#least_squares-472"><span class="linenos">472</span></a>
|
||||
</span><span id="least_squares-473"><a href="#least_squares-473"><span class="linenos">473</span></a> <span class="k">def</span> <span class="nf">chisqfunc_compact</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
</span><span id="least_squares-473"><a href="#least_squares-473"><span class="linenos">473</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">chisqfunc_compact</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
</span><span id="least_squares-474"><a href="#least_squares-474"><span class="linenos">474</span></a> <span class="k">return</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">general_chisqfunc</span><span class="p">(</span><span class="n">d</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span> <span class="n">n_parms</span> <span class="o">+</span> <span class="n">len_y</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">len_y</span><span class="p">:])</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="least_squares-475"><a href="#least_squares-475"><span class="linenos">475</span></a>
|
||||
</span><span id="least_squares-476"><a href="#least_squares-476"><span class="linenos">476</span></a> <span class="n">jac_jac_y</span> <span class="o">=</span> <span class="n">hessian</span><span class="p">(</span><span class="n">chisqfunc_compact</span><span class="p">)(</span><span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">fitp</span><span class="p">,</span> <span class="n">y_f</span><span class="p">,</span> <span class="n">p_f</span><span class="p">)))</span>
|
||||
|
@ -1604,9 +1604,9 @@ list of Obs.</li>
|
|||
fit function, has to be of the form</p>
|
||||
|
||||
<div class="pdoc-code codehilite">
|
||||
<pre><span></span><code><span class="kn">import</span> <span class="nn">autograd.numpy</span> <span class="k">as</span> <span class="nn">anp</span>
|
||||
<pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">autograd.numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">anp</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">*</span> <span class="n">anp</span><span class="o">.</span><span class="n">sinh</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
@ -1614,7 +1614,7 @@ fit function, has to be of the form</p>
|
|||
<p>For multiple x values func can be of the form</p>
|
||||
|
||||
<div class="pdoc-code codehilite">
|
||||
<pre><span></span><code><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
<pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
<span class="p">(</span><span class="n">x1</span><span class="p">,</span> <span class="n">x2</span><span class="p">)</span> <span class="o">=</span> <span class="n">x</span>
|
||||
<span class="k">return</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="n">x1</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x2</span>
|
||||
</code></pre>
|
||||
|
@ -1698,10 +1698,10 @@ Parameters and information on the fitted result.</li>
|
|||
|
||||
<div class="pdoc-code codehilite">
|
||||
<pre><span></span><code><span class="gp">>>> </span><span class="c1"># Example of a correlated (correlated_fit = True, inv_chol_cov_matrix handed over) combined fit, based on a randomly generated data set</span>
|
||||
<span class="gp">>>> </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
|
||||
<span class="gp">>>> </span><span class="kn">from</span> <span class="nn">scipy.stats</span> <span class="kn">import</span> <span class="n">norm</span>
|
||||
<span class="gp">>>> </span><span class="kn">from</span> <span class="nn">scipy.linalg</span> <span class="kn">import</span> <span class="n">cholesky</span>
|
||||
<span class="gp">>>> </span><span class="kn">import</span> <span class="nn">pyerrors</span> <span class="k">as</span> <span class="nn">pe</span>
|
||||
<span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
|
||||
<span class="gp">>>> </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.stats</span><span class="w"> </span><span class="kn">import</span> <span class="n">norm</span>
|
||||
<span class="gp">>>> </span><span class="kn">from</span><span class="w"> </span><span class="nn">scipy.linalg</span><span class="w"> </span><span class="kn">import</span> <span class="n">cholesky</span>
|
||||
<span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">pyerrors</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pe</span>
|
||||
<span class="gp">>>> </span><span class="c1"># generating the random data set</span>
|
||||
<span class="gp">>>> </span><span class="n">num_samples</span> <span class="o">=</span> <span class="mi">400</span>
|
||||
<span class="gp">>>> </span><span class="n">N</span> <span class="o">=</span> <span class="mi">3</span>
|
||||
|
@ -1734,9 +1734,9 @@ Parameters and information on the fitted result.</li>
|
|||
<span class="gp">>>> </span> <span class="n">chol_inv</span> <span class="o">=</span> <span class="n">pe</span><span class="o">.</span><span class="n">obs</span><span class="o">.</span><span class="n">invert_corr_cov_cholesky</span><span class="p">(</span><span class="n">corr</span><span class="p">,</span> <span class="n">inverrdiag</span><span class="p">)</span> <span class="c1"># gives form of the inverse covariance matrix needed for the combined correlated fit below</span>
|
||||
<span class="gp">>>> </span><span class="n">y_dict</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'a'</span><span class="p">:</span> <span class="n">data</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span> <span class="s1">'b'</span><span class="p">:</span> <span class="n">data</span><span class="p">[</span><span class="mi">3</span><span class="p">:]}</span>
|
||||
<span class="gp">>>> </span><span class="c1"># common fit parameter p[0] in combined fit</span>
|
||||
<span class="gp">>>> </span><span class="k">def</span> <span class="nf">fit1</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
<span class="gp">>>> </span><span class="k">def</span><span class="w"> </span><span class="nf">fit1</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
<span class="gp">>>> </span> <span class="k">return</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">p</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span>
|
||||
<span class="gp">>>> </span><span class="k">def</span> <span class="nf">fit2</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
<span class="gp">>>> </span><span class="k">def</span><span class="w"> </span><span class="nf">fit2</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
<span class="gp">>>> </span> <span class="k">return</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">p</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span>
|
||||
<span class="gp">>>> </span><span class="n">fitf_dict</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'a'</span><span class="p">:</span> <span class="n">fit1</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">:</span><span class="n">fit2</span><span class="p">}</span>
|
||||
<span class="gp">>>> </span><span class="n">fitp_inv_cov_combined_fit</span> <span class="o">=</span> <span class="n">pe</span><span class="o">.</span><span class="n">least_squares</span><span class="p">(</span><span class="n">x_dict</span><span class="p">,</span><span class="n">y_dict</span><span class="p">,</span> <span class="n">fitf_dict</span><span class="p">,</span> <span class="n">correlated_fit</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">inv_chol_cov_matrix</span> <span class="o">=</span> <span class="p">[</span><span class="n">chol_inv</span><span class="p">,[</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">]])</span>
|
||||
|
@ -1762,7 +1762,7 @@ Parameters and information on the fitted result.</li>
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#total_least_squares"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="total_least_squares-507"><a href="#total_least_squares-507"><span class="linenos">507</span></a><span class="k">def</span> <span class="nf">total_least_squares</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">silent</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>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="total_least_squares-507"><a href="#total_least_squares-507"><span class="linenos">507</span></a><span class="k">def</span><span class="w"> </span><span class="nf">total_least_squares</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">silent</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><span id="total_least_squares-508"><a href="#total_least_squares-508"><span class="linenos">508</span></a><span class="w"> </span><span class="sa">r</span><span class="sd">'''Performs a non-linear fit to y = func(x) and returns a list of Obs corresponding to the fit parameters.</span>
|
||||
</span><span id="total_least_squares-509"><a href="#total_least_squares-509"><span class="linenos">509</span></a>
|
||||
</span><span id="total_least_squares-510"><a href="#total_least_squares-510"><span class="linenos">510</span></a><span class="sd"> Parameters</span>
|
||||
|
@ -1890,7 +1890,7 @@ Parameters and information on the fitted result.</li>
|
|||
</span><span id="total_least_squares-632"><a href="#total_least_squares-632"><span class="linenos">632</span></a>
|
||||
</span><span id="total_least_squares-633"><a href="#total_least_squares-633"><span class="linenos">633</span></a> <span class="n">m</span> <span class="o">=</span> <span class="n">x_f</span><span class="o">.</span><span class="n">size</span>
|
||||
</span><span id="total_least_squares-634"><a href="#total_least_squares-634"><span class="linenos">634</span></a>
|
||||
</span><span id="total_least_squares-635"><a href="#total_least_squares-635"><span class="linenos">635</span></a> <span class="k">def</span> <span class="nf">odr_chisquare</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="total_least_squares-635"><a href="#total_least_squares-635"><span class="linenos">635</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">odr_chisquare</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
</span><span id="total_least_squares-636"><a href="#total_least_squares-636"><span class="linenos">636</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">p</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">p</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span>
|
||||
</span><span id="total_least_squares-637"><a href="#total_least_squares-637"><span class="linenos">637</span></a> <span class="n">chisq</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">y_f</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">x_f</span> <span class="o">-</span> <span class="n">p</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span> <span class="o">/</span> <span class="n">dx_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="total_least_squares-638"><a href="#total_least_squares-638"><span class="linenos">638</span></a> <span class="k">return</span> <span class="n">chisq</span>
|
||||
|
@ -1925,9 +1925,9 @@ Parameters and information on the fitted result.</li>
|
|||
</span><span id="total_least_squares-667"><a href="#total_least_squares-667"><span class="linenos">667</span></a> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span id="total_least_squares-668"><a href="#total_least_squares-668"><span class="linenos">668</span></a> <span class="n">hess</span> <span class="o">=</span> <span class="n">hessian</span><span class="p">(</span><span class="n">odr_chisquare</span><span class="p">)(</span><span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="n">fitp</span><span class="p">,</span> <span class="n">out</span><span class="o">.</span><span class="n">xplus</span><span class="o">.</span><span class="n">ravel</span><span class="p">())))</span>
|
||||
</span><span id="total_least_squares-669"><a href="#total_least_squares-669"><span class="linenos">669</span></a> <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
|
||||
</span><span id="total_least_squares-670"><a href="#total_least_squares-670"><span class="linenos">670</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details."</span><span class="p">)</span> <span class="kn">from</span> <span class="kc">None</span>
|
||||
</span><span id="total_least_squares-670"><a href="#total_least_squares-670"><span class="linenos">670</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"It is required to use autograd.numpy instead of numpy within fit functions, see the documentation for details."</span><span class="p">)</span> <span class="kn">from</span><span class="w"> </span><span class="kc">None</span>
|
||||
</span><span id="total_least_squares-671"><a href="#total_least_squares-671"><span class="linenos">671</span></a>
|
||||
</span><span id="total_least_squares-672"><a href="#total_least_squares-672"><span class="linenos">672</span></a> <span class="k">def</span> <span class="nf">odr_chisquare_compact_x</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
</span><span id="total_least_squares-672"><a href="#total_least_squares-672"><span class="linenos">672</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">odr_chisquare_compact_x</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
</span><span id="total_least_squares-673"><a href="#total_least_squares-673"><span class="linenos">673</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">d</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span>
|
||||
</span><span id="total_least_squares-674"><a href="#total_least_squares-674"><span class="linenos">674</span></a> <span class="n">chisq</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">y_f</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">d</span><span class="p">[</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">:]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span> <span class="o">/</span> <span class="n">dx_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="total_least_squares-675"><a href="#total_least_squares-675"><span class="linenos">675</span></a> <span class="k">return</span> <span class="n">chisq</span>
|
||||
|
@ -1940,7 +1940,7 @@ Parameters and information on the fitted result.</li>
|
|||
</span><span id="total_least_squares-682"><a href="#total_least_squares-682"><span class="linenos">682</span></a> <span class="k">except</span> <span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">LinAlgError</span><span class="p">:</span>
|
||||
</span><span id="total_least_squares-683"><a href="#total_least_squares-683"><span class="linenos">683</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"Cannot invert hessian matrix."</span><span class="p">)</span>
|
||||
</span><span id="total_least_squares-684"><a href="#total_least_squares-684"><span class="linenos">684</span></a>
|
||||
</span><span id="total_least_squares-685"><a href="#total_least_squares-685"><span class="linenos">685</span></a> <span class="k">def</span> <span class="nf">odr_chisquare_compact_y</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
</span><span id="total_least_squares-685"><a href="#total_least_squares-685"><span class="linenos">685</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">odr_chisquare_compact_y</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
</span><span id="total_least_squares-686"><a href="#total_least_squares-686"><span class="linenos">686</span></a> <span class="n">model</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="n">d</span><span class="p">[:</span><span class="n">n_parms</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span>
|
||||
</span><span id="total_least_squares-687"><a href="#total_least_squares-687"><span class="linenos">687</span></a> <span class="n">chisq</span> <span class="o">=</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">d</span><span class="p">[</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">:]</span> <span class="o">-</span> <span class="n">model</span><span class="p">)</span> <span class="o">/</span> <span class="n">dy_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">anp</span><span class="o">.</span><span class="n">sum</span><span class="p">(((</span><span class="n">x_f</span> <span class="o">-</span> <span class="n">d</span><span class="p">[</span><span class="n">n_parms</span><span class="p">:</span><span class="n">n_parms</span> <span class="o">+</span> <span class="n">m</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_shape</span><span class="p">))</span> <span class="o">/</span> <span class="n">dx_f</span><span class="p">)</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
|
||||
</span><span id="total_least_squares-688"><a href="#total_least_squares-688"><span class="linenos">688</span></a> <span class="k">return</span> <span class="n">chisq</span>
|
||||
|
@ -1980,9 +1980,9 @@ list of Obs. The dvalues of the Obs are used as x- and yerror for the fit.</li>
|
|||
func has to be of the form</p>
|
||||
|
||||
<div class="pdoc-code codehilite">
|
||||
<pre><span></span><code><span class="kn">import</span> <span class="nn">autograd.numpy</span> <span class="k">as</span> <span class="nn">anp</span>
|
||||
<pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">autograd.numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">anp</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">*</span> <span class="n">anp</span><span class="o">.</span><span class="n">sinh</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
||||
</code></pre>
|
||||
</div>
|
||||
|
@ -1990,7 +1990,7 @@ func has to be of the form</p>
|
|||
<p>For multiple x values func can be of the form</p>
|
||||
|
||||
<div class="pdoc-code codehilite">
|
||||
<pre><span></span><code><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
<pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
<span class="p">(</span><span class="n">x1</span><span class="p">,</span> <span class="n">x2</span><span class="p">)</span> <span class="o">=</span> <span class="n">x</span>
|
||||
<span class="k">return</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="n">x1</span> <span class="o">**</span> <span class="mi">2</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x2</span>
|
||||
</code></pre>
|
||||
|
@ -2037,7 +2037,7 @@ Parameters and information on the fitted result.</li>
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#fit_lin"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="fit_lin-711"><a href="#fit_lin-711"><span class="linenos">711</span></a><span class="k">def</span> <span class="nf">fit_lin</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="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="fit_lin-711"><a href="#fit_lin-711"><span class="linenos">711</span></a><span class="k">def</span><span class="w"> </span><span class="nf">fit_lin</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="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
</span><span id="fit_lin-712"><a href="#fit_lin-712"><span class="linenos">712</span></a><span class="w"> </span><span class="sd">"""Performs a linear fit to y = n + m * x and returns two Obs n, m.</span>
|
||||
</span><span id="fit_lin-713"><a href="#fit_lin-713"><span class="linenos">713</span></a>
|
||||
</span><span id="fit_lin-714"><a href="#fit_lin-714"><span class="linenos">714</span></a><span class="sd"> Parameters</span>
|
||||
|
@ -2054,7 +2054,7 @@ Parameters and information on the fitted result.</li>
|
|||
</span><span id="fit_lin-725"><a href="#fit_lin-725"><span class="linenos">725</span></a><span class="sd"> LIist of fitted observables.</span>
|
||||
</span><span id="fit_lin-726"><a href="#fit_lin-726"><span class="linenos">726</span></a><span class="sd"> """</span>
|
||||
</span><span id="fit_lin-727"><a href="#fit_lin-727"><span class="linenos">727</span></a>
|
||||
</span><span id="fit_lin-728"><a href="#fit_lin-728"><span class="linenos">728</span></a> <span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
</span><span id="fit_lin-728"><a href="#fit_lin-728"><span class="linenos">728</span></a> <span class="k">def</span><span class="w"> </span><span class="nf">f</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||||
</span><span id="fit_lin-729"><a href="#fit_lin-729"><span class="linenos">729</span></a> <span class="n">y</span> <span class="o">=</span> <span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">a</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span>
|
||||
</span><span id="fit_lin-730"><a href="#fit_lin-730"><span class="linenos">730</span></a> <span class="k">return</span> <span class="n">y</span>
|
||||
</span><span id="fit_lin-731"><a href="#fit_lin-731"><span class="linenos">731</span></a>
|
||||
|
@ -2102,7 +2102,7 @@ LIist of fitted observables.</li>
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#qqplot"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="qqplot-742"><a href="#qqplot-742"><span class="linenos">742</span></a><span class="k">def</span> <span class="nf">qqplot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">o_y</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s2">""</span><span class="p">):</span>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="qqplot-742"><a href="#qqplot-742"><span class="linenos">742</span></a><span class="k">def</span><span class="w"> </span><span class="nf">qqplot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">o_y</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s2">""</span><span class="p">):</span>
|
||||
</span><span id="qqplot-743"><a href="#qqplot-743"><span class="linenos">743</span></a><span class="w"> </span><span class="sd">"""Generates a quantile-quantile plot of the fit result which can be used to</span>
|
||||
</span><span id="qqplot-744"><a href="#qqplot-744"><span class="linenos">744</span></a><span class="sd"> check if the residuals of the fit are gaussian distributed.</span>
|
||||
</span><span id="qqplot-745"><a href="#qqplot-745"><span class="linenos">745</span></a>
|
||||
|
@ -2156,7 +2156,7 @@ LIist of fitted observables.</li>
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#residual_plot"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="residual_plot-772"><a href="#residual_plot-772"><span class="linenos">772</span></a><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> <span class="n">title</span><span class="o">=</span><span class="s2">""</span><span class="p">):</span>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="residual_plot-772"><a href="#residual_plot-772"><span class="linenos">772</span></a><span class="k">def</span><span class="w"> </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> <span class="n">title</span><span class="o">=</span><span class="s2">""</span><span class="p">):</span>
|
||||
</span><span id="residual_plot-773"><a href="#residual_plot-773"><span class="linenos">773</span></a><span class="w"> </span><span class="sd">"""Generates a plot which compares the fit to the data and displays the corresponding residuals</span>
|
||||
</span><span id="residual_plot-774"><a href="#residual_plot-774"><span class="linenos">774</span></a>
|
||||
</span><span id="residual_plot-775"><a href="#residual_plot-775"><span class="linenos">775</span></a><span class="sd"> For uncorrelated data the residuals are expected to be distributed ~N(0,1).</span>
|
||||
|
@ -2218,7 +2218,7 @@ LIist of fitted observables.</li>
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#error_band"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="error_band-809"><a href="#error_band-809"><span class="linenos">809</span></a><span class="k">def</span> <span class="nf">error_band</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">beta</span><span class="p">):</span>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="error_band-809"><a href="#error_band-809"><span class="linenos">809</span></a><span class="k">def</span><span class="w"> </span><span class="nf">error_band</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">beta</span><span class="p">):</span>
|
||||
</span><span id="error_band-810"><a href="#error_band-810"><span class="linenos">810</span></a><span class="w"> </span><span class="sd">"""Calculate the error band for an array of sample values x, for given fit function func with optimized parameters beta.</span>
|
||||
</span><span id="error_band-811"><a href="#error_band-811"><span class="linenos">811</span></a>
|
||||
</span><span id="error_band-812"><a href="#error_band-812"><span class="linenos">812</span></a><span class="sd"> Returns</span>
|
||||
|
@ -2266,7 +2266,7 @@ Error band for an array of sample values x</li>
|
|||
|
||||
</div>
|
||||
<a class="headerlink" href="#ks_test"></a>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="ks_test-833"><a href="#ks_test-833"><span class="linenos">833</span></a><span class="k">def</span> <span class="nf">ks_test</span><span class="p">(</span><span class="n">objects</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<div class="pdoc-code codehilite"><pre><span></span><span id="ks_test-833"><a href="#ks_test-833"><span class="linenos">833</span></a><span class="k">def</span><span class="w"> </span><span class="nf">ks_test</span><span class="p">(</span><span class="n">objects</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
</span><span id="ks_test-834"><a href="#ks_test-834"><span class="linenos">834</span></a><span class="w"> </span><span class="sd">"""Performs a Kolmogorov–Smirnov test for the p-values of all fit object.</span>
|
||||
</span><span id="ks_test-835"><a href="#ks_test-835"><span class="linenos">835</span></a>
|
||||
</span><span id="ks_test-836"><a href="#ks_test-836"><span class="linenos">836</span></a><span class="sd"> Parameters</span>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue