mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-04 05:50:31 -05: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).
							 | 
						||
| 
								 | 
							
								]
							 | 
						||
| 
								 | 
							
								
							 |