Come eseguire un test binomiale in python
Un test binomiale confronta una proporzione campionaria con una proporzione ipotetica.
Ad esempio, supponiamo di avere un dado a 6 facce. Se lo lanciamo 12 volte, ci aspetteremmo che il numero “3” appaia 1/6 delle volte, che sarebbe 12 * (1/6) = 2 volte.
Se il numero “3” appare effettivamente 4 volte, questa è la prova che il dado è sbilanciato a favore del numero “3”? Potremmo eseguire un test binomiale per rispondere a questa domanda.
In Python, puoi eseguire un test binomiale utilizzando la funzione binom_test() dalla libreria scipy.stats, che utilizza la seguente sintassi:
binom_test(x, n=Nessuno, p=0,5, alternativa=’due facce’)
Oro:
- x: numero di “successi”
- n: numero totale di prove
- p: la probabilità di successo di ciascuna prova
- alternativa: l’ipotesi alternativa. L’impostazione predefinita è “fronte-retro”, ma è anche possibile specificare “superiore” o “minore”.
Questa funzione restituisce il valore p del test. Possiamo caricare questa funzione utilizzando la seguente sintassi:
from scipy.stats import binom_test
I seguenti esempi illustrano come eseguire test binomiali in Python.
Esempio 1: Un dado a 6 facce viene lanciato 24 volte e si ferma sul numero “3” esattamente 6 volte. Esegui un test binomiale per determinare se il dado è sbilanciato verso il numero “3”.
Le ipotesi nulla e alternativa del nostro test sono le seguenti:
H 0 : π ≤ 1/6 (il dado non è sbilanciato verso il numero “3”)
H A : π > 1/6
*π è il simbolo della proporzione della popolazione.
Inseriamo la seguente formula in Python:
binom_test(x= 6 , n= 24 , p= 1/6 , alternative=' greater ') 0.1995295129479586
Poiché questo valore p (0,1995) non è inferiore a 0,05, non riusciamo a rifiutare l’ipotesi nulla. Non abbiamo prove sufficienti per affermare che il dado sia sbilanciato verso il numero “3”.
Esempio 2: lanciamo una moneta 30 volte e esce testa esattamente 19 volte. Esegui un test binomiale per determinare se la moneta è sbilanciata verso testa.
Le ipotesi nulla e alternativa del nostro test sono le seguenti:
H 0 : π ≤ 1/2 (la moneta non è sbilanciata verso testa)
H A : π > 1/2
Inseriamo la seguente formula in Python:
binom_test(x= 19 , n= 30 , p= 1/2 , alternative=' greater ') 0.10024421103298661
Poiché questo valore p (0,10024) non è inferiore a 0,05, non riusciamo a rifiutare l’ipotesi nulla. Non abbiamo prove sufficienti per affermare che la moneta sia sbilanciata a favore di testa.
Esempio 3: un negozio produce widget con un’efficienza dell’80%. Stanno implementando un nuovo sistema che sperano possa migliorare il tasso di efficienza. Selezionano casualmente 50 widget dalla produzione recente e notano che 47 di essi sono efficaci. Eseguire un test binomiale per determinare se il nuovo sistema porta ad una maggiore efficienza.
Le ipotesi nulla e alternativa del nostro test sono le seguenti:
H 0 : π ≤ 0,80 (il nuovo sistema non porta ad un aumento di efficienza)
H A : π > 0,80
Inseriamo la seguente formula in Python:
binom_test(x= 47 , n= 50 , p= 0.8 , alternative=' greater ') 0.005656361012155314
Essendo questo valore p (0,00565) inferiore a 0,05, rifiutiamo l’ipotesi nulla. Abbiamo prove sufficienti per affermare che il nuovo sistema comporta un aumento dell’efficienza.