File:Linear regression.svg

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Original file(SVG file, nominally 438 × 289 pixels, file size: 71 KB)

Summary

Random data points and their linear regression. Created with the following Sage (<a rel="nofollow" class="external free" href="http://sagemath.org">http://sagemath.org</a>) commands:

<span class="n">X</span> <span class="o">=</span> <span class="n">RealDistribution</span><span class="p">(</span><span class="s1">'uniform'</span><span class="p">,</span> <span class="p">[</span><span class="o">-</span><span class="mi">20</span><span class="p">,</span> <span class="mi">80</span>
<span class="p">])</span>

<span class="n">Y</span> <span class="o">=</span> <span class="n">RealDistribution</span><span class="p">(</span><span class="s1">'gaussian'</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">)</span>

<span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">=</span> <span class="mi">3</span><span class="o">*</span><span class="n">x</span><span class="o">/</span><span class="mi">20</span> <span class="o">+</span> <span class="mi">5</span>

<span class="n">xvals</span> <span class="o">=</span> <span class="p">[</span><span class="n">X</span><span class="o">.</span><span class="n">get_random_element</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)]</span>

<span class="n">data</span> <span class="o">=</span> <span class="p">[(</span><span class="n">x</span><span class="p">,</span> <span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">+</span> <span class="n">Y</span><span class="o">.</span><span class="n">get_random_element</span><span class="p">())</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">xvals</span><span class="p">]</span>

<span class="n">m</span><span class="p">,</span> <span class="n">b</span> <span class="o">=</span> <span class="n">var</span><span class="p">(</span><span class="s1">'m b'</span><span class="p">)</span>

<span class="n">g</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">=</span> <span class="n">m</span><span class="o">*</span><span class="n">x</span> <span class="o">+</span> <span class="n">b</span>

<span class="n">g</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">=</span> <span class="n">g</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="o">.</span><span class="n">subs</span><span class="p">(</span><span class="n">find_fit</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">g</span><span class="p">,</span> <span class="n">solution_dict</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span>

<span class="n">p</span> <span class="o">=</span> <span class="n">list_plot</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="o">+</span> <span class="n">plot</span><span class="p">(</span><span class="n">g</span><span class="p">,</span> <span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="o">-</span><span class="mi">20</span><span class="p">,</span> <span class="mi">60</span><span class="p">),</span> <span class="n">color</span><span class="o">=</span><span class="s1">'red'</span><span class="p">)</span>

<span class="n">p</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="s1">'linear_regression.svg'</span><span class="p">)</span>

Licensing

Lua error in package.lua at line 80: module 'strict' not found.

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current15:22, 3 January 2017Thumbnail for version as of 15:22, 3 January 2017438 × 289 (71 KB)127.0.0.1 (talk)Random data points and their linear regression. Created with the following Sage (<a rel="nofollow" class="external free" href="http://sagemath.org">http://sagemath.org</a>) commands: <div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span class="n">X</span> <span class="o">=</span> <span class="n">RealDistribution</span><span class="p">(</span><span class="s1">'uniform'</span><span class="p">,</span> <span class="p">[</span><span class="o">-</span><span class="mi">20</span><span class="p">,</span> <span class="mi">80</span> <span class="p">])</span> <span class="n">Y</span> <span class="o">=</span> <span class="n">RealDistribution</span><span class="p">(</span><span class="s1">'gaussian'</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">)</span> <span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">=</span> <span class="mi">3</span><span class="o">*</span><span class="n">x</span><span class="o">/</span><span class="mi">20</span> <span class="o">+</span> <span class="mi">5</span> <span class="n">xvals</span> <span class="o">=</span> <span class="p">[</span><span class="n">X</span><span class="o">.</span><span class="n">get_random_element</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">)]</span> <span class="n">data</span> <span class="o">=</span> <span class="p">[(</span><span class="n">x</span><span class="p">,</span> <span class="n">f</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">+</span> <span class="n">Y</span><span class="o">.</span><span class="n">get_random_element</span><span class="p">())</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">xvals</span><span class="p">]</span> <span class="n">m</span><span class="p">,</span> <span class="n">b</span> <span class="o">=</span> <span class="n">var</span><span class="p">(</span><span class="s1">'m b'</span><span class="p">)</span> <span class="n">g</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">=</span> <span class="n">m</span><span class="o">*</span><span class="n">x</span> <span class="o">+</span> <span class="n">b</span> <span class="n">g</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">=</span> <span class="n">g</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="o">.</span><span class="n">subs</span><span class="p">(</span><span class="n">find_fit</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">g</span><span class="p">,</span> <span class="n">solution_dict</span><span class="o">=</span><span class="bp">True</span><span class="p">))</span> <span class="n">p</span> <span class="o">=</span> <span class="n">list_plot</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="o">+</span> <span class="n">plot</span><span class="p">(</span><span class="n">g</span><span class="p">,</span> <span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="o">-</span><span class="mi">20</span><span class="p">,</span> <span class="mi">60</span><span class="p">),</span> <span class="n">color</span><span class="o">=</span><span class="s1">'red'</span><span class="p">)</span> <span class="n">p</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="s1">'linear_regression.svg'</span><span class="p">)</span> </pre></div>
  • You cannot overwrite this file.