Bestimmung der Beziehung zwischen Zeichen: Chi-Quadrat-Test

In diesem Artikel werden wir über das Studium der Beziehung zwischen Zeichen sprechen, oder wie Sie mehr mögen - Zufallsvariablen, Variablen. Insbesondere werden wir analysieren, wie ein Maß für die Abhängigkeit zwischen Merkmalen unter Verwendung des Chi-Quadrat-Kriteriums eingeführt und mit dem Korrelationskoeffizienten verglichen werden kann.

Warum könnte das nötig sein? Zum Beispiel, um zu verstehen, welche Anzeichen beim Aufbau eines Kredit-Scorings stärker von der Zielvariablen abhängen - um die Ausfallwahrscheinlichkeit des Kunden zu bestimmen. Oder, wie in meinem Fall, um zu verstehen, welche Indikatoren Sie zum Programmieren eines Handelsroboters verwenden müssen.

Unabhängig davon stelle ich fest, dass ich die C # -Sprache für die Datenanalyse verwende. Vielleicht ist dies alles bereits in R oder Python implementiert, aber mit c # kann ich das Thema detailliert verstehen, außerdem ist dies meine Lieblingsprogrammiersprache.

Wir beginnen mit einem sehr einfachen Beispiel wird vier Spalten in Excel unter Verwendung des Zufallszahlengenerator erstellen:
X = RANDBETWEEN (-100; 100)
Y = X * 10 + 20
Z = X * X
T = RANDBETWEEN (-100; 100)

Bild

Wie man sehen kann, die Variable Y ist linear von X abhängig ; die Variable Z ist quadratisch abhängig von X ; Variablen X und Tsind unabhängig. Ich habe diese Wahl absichtlich getroffen, weil wir unser Maß für die Abhängigkeit mit dem Korrelationskoeffizienten vergleichen werden . Wie Sie wissen, ist es zwischen zwei Zufallsvariablen gleich Modulo 1, wenn zwischen ihnen die "schwerste" Art der Abhängigkeit linear ist. Es gibt keine Korrelation zwischen zwei unabhängigen Zufallsvariablen, aber die Unabhängigkeit folgt nicht aus der Gleichheit des Korrelationskoeffizienten mit Null . Als nächstes werden wir ein Beispiel von Variablen sehen X und Z .

Wir speichern die Datei als data.csv und starten den ersten Freak. Zunächst berechnen wir den Korrelationskoeffizienten zwischen den Größen. Ich habe den Code nicht in den Artikel eingefügt , er befindet sich auf meinem Github . Wir erhalten die Korrelation für alle Arten von Paaren:

Bild

Es ist ersichtlich, dass linear abhängig X und Y Korrelationskoeffizient gleich 1 ist , aber in dem X und Z sie gleich 0,01 sind, obwohl die Beziehung wir ein klares haben Z = X * X . Natürlich brauchen wir eine Maßnahme, die die Sucht besser „fühlt“. Aber bevor wir zum Chi-Quadrat-Kriterium übergehen, schauen wir uns an, was die Konjugationsmatrix ist.

Um die Konjugationsmatrix zu erstellen, unterteilen wir den Bereich der Variablenwerte in Intervalle (oder kategorisieren). Es gibt viele Möglichkeiten für eine solche Unterteilung, während es keine universelle gibt. Einige von ihnen sind in Intervalle unterteilt, so dass sie die gleiche Anzahl von Variablen erhalten, während andere in Intervalle gleicher Länge unterteilt sind. Ich persönlich verbinde diese Ansätze spirituell. Ich habe mich für diese Methode entschieden: Von der Variablen subtrahiere ich die Punktzahl der Matte. Erwartungen, dann die resultierende Dividende durch die Standardabweichung Schätzung. Mit anderen Worten, ich zentriere und normalisiere eine Zufallsvariable. Der resultierende Wert wird mit einem Koeffizienten multipliziert (in diesem Beispiel ist es 1), wonach alles auf die nächste ganze Zahl gerundet wird. Die Ausgabe ist eine Variable vom Typ int, bei der es sich um den Bezeichner der Klasse handelt.

Nehmen wir also unsere Zeichen Xund Z kategorisieren wir in der oben beschriebenen Weise, wonach wir die Anzahl und Wahrscheinlichkeit des Auftretens jeder Klasse und die Wahrscheinlichkeit des Auftretens von Zeichenpaaren

Bild

berechnen : Dies ist eine Matrix nach Größe. Hier in den Zeilen ist die Anzahl der Vorkommen von Klassen der Variablen X , in den Spalten ist die Anzahl der Vorkommen von Klassen der Variablen Z , in den Zellen ist die Anzahl der Vorkommen von Klassenpaaren gleichzeitig. Zum Beispiel trat die Klasse 0 865-mal für die Variable X , 823-mal für die Variable Z auf und hatte nie ein Paar (0,0). Wir wenden uns den Wahrscheinlichkeiten zu und teilen alle Werte durch 3000 (Gesamtzahl der Beobachtungen):

Bild

