mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 20:40:28 -04:00 
			
		
		
		
	
		
			
	
	
		
			193 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			193 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | [section:neg_binom_eg Negative Binomial Distribution Examples] | ||
|  | 
 | ||
|  | (See also the reference documentation for the __negative_binomial_distrib.) | ||
|  | 
 | ||
|  | [section:neg_binom_conf Calculating Confidence Limits on the Frequency of Occurrence for the Negative Binomial Distribution] | ||
|  | 
 | ||
|  | Imagine you have a process that follows a negative binomial distribution: | ||
|  | for each trial conducted, an event either occurs or does it does not, referred | ||
|  | to as "successes" and "failures". The frequency with which successes occur | ||
|  | is variously referred to as the | ||
|  | success fraction, success ratio, success percentage, occurrence frequency, or probability of occurrence. | ||
|  | 
 | ||
|  | If, by experiment, you want to measure the | ||
|  |  the best estimate of success fraction is given simply | ||
|  | by /k/ \/ /N/, for /k/ successes out of /N/ trials. | ||
|  | 
 | ||
|  | However our confidence in that estimate will be shaped by how many trials were conducted, | ||
|  | and how many successes were observed.  The static member functions  | ||
|  | `negative_binomial_distribution<>::find_lower_bound_on_p` and | ||
|  | `negative_binomial_distribution<>::find_upper_bound_on_p` | ||
|  | allow you to calculate the confidence intervals for your estimate of the success fraction. | ||
|  | 
 | ||
|  | The sample program [@../../example/neg_binom_confidence_limits.cpp  | ||
|  | neg_binom_confidence_limits.cpp] illustrates their use. | ||
|  | 
 | ||
|  | [import ../../example/neg_binom_confidence_limits.cpp] | ||
|  | 
 | ||
|  | [neg_binomial_confidence_limits] | ||
|  | Let's see some sample output for a 1 in 10 | ||
|  | success ratio, first for a mere 20 trials: | ||
|  | 
 | ||
|  | [pre'''______________________________________________ | ||
|  | 2-Sided Confidence Limits For Success Fraction | ||
|  | ______________________________________________ | ||
|  | Number of trials                         =  20 | ||
|  | Number of successes                      =  2 | ||
|  | Number of failures                       =  18 | ||
|  | Observed frequency of occurrence         =  0.1 | ||
|  | ___________________________________________ | ||
|  | Confidence        Lower          Upper | ||
|  |  Value (%)        Limit          Limit | ||
|  | ___________________________________________ | ||
|  |     50.000        0.04812        0.13554 | ||
|  |     75.000        0.03078        0.17727 | ||
|  |     90.000        0.01807        0.22637 | ||
|  |     95.000        0.01235        0.26028 | ||
|  |     99.000        0.00530        0.33111 | ||
|  |     99.900        0.00164        0.41802 | ||
|  |     99.990        0.00051        0.49202 | ||
|  |     99.999        0.00016        0.55574 | ||
|  | '''] | ||
|  | 
 | ||
|  | As you can see, even at the 95% confidence level the bounds (0.012 to 0.26) are | ||
|  | really very wide, and very asymmetric about the observed value 0.1. | ||
|  | 
 | ||
|  | Compare that with the program output for a mass | ||
|  | 2000 trials: | ||
|  | 
 | ||
|  | [pre'''______________________________________________ | ||
|  | 2-Sided Confidence Limits For Success Fraction | ||
|  | ______________________________________________ | ||
|  | Number of trials                         =  2000 | ||
|  | Number of successes                      =  200 | ||
|  | Number of failures                       =  1800 | ||
|  | Observed frequency of occurrence         =  0.1 | ||
|  | ___________________________________________ | ||
|  | Confidence        Lower          Upper | ||
|  |  Value (%)        Limit          Limit | ||
|  | ___________________________________________ | ||
|  |     50.000        0.09536        0.10445 | ||
|  |     75.000        0.09228        0.10776 | ||
|  |     90.000        0.08916        0.11125 | ||
|  |     95.000        0.08720        0.11352 | ||
|  |     99.000        0.08344        0.11802 | ||
|  |     99.900        0.07921        0.12336 | ||
|  |     99.990        0.07577        0.12795 | ||
|  |     99.999        0.07282        0.13206 | ||
|  | '''] | ||
|  | 
 | ||
|  | Now even when the confidence level is very high, the limits (at 99.999%, 0.07 to 0.13) are really | ||
|  | quite close and nearly symmetric to the observed value of 0.1. | ||
|  | 
 | ||
|  | [endsect][/section:neg_binom_conf Calculating Confidence Limits on the Frequency of Occurrence] | ||
|  | 
 | ||
|  | [section:neg_binom_size_eg Estimating Sample Sizes for the Negative Binomial.] | ||
|  | 
 | ||
|  | Imagine you have an event | ||
|  | (let's call it a "failure" - though we could equally well call it a success if we felt it was a 'good' event) | ||
|  | that you know will occur in 1 in N trials.  You may want to know how many trials you need to | ||
|  | conduct to be P% sure of observing at least k such failures.   | ||
|  | If the failure events follow a negative binomial | ||
|  | distribution (each trial either succeeds or fails) | ||
|  | then the static member function `negative_binomial_distibution<>::find_minimum_number_of_trials` | ||
|  | can be used to estimate the minimum number of trials required to be P% sure | ||
|  | of observing the desired number of failures. | ||
|  | 
 | ||
|  | The example program  | ||
|  | [@../../example/neg_binomial_sample_sizes.cpp neg_binomial_sample_sizes.cpp] | ||
|  | demonstrates its usage.  | ||
|  | 
 | ||
|  | [import ../../example/neg_binomial_sample_sizes.cpp] | ||
|  | [neg_binomial_sample_sizes] | ||
|  | 
 | ||
|  | [note Since we're calculating the /minimum/ number of trials required, | ||
|  | we'll err on the safe side and take the ceiling of the result. | ||
|  | Had we been calculating the | ||
|  | /maximum/ number of trials permitted to observe less than a certain  | ||
|  | number of /failures/ then we would have taken the floor instead.  We | ||
|  | would also have called `find_minimum_number_of_trials` like this: | ||
|  | `` | ||
|  |    floor(negative_binomial::find_minimum_number_of_trials(failures, p, alpha[i])) | ||
|  | ``             | ||
|  | which would give us the largest number of trials we could conduct and | ||
|  | still be P% sure of observing /failures or less/ failure events, when the | ||
|  | probability of success is /p/.] | ||
|  | 
 | ||
|  | We'll finish off by looking at some sample output, firstly suppose | ||
|  | we wish to observe at least 5 "failures" with a 50/50 (0.5) chance of | ||
|  | success or failure: | ||
|  | 
 | ||
|  | [pre | ||
|  | '''Target number of failures = 5,   Success fraction = 50% | ||
|  | 
 | ||
|  | ____________________________ | ||
|  | Confidence        Min Number | ||
|  |  Value (%)        Of Trials | ||
|  | ____________________________ | ||
|  |     50.000          11 | ||
|  |     75.000          14 | ||
|  |     90.000          17 | ||
|  |     95.000          18 | ||
|  |     99.000          22 | ||
|  |     99.900          27 | ||
|  |     99.990          31 | ||
|  |     99.999          36 | ||
|  | ''' | ||
|  | ] | ||
|  | 
 | ||
|  | So 18 trials or more would yield a 95% chance that at least our 5 | ||
|  | required failures would be observed. | ||
|  | 
 | ||
|  | Compare that to what happens if the success ratio is 90%: | ||
|  | 
 | ||
|  | [pre'''Target number of failures = 5.000,   Success fraction = 90.000% | ||
|  | 
 | ||
|  | ____________________________ | ||
|  | Confidence        Min Number | ||
|  |  Value (%)        Of Trials | ||
|  | ____________________________ | ||
|  |     50.000          57 | ||
|  |     75.000          73 | ||
|  |     90.000          91 | ||
|  |     95.000         103 | ||
|  |     99.000         127 | ||
|  |     99.900         159 | ||
|  |     99.990         189 | ||
|  |     99.999         217 | ||
|  | '''] | ||
|  | 
 | ||
|  | So now 103 trials are required to observe at least 5 failures with | ||
|  | 95% certainty. | ||
|  | 
 | ||
|  | [endsect] [/section:neg_binom_size_eg Estimating Sample Sizes.] | ||
|  | 
 | ||
|  | [section:negative_binomial_example1 Negative Binomial Sales Quota Example.] | ||
|  | 
 | ||
|  | This example program  | ||
|  | [@../../example/negative_binomial_example1.cpp negative_binomial_example1.cpp (full source code)] | ||
|  | demonstrates a simple use to find the probability of meeting a sales quota. | ||
|  | 
 | ||
|  | [import ../../example/negative_binomial_example1.cpp] | ||
|  | [negative_binomial_eg1_1] | ||
|  | [negative_binomial_eg1_2] | ||
|  | 
 | ||
|  | [endsect] [/section:negative_binomial_example1] | ||
|  | 
 | ||
|  | [section:negative_binomial_example2 Negative Binomial Table Printing Example.] | ||
|  | Example program showing output of a table of values of cdf and pdf for various k failures. | ||
|  | [import ../../example/negative_binomial_example2.cpp] | ||
|  | [neg_binomial_example2] | ||
|  | [neg_binomial_example2_1] | ||
|  | [endsect] [/section:negative_binomial_example1 Negative Binomial example 2.] | ||
|  | 
 | ||
|  | [endsect] [/section:neg_binom_eg Negative Binomial Distribution Examples] | ||
|  | 
 | ||
|  | [/  | ||
|  |   Copyright 2006 John Maddock and Paul A. Bristow. | ||
|  |   Distributed under the Boost Software License, Version 1.0. | ||
|  |   (See accompanying file LICENSE_1_0.txt or copy at | ||
|  |   http://www.boost.org/LICENSE_1_0.txt). | ||
|  | ] | ||
|  | 
 |