MCPcopy Create free account
hub / github.com/Project-OSRM/osrm-backend / bootstrapConfidenceInterval

Function bootstrapConfidenceInterval

scripts/ci/bench.js:142–164  ·  view source on GitHub ↗
(data, numSamples = 1000, confidenceLevel = 0.95)

Source from the content-addressed store, hash-verified

140}
141
142function bootstrapConfidenceInterval(data, numSamples = 1000, confidenceLevel = 0.95) {
143 let means = [];
144 let dataLength = data.length;
145
146 for (let i = 0; i < numSamples; i++) {
147 let sample = [];
148 for (let j = 0; j < dataLength; j++) {
149 let randomIndex = Math.floor(RNG() * dataLength);
150 sample.push(data[randomIndex]);
151 }
152 let sampleMean = sample.reduce((a, b) => a + b, 0) / sample.length;
153 means.push(sampleMean);
154 }
155
156 means.sort((a, b) => a - b);
157 let lowerBoundIndex = Math.floor((1 - confidenceLevel) / 2 * numSamples);
158 let upperBoundIndex = Math.floor((1 + confidenceLevel) / 2 * numSamples);
159 let mean = means.reduce((a, b) => a + b, 0) / means.length;
160 let lowerBound = means[lowerBoundIndex];
161 let upperBound = means[upperBoundIndex];
162
163 return { mean: mean, lowerBound: lowerBound, upperBound: upperBound };
164}
165
166function calculateConfidenceInterval(data) {
167 let { mean, lowerBound, upperBound } = bootstrapConfidenceInterval(data);

Callers 1

Calls 2

pushMethod · 0.80
sortMethod · 0.80

Tested by

no test coverage detected