Erhielt eine Konjugationsmatrix, die nach Kategorisierung der Zeichen erhalten wurde. Nun ist es Zeit, über das Kriterium nachzudenken. Per Definition sind unabhängige Zufallsvariablen, wenn unabhängige sigma Algebra durch diese Zufallsvariablen erzeugt. Die Unabhängigkeit von Sigma-Algebren impliziert die paarweise Unabhängigkeit von Ereignissen von ihnen. Zwei Ereignisse werden als unabhängig bezeichnet, wenn die Wahrscheinlichkeit ihres gemeinsamen Auftretens dem Produkt der Wahrscheinlichkeiten dieser Ereignisse entspricht: Pij = Pi * Pj . Diese Formel verwenden wir, um das Kriterium zu konstruieren.

Nullhypothese : Kategorisierte Merkmale X und Zsind unabhängig. Gleichbedeutend damit: Die Verteilung der Konjugationsmatrix wird ausschließlich durch die Wahrscheinlichkeiten des Auftretens von Klassen von Variablen (Zeilen- und Spaltenwahrscheinlichkeiten) bestimmt. Oder so: Die Matrixzellen sind das Produkt der entsprechenden Wahrscheinlichkeiten der Zeilen und Spalten. Wir werden diese Formulierung der Nullhypothese verwenden, um die Entscheidungsregel zu konstruieren: Eine signifikante Diskrepanz zwischen Pij und Pi * Pj wird die Grundlage für die Ablehnung der Nullhypothese sein.

Lassen Sie Bild- die Wahrscheinlichkeit der Klasse 0 in einer Variablen X . Insgesamt haben wir n Klassen in X und m Klassen in der Z . Es stellt sich heraus, dass wir diese n kennen müssen, um die Verteilung der Matrix einzustellenund m Wahrscheinlichkeiten. Aber wenn wir die n-1- Wahrscheinlichkeit für X kennen , dann wird letztere gefunden, indem von 1 die Summe der anderen subtrahiert wird. Um die Verteilung der Konjugationsmatrix zu finden, müssen wir also l = (n-1) + (m-1) Werte kennen. Oder wir haben einen l - dimensionalen Parameterraum, der Vektor von denen gegeben wird uns unsere gewünschte Verteilung. Die Chi-Quadrat-Statistik hat die folgende Form:
Bild
und nach dem Fisher-Theorem eine Chi-Quadrat-Verteilung mit n * ml-1 = (n-1) (m-1) Freiheitsgraden.

Wir setzen ein Signifikanzniveau von 0,95 (oder die Wahrscheinlichkeit eines Fehlers der ersten Art beträgt 0,05). Bestimmen Sie das Quantil der Chi-Quadrat-Verteilung für ein bestimmtes Signifikanzniveau und Freiheitsgrade aus dem Beispiel (n-1) (m-1) = 4 * 3 = 12 : 21.02606982. Die Chi-Quadrat-Statistik selbst für die Variablen X und Z ist 4088.006631. Es ist ersichtlich, dass die Unabhängigkeitshypothese nicht akzeptiert wird. Es ist zweckmäßig, das Verhältnis der Chi-Quadrat-Statistik zum Schwellenwert zu berücksichtigen - in diesem Fall ist es Chi2Coeff = 194.4256186 . Wenn dieses Verhältnis kleiner als 1 ist, wird die Unabhängigkeitshypothese akzeptiert, wenn mehr, dann nein. Finden Sie diese Beziehung für alle Merkmalspaare:

Bild

Hier sind Faktor1 und Faktor2 die Namen der Attribute
src_cnt1 undsrc_cnt2 - die Anzahl der eindeutigen Werte der ursprünglichen Merkmale
mod_cnt1 und mod_cnt2 - die Anzahl der eindeutigen Werte der Merkmale nach der Kategorisierung
chi2 - Chi-Quadrat-
Statistik chi2max - Schwelle Chi-Quadrat-Statistik für das Signifikanzniveau 0,95
chi2Coeff - Verhältnis von Chi-Quadrat-Statistik zu Schwelle
corr - Korrelationskoeffizient

Sichtbar dass unabhängig (chi2coeff <1) die folgenden Vorzeichenpaare erhalten werden - ( X, T ), ( Y, T ) und ( Z, T ), was logisch ist, da die Variable T zufällig erzeugt wird. Variablen X und Zabhängig, aber weniger als linear abhängig X und Y , was auch logisch ist.

Ich habe den Code des Dienstprogramms, das diese Indikatoren berechnet, auf github gepostet, und zwar an der gleichen Stelle wie die Datei data.csv. Das Dienstprogramm empfängt eine CSV-Datei als Eingabe und berechnet die Abhängigkeiten zwischen allen Spaltenpaaren: PtProject.Dependency.exe data.csv

Referenzen:
1. Testen der Unabhängigkeitshypothese: Pearson-Chi-Quadrat-Test
2. Pearson-Chi-Quadrat- Kriterium zum Testen der parametrischen Hypothese
3. Implementierung Kriterien in c #

Jetzt auch beliebt: