Linearer regressionsrechner
Dieser Rechner erstellt eine lineare Regressionsgleichung basierend auf den Werten einer Prädiktorvariablen und einer Antwortvariablen.
Geben Sie einfach eine Werteliste für eine Prädiktorvariable und eine Antwortvariable in die Felder unten ein und klicken Sie dann auf die Schaltfläche „Berechnen“:
Vorhersagewerte:
Antwortwerte:
Lineare Regressionsgleichung:
ŷ = 0,9694 + ( 7,7673 )*x
Passformqualität:
R-Quadrat: 0,8282
Deutung:
Wenn die Prädiktorvariable gleich 0 ist, beträgt der Durchschnittswert der Antwortvariablen 0,9694 .
Jeder Anstieg der Prädiktorvariablen um eine Einheit ist mit einer durchschnittlichen Änderung der Antwortvariablen um ( 7,7673 ) verbunden.
82,82 % der Variation der Antwortvariablen können durch die Prädiktorvariable erklärt werden.
function calc() {
//get input data var x = document.getElementById('x').value.split(',').map(Number); var y = document.getElementById('y').value.split(',').map(Number);
//check that both lists are equal length if (x.length - y.length == 0) { document.getElementById('error_msg').innerHTML = '';
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 lr = linearRegression(y, x); var a = lr.slope; var b = lr.intercept; var r2 = lr.r2; var r2p = r2*100; document.getElementById('a').innerHTML = a.toFixed(4); document.getElementById('b').innerHTML = b.toFixed(4); document.getElementById('r2').innerHTML = r2.toFixed(4); document.getElementById('interceptOut').innerHTML = b.toFixed(4); document.getElementById('slopeOut').innerHTML = a.toFixed(4); document.getElementById('r2Out').innerHTML = r2p.toFixed(2); } //output error message if boths lists are not equal else { document.getElementById('error_msg').innerHTML = 'The two lists must be of equal length.'; } } //end calc function