How to use simple-statistics - 10 common examples

To help you get started, we’ve selected a few simple-statistics examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github antvis / data-set / test / unit / api / statistics-spec.ts View on Github external
it('statistics methods on fields of array', () => {
    const data = [];
    for (let i = 1; i <= 10; i++) {
      // 1~10
      data.push({
        a: [i, i + 10, [-i, i * i, [-i * i, 1 / i]]],
      });
    }
    const dv = new DataSet.View().source(data);
    const values = flattenDeep(dv.getColumn('a'));
    expect(dv.max('a')).to.equal(max(values));
    expect(dv.min('a')).to.equal(min(values));
    expect(dv.mean('a')).to.equal(mean(values));
    expect(dv.average('a')).to.equal(mean(values));
    expect(dv.median('a')).to.equal(median(values));
    expect(dv.mode('a')).to.equal(mode(values));
    expect(dv.quantile('a', 0.5)).to.equal(quantile(values, 0.5));
    expect(dv.quantiles('a', [0, 0.1, 0.5])).to.eql(map([0, 0.1, 0.5], (p) => quantile(values, p)));
    expect(dv.quantilesByFraction('a', 4)).to.eql(map([0, 0.25, 0.5, 0.75, 1], (p) => quantile(values, p)));
    expect(dv.standardDeviation('a')).to.equal(standardDeviation(values));
    expect(dv.sum('a')).to.equal(sum(values));
    expect(dv.variance('a')).to.equal(variance(values));
    expect(dv.range('a')).to.eql([min(values), max(values)]);
  });
});
github dmoll1974 / targets-io / app / controllers / testruns.server.controller.js View on Github external
function calculateLinearFit(datapoints){

  var data = [];

  for(var j=0;j< datapoints.length;j++){

    if(datapoints[j][0] !== null) {
      data.push([j, datapoints[j][0]]);
    }
  }

  var line = ss.linear_regression()
      .data(data)
      .line()

  var gradient = ss.linear_regression()
      .data(data)
      .m()
  //winston.info('stijgings percentage: ' + (line(data.length-1)-line(0))/ line(0)) / data.length * 100;
  //winston.info('gradient: ' + gradient * 100);
  //winston.info('line(0): ' + line(0));
  //winston.info('line(data.length-1): ' + line(data.length-1));

  /* if no valid number is calculated, return null*/

  var result = !isNaN(Math.round(((((line(data.length-1)-line(0))/ line(0)) / data.length) * 100 * 100)* 100) / 100) ? Math.round(((((line(data.length-1)-line(0))/ line(0)) / data.length) * 100 * 100)* 100) / 100 : null;

  return result;
github antvis / data-set / test / unit / api / statistics-spec.ts View on Github external
it('statistics methods on fields of array', () => {
    const data = [];
    for (let i = 1; i <= 10; i++) {
      // 1~10
      data.push({
        a: [i, i + 10, [-i, i * i, [-i * i, 1 / i]]],
      });
    }
    const dv = new DataSet.View().source(data);
    const values = flattenDeep(dv.getColumn('a'));
    expect(dv.max('a')).to.equal(max(values));
    expect(dv.min('a')).to.equal(min(values));
    expect(dv.mean('a')).to.equal(mean(values));
    expect(dv.average('a')).to.equal(mean(values));
    expect(dv.median('a')).to.equal(median(values));
    expect(dv.mode('a')).to.equal(mode(values));
    expect(dv.quantile('a', 0.5)).to.equal(quantile(values, 0.5));
    expect(dv.quantiles('a', [0, 0.1, 0.5])).to.eql(map([0, 0.1, 0.5], (p) => quantile(values, p)));
    expect(dv.quantilesByFraction('a', 4)).to.eql(map([0, 0.25, 0.5, 0.75, 1], (p) => quantile(values, p)));
    expect(dv.standardDeviation('a')).to.equal(standardDeviation(values));
    expect(dv.sum('a')).to.equal(sum(values));
    expect(dv.variance('a')).to.equal(variance(values));
    expect(dv.range('a')).to.eql([min(values), max(values)]);
  });
});
github kartotherian / kartotherian / test / tile-profiler.js View on Github external
source._backend.getTile(0,0,0, function(err, vtile, headers) {
            if (err) throw err;
            var tile = vtile;
            var layerInfo = profiler.layerInfo(tile);

            // Tile has a 'coastline' layer
            var coastline = _(layerInfo).where({ name: 'coastline' })[0];
            t.ok(coastline);

            // Tile contains 4177 features
            t.equal(coastline.coordCount.length, 1437);
            t.equal(coastline.features, 1437);

            // Longest/shortest features
            t.equal(ss.max(coastline.coordCount), 380);
            t.equal(ss.min(coastline.coordCount), 2);

            // Most/least duplication
            t.equal(ss.max(coastline.duplicateCoordCount), 0);
            t.equal(ss.min(coastline.duplicateCoordCount), 0);

            // Max/Min distance between consecutive coords
            var diff = Math.abs(ss.max(coastline.coordDistance) - 570446.5598775251);
            t.ok(diff < 0.1);
            t.equal(ss.min(coastline.coordDistance), 1181.6043940629547);

            // Expected jsonsize
            t.equal(coastline.jsonsize, 520120);

            t.end();
        });
    });
