README.md (4327B)
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 > [Beta][beta-distribution] distribution [cumulative distribution function][cdf]. 24 25 <section class="intro"> 26 27 The [cumulative distribution function][cdf] for a [beta][beta-distribution] random variable is 28 29 <!-- <equation class="equation" label="eq:beta_cdf" align="center" raw="F(x;\alpha,\beta) = \frac{\operatorname{Beta}(x;\alpha,\beta)}{\operatorname{Beta}(\alpha,\beta)}" alt="Cumulative distribution function for a beta distribution."> --> 30 31 <div class="equation" align="center" data-raw-text="F(x;\alpha,\beta) = \frac{\operatorname{Beta}(x;\alpha,\beta)}{\operatorname{Beta}(\alpha,\beta)}" data-equation="eq:beta_cdf"> 32 <img src="https://cdn.jsdelivr.net/gh/stdlib-js/stdlib@51534079fef45e990850102147e8945fb023d1d0/lib/node_modules/@stdlib/stats/base/dists/beta/cdf/docs/img/equation_beta_cdf.svg" alt="Cumulative distribution function for a beta distribution."> 33 <br> 34 </div> 35 36 <!-- </equation> --> 37 38 where `alpha > 0` is the first shape parameter and `beta > 0` is the second shape parameter. In the definition, `Beta( x; a, b )` denotes the lower incomplete beta function and `Beta( a, b )` the [beta function][beta-function]. 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/beta/cdf' ); 50 ``` 51 52 #### cdf( x, alpha, beta ) 53 54 Evaluates the [cumulative distribution function][cdf] (CDF) for a [beta][beta-distribution] distribution with parameters `alpha` (first shape parameter) and `beta` (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.813 62 63 y = cdf( 0.2, 2.0, 2.0 ); 64 // returns ~0.104 65 66 y = cdf( 0.8, 4.0, 4.0 ); 67 // returns ~0.967 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 `alpha <= 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 `beta <= 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( alpha, beta ) 116 117 Returns a function for evaluating the [cumulative distribution function][cdf] for a [beta][beta-distribution] distribution with parameters `alpha` (first shape parameter) and `beta` (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.705 124 125 y = mycdf( 0.3 ); 126 // returns ~0.369 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/beta/cdf' ); 143 144 var alpha; 145 var beta; 146 var x; 147 var y; 148 var i; 149 150 for ( i = 0; i < 10; i++ ) { 151 x = randu(); 152 alpha = ( randu()*5.0 ) + EPS; 153 beta = ( randu()*5.0 ) + EPS; 154 y = cdf( x, alpha, beta ); 155 console.log( 'x: %d, α: %d, β: %d, F(x;α,β): %d', x.toFixed( 4 ), alpha.toFixed( 4 ), beta.toFixed( 4 ), y.toFixed( 4 ) ); 156 } 157 ``` 158 159 </section> 160 161 <!-- /.examples --> 162 163 <section class="links"> 164 165 [beta-distribution]: https://en.wikipedia.org/wiki/Beta_distribution 166 167 [beta-function]: https://en.wikipedia.org/wiki/Beta_function 168 169 [cdf]: https://en.wikipedia.org/wiki/Cumulative_distribution_function 170 171 </section> 172 173 <!-- /.links -->