UNPKG

4.59 kBJavaScriptView Raw
1import { Math } from 'angular2/src/facade/math';
2export class Statistic {
3 static calculateCoefficientOfVariation(sample, mean) {
4 return Statistic.calculateStandardDeviation(sample, mean) / mean * 100;
5 }
6 static calculateMean(samples) {
7 var total = 0;
8 // TODO: use reduce
9 samples.forEach(x => total += x);
10 return total / samples.length;
11 }
12 static calculateStandardDeviation(samples, mean) {
13 var deviation = 0;
14 // TODO: use reduce
15 samples.forEach(x => deviation += Math.pow(x - mean, 2));
16 deviation = deviation / (samples.length);
17 deviation = Math.sqrt(deviation);
18 return deviation;
19 }
20 static calculateRegressionSlope(xValues, xMean, yValues, yMean) {
21 // See http://en.wikipedia.org/wiki/Simple_linear_regression
22 var dividendSum = 0;
23 var divisorSum = 0;
24 for (var i = 0; i < xValues.length; i++) {
25 dividendSum += (xValues[i] - xMean) * (yValues[i] - yMean);
26 divisorSum += Math.pow(xValues[i] - xMean, 2);
27 }
28 return dividendSum / divisorSum;
29 }
30}
31//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGlzdGljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGlmZmluZ19wbHVnaW5fd3JhcHBlci1vdXRwdXRfcGF0aC14QkxJQnJWUi50bXAvYmVuY2hwcmVzcy9zcmMvc3RhdGlzdGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sMEJBQTBCO0FBRTdDO0lBQ0UsT0FBTywrQkFBK0IsQ0FBQyxNQUFNLEVBQUUsSUFBSTtRQUNqRCxNQUFNLENBQUMsU0FBUyxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQyxPQUFpQjtRQUNwQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxtQkFBbUI7UUFDbkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTywwQkFBMEIsQ0FBQyxPQUFpQixFQUFFLElBQUk7UUFDdkQsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLG1CQUFtQjtRQUNuQixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsU0FBUyxHQUFHLFNBQVMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLHdCQUF3QixDQUFDLE9BQWlCLEVBQUUsS0FBYSxFQUFFLE9BQWlCLEVBQ25ELEtBQWE7UUFDM0MsNERBQTREO1FBQzVELElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDeEMsV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQzNELFVBQVUsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE1BQU0sQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ2xDLENBQUM7QUFDSCxDQUFDO0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01hdGh9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvbWF0aCc7XG5cbmV4cG9ydCBjbGFzcyBTdGF0aXN0aWMge1xuICBzdGF0aWMgY2FsY3VsYXRlQ29lZmZpY2llbnRPZlZhcmlhdGlvbihzYW1wbGUsIG1lYW4pIHtcbiAgICByZXR1cm4gU3RhdGlzdGljLmNhbGN1bGF0ZVN0YW5kYXJkRGV2aWF0aW9uKHNhbXBsZSwgbWVhbikgLyBtZWFuICogMTAwO1xuICB9XG5cbiAgc3RhdGljIGNhbGN1bGF0ZU1lYW4oc2FtcGxlczogbnVtYmVyW10pIHtcbiAgICB2YXIgdG90YWwgPSAwO1xuICAgIC8vIFRPRE86IHVzZSByZWR1Y2VcbiAgICBzYW1wbGVzLmZvckVhY2goeCA9PiB0b3RhbCArPSB4KTtcbiAgICByZXR1cm4gdG90YWwgLyBzYW1wbGVzLmxlbmd0aDtcbiAgfVxuXG4gIHN0YXRpYyBjYWxjdWxhdGVTdGFuZGFyZERldmlhdGlvbihzYW1wbGVzOiBudW1iZXJbXSwgbWVhbikge1xuICAgIHZhciBkZXZpYXRpb24gPSAwO1xuICAgIC8vIFRPRE86IHVzZSByZWR1Y2VcbiAgICBzYW1wbGVzLmZvckVhY2goeCA9PiBkZXZpYXRpb24gKz0gTWF0aC5wb3coeCAtIG1lYW4sIDIpKTtcbiAgICBkZXZpYXRpb24gPSBkZXZpYXRpb24gLyAoc2FtcGxlcy5sZW5ndGgpO1xuICAgIGRldmlhdGlvbiA9IE1hdGguc3FydChkZXZpYXRpb24pO1xuICAgIHJldHVybiBkZXZpYXRpb247XG4gIH1cblxuICBzdGF0aWMgY2FsY3VsYXRlUmVncmVzc2lvblNsb3BlKHhWYWx1ZXM6IG51bWJlcltdLCB4TWVhbjogbnVtYmVyLCB5VmFsdWVzOiBudW1iZXJbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5TWVhbjogbnVtYmVyKSB7XG4gICAgLy8gU2VlIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU2ltcGxlX2xpbmVhcl9yZWdyZXNzaW9uXG4gICAgdmFyIGRpdmlkZW5kU3VtID0gMDtcbiAgICB2YXIgZGl2aXNvclN1bSA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB4VmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBkaXZpZGVuZFN1bSArPSAoeFZhbHVlc1tpXSAtIHhNZWFuKSAqICh5VmFsdWVzW2ldIC0geU1lYW4pO1xuICAgICAgZGl2aXNvclN1bSArPSBNYXRoLnBvdyh4VmFsdWVzW2ldIC0geE1lYW4sIDIpO1xuICAgIH1cbiAgICByZXR1cm4gZGl2aWRlbmRTdW0gLyBkaXZpc29yU3VtO1xuICB9XG59XG4iXX0=
\No newline at end of file