@stdlib/stats-base-dists-triangular 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +1 -1
- package/README.md +56 -9
- package/package.json +17 -17
package/NOTICE
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Copyright (c) 2016-
|
|
1
|
+
Copyright (c) 2016-2026 The Stdlib Authors.
|
package/README.md
CHANGED
|
@@ -130,15 +130,62 @@ y = dist.quantile( 1.9 );
|
|
|
130
130
|
|
|
131
131
|
## Examples
|
|
132
132
|
|
|
133
|
-
<!-- TODO: better examples -->
|
|
134
|
-
|
|
135
133
|
<!-- eslint no-undef: "error" -->
|
|
136
134
|
|
|
137
135
|
```javascript
|
|
138
|
-
var
|
|
136
|
+
var discreteUniform = require( '@stdlib/random-base-discrete-uniform' );
|
|
139
137
|
var triangular = require( '@stdlib/stats-base-dists-triangular' );
|
|
140
138
|
|
|
141
|
-
|
|
139
|
+
// Scenario: Modeling completion time for a software development task
|
|
140
|
+
|
|
141
|
+
// Define the distribution parameters (in hours):
|
|
142
|
+
var a = 1.5; // Minimum time (best-case scenario)
|
|
143
|
+
var b = 4.5; // Maximum time (worst-case scenario)
|
|
144
|
+
var c = discreteUniform( 2, 4 ); // Most likely time (mode)
|
|
145
|
+
console.log( 'a: %d, b: %d, c: %d', a, b, c );
|
|
146
|
+
|
|
147
|
+
// Expected (mean) completion time:
|
|
148
|
+
var mean = triangular.mean( a, b, c );
|
|
149
|
+
console.log( '\nExpected completion time: %d hours', mean );
|
|
150
|
+
|
|
151
|
+
// Median completion time:
|
|
152
|
+
var median = triangular.median( a, b, c );
|
|
153
|
+
console.log( 'Median completion time: %d hours', median );
|
|
154
|
+
|
|
155
|
+
// Variance in completion time:
|
|
156
|
+
var variance = triangular.variance( a, b, c );
|
|
157
|
+
console.log( 'Variance in completion time: %d hours^2', variance );
|
|
158
|
+
|
|
159
|
+
// Probability of completing the task within 3 hours:
|
|
160
|
+
var x = 3.0;
|
|
161
|
+
var prob = triangular.cdf( x, a, b, c );
|
|
162
|
+
console.log( '\nProbability of completing within %d hours: %d', x, prob );
|
|
163
|
+
|
|
164
|
+
// 90th percentile of completion time:
|
|
165
|
+
var p = 0.9;
|
|
166
|
+
var percentile = triangular.quantile( p, a, b, c );
|
|
167
|
+
console.log( '90% of tasks will be completed within %d hours', percentile );
|
|
168
|
+
|
|
169
|
+
// Relative likelihood of completing the task in exactly 2.5 hours:
|
|
170
|
+
x = 2.5;
|
|
171
|
+
var likelihood = triangular.pdf( x, a, b, c );
|
|
172
|
+
console.log( '\nRelative likelihood of completing in exactly %d hours: %d', x, likelihood );
|
|
173
|
+
|
|
174
|
+
// Skewness to understand the distribution's shape:
|
|
175
|
+
var skewness = triangular.skewness( a, b, c );
|
|
176
|
+
console.log( '\nSkewness of completion times: %d', skewness );
|
|
177
|
+
if ( skewness > 0 ) {
|
|
178
|
+
console.log( 'The distribution is right-skewed, suggesting occasional longer completion times.' );
|
|
179
|
+
} else if ( skewness < 0 ) {
|
|
180
|
+
console.log( 'The distribution is left-skewed, suggesting occasional shorter completion times.' );
|
|
181
|
+
} else {
|
|
182
|
+
console.log( 'The distribution is symmetric.' );
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Entropy as a measure of uncertainty in the estimate:
|
|
186
|
+
var entropy = triangular.entropy( a, b, c );
|
|
187
|
+
console.log( '\nEntropy of the distribution: %d nats', entropy );
|
|
188
|
+
console.log( 'Higher entropy indicates more uncertainty in completion times.' );
|
|
142
189
|
```
|
|
143
190
|
|
|
144
191
|
</section>
|
|
@@ -179,7 +226,7 @@ See [LICENSE][stdlib-license].
|
|
|
179
226
|
|
|
180
227
|
## Copyright
|
|
181
228
|
|
|
182
|
-
Copyright © 2016-
|
|
229
|
+
Copyright © 2016-2026. The Stdlib [Authors][stdlib-authors].
|
|
183
230
|
|
|
184
231
|
</section>
|
|
185
232
|
|
|
@@ -192,8 +239,8 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors].
|
|
|
192
239
|
[npm-image]: http://img.shields.io/npm/v/@stdlib/stats-base-dists-triangular.svg
|
|
193
240
|
[npm-url]: https://npmjs.org/package/@stdlib/stats-base-dists-triangular
|
|
194
241
|
|
|
195
|
-
[test-image]: https://github.com/stdlib-js/stats-base-dists-triangular/actions/workflows/test.yml/badge.svg?branch=v0.
|
|
196
|
-
[test-url]: https://github.com/stdlib-js/stats-base-dists-triangular/actions/workflows/test.yml?query=branch:v0.
|
|
242
|
+
[test-image]: https://github.com/stdlib-js/stats-base-dists-triangular/actions/workflows/test.yml/badge.svg?branch=v0.3.0
|
|
243
|
+
[test-url]: https://github.com/stdlib-js/stats-base-dists-triangular/actions/workflows/test.yml?query=branch:v0.3.0
|
|
197
244
|
|
|
198
245
|
[coverage-image]: https://img.shields.io/codecov/c/github/stdlib-js/stats-base-dists-triangular/main.svg
|
|
199
246
|
[coverage-url]: https://codecov.io/github/stdlib-js/stats-base-dists-triangular?branch=main
|
|
@@ -205,8 +252,8 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors].
|
|
|
205
252
|
|
|
206
253
|
-->
|
|
207
254
|
|
|
208
|
-
[chat-image]: https://img.shields.io/
|
|
209
|
-
[chat-url]: https://
|
|
255
|
+
[chat-image]: https://img.shields.io/badge/zulip-join_chat-brightgreen.svg
|
|
256
|
+
[chat-url]: https://stdlib.zulipchat.com
|
|
210
257
|
|
|
211
258
|
[stdlib]: https://github.com/stdlib-js/stdlib
|
|
212
259
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stdlib/stats-base-dists-triangular",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Triangular distribution.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": {
|
|
@@ -30,22 +30,22 @@
|
|
|
30
30
|
"url": "https://github.com/stdlib-js/stdlib/issues"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@stdlib/stats-base-dists-triangular-cdf": "^0.
|
|
34
|
-
"@stdlib/stats-base-dists-triangular-ctor": "^0.2.
|
|
35
|
-
"@stdlib/stats-base-dists-triangular-entropy": "^0.
|
|
36
|
-
"@stdlib/stats-base-dists-triangular-kurtosis": "^0.
|
|
37
|
-
"@stdlib/stats-base-dists-triangular-logcdf": "^0.
|
|
38
|
-
"@stdlib/stats-base-dists-triangular-logpdf": "^0.
|
|
39
|
-
"@stdlib/stats-base-dists-triangular-mean": "^0.
|
|
40
|
-
"@stdlib/stats-base-dists-triangular-median": "^0.
|
|
41
|
-
"@stdlib/stats-base-dists-triangular-mgf": "^0.2.
|
|
42
|
-
"@stdlib/stats-base-dists-triangular-mode": "^0.
|
|
43
|
-
"@stdlib/stats-base-dists-triangular-pdf": "^0.
|
|
44
|
-
"@stdlib/stats-base-dists-triangular-quantile": "^0.
|
|
45
|
-
"@stdlib/stats-base-dists-triangular-skewness": "^0.
|
|
46
|
-
"@stdlib/stats-base-dists-triangular-stdev": "^0.
|
|
47
|
-
"@stdlib/stats-base-dists-triangular-variance": "^0.
|
|
48
|
-
"@stdlib/utils-define-read-only-property": "^0.2.
|
|
33
|
+
"@stdlib/stats-base-dists-triangular-cdf": "^0.3.0",
|
|
34
|
+
"@stdlib/stats-base-dists-triangular-ctor": "^0.2.2",
|
|
35
|
+
"@stdlib/stats-base-dists-triangular-entropy": "^0.3.0",
|
|
36
|
+
"@stdlib/stats-base-dists-triangular-kurtosis": "^0.3.0",
|
|
37
|
+
"@stdlib/stats-base-dists-triangular-logcdf": "^0.3.0",
|
|
38
|
+
"@stdlib/stats-base-dists-triangular-logpdf": "^0.3.0",
|
|
39
|
+
"@stdlib/stats-base-dists-triangular-mean": "^0.3.0",
|
|
40
|
+
"@stdlib/stats-base-dists-triangular-median": "^0.3.0",
|
|
41
|
+
"@stdlib/stats-base-dists-triangular-mgf": "^0.2.2",
|
|
42
|
+
"@stdlib/stats-base-dists-triangular-mode": "^0.3.0",
|
|
43
|
+
"@stdlib/stats-base-dists-triangular-pdf": "^0.3.0",
|
|
44
|
+
"@stdlib/stats-base-dists-triangular-quantile": "^0.3.0",
|
|
45
|
+
"@stdlib/stats-base-dists-triangular-skewness": "^0.3.0",
|
|
46
|
+
"@stdlib/stats-base-dists-triangular-stdev": "^0.3.0",
|
|
47
|
+
"@stdlib/stats-base-dists-triangular-variance": "^0.3.0",
|
|
48
|
+
"@stdlib/utils-define-read-only-property": "^0.2.2"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {},
|
|
51
51
|
"engines": {
|