Lineaire regressiecalculator
Deze rekenmachine produceert een lineaire regressievergelijking op basis van de waarden van een voorspellende variabele en een responsvariabele.
Voer eenvoudigweg een lijst met waarden in voor een voorspellende variabele en een responsvariabele in de onderstaande vakken en klik vervolgens op de knop „Berekenen“:
Voorspellende waarden:
Reactiewaarden:
Lineaire regressievergelijking:
ŷ = 0,9694 + ( 7,7673 )*x
Kwaliteit van pasvorm:
R-vierkant: 0,8282
Interpretatie:
Wanneer de voorspellende variabele gelijk is aan 0, is de gemiddelde waarde van de responsvariabele 0,9694 .
Elke toename van één eenheid in de voorspellende variabele gaat gepaard met een gemiddelde verandering van ( 7,7673 ) in de responsvariabele.
82,82 % van de variatie in de responsvariabele kan worden verklaard door de voorspellende variabele.
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