Come eseguire il test mcnemar in python


Il test McNemar viene utilizzato per determinare se esiste una differenza statisticamente significativa nelle proporzioni tra i dati accoppiati.

Questo tutorial spiega come eseguire il test McNemar in Python.

Esempio: il test McNemar in Python

Supponiamo che i ricercatori vogliano sapere se un determinato video di marketing può cambiare le opinioni delle persone su una particolare legge. Intervistano 100 persone per scoprire se sostengono o meno la legge. Quindi mostrano il video di marketing a tutte le 100 persone e le esaminano nuovamente al termine del video.

La tabella seguente mostra il numero totale di persone che hanno sostenuto la legge prima e dopo aver visto il video:

Video prima della commercializzazione
Video dopo la commercializzazione Supporto Non sopporto
Supporto 30 40
Non sopporto 12 18

Per determinare se ci fosse una differenza statisticamente significativa nella percentuale di persone che sostenevano la legge prima e dopo aver visto il video, possiamo eseguire il test McNemar.

Passaggio 1: creare i dati.

Per prima cosa creeremo una tabella per contenere i nostri dati:

 data = [[30, 40],
         [12, 18]]

Passaggio 2: eseguire il test McNemar

Successivamente, possiamo utilizzare la funzione mcnemar() dalla libreria statsmodels di Python, che utilizza la seguente sintassi:

mcnemar(array, esatto=Vero, correzione=Vero)

Oro:

  • tabella: una tabella di contingenza quadrata
  • esatto: se esatto è vero, verrà utilizzata la distribuzione binomiale. Se corretto è falso, verrà utilizzata la distribuzione Chi-quadrato
  • correzione: se vero, viene utilizzata una correzione di continuità. In genere, questa correzione viene applicata quando il numero di celle della tabella è inferiore a 5.

Il codice seguente mostra come utilizzare questa funzione nel nostro esempio specifico:

 from statsmodels.stats.contingency_tables import mcnemar

#McNemar's Test with no continuity correction
print(mcnemar(data, exact=False))

pvalue 0.000181
statistic 14.019

#McNemar's Test with continuity correction
print(mcnemar(data, exact=False, correction=False))

pvalue 0.000103
statistic 15,077

In entrambi i casi, indipendentemente dal fatto che venga applicata o meno la correzione di continuità, il valore p del test è inferiore a 0,05.

Ciò significa che in entrambi i casi rifiuteremmo l’ipotesi nulla e concluderemmo che la percentuale di persone che sostenevano la legge prima e dopo aver visto il video di marketing era statisticamente diversa.

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *