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).
 | |
| ]
 | |
| 
 |