scipy.stats.
chi2_contingency
(observerad, korrigering=Sant, lambda_=ingen) Portuguese
Chi-kvadratiskt test av variablernas oberoende i en beredskapstabell.
denna funktion beräknar Chi-kvadratstatistiken och p-värdet för hypotesprovet av de observerade frekvensernas oberoende i den observerade tabellen. De förväntade frekvenserna beräknasbaserat på marginalsummorna under antagandet om oberoende; sescipy.stats.contingency.expected_freq
. Antalet grader offreedom är (uttryckt med numpy funktioner och attribut):
dof = observed.size - sum(observed.shape) + observed.ndim - 1
parametrar observeradearray_like
beredskapstabellen. Tabellen innehåller de observerade frekvenserna (dvs. antalet händelser) i varje kategori. I den tvådimensionellafallet beskrivs tabellen ofta som ett”R x C-bord”.
correctionbool, valfritt
om sant, och frihetsgraderna är 1, tillämpa Yates ’ correctionfor kontinuitet. Effekten av korrigeringen är att justera varjeobserverat värde med 0,5 mot motsvarande förväntade värde.
lambda_float eller str, valfritt.
som standard är den statistik som beräknas i detta test Pearson ’ schi-squared statistik . lambda_ tillåter en statistik från theCressie-Read power divergence-familjen att användas istället. Sepower_divergence
för detaljer.
returnerar chi2float
teststatistiken.
pfloat
p-värdet av testet
dofint
frihetsgrader
expectedndarray, samma form som observerats
de förväntade frekvenserna, baserat på marginalsummorna i tabellen.
anmärkningar
en ofta citerad riktlinje för giltigheten av denna beräkning är dettestet bör endast användas om de observerade och förväntade frekvenserna i varje cell är minst 5.
detta är ett test för oberoende av olika kategorier av apopulering. Testet är endast meningsfullt när dimensionen avobserverad är två eller flera. Att tillämpa testet på en endimensionellbord kommer alltid att resultera i förväntat lika med observerad och achi-kvadratisk statistik lika med 0.
den här funktionen hanterar inte maskerade matriser, eftersom beräkningenger ingen mening med saknade värden.
gilla statistik.chisquare, denna funktion beräknar en chi-kvadratstatistik; bekvämligheten som denna funktion ger är att räkna ut de förväntade frekvenserna och frihetsgraderna från den givna beredskapstabellen.Om dessa redan var kända, och om Yates korrigering inte varkrävs, man kunde använda statistik.chisquare. Det vill säga om man ringer:
chi2, p, dof, ex = chi2_contingency(obs, correction=False)
då är följande sant:
(chi2, p) == stats.chisquare(obs.ravel(), f_exp=ex.ravel(), ddof=obs.size - 1 - dof)
lambda_-argumentet lades till i version 0.13.0 av scipy.
1
”Beredskapstabell”,https://en.wikipedia.org/wiki/Contingency_table
2
”Pearsons chi-squared test”,https://en.wikipedia.org/wiki/Pearson%27s_chi-squared_test
3
Cressie, N. och läs, T. R. C.,” Multinomial godhet-of-FitTests”, J. Royal Stat. Soc. Serie B, Vol. 46, nr 3 (1984), s.440-464.
exempel
ett tvåvägsexempel (2 x 3):
>>> from scipy.stats import chi2_contingency>>> obs = np.array(, ])>>> chi2_contingency(obs)(2.7777777777777777, 0.24935220877729619, 2, array(, ]))
utför testet med log-sannolikhetsförhållandet (dvs. ”G-testet”)istället för Pearsons chi-squared-statistik.
>>> g, p, dof, expctd = chi2_contingency(obs, lambda_="log-likelihood")>>> g, p(2.7688587616781319, 0.25046668010954165)
ett fyrvägsexempel (2 x 2 x 2 x 2):