mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -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).
 | |
| ]
 | |
| 
 |