mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-29 20:10:28 -04:00 
			
		
		
		
	
		
			
	
	
		
			162 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			162 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | [section:chi_squared_dist Chi Squared Distribution] | ||
|  | 
 | ||
|  | ``#include <boost/math/distributions/chi_squared.hpp>`` | ||
|  | 
 | ||
|  |    namespace boost{ namespace math{  | ||
|  | 
 | ||
|  |    template <class RealType = double,  | ||
|  |              class ``__Policy``   = ``__policy_class`` > | ||
|  |    class chi_squared_distribution; | ||
|  | 
 | ||
|  |    typedef chi_squared_distribution<> chi_squared; | ||
|  | 
 | ||
|  |    template <class RealType, class ``__Policy``> | ||
|  |    class chi_squared_distribution | ||
|  |    { | ||
|  |    public: | ||
|  |       typedef RealType  value_type; | ||
|  |       typedef Policy    policy_type; | ||
|  | 
 | ||
|  |       // Constructor: | ||
|  |       chi_squared_distribution(RealType i); | ||
|  | 
 | ||
|  |       // Accessor to parameter: | ||
|  |       RealType degrees_of_freedom()const; | ||
|  | 
 | ||
|  |       // Parameter estimation: | ||
|  |       static RealType find_degrees_of_freedom( | ||
|  |          RealType difference_from_mean, | ||
|  |          RealType alpha, | ||
|  |          RealType beta, | ||
|  |          RealType sd, | ||
|  |          RealType hint = 100); | ||
|  |    }; | ||
|  |     | ||
|  |    }} // namespaces | ||
|  |     | ||
|  | The Chi-Squared distribution is one of the most widely used distributions | ||
|  | in statistical tests.  If [chi][sub i][space] are [nu][space]  | ||
|  | independent, normally distributed | ||
|  | random variables with means [mu][sub i][space] and variances [sigma][sub i][super 2],  | ||
|  | then the random variable: | ||
|  | 
 | ||
|  | [equation chi_squ_ref1] | ||
|  | 
 | ||
|  | is distributed according to the Chi-Squared distribution. | ||
|  | 
 | ||
|  | The Chi-Squared distribution is a special case of the gamma distribution | ||
|  | and has a single parameter [nu][space] that specifies the number of degrees of | ||
|  | freedom.  The following graph illustrates how the distribution changes | ||
|  | for different values of [nu]: | ||
|  | 
 | ||
|  | [graph chi_squared_pdf] | ||
|  | 
 | ||
|  | [h4 Member Functions] | ||
|  | 
 | ||
|  |       chi_squared_distribution(RealType v); | ||
|  |        | ||
|  | Constructs a Chi-Squared distribution with /v/ degrees of freedom. | ||
|  | 
 | ||
|  | Requires v > 0, otherwise calls __domain_error. | ||
|  | 
 | ||
|  |       RealType degrees_of_freedom()const; | ||
|  |        | ||
|  | Returns the parameter /v/ from which this object was constructed. | ||
|  | 
 | ||
|  |       static RealType find_degrees_of_freedom( | ||
|  |          RealType difference_from_variance, | ||
|  |          RealType alpha, | ||
|  |          RealType beta, | ||
|  |          RealType variance, | ||
|  |          RealType hint = 100); | ||
|  | 
 | ||
|  | Estimates the sample size required to detect a difference from a nominal | ||
|  | variance in a Chi-Squared test for equal standard deviations. | ||
|  | 
 | ||
|  | [variablelist | ||
|  | [[difference_from_variance][The difference from the assumed nominal variance  | ||
|  |    that is to be detected: Note that the sign of this value is critical, see below.]] | ||
|  | [[alpha][The maximum acceptable risk of rejecting the null hypothesis when it is | ||
|  |          in fact true.]] | ||
|  | [[beta][The maximum acceptable risk of falsely failing to reject the null hypothesis.]] | ||
|  | [[variance][The nominal variance being tested against.]] | ||
|  | [[hint][An optional hint on where to start looking for a result: the current sample | ||
|  |       size would be a good choice.]] | ||
|  | ] | ||
|  | 
 | ||
|  | Note that this calculation works with /variances/ and not /standard deviations/. | ||
|  | 
 | ||
