F Distribution CDF Calculator
Enter an F statistic of 2.5 with 5 and 10 degrees of freedom and get the left-tail probability, the share of the F distribution at or below 2.5. One minus it gives the upper-tail p-value that most F tests report. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- X
- 2.5
- Numerator degrees of freedom
- 5
- Denominator degrees of freedom
- 10
- Cumulative probability
- 0.8979977234
The F distribution CDF calculator returns the probability that an F-distributed random variable is less than or equal to a chosen nonnegative value. Enter x, the numerator degrees of freedom, and the denominator degrees of freedom to obtain a deterministic cumulative probability between zero and one. This is the left-tail probability used when reading F tables, checking variance ratios, and building tests based on analysis of variance or regression.
Enter the statistic and both degrees of freedom
An F distribution is identified by two separate degrees-of-freedom values, so all three inputs matter. Supply the observed F statistic as x, the numerator degrees of freedom associated with the variation in the top of the ratio, and the denominator degrees of freedom associated with the variation in the bottom. The calculator accepts positive, finite degrees of freedom, including fractional values when a method produces them.
The x value must be finite and cannot be negative because the F distribution has support only at zero and above. At x equal to zero, the cumulative probability is exactly zero. Be careful not to exchange the two degrees of freedom: the F distribution is generally asymmetric, and reversing them describes a different distribution.
In a one-way ANOVA, for example, the numerator value commonly comes from between-group variation and the denominator value from within-group variation. Use the conventions of the statistical procedure that produced your statistic rather than inferring the order from whichever number is larger.
Understand the cumulative result
A result near zero means that little probability lies at or below the supplied statistic for the selected distribution. A result near one means that almost all probability lies at or below it. Many classical F tests report an upper-tail p-value instead.
For a continuous F distribution, that upper-tail probability is one minus the cumulative result, but this calculator deliberately returns the CDF itself so the output has one unambiguous meaning. Do not compare the cumulative probability directly with a significance level when your procedure calls for a right-tail p-value; perform the complement first. The output also repeats x and both degrees of freedom, which makes stored results self-describing and helps prevent values calculated for different distributions from being mixed.
Because probabilities near the tails may be extremely close to zero or one, retain the numeric output rather than rounding early for presentation. Early rounding can materially change a later complement or threshold comparison.
How the calculation stays reliable
The calculator transforms the F cumulative distribution into a regularized incomplete beta function. Specifically, it evaluates the beta function at a stable ratio derived from x and the two degrees of freedom. A Lanczos log-gamma approximation supplies the normalization, while a bounded modified Lentz continued fraction evaluates the incomplete beta term.
The implementation chooses the direct or complementary branch according to the evaluation point, which reduces loss of precision near the ends of the interval. It uses no network requests, random sampling, current time, or stored state, so identical inputs produce identical outputs. Iteration is capped, and a rare failure to converge is returned as an input error instead of an invented probability.
This numerical result is suitable for routine calculations, application checks, teaching tools, and reproducible pipelines. For regulated analyses or decisions with substantial consequences, preserve the original inputs and compare results with the validated statistical software required by your organization, particularly for unusually extreme parameters where every floating-point implementation has practical precision limits.
What you can do with it
Interpret an ANOVA statistic
Find the left-tail probability for an observed F statistic using the model and residual degrees of freedom.
Check a variance-ratio calculation
Evaluate where a variance ratio falls within the F distribution specified by two sample degrees of freedom.
Automate statistical validation
Generate deterministic cumulative probabilities in tests, reports, or data-quality pipelines without a network dependency.
FAQ
What probability does the calculator return?
It returns P(F ≤ x), the cumulative left-tail probability up to and including x for a continuous F distribution.
How do I obtain an upper-tail p-value?
Confirm that your statistical procedure actually specifies an upper-tail test.
Can the degrees of freedom be fractional?
Yes. Each degrees-of-freedom input may be any positive finite number, which supports methods that use effective or adjusted degrees of freedom.
Does the order of the degrees of freedom matter?
Yes. Numerator and denominator degrees of freedom are not interchangeable; reversing them generally changes the distribution and the result.
What does a result near 0 or near 1 mean?
Near 0, little of the distribution lies at or below your statistic. Near 1, almost all of it does. At exactly zero the probability is 0, because an F value can never be negative.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/stat/f-cdf \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":2.5,"numerator_degrees_of_freedom":5,"denominator_degrees_of_freedom":10}'const res = await fetch("https://api.kit.forhosting.com/stat/f-cdf", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": 2.5,
"numerator_degrees_of_freedom": 5,
"denominator_degrees_of_freedom": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/f-cdf",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": 2.5,
"numerator_degrees_of_freedom": 5,
"denominator_degrees_of_freedom": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/f-cdf", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":2.5,"numerator_degrees_of_freedom":5,"denominator_degrees_of_freedom":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":2.5,"numerator_degrees_of_freedom":5,"denominator_degrees_of_freedom":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/f-cdf", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"x": 2.5,
"numerator_degrees_of_freedom": 5,
"denominator_degrees_of_freedom": 10
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.f_cdf",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
The calculation runs locally in the browser and is also available through the API for repeatable automated workflows.
Understand the cumulative result
The returned cumulative_probability is the left-tail area, written mathematically as P(F ≤ x).
Technical questions
Can x be negative?
No. The F distribution is defined only for nonnegative values, so a negative x produces an invalid_input error.
What does it cost?
The browser calculation is free. Each API request costs $0.002.