github tes / seguir / benchmark / index.js View on Github external
}, function (err, result) {
    process.stdout.write(' DONE!\n\n');
    if (err) {
      console.log(err);
      process.exit(1);
    }

    console.log('Response Times:');
    console.log('Min: ' + Math.floor(ss.min(result)) + 'ms');
    console.log('Max: ' + Math.floor(ss.max(result)) + 'ms');
    console.log('95th: ' + Math.floor(ss.quantile(result, 0.95)) + 'ms');
    console.log('Std Dev: ' + Math.floor(ss.standardDeviation(result)) + 'ms');

    console.log('\nRedis Cache:');
    redisStats(api);

    console.log('\nUser Cache:');
    userStats(api);

    process.exit(0); // TODO shutdown cleanly

    api.client._client.shutdown();
  });
}
github tes / seguir / benchmark / index.js View on Github external
}, function (err, result) {
    process.stdout.write(' DONE!\n\n');
    if (err) {
      console.log(err);
      process.exit(1);
    }

    console.log('Response Times:');
    console.log('Min: ' + Math.floor(ss.min(result)) + 'ms');
    console.log('Max: ' + Math.floor(ss.max(result)) + 'ms');
    console.log('95th: ' + Math.floor(ss.quantile(result, 0.95)) + 'ms');
    console.log('Std Dev: ' + Math.floor(ss.standardDeviation(result)) + 'ms');

    console.log('\nRedis Cache:');
    redisStats(api);

    console.log('\nUser Cache:');
    userStats(api);

    process.exit(0); // TODO shutdown cleanly

    api.client._client.shutdown();
  });
}
github jeromeetienne / poker-hand.js / scripts / montecarlo-accuracy-comparison.js View on Github external
[100, 500, 1000, 2000, 3000, 5000, 10000].forEach(function(nRounds){
	let nSimulations = 20
	let results = []
	for(let i = 0; i < nSimulations; i++){
		// console.log(`do simulation ${i} with ${nRounds} rounds`)
		var result = PokerHand.MonteCarlo.simulateOddsIfAllIn(nRounds, holeCards, communityCards, nbOtherPlayers)
		results.push(result)
	}
	
	// compute stats on the results
	let mean = SimpleStats.mean(results)
	let stddev = SimpleStats.standardDeviation(results)
	let max = SimpleStats.max(results)
	let min = SimpleStats.min(results)
	console.log(`nRounds ${nRounds.toString().padStart(5)} : mean ${mean.toFixed(6)} (${Math.round(mean*100).toString().padStart(2)}%) - stddev ${stddev.toFixed(6)} - delta min/max [${(min-mean).toFixed(6)}, ${(max-mean).toFixed(6)}]`)	
})
github antvis / data-set / src / transform / percent.ts View on Github external
forIn(groups, (group) => {
    const totalSum = sum(group.map((row: any) => row[field]));
    if (totalSum === 0) {
      console.warn(`Invalid data: total sum of field ${field} is 0!`);
    }
    const innerGroups = partition(group, [dimension]);
    forIn(innerGroups, (innerGroup) => {
      const innerSum = sum(innerGroup.map((row: any) => row[field]));
      // const resultRow = pick(innerGroup[0], union(groupBy, [ dimension ]));
      const resultRow = innerGroup[0];
      // FIXME in case dimension and field is the same
      const dimensionValue = resultRow[dimension];
      resultRow[field] = innerSum;
      resultRow[dimension] = dimensionValue;
      if (totalSum === 0) {
        resultRow[as!] = 0;
      } else {
        resultRow[as!] = innerSum / totalSum;
github metaspace2020 / metaspace / metaspace / webapp / src / lib / ionImageRendering.ts View on Github external
function safeQuantile(values: number[], q: number | number[]): any {
  // Handle cases when `values` is empty gracefully
  if (values.length > 0) {
    return quantile(values, q as any)
  } else if (typeof q === 'number') {
    return 0
  } else {
    return q.map(() => 0)
  }
}
github codeformunich / radlquartier / datatool / preprocess / index-qhs.js View on Github external
data.weeks.push(year.weeks[w]);
                }

                for (var wd = 0; wd < 7; wd++) {
                    data.weekDays[wd] = data.weekDays[wd].concat(year.weekDays[wd]);
                }

                data.days = data.days.concat(year.days);
            }

            // districtData.data = data;

            // calculate means
            districtData.meanYears = ss.mean(data.years);
            districtData.meanMonth = ss.mean(data.month);

            for (var l = 0; l < 12; l++) {
                if (data.yearMonth[l].length === 0) {
                    districtData.meanYearMonth[l] = 0;
                }
                else if (data.yearMonth[l].length === 1) {
                    districtData.meanYearMonth[l] = data.yearMonth[l][0];
                }
                else {
                    districtData.meanYearMonth[l] = ss.mean(data.yearMonth[l]);
                }

                if (output.districts.length === 0) {
                    output.meanYearMonth[l] = districtData.meanYearMonth[l];
                }
                else {