mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	
		
			
	
	
		
			194 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			194 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | [section:nc_f_dist Noncentral F Distribution] | ||
|  | 
 | ||
|  | ``#include <boost/math/distributions/non_central_f.hpp>`` | ||
|  | 
 | ||
|  |    namespace boost{ namespace math{  | ||
|  | 
 | ||
|  |    template <class RealType = double,  | ||
|  |              class ``__Policy``   = ``__policy_class`` > | ||
|  |    class non_central_f_distribution; | ||
|  | 
 | ||
|  |    typedef non_central_f_distribution<> non_central_f; | ||
|  | 
 | ||
|  |    template <class RealType, class ``__Policy``> | ||
|  |    class non_central_f_distribution | ||
|  |    { | ||
|  |    public: | ||
|  |       typedef RealType  value_type; | ||
|  |       typedef Policy    policy_type; | ||
|  | 
 | ||
|  |       // Constructor: | ||
|  |       non_central_f_distribution(RealType v1, RealType v2, RealType lambda); | ||
|  | 
 | ||
|  |       // Accessor to degrees_of_freedom parameters v1 & v2: | ||
|  |       RealType degrees_of_freedom1()const; | ||
|  |       RealType degrees_of_freedom2()const; | ||
|  | 
 | ||
|  |       // Accessor to non-centrality parameter lambda: | ||
|  |       RealType non_centrality()const; | ||
|  |    }; | ||
|  |     | ||
|  |    }} // namespaces | ||
|  |     | ||
|  | The noncentral F distribution is a generalization of the __F_distrib. | ||
|  | It is defined as the ratio  | ||
|  | 
 | ||
|  |    F = (X/v1) / (Y/v2) | ||
|  |     | ||
|  | where X is a noncentral [chi][super 2] | ||
|  | random variable with /v1/ degrees of freedom and non-centrality parameter [lambda],  | ||
|  | and Y is a central [chi][super 2] random variable with /v2/ degrees of freedom. | ||
|  | 
 | ||
|  | This gives the following PDF: | ||
|  | 
 | ||
|  | [equation nc_f_ref1] | ||
|  | 
 | ||
|  | where L[sub a][super b](c) is a generalised Laguerre polynomial and B(a,b) is the  | ||
|  | __beta function, or | ||
|  | 
 | ||
|  | [equation nc_f_ref2] | ||
|  | 
 | ||
|  | The following graph illustrates how the distribution changes | ||
|  | for different values of [lambda]: | ||
|  | 
 | ||
|  | [graph nc_f_pdf] | ||
|  | 
 | ||
|  | [h4 Member Functions] | ||
|  | 
 | ||
|  |       non_central_f_distribution(RealType v1, RealType v2, RealType lambda); | ||
|  |        | ||
|  | Constructs a non-central beta distribution with parameters /v1/ and /v2/ | ||
|  | and non-centrality parameter /lambda/. | ||
|  | 
 | ||
|  | Requires v1 > 0, v2 > 0 and lambda >= 0, otherwise calls __domain_error. | ||
|  | 
 | ||
|  |       RealType degrees_of_freedom1()const; | ||
|  |        | ||
|  | Returns the parameter /v1/ from which this object was constructed. | ||
|  | 
 | ||
|  |       RealType degrees_of_freedom2()const; | ||
|  |        | ||
|  | Returns the parameter /v2/ from which this object was constructed. | ||
|  | 
 | ||
|  |       RealType non_centrality()const; | ||
|  |        | ||
|  | Returns the non-centrality parameter /lambda/ from which this object was constructed. | ||
|  | 
 | ||
|  | [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. | ||
|  | 
 | ||
|  | The domain of the random variable is \[0, +[infin]\]. | ||
|  | 
 | ||
|  | [h4 Accuracy] | ||
|  | 
 | ||
|  | This distribution is implemented in terms of the | ||
|  | __non_central_beta_distrib: refer to that distribution for accuracy data. | ||
|  | 
 | ||
|  | [h4 Tests] | ||
|  | 
 | ||
|  | Since this distribution is implemented by adapting another distribution,  | ||
|  | the tests consist of basic sanity checks computed by the | ||
|  | [@http://www.r-project.org/ R-2.5.1 Math library statistical | ||
|  | package] and its pbeta and dbeta functions. | ||
|  | 
 | ||
|  | [h4 Implementation] | ||
|  | 
 | ||
|  | In the following table /v1/ and /v2/ are the first and second | ||
|  | degrees of freedom parameters of the distribution, [lambda] | ||
|  | is the non-centrality parameter, | ||
|  | /x/ is the random variate, /p/ is the probability, and /q = 1-p/. | ||
|  | 
 | ||
|  | [table | ||
|  | [[Function][Implementation Notes]] | ||
|  | [[pdf][Implemented in terms of the non-central beta PDF using the relation: | ||
|  | 
 | ||
|  | f(x;v1,v2;[lambda]) = (v1\/v2) / ((1+y)*(1+y)) * g(y\/(1+y);v1\/2,v2\/2;[lambda]) | ||
|  | 
 | ||
|  | where g(x; a, b; [lambda]) is the non central beta PDF, and: | ||
|  | 
 | ||
|  | y = x * v1 \/ v2 | ||
|  | ]] | ||
|  | [[cdf][Using the relation: | ||
|  | 
 | ||
|  | p = B[sub y](v1\/2, v2\/2; [lambda]) | ||
|  | 
 | ||
|  | where B[sub x](a, b; [lambda]) is the noncentral beta distribution CDF and | ||
|  | 
 | ||
|  | y = x * v1 \/ v2 | ||
|  | 
 | ||
|  | ]] | ||
|  | 
 | ||
|  | [[cdf complement][Using the relation: | ||
|  | 
 | ||
|  | q = 1 - B[sub y](v1\/2, v2\/2; [lambda]) | ||
|  | 
 | ||
|  | where 1 - B[sub x](a, b; [lambda]) is the complement of the  | ||
|  | noncentral beta distribution CDF and | ||
|  | 
 | ||
|  | y = x * v1 \/ v2 | ||
|  | 
 | ||
|  | ]] | ||
|  | [[quantile][Using the relation: | ||
|  | 
 | ||
|  | x = (bx \/ (1-bx)) * (v1 \/ v2) | ||
|  | 
 | ||
|  | where | ||
|  | 
 | ||
|  | bx = Q[sub p][super -1](v1\/2, v2\/2; [lambda]) | ||
|  | 
 | ||
|  | and  | ||
|  | 
 | ||
|  | Q[sub p][super -1](v1\/2, v2\/2; [lambda]) | ||
|  | 
 | ||
|  | is the noncentral beta quantile. | ||
|  | 
 | ||
|  | ]] | ||
|  | [[quantile | ||
|  | 
 | ||
|  | from the complement][ | ||
|  | Using the relation: | ||
|  | 
 | ||
|  | x = (bx \/ (1-bx)) * (v1 \/ v2) | ||
|  | 
 | ||
|  | where | ||
|  | 
 | ||
|  | bx = QC[sub q][super -1](v1\/2, v2\/2; [lambda]) | ||
|  | 
 | ||
|  | and  | ||
|  | 
 | ||
|  | QC[sub q][super -1](v1\/2, v2\/2; [lambda]) | ||
|  | 
 | ||
|  | is the noncentral beta quantile from the complement.]] | ||
|  | [[mean][v2 * (v1 + l) \/ (v1 * (v2 - 2))]] | ||
|  | [[mode][By numeric maximalisation of the PDF.]] | ||
|  | [[variance][Refer to, [@http://mathworld.wolfram.com/NoncentralF-Distribution.html | ||
|  |     Weisstein, Eric W. "Noncentral F-Distribution." From MathWorld--A Wolfram Web Resource.]  ]] | ||
|  | [[skewness][Refer to, [@http://mathworld.wolfram.com/NoncentralF-Distribution.html | ||
|  |     Weisstein, Eric W. "Noncentral F-Distribution." From MathWorld--A Wolfram Web Resource.], | ||
|  |     and to the [@http://reference.wolfram.com/mathematica/ref/NoncentralFRatioDistribution.html | ||
|  |     Mathematica documentation]  ]] | ||
|  | [[kurtosis and kurtosis excess] | ||
|  |     [Refer to, [@http://mathworld.wolfram.com/NoncentralF-Distribution.html | ||
|  |     Weisstein, Eric W. "Noncentral F-Distribution." From MathWorld--A Wolfram Web Resource.], | ||
|  |     and to the [@http://reference.wolfram.com/mathematica/ref/NoncentralFRatioDistribution.html | ||
|  |     Mathematica documentation]  ]] | ||
|  | ] | ||
|  | 
 | ||
|  | Some analytic properties of noncentral distributions | ||
|  | (particularly unimodality, and monotonicity of their modes) | ||
|  | are surveyed and summarized by: | ||
|  | 
 | ||
|  | Andrea van Aubel & Wolfgang Gawronski, Applied Mathematics and Computation, 141 (2003) 3-12. | ||
|  | 
 | ||
|  | [endsect] [/section:nc_f_dist] | ||
|  | 
 | ||
|  | [/ nc_f.qbk | ||
|  |   Copyright 2008 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). | ||
|  | ] | ||
|  | 
 |