Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parameter fitting of compositions using MLE via probability density approximation #1920

Merged
merged 116 commits into from
Mar 8, 2022

Conversation

davidt0x
Copy link
Collaborator

@davidt0x davidt0x commented Feb 23, 2021

Initial implementation of parameter estimation with compositions using maximum likelihood estimation (MLE) via probability density approximation (PDA).

davidt0x and others added 30 commits March 19, 2020 12:00
…Link into model-fit

# Conflicts:
#	psyneulink/components/functions/function.py
#	psyneulink/components/mechanisms/mechanism.py
#	psyneulink/components/system.py
#	psyneulink/globals/environment.py
#	psyneulink/library/subsystems/evc/evcauxiliary.py
The standard deviation of the Gaussian noise for the DDM is
conventionally defined as noise * sqrt(dt). See Bogacz et al., Eq 6.
Default value of 1000 is arbitrary, should be unlimited in my
opinion. When time_step_size gets below 0.001 then 1000 steps
are often needed. Setting the sys.maxsize make its practically
unlimited for now. This is a hack though, maybe there is a way
to disable the limit but I can't find it in the docs.
jdcpni and others added 24 commits November 10, 2021 01:40
  - _sequential_evaluate: implement same_randomization_for_all_allocations
  _function: re-removed num_estiamtes loop, and use np.apply to apply aggregation_function
  - _function: refactored to put use aggregation_function at end
  - _grid_evaluate:  still needs to return all_samples
  - _function: refactored to put use aggregation_function at end
  - _grid_evaluate:  still needs to return all_samples
  - _gen_llvm_evaluate_function: num_estimates -> num_trials_per_estimate
…teger

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
  get_param_struct_type():  restored test on num_estimates
@github-actions
Copy link

github-actions bot commented Mar 8, 2022

This PR causes the following changes to the html docs (ubuntu-latest-3.7-x64):

diff -r docs-base/Component.html docs-head/Component.html
494c494
< <p><a class="reference internal" href="Mechanisms.html"><span class="doc">Mechanisms</span></a> &lt;Mechanism&gt;` are the only type of Component that reset when the <a class="reference internal" href="#psyneulink.core.components.component.Component.reset_stateful_function_when" title="psyneulink.core.components.component.Component.reset_stateful_function_when"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">reset_stateful_function_when</span></code></a> <a class="reference internal" href="Condition.html"><span class="doc">Condition</span></a> is satisfied. Other Component types do not reset,
---
> <p><a class="reference internal" href="Mechanism.html"><span class="doc">Mechanisms</span></a> are the only type of Component that reset when the <a class="reference internal" href="#psyneulink.core.components.component.Component.reset_stateful_function_when" title="psyneulink.core.components.component.Component.reset_stateful_function_when"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">reset_stateful_function_when</span></code></a> <a class="reference internal" href="Condition.html"><span class="doc">Condition</span></a> is satisfied. Other Component types do not reset,
diff -r docs-base/Composition.html docs-head/Composition.html
4863a4864,4870
> <dl class="py method">
> <dt class="sig sig-object py" id="psyneulink.core.compositions.composition.Composition.make_likelihood_function">
> <span class="sig-name descname"><span class="pre">make_likelihood_function</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.compositions.composition.Composition.make_likelihood_function" title="Permalink to this definition">¶</a></dt>
> <dd><p>This method invokes <code class="xref py py-func docutils literal notranslate"><span class="pre">make_likelihood_function()</span></code>
> on the composition.</p>
> </dd></dl>
> 
diff -r docs-base/DDM.html docs-head/DDM.html
325c325
< <span class="gp">... </span>        <span class="n">starting_point</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
---
> <span class="gp">... </span>        <span class="n">starting_value</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
328c328
< <span class="gp">... </span>        <span class="n">t0</span><span class="o">=</span><span class="mf">0.15</span>
---
> <span class="gp">... </span>        <span class="n">non_decision_time</span><span class="o">=</span><span class="mf">0.15</span>
345c345
< <span class="gp">... </span>        <span class="n">starting_point</span><span class="o">=</span><span class="mf">2.0</span><span class="p">,</span>
---
> <span class="gp">... </span>        <span class="n">non_decision_time</span><span class="o">=</span><span class="mf">2.0</span><span class="p">,</span>
385a386,392
> <p>The default behaviour for the DDM is to reset its integration state on each new trial, this can be overridden by
> setting the <a class="reference internal" href="Component.html#psyneulink.core.components.component.Component.reset_stateful_function_when" title="psyneulink.core.components.component.Component.reset_stateful_function_when"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">reset_stateful_function_when</span></code></a> attribute to a different condition.
> In addition, unlike <code class="xref any docutils literal notranslate"><span class="pre">TransferMechamism</span></code>, the DDM’s
> <a class="reference internal" href="Component.html#psyneulink.core.components.component.Component.execute_until_finished" title="psyneulink.core.components.component.Component.execute_until_finished"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">execute_until_finished</span></code></a>
> attribute is set to <code class="code docutils literal notranslate"><span class="pre">True</span></code> by default. This will cause the DDM to execute multiple time steps per
> call to its <a class="reference internal" href="Component.html#psyneulink.core.components.component.Component.execute" title="psyneulink.core.components.component.Component.execute"><code class="xref any py py-meth docutils literal notranslate"><span class="pre">execute</span></code></a>  method until the decision threshold is reached. This default behavior can
> be changed by setting <a class="reference internal" href="Component.html#psyneulink.core.components.component.Component.execute_until_finished" title="psyneulink.core.components.component.Component.execute_until_finished"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">execute_until_finished</span></code></a> to <code class="code docutils literal notranslate"><span class="pre">False</span></code>.</p>
389c396
< <li><p><strong>default_variable</strong> (<em>value</em><em>, </em><em>list</em><em> or </em><em>np.ndarray : default FUNCTION_PARAMS</em><em>[</em><em>STARTING_POINT</em><em>]</em>) – the input to the Mechanism used if none is provided in a call to its <a class="reference internal" href="Mechanism.html#psyneulink.core.components.mechanisms.mechanism.Mechanism_Base.execute" title="psyneulink.core.components.mechanisms.mechanism.Mechanism_Base.execute"><code class="xref any py py-meth docutils literal notranslate"><span class="pre">execute</span></code></a> or
---
> <li><p><strong>default_variable</strong> (<em>value</em><em>, </em><em>list</em><em> or </em><em>np.ndarray : default FUNCTION_PARAMS</em><em>[</em><em>STARTING_VALUE</em><em>]</em>) – the input to the Mechanism used if none is provided in a call to its <a class="reference internal" href="Mechanism.html#psyneulink.core.components.mechanisms.mechanism.Mechanism_Base.execute" title="psyneulink.core.components.mechanisms.mechanism.Mechanism_Base.execute"><code class="xref any py py-meth docutils literal notranslate"><span class="pre">execute</span></code></a> or
404c411
< <dd class="field-odd"><p>value : default  FUNCTION_PARAMS[STARTING_POINT]</p>
---
> <dd class="field-odd"><p>value : default  FUNCTION_PARAMS[STARTING_VALUE]</p>
diff -r docs-base/DistributionFunctions.html docs-head/DistributionFunctions.html
222c222
< <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.distributionfunctions.</span></span><span class="sig-name descname"><span class="pre">DriftDiffusionAnalytical</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">default_variable=None</span></em>, <em class="sig-param"><span class="pre">drift_rate=1.0</span></em>, <em class="sig-param"><span class="pre">threshold=1.0</span></em>, <em class="sig-param"><span class="pre">starting_point=0.0</span></em>, <em class="sig-param"><span class="pre">t0=0.2</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">noise=0.5</span></em>, <em class="sig-param"><span class="pre">params=None</span></em>, <em class="sig-param"><span class="pre">owner=None</span></em>, <em class="sig-param"><span class="pre">prefs=None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical" title="Permalink to this definition">¶</a></dt>
---
> <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.distributionfunctions.</span></span><span class="sig-name descname"><span class="pre">DriftDiffusionAnalytical</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">default_variable=None</span></em>, <em class="sig-param"><span class="pre">drift_rate=1.0</span></em>, <em class="sig-param"><span class="pre">threshold=1.0</span></em>, <em class="sig-param"><span class="pre">starting_value=0.0</span></em>, <em class="sig-param"><span class="pre">non_decision_time=0.2</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">noise=0.5</span></em>, <em class="sig-param"><span class="pre">params=None</span></em>, <em class="sig-param"><span class="pre">owner=None</span></em>, <em class="sig-param"><span class="pre">prefs=None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical" title="Permalink to this definition">¶</a></dt>
228c228
< <div class="line"><em>ADDITIVE_PARAM:</em> <a class="reference internal" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_point" title="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_point"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">starting_point</span></code></a></div>
---
> <div class="line"><em>ADDITIVE_PARAM:</em> <a class="reference internal" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_value" title="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_value"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">starting_value</span></code></a></div>
240c240
< <li><p><strong>starting_point</strong> (<em>float</em><em>, </em><em>list</em><em> or </em><em>1d array : default 1.0</em>) – specifies the initial value of the decision variable for the drift diffusion process.  If it is a list or
---
> <li><p><strong>starting_value</strong> (<em>float</em><em>, </em><em>list</em><em> or </em><em>1d array : default 1.0</em>) – specifies the initial value of the decision variable for the drift diffusion process.  If it is a list or
245c245
< <li><p><strong>t0</strong> (<em>float</em><em>, </em><em>list</em><em> or </em><em>1d array : default 0.2</em>) – specifies the non-decision time for solution. If it is a float, it must be a number from 0 to 1.  If it is a
---
> <li><p><strong>non_decision_time</strong> (<em>float</em><em>, </em><em>list</em><em> or </em><em>1d array : default 0.2</em>) – specifies the non-decision time for solution. If it is a float, it must be a number from 0 to 1.  If it is a
294,295c294,295
< <dt class="sig sig-object py" id="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_point">
< <span class="sig-name descname"><span class="pre">starting_point</span></span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_point" title="Permalink to this definition">¶</a></dt>
---
> <dt class="sig sig-object py" id="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_value">
> <span class="sig-name descname"><span class="pre">starting_value</span></span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_value" title="Permalink to this definition">¶</a></dt>
317,318c317,318
< <dt class="sig sig-object py" id="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.t0">
< <span class="sig-name descname"><span class="pre">t0</span></span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.t0" title="Permalink to this definition">¶</a></dt>
---
> <dt class="sig sig-object py" id="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.non_decision_time">
> <span class="sig-name descname"><span class="pre">non_decision_time</span></span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.non_decision_time" title="Permalink to this definition">¶</a></dt>
331c331
< (<a class="reference internal" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_point" title="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_point"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">starting_point</span></code></a> + <a class="reference internal" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.threshold" title="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.threshold"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">threshold</span></code></a>) /
---
> (<a class="reference internal" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_value" title="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_value"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">starting_value</span></code></a> + <a class="reference internal" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.threshold" title="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.threshold"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">threshold</span></code></a>) /
426c426
< <em class="property"><span class="pre">static</span> </em><span class="sig-name descname"><span class="pre">_compute_conditional_rt_moments</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">drift_rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">noise</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">threshold</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">starting_point</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">t0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical._compute_conditional_rt_moments" title="Permalink to this definition">¶</a></dt>
---
> <em class="property"><span class="pre">static</span> </em><span class="sig-name descname"><span class="pre">_compute_conditional_rt_moments</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">drift_rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">noise</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">threshold</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">starting_value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">non_decision_time</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical._compute_conditional_rt_moments" title="Permalink to this definition">¶</a></dt>
435,436c435,436
< <li><p><strong>starting_point</strong> – The initial condition.</p></li>
< <li><p><strong>t0</strong> – The non decision time.</p></li>
---
> <li><p><strong>starting_value</strong> – The initial condition.</p></li>
> <li><p><strong>non_decision_time</strong> – The non decision time.</p></li>
diff -r docs-base/IntegratorFunctions.html docs-head/IntegratorFunctions.html
583c583
< <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.stateful.integratorfunctions.</span></span><span class="sig-name descname"><span class="pre">DriftDiffusionIntegrator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">default_variable=None</span></em>, <em class="sig-param"><span class="pre">rate=1.0</span></em>, <em class="sig-pa
...

See CI logs for the full diff.

GradientOptimization was invoking the base class
_function implementation which is an abstract method now. It
now invokes _evaluate instead to get the old behaviour.
@github-actions
Copy link

github-actions bot commented Mar 8, 2022

This PR causes the following changes to the html docs (ubuntu-latest-3.7-x64):

diff -r docs-base/Component.html docs-head/Component.html
494c494
< <p><a class="reference internal" href="Mechanisms.html"><span class="doc">Mechanisms</span></a> &lt;Mechanism&gt;` are the only type of Component that reset when the <a class="reference internal" href="#psyneulink.core.components.component.Component.reset_stateful_function_when" title="psyneulink.core.components.component.Component.reset_stateful_function_when"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">reset_stateful_function_when</span></code></a> <a class="reference internal" href="Condition.html"><span class="doc">Condition</span></a> is satisfied. Other Component types do not reset,
---
> <p><a class="reference internal" href="Mechanism.html"><span class="doc">Mechanisms</span></a> are the only type of Component that reset when the <a class="reference internal" href="#psyneulink.core.components.component.Component.reset_stateful_function_when" title="psyneulink.core.components.component.Component.reset_stateful_function_when"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">reset_stateful_function_when</span></code></a> <a class="reference internal" href="Condition.html"><span class="doc">Condition</span></a> is satisfied. Other Component types do not reset,
diff -r docs-base/Composition.html docs-head/Composition.html
4863a4864,4870
> <dl class="py method">
> <dt class="sig sig-object py" id="psyneulink.core.compositions.composition.Composition.make_likelihood_function">
> <span class="sig-name descname"><span class="pre">make_likelihood_function</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.compositions.composition.Composition.make_likelihood_function" title="Permalink to this definition">¶</a></dt>
> <dd><p>This method invokes <code class="xref py py-func docutils literal notranslate"><span class="pre">make_likelihood_function()</span></code>
> on the composition.</p>
> </dd></dl>
> 
diff -r docs-base/DDM.html docs-head/DDM.html
325c325
< <span class="gp">... </span>        <span class="n">starting_point</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
---
> <span class="gp">... </span>        <span class="n">starting_value</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
328c328
< <span class="gp">... </span>        <span class="n">t0</span><span class="o">=</span><span class="mf">0.15</span>
---
> <span class="gp">... </span>        <span class="n">non_decision_time</span><span class="o">=</span><span class="mf">0.15</span>
345c345
< <span class="gp">... </span>        <span class="n">starting_point</span><span class="o">=</span><span class="mf">2.0</span><span class="p">,</span>
---
> <span class="gp">... </span>        <span class="n">non_decision_time</span><span class="o">=</span><span class="mf">2.0</span><span class="p">,</span>
385a386,392
> <p>The default behaviour for the DDM is to reset its integration state on each new trial, this can be overridden by
> setting the <a class="reference internal" href="Component.html#psyneulink.core.components.component.Component.reset_stateful_function_when" title="psyneulink.core.components.component.Component.reset_stateful_function_when"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">reset_stateful_function_when</span></code></a> attribute to a different condition.
> In addition, unlike <code class="xref any docutils literal notranslate"><span class="pre">TransferMechamism</span></code>, the DDM’s
> <a class="reference internal" href="Component.html#psyneulink.core.components.component.Component.execute_until_finished" title="psyneulink.core.components.component.Component.execute_until_finished"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">execute_until_finished</span></code></a>
> attribute is set to <code class="code docutils literal notranslate"><span class="pre">True</span></code> by default. This will cause the DDM to execute multiple time steps per
> call to its <a class="reference internal" href="Component.html#psyneulink.core.components.component.Component.execute" title="psyneulink.core.components.component.Component.execute"><code class="xref any py py-meth docutils literal notranslate"><span class="pre">execute</span></code></a>  method until the decision threshold is reached. This default behavior can
> be changed by setting <a class="reference internal" href="Component.html#psyneulink.core.components.component.Component.execute_until_finished" title="psyneulink.core.components.component.Component.execute_until_finished"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">execute_until_finished</span></code></a> to <code class="code docutils literal notranslate"><span class="pre">False</span></code>.</p>
389c396
< <li><p><strong>default_variable</strong> (<em>value</em><em>, </em><em>list</em><em> or </em><em>np.ndarray : default FUNCTION_PARAMS</em><em>[</em><em>STARTING_POINT</em><em>]</em>) – the input to the Mechanism used if none is provided in a call to its <a class="reference internal" href="Mechanism.html#psyneulink.core.components.mechanisms.mechanism.Mechanism_Base.execute" title="psyneulink.core.components.mechanisms.mechanism.Mechanism_Base.execute"><code class="xref any py py-meth docutils literal notranslate"><span class="pre">execute</span></code></a> or
---
> <li><p><strong>default_variable</strong> (<em>value</em><em>, </em><em>list</em><em> or </em><em>np.ndarray : default FUNCTION_PARAMS</em><em>[</em><em>STARTING_VALUE</em><em>]</em>) – the input to the Mechanism used if none is provided in a call to its <a class="reference internal" href="Mechanism.html#psyneulink.core.components.mechanisms.mechanism.Mechanism_Base.execute" title="psyneulink.core.components.mechanisms.mechanism.Mechanism_Base.execute"><code class="xref any py py-meth docutils literal notranslate"><span class="pre">execute</span></code></a> or
404c411
< <dd class="field-odd"><p>value : default  FUNCTION_PARAMS[STARTING_POINT]</p>
---
> <dd class="field-odd"><p>value : default  FUNCTION_PARAMS[STARTING_VALUE]</p>
diff -r docs-base/DistributionFunctions.html docs-head/DistributionFunctions.html
222c222
< <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.distributionfunctions.</span></span><span class="sig-name descname"><span class="pre">DriftDiffusionAnalytical</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">default_variable=None</span></em>, <em class="sig-param"><span class="pre">drift_rate=1.0</span></em>, <em class="sig-param"><span class="pre">threshold=1.0</span></em>, <em class="sig-param"><span class="pre">starting_point=0.0</span></em>, <em class="sig-param"><span class="pre">t0=0.2</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">noise=0.5</span></em>, <em class="sig-param"><span class="pre">params=None</span></em>, <em class="sig-param"><span class="pre">owner=None</span></em>, <em class="sig-param"><span class="pre">prefs=None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical" title="Permalink to this definition">¶</a></dt>
---
> <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.distributionfunctions.</span></span><span class="sig-name descname"><span class="pre">DriftDiffusionAnalytical</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">default_variable=None</span></em>, <em class="sig-param"><span class="pre">drift_rate=1.0</span></em>, <em class="sig-param"><span class="pre">threshold=1.0</span></em>, <em class="sig-param"><span class="pre">starting_value=0.0</span></em>, <em class="sig-param"><span class="pre">non_decision_time=0.2</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">noise=0.5</span></em>, <em class="sig-param"><span class="pre">params=None</span></em>, <em class="sig-param"><span class="pre">owner=None</span></em>, <em class="sig-param"><span class="pre">prefs=None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical" title="Permalink to this definition">¶</a></dt>
228c228
< <div class="line"><em>ADDITIVE_PARAM:</em> <a class="reference internal" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_point" title="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_point"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">starting_point</span></code></a></div>
---
> <div class="line"><em>ADDITIVE_PARAM:</em> <a class="reference internal" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_value" title="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_value"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">starting_value</span></code></a></div>
240c240
< <li><p><strong>starting_point</strong> (<em>float</em><em>, </em><em>list</em><em> or </em><em>1d array : default 1.0</em>) – specifies the initial value of the decision variable for the drift diffusion process.  If it is a list or
---
> <li><p><strong>starting_value</strong> (<em>float</em><em>, </em><em>list</em><em> or </em><em>1d array : default 1.0</em>) – specifies the initial value of the decision variable for the drift diffusion process.  If it is a list or
245c245
< <li><p><strong>t0</strong> (<em>float</em><em>, </em><em>list</em><em> or </em><em>1d array : default 0.2</em>) – specifies the non-decision time for solution. If it is a float, it must be a number from 0 to 1.  If it is a
---
> <li><p><strong>non_decision_time</strong> (<em>float</em><em>, </em><em>list</em><em> or </em><em>1d array : default 0.2</em>) – specifies the non-decision time for solution. If it is a float, it must be a number from 0 to 1.  If it is a
294,295c294,295
< <dt class="sig sig-object py" id="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_point">
< <span class="sig-name descname"><span class="pre">starting_point</span></span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_point" title="Permalink to this definition">¶</a></dt>
---
> <dt class="sig sig-object py" id="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_value">
> <span class="sig-name descname"><span class="pre">starting_value</span></span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_value" title="Permalink to this definition">¶</a></dt>
317,318c317,318
< <dt class="sig sig-object py" id="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.t0">
< <span class="sig-name descname"><span class="pre">t0</span></span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.t0" title="Permalink to this definition">¶</a></dt>
---
> <dt class="sig sig-object py" id="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.non_decision_time">
> <span class="sig-name descname"><span class="pre">non_decision_time</span></span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.non_decision_time" title="Permalink to this definition">¶</a></dt>
331c331
< (<a class="reference internal" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_point" title="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_point"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">starting_point</span></code></a> + <a class="reference internal" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.threshold" title="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.threshold"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">threshold</span></code></a>) /
---
> (<a class="reference internal" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_value" title="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.starting_value"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">starting_value</span></code></a> + <a class="reference internal" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.threshold" title="psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical.threshold"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">threshold</span></code></a>) /
426c426
< <em class="property"><span class="pre">static</span> </em><span class="sig-name descname"><span class="pre">_compute_conditional_rt_moments</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">drift_rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">noise</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">threshold</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">starting_point</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">t0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical._compute_conditional_rt_moments" title="Permalink to this definition">¶</a></dt>
---
> <em class="property"><span class="pre">static</span> </em><span class="sig-name descname"><span class="pre">_compute_conditional_rt_moments</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">drift_rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">noise</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">threshold</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">starting_value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">non_decision_time</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical._compute_conditional_rt_moments" title="Permalink to this definition">¶</a></dt>
435,436c435,436
< <li><p><strong>starting_point</strong> – The initial condition.</p></li>
< <li><p><strong>t0</strong> – The non decision time.</p></li>
---
> <li><p><strong>starting_value</strong> – The initial condition.</p></li>
> <li><p><strong>non_decision_time</strong> – The non decision time.</p></li>
diff -r docs-base/IntegratorFunctions.html docs-head/IntegratorFunctions.html
583c583
< <em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">psyneulink.core.components.functions.stateful.integratorfunctions.</span></span><span class="sig-name descname"><span class="pre">DriftDiffusionIntegrator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">default_variable=None</span></em>, <em class="sig-param"><span class="pre">rate=1.0</span></em>, <em class="sig-pa
...

See CI logs for the full diff.

@lgtm-com
Copy link
Contributor

lgtm-com bot commented Mar 8, 2022

This pull request introduces 32 alerts and fixes 1 when merging 657cb78 into c7c172b - view on LGTM.com

new alerts:

  • 17 for Unused import
  • 6 for Unreachable code
  • 5 for Variable defined multiple times
  • 2 for Module is imported with 'import' and 'import from'
  • 1 for Module is imported more than once
  • 1 for Unused local variable

fixed alerts:

  • 1 for Unused local variable

@davidt0x davidt0x merged commit 19e9388 into devel Mar 8, 2022
@davidt0x davidt0x deleted the fit branch March 8, 2022 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants