2015-09-06 5 views
0

Я создаю SPA с использованием рамки backbone.js, все приложение управляется серией CSV. CSV будут выглядеть примерно так.Библиотека для регрессии OLS JS

Day, Time, Place, Score 
Tuesday, 9:00 pm, Omaha, 13 
Monday, 8:15 pm, KC, 15 

Идея заключается в том, что там будет ряд выпадающего меню или даже перетащить и функцию, в которой можно выбрать, какой из CSV заголовков для регрессии на падении. Очевидно, назначение зависимых и независимых переменных.

Мне не удалось найти библиотеку js, способную выполнять регрессию по шкале, которую я хочу. CSV, вероятно, будет около 300 000 строк. Я относительно новичок в JS, и я не хочу писать это с нуля, если у кого есть метод регрессии OLS, я бы очень признателен.

ответ

0

Нет существующей статистической библиотеки, которая включает регрессию OLS, но я нашел для нее код для этого здесь. http://trentrichardson.com/2010/04/06/compute-linear-regressions-in-javascript/

Вот код:

function linearRegression(y,x){ 
     var lr = {}; 
     var n = y.length; 
     var sum_x = 0; 
     var sum_y = 0; 
     var sum_xy = 0; 
     var sum_xx = 0; 
     var sum_yy = 0; 

     for (var i = 0; i < y.length; i++) { 

      sum_x += x[i]; 
      sum_y += y[i]; 
      sum_xy += (x[i]*y[i]); 
      sum_xx += (x[i]*x[i]); 
      sum_yy += (y[i]*y[i]); 
     } 

     lr['slope'] = (n * sum_xy - sum_x * sum_y)/(n*sum_xx - sum_x * sum_x); 
     lr['intercept'] = (sum_y - lr.slope * sum_x)/n; 
     lr['r2'] = Math.pow((n*sum_xy - sum_x*sum_y)/Math.sqrt((n*sum_xx-sum_x*sum_x)*(n*sum_yy-sum_y*sum_y)),2); 

     return lr; 
} 

var known_y = [1, 2, 3, 4]; 
var known_x = [5.2, 5.7, 5.0, 4.2]; 

var lr = linearRegression(known_y, known_x); 
// lr.slope 
// lr.intercept 
// lr.r2 

Это легко лучший один я нашел, и делает для легкой сборки в рамках Backbone.js.

Смежные вопросы