Test di McNemar
Con i conteggi appaiati 59, 6, 16 e 80, il test di McNemar usa solo le 22 coppie discordanti e dà un valore p appena sopra 0,05: non significativo al 5%. La correzione di continuità è attiva per impostazione predefinita. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- A
- 59
- B
- 6
- C
- 16
- D
- 80
- N
- 161
- N. di coppie discordanti
- 22
- Chi quadrato
- 3,6818181818
- Valore P
- 0,0550088336
Il test di McNemar chiede se due classificazioni binarie appaiate discordano in modo sistematico. Lei osserva gli stessi soggetti due volte —prima e dopo un trattamento, due valutatori che assegnano un punteggio agli stessi casi, oppure due test diagnostici sugli stessi pazienti— e raccoglie quelle coppie in una tabella 2x2. Le coppie concordanti occupano la diagonale e non informano l'ipotesi nulla; solo le due celle discordanti, convenzionalmente chiamate b e c, entrano nella statistica chi-quadro. Questo calcolatore accetta i quattro conteggi interi non negativi di quella tabella appaiata, rifiuta un conteggio negativo invece di ritagliarlo in silenzio e restituisce la statistica chi-quadro di McNemar con un grado di libertà insieme al p-value di coda superiore corrispondente. La correzione di continuità è attiva per impostazione predefinita, secondo la forma di Edwards usata dai pacchetti statistici comuni; Lei può disattivarla per recuperare il rapporto originale del 1947 della differenza discordante al quadrato sul totale discordante.
Come si definisce il test di McNemar su una tabella 2x2 appaiata
Scriva i quattro conteggi di coppie osservati nella disposizione abituale dei manuali: a nella cella in alto a sinistra per primo-sì e secondo-sì, b in alto a destra per primo-sì e secondo-no, c in basso a sinistra per primo-no e secondo-sì, e d in basso a destra per primo-no e secondo-no. Le celle a e d sono concordanti: quei soggetti non hanno cambiato classificazione, quindi si annullano nel test di omogeneità marginale.
Le celle b e c sono i conteggi di coppie discordanti, e l'argomento di McNemar condiziona alla loro somma. Sotto la nulla secondo cui le due probabilità marginali di un esito positivo sono uguali, ogni coppia discordante ha la stessa probabilità di cadere in b o in c, così i conteggi attesi sono uguali e il residuo di Pearson si riduce al chi-quadro a un grado di libertà (b meno c) al quadrato su (b più c).
La correzione di continuità di Edwards, applicata per impostazione predefinita quando la differenza assoluta di b e c è maggiore di uno, sostituisce quel numeratore con il quadrato della differenza assoluta meno uno, il che riduce un poco la statistica ed è il valore predefinito in diversi pacchetti statistici di uso ampio.
Il p-value è la coda superiore di una distribuzione chi-quadro con un grado di libertà, in modo equivalente la funzione errore complementare della radice quadrata della metà della statistica, calcolata qui tramite la gamma incompleta regolarizzata così non serve una tavola stampata. Quando b più c è zero il rapporto è indefinito e la richiesta viene rifiutata invece di inventare un p-value pari a uno.
Dove compare il chi-quadro appaiato di McNemar nel lavoro reale
I corsi introduttivi di biostatistica e le classi di statistica della scuola superiore assegnano di continuo esercizi binari prima-dopo —trattamento contro controllo sugli stessi soggetti, esposto contro non esposto in due visite, guarito contro ancora malato dopo un ciclo di terapia— dove un test chi-quadro di indipendenza tratterebbe i due margini come campioni non correlati e un test t appaiato esigerebbe un punteggio numerico di cambiamento che non esiste.
I team clinici e di epidemiologia riferiscono ancora il chi-quadro di McNemar per coppie caso-controllo appaiate, due test diagnostici sugli stessi pazienti e flag di eventi avversi prima-dopo quando la domanda scientifica è se i due margini appaiati differiscono. Gli ingegneri di qualità e affidabilità confrontano esito positivo o negativo sulle stesse unità prima e dopo un cambio di processo e necessitano della statistica delle coppie discordanti piuttosto che di un test z di due proporzioni non appaiato che ignora l'appaiamento.
Due valutatori che assegnano sì o no agli stessi item producono una 2x2 appaiata le cui celle fuori diagonale sono esattamente gli ingressi di McNemar. Se in seguito Le servono il test esatto di Fisher su una 2x2 non appaiata, un test t appaiato su misure numeriche prima-dopo, o un intervallo di confidenza per una differenza media appaiata, li tratti come intenzioni di ricerca e landing distinte invece di sovraccaricare questa pagina di calcolatore del test di McNemar.
Casi d'uso
Controlli dei compiti su una 2x2 appaiata
Studenti e correttori verificano il chi-quadro di McNemar e il p-value a un grado di libertà da quattro celle intere senza consultare una tavola chi-quadro né confondere i conteggi discordanti.
Tabelle cliniche e diagnostiche appaiate
Gli analisti verificano se due margini binari appaiati differiscono —due test sugli stessi pazienti, o coppie caso-controllo— quando solo b e c informano la nulla.
Esito positivo o negativo prima-dopo sulle stesse unità
Gli ingegneri confrontano una classificazione binaria sugli stessi item prima e dopo un cambio di processo e pubblicano il chi-quadro e il p-value delle coppie discordanti.
Domande frequenti
Quali celle della tabella 2x2 entrano nella statistica?
Solo i conteggi di coppie discordanti b (primo sì, secondo no) e c (primo no, secondo sì). Le celle concordanti a e d sono riecheggiate nella risposta e nel totale generale n, ma si annullano nel chi-quadro.
La correzione di continuità viene applicata?
Sì per impostazione predefinita. Quando correction vale true e |b−c| è maggiore di uno, il motore usa la forma di Edwards (|b−c|−1)²/(b+c). Imposti correction a false per la statistica originale (b−c)²/(b+c).
Che cosa accade se una cella è negativa o non è un intero?
Il test di McNemar si definisce su conteggi di coppie interi non negativi; frazioni e frequenze negative vengono rifiutate invece di essere arrotondate o ritagliate.
In che cosa differisce dal test esatto di Fisher o da un t appaiato?
Il test esatto di Fisher tratta una 2x2 non appaiata di campioni indipendenti. Un test t appaiato richiede misure numeriche prima-dopo. Il test di McNemar è il chi-quadro di due classificazioni binarie appaiate sugli stessi soggetti.
Quanto costa?
Lo strumento del browser è gratuito e gira 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/mcnemars-test \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":59,"b":6,"c":16,"d":80}'const res = await fetch("https://api.kit.forhosting.com/stat/mcnemars-test", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 59,
"b": 6,
"c": 16,
"d": 80
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/mcnemars-test",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 59,
"b": 6,
"c": 16,
"d": 80
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/mcnemars-test", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":59,"b":6,"c":16,"d":80}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":59,"b":6,"c":16,"d":80}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/mcnemars-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": 59,
"b": 6,
"c": 16,
"d": 80
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.mcnemars_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_cell | 10000000 |
max_n | 40000000 |
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 riceve in cambio
Invii quattro conteggi di cella interi non negativi obbligatori chiamati a, b, c e d. Un conteggio negativo viene rifiutato perché una tabella di contingenza non può contenere una frequenza negativa. Un conteggio non intero viene rifiutato perché il test di McNemar si definisce su conteggi di coppie discreti, non su misure arrotondate in silenzio. Se entrambe le celle discordanti sono zero la statistica è indefinita e la richiesta fallisce invece di dividere per zero. I controlli classici includono la tabella appaiata cinquantanove, sei, sedici, ottanta, il cui chi-quadro corretto per la continuità è ottantuno su ventidue, e una cella negativa deliberata che deve fallire. 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. Un booleano opzionale correction, accettato anche come continuity_correction o correct, vale true per impostazione predefinita e seleziona la forma di Edwards; lo imposti a false per la statistica del 1947 non corretta. 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 colpevole. In caso di successo la risposta riecheggia le quattro celle, il totale generale n, il totale discordante n_discordant, la statistica chi_square arrotondata a dodici decimali, il p_value a un grado di libertà, df uguale a uno, il flag correction applicato, un indicatore significant_at_05 alla soglia alfa convenzionale di 0.05, un'etichetta di metodo e una breve stringa di formula. Colleghi il modulo gratuito del browser per i compiti e le dimostrazioni, poi richiami lo stesso contratto dagli script quando Le servono molti test 2x2 appaiati sotto una sola forma JSON. Il prezzo API delle chiamate riuscite è la base pubblicata di $0.002 per elemento; i fallimenti di convalida non consumano saldo e non inventano mai un sostituto chi-quadro per forzare un numero.
Dove compare il chi-quadro appaiato di McNemar nel lavoro reale
Un unico oracolo attendibile che restituisce JSON pulito accelera la correzione senza consultare a mano code a un grado di libertà. Poiché questa capacità è un motore parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la convalida fallita non consuma saldo.