Выполнение линейной регрессии - PullRequest
0 голосов
/ 04 мая 2020

Я хочу прогнозировать будущую посещаемость, используя месячную посещаемость.

Язык программирования не имеет значения. Я хотел бы знать, где мой подход или математика неверны.

Мои данные выглядят так:

days = [1,2,3,4,5]
attendance = [1,0,1,1,0]

1 - присутствует 0 - отсутствует

Я пытался преобразование посещаемости в определенный день в совокупный процент. Как:

days = [1,2,3,4,5]
attendance = [100,50,66,75,60]

Затем снова запустили линейную регрессию. Я все еще получаю отрицательные значения при расчете.

JS КОД:

    sum_x = summation(days); 
    sum_y = summation(percent_attendance);

    mean_x = sum_x/days.length;
    mean_y = sum_y/percent_attendance.length;


    //-------differences----multiplications-----

    days.forEach(function(x){ x_xb.push(x - mean_x); }); //x - xb loaded
    percent_attendance.forEach(function(y){ y_yb.push(y - mean_y); }); //y - yb loaded
    //-----------------------------------------------------------



    //-------summations----------------

    summation__x_xby_yb = summation(mulArray(x_xb,y_yb));
    summation__x_xb2 = summation(mulArray(x_xb,x_xb));
    summation__y_yb2 = summation(mulArray(y_yb,y_yb));
    //-----------------------------------------------------------


    //----------Calculation of slope---------------
    //b = r * (Sy/Sx)
    r = (summation__x_xby_yb/Math.sqrt(summation__x_xb2*summation__y_yb2));

    Sy = Math.sqrt(summation__y_yb2/percent_attendance.length);
    Sx = Math.sqrt(summation__x_xb2/days.length);

    b = r*(Sy/Sx);
    //-----------------------------------------------------------

    //----------Calculation of intercept-----------------
    a = mean_y - (b*mean_x);
    //-----------------------------------------------------------

    //-------prediction-------------------------------------
    for (var i = 0; i < percent_attendance.length; i++) {
        pred.push(percent_attendance[i]);
    }
    pred.push(b*(days.length)+a);
    pred.push(b*(days.length+1)+a);
    //-----------------------------------------------------------


    console.log(r, Sy, Sx, a, b);



Должен ли я использовать иной подход, чем линейная регрессия?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...