FDist {stats} | R Documentation |
Density, distribution function, quantile function and random
generation for the F distribution with df1
and df2
degrees of freedom (and optional non-centrality parameter ncp
).
df(x, df1, df2, ncp, log = FALSE)
pf(q, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE)
qf(p, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE)
rf(n, df1, df2, ncp)
x , q |
vector of quantiles. |
p |
vector of probabilities. |
n |
number of observations. If |
df1 , df2 |
degrees of freedom. |
ncp |
non-centrality parameter. If omitted the central F is assumed. |
log , log.p |
logical; if TRUE, probabilities p are given as log(p). |
lower.tail |
logical; if TRUE (default), probabilities are
|
The F distribution with df1 =
n_1
and df2 =
n_2
degrees of freedom has density
f(x) = \frac{\Gamma(n_1/2 + n_2/2)}{\Gamma(n_1/2)\Gamma(n_2/2)}
\left(\frac{n_1}{n_2}\right)^{n_1/2} x^{n_1/2 -1}
\left(1 + \frac{n_1 x}{n_2}\right)^{-(n_1 + n_2) / 2}%
for x > 0
.
It is the distribution of the ratio of the mean squares of
n_1
and n_2
independent standard normals, and hence
of the ratio of two independent chi-squared variates each divided by its
degrees of freedom. Since the ratio of a normal and the root
mean-square of m
independent normals has a Student's t_m
distribution, the square of a t_m
variate has a F distribution on
1 and m
degrees of freedom.
The non-central F distribution is again the ratio of mean squares of
independent normals of unit variance, but those in the numerator are
allowed to have non-zero means and ncp
is the sum of squares of
the means. See Chisquare for further details on
non-central distributions.
df
gives the density,
pf
gives the distribution function
qf
gives the quantile function, and
rf
generates random deviates.
Invalid arguments will result in return value NaN
, with a warning.
For df
, and ncp == 0
, computed via a binomial
probability, code contributed by Catherine Loader (see dbinom
);
for ncp != 0
, computed via a dbeta
,
code contributed by Peter Ruckdeschel.
For pf
, via pbeta
(or for large df2
, via
pchisq
).
For qf
, via qchisq
for large df2
, else via
qbeta
.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
Johnson, N. L., Kotz, S. and Balakrishnan, N. (1995) Continuous Univariate Distributions, volume 2, chapters 27 and 30. Wiley, New York.
dchisq
for chi-squared and dt
for Student's
t distributions.
## the density of the square of a t_m is 2*dt(x, m)/(2*x)
# check this is the same as the density of F_{1,m}
x <- seq(0.001, 5, len=100)
all.equal(df(x^2, 1, 5), dt(x, 5)/x)
## Identity: qf(2*p - 1, 1, df)) == qt(p, df)^2) for p >= 1/2
p <- seq(1/2, .99, length=50); df <- 10
rel.err <- function(x,y) ifelse(x==y,0, abs(x-y)/mean(abs(c(x,y))))
quantile(rel.err(qf(2*p - 1, df1=1, df2=df), qt(p, df)^2), .90)# ~= 7e-9