Es gibt einen Kreuztabellentest namens χ-Quadrat-Test, und wenn Sie dies tun, besteht eine Beziehung zwischen Kategorien (z. B. Männer mögen Tee, Frauen mögen Tee). (Bevorzugen Sie Wasser usw.) kann statistisch getestet werden. Weitere Informationen zum χ-Quadrat-Test selbst finden Sie unter dem obigen Link. Bei der Durchführung des χ-Quadrat-Tests sind jedoch zwei Punkte zu beachten, selbst wenn der p-Wert unter das Signifikanzniveau fällt.
Müssen berücksichtigt werden. Schließlich wird durch den χ-Quadrat-Test das Vorhandensein oder Nichtvorhandensein einer Verzerrung in der gesamten Kreuztabellen-Tabelle getestet, und selbst wenn die Testergebnisse signifikant sind, bedeutet dies nicht, dass alle Kombinationen von Kategorien miteinander verbunden sind.
Ursprünglich ist dies ein Standard, der vor der Durchführung des χ-Quadrat-Tests bestätigt werden muss. Als Kriterium für die Anwendung des χ-Quadrat-Tests gibt es eine Aussage, dass ** Zellen mit einem erwarteten Wert von weniger als 5 in der Kreuztabellentabelle 20% der Gesamtzahl ** nicht überschreiten dürfen, was der ** Cochrane-Regel ** entspricht. Es gibt verschiedene Theorien im Teil von "20% oder mehr", und verschiedene Notationen wie "25% oder mehr" und "mehr als 20%" können gesehen werden. Verwenden Sie scipy.stat.chi2_contingency für den χ-Quadrat-Test in Python. Ich denke, dass es viele gibt, also überprüfen Sie die Cochrane-Regel anhand der von dieser Funktion zurückgegebenen Erwartungswerttabelle.
#χ-Quadrat-Testkreuz ist ein numpy zweidimensionales Array
x2, p, dof, expected = stats.chi2_contingency(cross)
expected = np.array(expected)
#Cochrane Regeln
expected < 5
Wenn die Anzahl der True-Zellen weniger als 20% der Gesamtzahl beträgt, ist die Cochrane-Regel erfüllt. Wenn Sie feststellen, dass Ihre Daten diese Regel nicht erfüllen, dann [Fisher's Accurate Probability Test](https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83] % 83% E3% 82% B7% E3% 83% A3% E3% 83% BC% E3% 81% AE% E6% AD% A3% E7% A2% BA% E7% A2% BA% E7% 8E% 87 Es wäre besser, zu% E6% A4% 9C% E5% AE% 9A zu wechseln.
Wenn Sie einen χ-Quadrat-Test mit R durchführen, werden die angepassten standardisierten Residuen jeder Zelle gleichzeitig mit dem Test zurückgegeben. Es gibt also kein Problem, aber im Fall von Python müssen Sie dies anscheinend manuell tun.
Die Definition des Residuums ist
Rest = Beobachteter Wert - Erwarteter Wert
Zur Berechnung des angepassten standardisierten Residuums muss jedoch die ** Residuenvarianz ** neu definiert werden.
Restdispersion= (1 - \frac{Horizontale Umfangssumme}{Gesamtzahl})(1 - \frac{Vertikale Umfangssumme}{Gesamtzahl})
Einzelheiten entnehmen Sie bitte der unten stehenden Referenzseite. Auf dieser Grundlage wird auf jeden Fall das angepasste standardisierte Residuum erstellt
Angepasster standardisierter Rest= \frac{Restfehler}{\sqrt{Erwarteter Wert*Restfehler分散}}
Es kann wie folgt berechnet werden. Wenn Sie den Ablauf bis zu diesem Punkt in Python-Code schreiben, sieht es so aus.
#Restfehler
res = cross - expected
#Finden Sie die Restvarianz
res_var = np.zeros(res.shape)
it = np.nditer(cross, flags=['multi_index'])
while not it.finished:
var = (1 - (cross[:,it.multi_index[1]].sum() / cross.sum()))*(1-(cross[it.multi_index[0],:].sum() / cross.sum()))
res_var[it.multi_index[0], it.multi_index[1]] = var
it.iternext()
#Finden Sie den angepassten standardisierten Rest
stdres = res / np.sqrt(expected * res_var)
#Dieser angepasste standardisierte Residuum ist der absolute Wert 1.Ein signifikanter Unterschied kann über 96 behauptet werden. Hier wird der Wert aus der Normalverteilungstabelle in den p-Wert konvertiert und angezeigt.
np.apply_along_axis(stats.norm.sf, 0, np.abs(stdres[0,:]))
Fanden Sie es nützlich?
https://note.chiebukuro.yahoo.co.jp/detail/n71838
Recommended Posts