Test esatto di Fisher
La tabella 2x2 con 8, 2, 1 e 5 dà un valore p bilaterale di 5/143, sotto il consueto livello di 0,05. Il test esatto di Fisher resta esatto con campioni piccoli e celle quasi vuote, dove il chi-quadrato mostra avvertenze. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- A
- 8
- B
- 2
- C
- 1
- D
- 5
- N
- 16
- Totale riga 1
- 10
- Totale riga 2
- 6
- Totale colonna 1
- 9
Il test esatto di Fisher risponde a una sola domanda ben posta: data una tabella di contingenza 2x2 di quattro conteggi interi non negativi, quanto è sorprendente l'associazione osservata se i totali di riga e di colonna fossero fissi e la tabella fosse stata estratta dalla distribuzione ipergeometrica? A differenza di un test chi-quadro di indipendenza, la procedura di Fisher è esatta per campioni piccoli e celle sparse; elenca ogni tabella che condivide quei margini e somma le probabilità ipergeometriche delle tabelle almeno tanto estreme quanto quella che Lei ha osservato. Questo calcolatore accetta i quattro conteggi di cella a, b, c e d, rifiuta valori negativi o non interi invece di arrotondarli in silenzio e restituisce il p-value bilaterale secondo la definizione di minima verosimiglianza del test esatto di Fisher classico.
Come si definisce il test esatto di Fisher su una tabella 2x2
Scriva i quattro conteggi osservati nella disposizione consueta dei manuali: a nella cella in alto a sinistra, b in alto a destra, c in basso a sinistra e d in basso a destra. I totali di riga sono a più b e c più d; quelli di colonna sono a più c e b più d; il totale generale è n uguale ad a più b più c più d. L'argomento di Fisher condiziona su quei quattro margini.
Sotto tale condizionamento il conteggio in alto a sinistra è una variabile aleatoria ipergeometrica: la probabilità di qualunque valore ammissibile k è il prodotto dei due coefficienti binomiali per riga C(a+b, k) e C(c+d, totale-della-colonna-uno meno k), diviso per C(n, totale-della-colonna-uno). In modo equivalente, la probabilità di una tabella completa è (a+b)! (c+d)! (a+c)!
(b+d)! diviso per n! a! b! c! d!. L'intervallo ammissibile di k va da max(0, riga-uno più colonna-uno meno n) a min(riga-uno, colonna-uno).
Il p-value bilaterale riportato qui è la somma di minima verosimiglianza usata dal test esatto di Fisher classico e dall'opzione bilaterale predefinita delle librerie statistiche usuali: si aggiunge la probabilità ipergeometrica di ogni tabella la cui probabilità è minore o uguale a quella della tabella che Lei ha osservato. Non è la stessa cosa che raddoppiare una coda unilaterale, ed è la grandezza che si cerca consultando un calcolatore del test esatto di Fisher.
Il motore calcola i pesi binomiali non normalizzati con aritmetica BigInt esatta e converte il rapporto finale in un p-value in virgola mobile solo alla fine, così tabelle piccole di aula come otto, due, uno, cinque riproducono la frazione del manuale anziché un'approssimazione chi-quadro.
Che cosa invia Lei e che cosa ottiene in risposta
Invii quattro conteggi di cella interi non negativi obbligatori chiamati a, b, c e d. Un conteggio negativo è rifiutato perché una tabella di contingenza non può contenere una frequenza negativa. Un conteggio non intero è rifiutato perché il test esatto di Fisher è definito su tabelle discrete, non su misure arrotondate in silenzio.
Il totale generale n è limitato affinché l'enumerazione ipergeometrica resti limitata nel worker. Quando b e c sono entrambi positivi è incluso il rapporto di quote campionario a per d su b per c; quando b oppure c è zero il rapporto di quote è indefinito e quella chiave è omessa anziché simulata come null. I controlli classici includono la tabella sparsa otto, due, uno, cinque, il cui p-value bilaterale è cinque su centoquarantatré, e una cella negativa deliberata che deve fallire.
Dove un p-value esatto di Fisher 2x2 compare nel lavoro reale
I corsi introduttivi di biostatistica e di statistica della scuola superiore assegnano di continuo esercizi di indipendenza 2x2 su conteggi piccoli—trattamento contro controllo, esposto contro non esposto, guarito contro deceduto—dove le frequenze attese di cella scendono sotto cinque e in ogni manuale compare un avviso chi-quadro. I gruppi clinici e di epidemiologia riferiscono ancora il p-value esatto di Fisher per tabelle sparse di eventi avversi, 2x2 caso-controllo e criteri binari di fase precoce quando il campione è troppo piccolo perché un chi-quadro o un test z di proporzioni sia onesto.
Gli analisti A/B e i ricercatori di prodotto a volte hanno minuscole tabelle di conversione in una fetta di ritenzione e vogliono lo stesso numero bilaterale di Fisher che uno statistico citerebbe in un'appendice metodologica. Se in seguito Le serve un test chi-quadro di indipendenza, una correlazione di Matthews sulle stesse quattro celle, la h di Cohen per due proporzioni o un test t appaiato di misure prima e dopo, li tratti come intenzioni di ricerca e pagine distinte anziché sovraccaricare questa pagina del calcolatore del test esatto di Fisher.
Casi d'uso
Controlli dei compiti 2x2 a campione piccolo
Studenti e correttori verificano il p-value bilaterale di Fisher da quattro celle intere senza consultare tabelle ipergeometriche né arrotondare i conteggi a mano.
Tabelle cliniche ed epidemiologiche sparse
Gli analisti verificano l'associazione in 2x2 di trattamento per esito quando i conteggi attesi sono piccoli e un'approssimazione chi-quadro indurrebbe in errore.
Domande frequenti
Come sono disposte le quattro celle a, b, c e d?
Formano una tabella 2x2: a è riga 1 colonna 1, b è riga 1 colonna 2, c è riga 2 colonna 1 e d è riga 2 colonna 2. I totali di riga e di colonna si calcolano da quei quattro conteggi.
Il p-value è unilaterale o bilaterale?
Bilaterale, con il metodo della minima verosimiglianza: il motore somma la probabilità ipergeometrica di ogni tabella con gli stessi margini la cui probabilità è al più quella della tabella osservata.
Che succede se una cella è negativa o non è un intero?
Il test esatto di Fisher è definito su conteggi interi non negativi; frazioni e frequenze negative sono rifiutate invece di essere arrotondate.
In che cosa differisce da un test chi-quadro di indipendenza?
Il chi-quadro è un'approssimazione asintotica che richiede conteggi attesi grandi. Il test esatto di Fisher condiziona sui margini ed è esatto per tabelle 2x2 piccole e sparse.
Quanto costa?
Lo strumento del browser è gratuito e viene eseguito in locale.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/stat/fishers-exact-test \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":8,"b":2,"c":1,"d":5}'const res = await fetch("https://api.kit.forhosting.com/stat/fishers-exact-test", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 8,
"b": 2,
"c": 1,
"d": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/fishers-exact-test",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 8,
"b": 2,
"c": 1,
"d": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/fishers-exact-test", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":8,"b":2,"c":1,"d":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":8,"b":2,"c":1,"d":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/fishers-exact-test", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"a": 8,
"b": 2,
"c": 1,
"d": 5
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.fishers_exact_test",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_n | 2000 |
max_cell | 2000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Le chiamate API riuscite sono addebitate alla base pubblicata di $0.002 per elemento; l'ingresso non valido non viene addebitato.
Che cosa invia Lei e che cosa ottiene in risposta
Il motore accetta anche gli alias di matrice n11, n12, n21, n22 e a11, a12, a21, a22 così uno script che già memorizza una matrice numerica non deve rinominare i campi. Ogni conteggio può arrivare come intero JSON o come stringa di cifre; frazioni, booleani, NaN, Infinity, stringhe vuote e campi assenti falliscono con invalid_input che nomina la cella in colpa. In caso di successo la risposta riecheggia le quattro celle e n, riporta i due totali di riga e i due di colonna, restituisce il p_value bilaterale arrotondato a dodici decimali, segnala significant_at_05 alla soglia alfa convenzionale di 0.05, nomina il metodo come minima verosimiglianza bilaterale e riafferma la formula. Colleghi il modulo gratuito del browser per compiti e dimostrazioni, poi chiami lo stesso contratto dagli script quando serve eseguire molti test 2x2 sotto una sola forma JSON. Il prezzo API delle chiamate riuscite è la base pubblicata di $0.002 per elemento; i fallimenti di validazione non consumano saldo e non inventano mai un sostituto chi-quadro per forzare un numero.
Dove un p-value esatto di Fisher 2x2 compare nel lavoro reale
Un unico oracolo attendibile che restituisce JSON pulito accelera la correzione senza consultare a mano code ipergeometriche. Gli ingegneri di qualità e affidabilità confrontano conteggi di idoneo o non idoneo prima e dopo un cambiamento di processo sullo stesso schema due per due e hanno bisogno di un p-value esatto anziché di un'approssimazione asintotica che esagera l'evidenza. Poiché questa capacità è un motore parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la validazione fallita non consuma saldo.
Casi di integrazione
Idoneo o non idoneo di processo prima e dopo un cambiamento
Gli ingegneri confrontano due classificazioni binarie su uno schema 2x2 e pubblicano il p-value bilaterale esatto del rapporto di quote osservato.