mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-18 10:01:57 -05: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).
|
|
]
|
|
|