<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Math on Codrut Constantin Gusoi</title>
    <link>https://www.codrut.pro/tags/math/</link>
    <description>Recent content in Math on Codrut Constantin Gusoi</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 30 Mar 2020 22:52:42 +0000</lastBuildDate>
    <atom:link href="https://www.codrut.pro/tags/math/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Linear regression in Ruby</title>
      <link>https://www.codrut.pro/snippets/linear-regression-in-ruby/</link>
      <pubDate>Mon, 30 Mar 2020 22:52:42 +0000</pubDate>
      <guid>https://www.codrut.pro/snippets/linear-regression-in-ruby/</guid>
      <description>&lt;p&gt;Let&amp;rsquo;s say you have the following 5 numbers:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ruby&#34; data-lang=&#34;ruby&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;values &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;200&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;300&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;400&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;500&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To predict the next 3 in this series you need linear regression:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ruby&#34; data-lang=&#34;ruby&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;linear_regression&lt;/span&gt;(pairs)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  n &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; pairs&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;size&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  sum_x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; pairs&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;map { &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;x, _&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; x }&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sum&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;to_f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  sum_y &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; pairs&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;map { &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;_, y&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; y }&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sum&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;to_f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  sum_xx &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; pairs&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;map { &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;x, _&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; x }&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sum&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;to_f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  sum_xy &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; pairs&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;map { &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;x, y&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; y }&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sum&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;to_f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  a &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; (    n &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; sum_xy &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; sum_x &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; sum_y ) &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; (n &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; sum_xx &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; sum_x&lt;span style=&#34;color:#f92672&#34;&gt;**&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  b &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; (sum_y &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; sum_xx &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; sum_x &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; sum_xy) &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; (n &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; sum_xx &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; sum_x&lt;span style=&#34;color:#f92672&#34;&gt;**&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;a, b&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;end&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Call the function above with pairs of &lt;code&gt;[index, value]&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
