scipy.Statistica.chi2_contingency¶

scipy.stats.chi2_contingency(observed, correction=True, lambda_=None)¶

Test Chi-quadrato di indipendenza delle variabili in una tabella di contingenza.

Questa funzione calcola la statistica del chi-quadrato e il valore p per il test di ipotesi dell’indipendenza delle frequenze osservate nella tabella delle frequenze osservate. Le frequenze previste sono calcolate in base alle somme marginali nell’ipotesi di indipendenza; vedere scipy.stats.contingency.expected_freq. Il numero di gradi di libertà è (espresso usando funzioni e attributi numpy):

dof = observed.size - sum(observed.shape) + observed.ndim - 1

Parametri observedarray_like

La tabella di contingenza. La tabella contiene le frequenze osservate (cioè il numero di occorrenze) in ciascuna categoria. Nel bidimensionale, la tabella è spesso descritta come una “tabella R x C”.

correctionbool, opzionale

Se True, e i gradi di libertà sono 1, applica la correzione di Yates per la continuità. L’effetto della correzione è quello di regolare ciascunovalore osservato di 0,5 verso il corrispondente valore atteso.

lambda_float o str, opzionale.

Per impostazione predefinita, la statistica calcolata in questo test è la statistica al quadrato di Pearson. lambda_ consente invece di utilizzare una statistica della famiglia di divergenza di potenza in lettura. Vederepower_divergence per i dettagli.

Restituisce chi2float

La statistica del test.

pfloat

Il valore p del test

dofint

Gradi di libertà

expectedndarray, stessa forma osservata

Le frequenze previste, in base alle somme marginali della tabella.

Note

Una linea guida spesso citata per la validità di questo calcolo è che il test dovrebbe essere utilizzato solo se le frequenze osservate e attese in ogni cella sono almeno 5.

Questo è un test per l’indipendenza di diverse categorie di apopolazione. Il test è significativo solo quando la dimensione ofobserved è due o più. L’applicazione del test a una tabella unidimensionale comporterà sempre una statistica attesa uguale a quella osservata e achi-quadrata uguale a 0.

Questa funzione non gestisce gli array mascherati, perché il calculationdoes non ha senso con valori mancanti.

Come statistiche.chisquare, questa funzione calcola una statistica chi-quadrato; la convenienza questa funzione fornisce è quello di capire le expectedfrequencies e gradi di libertà dalla tabella di contingenza data.Se questi fossero già noti, e se la correzione di Yates non fosse richiesta, si potrebbero usare le statistiche.chisquare. Cioè, se si chiama:

chi2, p, dof, ex = chi2_contingency(obs, correction=False)

allora è vero quanto segue:

(chi2, p) == stats.chisquare(obs.ravel(), f_exp=ex.ravel(), ddof=obs.size - 1 - dof)

L’argomento lambda_ è stato aggiunto nella versione 0.13.0 di scipione.

1

“Contingency table”,https://en.wikipedia.org/wiki/Contingency_table

2

“Pearson’s chi-squared test”,https://en.wikipedia.org/wiki/Pearson%27s_chi-squared_test

3

Cressie, N. and Read, T. R. C., “Multinomial Goodness-of-FitTests”, J. Royal Stat. Soc. Serie B, Vol. 46, No. 3 (1984), pp. 440-464.

Esempi

Un esempio bidirezionale (2 x 3):

>>> from scipy.stats import chi2_contingency>>> obs = np.array(, ])>>> chi2_contingency(obs)(2.7777777777777777, 0.24935220877729619, 2, array(, ]))

Eseguire il test utilizzando il rapporto di log-verosimiglianza (cioè il “G-test”)invece della statistica del chi quadrato di Pearson.

>>> g, p, dof, expctd = chi2_contingency(obs, lambda_="log-likelihood")>>> g, p(2.7688587616781319, 0.25046668010954165)

Un esempio a quattro vie (2 x 2 x 2 x 2):

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.