|  | The sign of the parameter /difference_from_variance/ is important: the Chi | ||
|  | Squared distribution is asymmetric, and the caller must decide in advance | ||
|  | whether they are testing for a variance greater than a nominal value (positive | ||
|  | /difference_from_variance/) or testing for a variance less than a nominal value | ||
|  | (negative /difference_from_variance/).  If the latter, then obviously it is | ||
|  | a requirement that `variance + difference_from_variance > 0`, since no sample | ||
|  | can have a negative variance! | ||
|  | 
 | ||
|  | This procedure uses the method in Diamond, W. J. (1989).  | ||
|  | Practical Experiment Designs, Van-Nostrand Reinhold, New York. | ||
|  |    | ||
|  | See also section on Sample sizes required in | ||
|  | [@http://www.itl.nist.gov/div898/handbook/prc/section2/prc232.htm the NIST Engineering Statistics Handbook, Section 7.2.3.2]. | ||
|  | 
 | ||
|  | [h4 Non-member Accessors] | ||
|  | 
 | ||
|  | All the [link math_toolkit.dist_ref.nmp usual non-member accessor functions] | ||
|  | that are generic to all distributions are supported: __usual_accessors. | ||
|  | 
 | ||
|  | (We have followed the usual restriction of the mode to degrees of freedom >= 2, | ||
|  | but note that the maximum of the pdf is actually zero for degrees of freedom from 2 down to 0, | ||
|  | and provide an extended definition that would avoid a discontinuity in the mode | ||
|  | as alternative code in a comment). | ||
|  | 
 | ||
|  | The domain of the random variable is \[0, +[infin]\]. | ||
|  | 
 | ||
|  | [h4 Examples] | ||
|  | 
 | ||
|  | Various [link math_toolkit.stat_tut.weg.cs_eg worked examples]  | ||
|  | are available illustrating the use of the Chi Squared Distribution. | ||
|  | 
 | ||
|  | [h4 Accuracy] | ||
|  | 
 | ||
|  | The Chi-Squared distribution is implemented in terms of the  | ||
|  | [link math_toolkit.sf_gamma.igamma incomplete gamma functions]: | ||
|  | please refer to the accuracy data for those functions. | ||
|  | 
 | ||
|  | [h4 Implementation] | ||
|  | 
 | ||
|  | In the following table /v/ is the number of degrees of freedom of the distribution, | ||
|  | /x/ is the random variate, /p/ is the probability, and /q = 1-p/. | ||
|  | 
 | ||
|  | [table | ||
|  | [[Function][Implementation Notes]] | ||
|  | [[pdf][Using the relation: pdf = __gamma_p_derivative(v / 2, x / 2) / 2 ]] | ||
|  | [[cdf][Using the relation: p = __gamma_p(v / 2, x / 2) ]] | ||
|  | [[cdf complement][Using the relation: q = __gamma_q(v / 2, x / 2) ]] | ||
|  | [[quantile][Using the relation: x = 2 * __gamma_p_inv(v / 2, p) ]] | ||
|  | [[quantile from the complement][Using the relation: x = 2 * __gamma_q_inv(v / 2, p) ]] | ||
|  | [[mean][v]] | ||
|  | [[variance][2v]] | ||
|  | [[mode][v - 2 (if v >= 2)]] | ||
|  | [[skewness][2 * sqrt(2 / v) == sqrt(8 / v)]] | ||
|  | [[kurtosis][3 + 12 / v]] | ||
|  | [[kurtosis excess][12 / v]] | ||
|  | ] | ||
|  | 
 | ||
|  | [h4 References] | ||
|  | 
 | ||
|  | * [@http://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm NIST Exploratory Data Analysis] | ||
|  | * [@http://en.wikipedia.org/wiki/Chi-square_distribution Chi-square distribution] | ||
|  | * [@http://mathworld.wolfram.com/Chi-SquaredDistribution.html Weisstein, Eric W. "Chi-Squared Distribution." From MathWorld--A Wolfram Web Resource.] | ||
|  | 
 | ||
|  | 
 | ||
|  | [endsect][/section:chi_squared_dist Chi Squared] | ||
|  | 
 | ||
|  | [/ chi_squared.qbk | ||
|  |   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). | ||
|  | ] | ||
|  | 
 |