title: Calculate trendline and predict future results
body: <p>I'm writing some analytics modules for the site I'm working on and I need to estimate the total views after the current hour.  I have data for every minute up to the current minute, so if the time is 12:28, I will have an array that looks something like this:</p>
  
  <pre><code>0: "21410"
  1: "21886"
  2: "21837"
  3: "21895"
  4: "21564"
  5: "21714"
  6: "21571"
  7: "21324"
  8: "21310"
  9: "21390"
  10: "21764"
  11: "21598"
  12: "21493"
  13: "21352"
  14: "21478"
  15: "21058"
  16: "20942"
  17: "20825"
  18: "21321"
  19: "20950"
  20: "21039"
  21: "21117"
  22: "20733"
  23: "20773"
  24: "20929"
  25: "20900"
  26: "20687"
  27: "20999"
  </code></pre>
  
  <p>Currently I am projecting the hour's value like this:</p>
  
  <pre><code>(60/minsSoFar)*totalSoFar
  </code></pre>
  
  <p>This works reasonably well, but I'd rather do it a bit more mathematically.  I'd like to calculate the line of best fit for the data I have so far and project that up to the 60th minute.  This would take into account acceleration and deceleration.</p>
  
  <p>With the method I'm currently using, I'm effectively assuming the trend is a straight line.  How would I calculate the formula for a polynomial or power trend?</p>
  
  <p>I'm writing this in NodeJS so JavaScript would be ideal, but I'll take pseudocode too!</p>
  
  <p>Here's the array in an easier format in case you want it:</p>
  
  <pre><code>[21410, 21886, 21837, 21895, 21564, 21714, 21571, 21324, 21310, 21390, 21764, 21598, 21493, 21352, 21478, 21058, 20942, 20825, 21321, 20950, 21039, 21117, 20733, 20773, 20929, 20900, 20687, 20999]
  </code></pre>
  
  <p>Thanks for any help!</p>