Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Unified Diff: tools/telemetry/third_party/WebKit/PerformanceTests/resources/statistics.js

Issue 1309143006: [Telemetry] Update the ConfindenceInterval calculation in results.html to use (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address petrcermak's comment Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/third_party/WebKit/PerformanceTests/resources/statistics.js
diff --git a/tools/telemetry/third_party/WebKit/PerformanceTests/resources/statistics.js b/tools/telemetry/third_party/WebKit/PerformanceTests/resources/statistics.js
index f5269c2c2b8769e43c65fc1c090d548a83b54520..5a14b9c60137586cf9baef69acf76bbb94ec8242 100644
--- a/tools/telemetry/third_party/WebKit/PerformanceTests/resources/statistics.js
+++ b/tools/telemetry/third_party/WebKit/PerformanceTests/resources/statistics.js
@@ -65,8 +65,7 @@ var Statistics = new (function () {
return supportedLevels;
}
- // Computes the delta d s.t. (mean - d, mean + d) is the confidence interval with the specified confidence level in O(1).
- this.confidenceIntervalDelta = function (confidenceLevel, numberOfSamples, sum, squareSum) {
+ this.quantile = function (confidenceLevel, numberOfSamples, opt_degreesOfFreedom) {
var probability = (1 - (1 - confidenceLevel) / 2);
if (!(probability in tDistributionInverseCDF)) {
console.warn('We only support ' + this.supportedConfidenceLevels().map(
@@ -77,20 +76,33 @@ var Statistics = new (function () {
return Number.POSITIVE_INFINITY;
var cdfForProbability = tDistributionInverseCDF[probability];
- var degreesOfFreedom = numberOfSamples - 1;
+ var degreesOfFreedom = opt_degreesOfFreedom;
+ if (degreesOfFreedom === undefined)
+ degreesOfFreedom = numberOfSamples - 1;
// tDistributionQuantile(degreesOfFreedom, confidenceLevel) * sampleStandardDeviation / sqrt(numberOfSamples) * S/sqrt(numberOfSamples)
if (degreesOfFreedom <= 100)
- var quantile = cdfForProbability[degreesOfFreedom - 1]; // The first entry is for the one degree of freedom.
+ return cdfForProbability[degreesOfFreedom - 1]; // The first entry is for the one degree of freedom.
else if (degreesOfFreedom <= 300)
- var quantile = cdfForProbability[Math.round(degreesOfFreedom / 10) + 100 - 10 - 1];
+ return cdfForProbability[Math.round(degreesOfFreedom / 10) + 100 - 10 - 1];
else if (degreesOfFreedom <= 1300)
- var quantile = cdfForProbability[Math.round(degreesOfFreedom / 100) + 120 - 3 - 1];
+ return cdfForProbability[Math.round(degreesOfFreedom / 100) + 120 - 3 - 1];
else
- var quantile = cdfForProbability[cdfForProbability.length - 1];
- return quantile * this.sampleStandardDeviation(numberOfSamples, sum, squareSum) / Math.sqrt(numberOfSamples);
+ return cdfForProbability[cdfForProbability.length - 1];
}
+ // Computes the delta d s.t. (mean - d, mean + d) is the confidence interval with the specified confidence level in O(1).
+ this.confidenceIntervalDelta = function (confidenceLevel, numberOfSamples, sum, squareSum) {
+ var sampleStandardDeviation = this.sampleStandardDeviation(numberOfSamples, sum, squareSum);
+ return this.confidenceIntervalDeltaFromStd(confidenceLevel, numberOfSamples, sampleStandardDeviation);
+ }
+
+ this.confidenceIntervalDeltaFromStd = function (confidenceLevel, numberOfSamples, sampleStandardDeviation, opt_degreesOfFreedom) {
+ var quantile = this.quantile(confidenceLevel, numberOfSamples, opt_degreesOfFreedom);
+ return quantile * sampleStandardDeviation / Math.sqrt(numberOfSamples);
+ }
+
+
this.confidenceInterval = function (values, probability) {
var sum = this.sum(values);
var mean = sum / values.length;

Powered by Google App Engine
This is Rietveld 408576698