= Statistics = ''Part of'' TutorialIntermediate == Description == Demonstrates calculating linear regression statistics. == Example == {{{ #!d import std.stdio; double average(double[] r) { double t = 0; for(int i=0; i < r.length; i++) t += r[i]; return (t / (cast(double) r.length)); } double beta1(double[] x, double[] y, double x_bar, double y_bar) { int l; if (x.length != y.length) { writefln("x and y really should be the same length!"); // Set length as the shorter series and move on... if(x.length < y.length) l = x.length; else l = y.length; } else l = x.length; double top_sum, btm_sum; top_sum = 0; for(int i = 0; i < l; i++) top_sum += (x[i] - x_bar) * (y[i] - y_bar); btm_sum = 0; for(int i = 0; i < l; i++) btm_sum += ((x[i] - x_bar) * (x[i] - x_bar)); return top_sum / btm_sum; } double beta0(double x_bar, double y_bar, double b1) { return y_bar - (b1 * x_bar); } int main() { double[] x; x.length = 10; x[0] = 1; x[1] = 2; x[2] = 3; x[3] = 4; x[4] = 5; x[5] = 6.5; x[6] = 7; x[7] = 7.5; x[8] = 8; x[9] = 8.5 ; double[] y; y.length = 10; y[0] = 1; y[1] = 2; y[2] = 3; y[3] = 3.2; y[4] = 3.4; y[5] = 4; y[6] = 4.2; y[7] = 4.3; y[8] = 4.35; y[9] = 4.37; double x_bar, y_bar; x_bar = average(x); y_bar = average(y); double b1, b0; b1 = beta1(x, y, x_bar, y_bar); b0 = beta0(x_bar, y_bar, b1); writefln("b1: %f", b1); writefln("b0: %f", b0); return 0; } }}} == Source == Based on [http://jcc_7.tripod.com/d/tutor/stat.html stat.html] by jcc7.