README.md (4142B)
1 <!-- 2 3 @license Apache-2.0 4 5 Copyright (c) 2018 The Stdlib Authors. 6 7 Licensed under the Apache License, Version 2.0 (the "License"); 8 you may not use this file except in compliance with the License. 9 You may obtain a copy of the License at 10 11 http://www.apache.org/licenses/LICENSE-2.0 12 13 Unless required by applicable law or agreed to in writing, software 14 distributed under the License is distributed on an "AS IS" BASIS, 15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 See the License for the specific language governing permissions and 17 limitations under the License. 18 19 --> 20 21 # Cumulative Distribution Function 22 23 > [Kumaraswamy's double bounded][kumaraswamy-distribution] distribution [cumulative distribution function][cdf]. 24 25 <section class="intro"> 26 27 The [cumulative distribution function][cdf] for a [Kumaraswamy's double bounded][kumaraswamy-distribution] random variable is 28 29 <!-- <equation class="equation" label="eq:kumaraswamy_cdf" align="center" raw="F(x;a,b) = 1-(1-x^{a})^{b}" alt="Cumulative distribution function for a Kumaraswamy's double bounded distribution."> --> 30 31 <div class="equation" align="center" data-raw-text="F(x;a,b) = 1-(1-x^{a})^{b}" data-equation="eq:kumaraswamy_cdf"> 32 <img src="https://cdn.jsdelivr.net/gh/stdlib-js/stdlib@51534079fef45e990850102147e8945fb023d1d0/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/cdf/docs/img/equation_kumaraswamy_cdf.svg" alt="Cumulative distribution function for a Kumaraswamy's double bounded distribution."> 33 <br> 34 </div> 35 36 <!-- </equation> --> 37 38 where `a > 0` is the first shape parameter and `b > 0` is the second shape parameter. 39 40 </section> 41 42 <!-- /.intro --> 43 44 <section class="usage"> 45 46 ## Usage 47 48 ```javascript 49 var cdf = require( '@stdlib/stats/base/dists/kumaraswamy/cdf' ); 50 ``` 51 52 #### cdf( x, a, b ) 53 54 Evaluates the [cumulative distribution function][cdf] (CDF) for a [Kumaraswamy's double bounded][kumaraswamy-distribution] distribution with parameters `a` (first shape parameter) and `b` (second shape parameter). 55 56 ```javascript 57 var y = cdf( 0.5, 1.0, 1.0 ); 58 // returns 0.5 59 60 y = cdf( 0.5, 2.0, 4.0 ); 61 // returns ~0.684 62 63 y = cdf( 0.2, 2.0, 2.0 ); 64 // returns ~0.078 65 66 y = cdf( 0.8, 4.0, 4.0 ); 67 // returns ~0.878 68 69 y = cdf( -0.5, 4.0, 2.0 ); 70 // returns 0.0 71 72 y = cdf( -Infinity, 4.0, 2.0 ); 73 // returns 0.0 74 75 y = cdf( 1.5, 4.0, 2.0 ); 76 // returns 1.0 77 78 y = cdf( +Infinity, 4.0, 2.0 ); 79 // returns 1.0 80 ``` 81 82 If provided `NaN` as any argument, the function returns `NaN`. 83 84 ```javascript 85 var y = cdf( NaN, 1.0, 1.0 ); 86 // returns NaN 87 88 y = cdf( 0.0, NaN, 1.0 ); 89 // returns NaN 90 91 y = cdf( 0.0, 1.0, NaN ); 92 // returns NaN 93 ``` 94 95 If provided `a <= 0`, the function returns `NaN`. 96 97 ```javascript 98 var y = cdf( 2.0, -1.0, 0.5 ); 99 // returns NaN 100 101 y = cdf( 2.0, 0.0, 0.5 ); 102 // returns NaN 103 ``` 104 105 If provided `b <= 0`, the function returns `NaN`. 106 107 ```javascript 108 var y = cdf( 2.0, 0.5, -1.0 ); 109 // returns NaN 110 111 y = cdf( 2.0, 0.5, 0.0 ); 112 // returns NaN 113 ``` 114 115 #### cdf.factory( a, b ) 116 117 Returns a function for evaluating the [cumulative distribution function][cdf] for a [Kumaraswamy's double bounded][kumaraswamy-distribution] distribution with parameters `a` (first shape parameter) and `b` (second shape parameter). 118 119 ```javascript 120 var mycdf = cdf.factory( 0.5, 0.5 ); 121 122 var y = mycdf( 0.8 ); 123 // returns ~0.675 124 125 y = mycdf( 0.3 ); 126 // returns ~0.327 127 ``` 128 129 </section> 130 131 <!-- /.usage --> 132 133 <section class="examples"> 134 135 ## Examples 136 137 <!-- eslint no-undef: "error" --> 138 139 ```javascript 140 var randu = require( '@stdlib/random/base/randu' ); 141 var EPS = require( '@stdlib/constants/float64/eps' ); 142 var cdf = require( '@stdlib/stats/base/dists/kumaraswamy/cdf' ); 143 144 var a; 145 var b; 146 var x; 147 var y; 148 var i; 149 150 for ( i = 0; i < 10; i++ ) { 151 x = randu(); 152 a = ( randu()*5.0 ) + EPS; 153 b = ( randu()*5.0 ) + EPS; 154 y = cdf( x, a, b ); 155 console.log( 'x: %d, a: %d, b: %d, F(x;a,b): %d', x.toFixed( 4 ), a.toFixed( 4 ), b.toFixed( 4 ), y.toFixed( 4 ) ); 156 } 157 ``` 158 159 </section> 160 161 <!-- /.examples --> 162 163 <section class="links"> 164 165 [kumaraswamy-distribution]: https://en.wikipedia.org/wiki/Kumaraswamy_distribution 166 167 [cdf]: https://en.wikipedia.org/wiki/Cumulative_distribution_function 168 169 </section> 170 171 <!-- /.links -->