Erstens gibt es bei der Korrespondenzanalyse verschiedene Möglichkeiten, sogenannte Biplots zu erstellen . In allen Fällen besteht die Grundidee darin, einen Weg zu finden, um die beste 2D-Annäherung der "Abstände" zwischen Zeilen- und Spaltenzellen zu zeigen. Mit anderen Worten, wir suchen eine Hierarchie (wir sprechen auch von "Ordination") der Beziehungen zwischen Zeilen und Spalten einer Kontingenztabelle.
In Kürze zerlegt CA die Chi-Quadrat-Statistik, die der Zwei-Wege-Tabelle zugeordnet ist, in orthogonale Faktoren, die die Trennung zwischen Zeilen- und Spaltenbewertungen (dh die aus der Profiltabelle berechneten Häufigkeiten) maximieren. Hier sehen Sie, dass es eine gewisse Verbindung mit PCA gibt, aber das Maß für die Varianz (oder die Metrik), das in CA beibehalten wird, ist , das nur von Spaltenprofilen abhängt (da Modalitäten mit großen Werten tendenziell wichtiger werden) Grenzwerte, wir können auch die anfänglichen Daten neu gewichten, aber dies ist eine andere Geschichte).χ2
Hier ist eine detailliertere Antwort. Die Implementierung, die in der corresp()
Funktion (in MASS
) vorgeschlagen wird, folgt aus der Sicht von CA als SVD-Zerlegung von Dummy-codierten Matrizen, die die Zeilen und Spalten darstellen (so dass , wobei die Gesamtstichprobe ist). Dies steht im Licht der kanonischen Korrelationsanalyse. Im Gegensatz dazu betrachtet die französische Schule für Datenanalyse CA als eine Variante des PCA, bei der Sie nach den Richtungen suchen, die die "Trägheit" in der Datenwolke maximieren. Dies erfolgt durch Diagonalisieren der Trägheitsmatrix, die aus der zentrierten und skalierten Zweiwegetabelle (mit Randfrequenzen) berechnet wurde, und durch Ausdrücken von Zeilen- und Spaltenprofilen in diesem neuen Koordinatensystem.NRtC= NN
Wenn Sie eine Tabelle mit Zeilen und Spalten betrachten, wird jede Zeile mit ihrer entsprechenden Grenzsumme gewichtet, die eine Reihe von bedingten Häufigkeiten ergibt, die jeder Zeile zugeordnet sind: . Die Randspalte wird als Mittelwertprofil (für Zeilen) bezeichnet. Dadurch erhalten wir einen Koordinatenvektor, der auch als Profil (zeilenweise) bezeichnet wird. Für die Spalte gilt . In beiden Fällen betrachten wir die Zeilenprofile (die ihrem Gewicht ) als Individuen im Spaltenraum und die Spaltenprofile (die ihrem Gewicht zugeordnet sind)j = 1 , ... , J f j | i = n i j / n i ⋅ f i | j = n i j / n ⋅ j I f i ⋅ J f ⋅ j χ 2 i i 'i = 1 , ... , ichj = 1 , ... , Jfj | ich= nich j/ nich ⋅fich | j= nich j/ n⋅ jichfich ⋅Jf⋅ j ) als Individuen im Zeilenraum. Die Metrik, die zur Berechnung der Nähe zwischen zwei Personen verwendet wird, ist die Entfernung. Zum Beispiel haben wir zwischen zwei Zeilen undχ2ichich′
d2χ2( ich , ich′) = ∑j = 1Jnn⋅ j( nich jnich ⋅- nich′jnich′⋅)2
Sie können den Zusammenhang mit der Statistik auch erkennen, indem Sie feststellen, dass es sich lediglich um die Entfernung zwischen beobachteten und erwarteten Zählungen handelt, bei der die erwarteten Zählungen (unter Unabhängigkeit der beiden Variablen) als berechnet werden. für jede Zelle . Wenn die beiden Variablen unabhängig wären, wären die Zeilenprofile alle gleich und mit dem entsprechenden Randprofil identisch. Mit anderen Worten, wenn Unabhängigkeit besteht, wird Ihre Kontingenztabelle vollständig durch ihre Ränder bestimmt.χ2H0nich ⋅× n⋅ j/ n( i , j )
Wenn Sie eine PCA für die Zeilenprofile realisieren (als Einzelpersonen betrachtet), ersetzen Sie den euklidischen Abstand durchχ2Entfernung, dann erhalten Sie Ihre CA. Die erste Hauptachse ist die Linie, die allen Punkten am nächsten ist, und der entsprechende Eigenwert ist die Trägheit, die durch diese Dimension erklärt wird. Dasselbe können Sie mit den Spaltenprofilen tun. Es kann gezeigt werden, dass es eine Symmetrie zwischen den beiden Ansätzen gibt, und insbesondere, dass die Hauptkomponenten (PC) für die Spaltenprofile denselben Eigenwerten zugeordnet sind wie die PCs für die Zeilenprofile. In einem Biplot werden die Koordinaten der Individuen in diesem neuen Koordinatensystem angezeigt, obwohl die Individuen in einem separaten Fakultätsraum dargestellt werden. Vorausgesetzt, jedes Individuum / jede Modalität ist in ihrem Fakultätsraum gut vertreten (siehecos2der Modalität mit der 1. Hauptachse, die ein Maß für die Korrelation / Assoziation ist, können Sie sogar die Nähe zwischen den Elementen und Ihrer Kontingenztabelle interpretieren (wie dies durch Betrachten der Residuen Ihres geschehen kann Test der Unabhängigkeit, zB ).ichjχ2chisq.test(tab)$expected-chisq.test(tab)$observed
Die Gesamtträgheit Ihrer CA (= die Summe der Eigenwerte) ist die Statistik geteilt durch (das ist Pearsons ).χ2nϕ2
Tatsächlich gibt es mehrere Pakete , die Sie mit einem verbesserten CAs im Vergleich zu der Funktion , die bei dem bereitstellen MASS
Paket: ade4 , FactoMineR , Anacor und ca .
Die neueste Version wurde für Ihre Abbildung verwendet, und im Journal of Statistical Software wurde ein Artikel veröffentlicht, in dem die meisten Funktionen erläutert werden: Korrespondenzanalyse in R mit zwei- und dreidimensionalen Grafiken: Das ca-Paket .
So kann Ihr Beispiel für Augen- / Haarfarben auf viele Arten reproduziert werden:
data(HairEyeColor)
tab <- apply(HairEyeColor, c(1, 2), sum) # aggregate on gender
tab
library(MASS)
plot(corresp(tab, nf=2))
corresp(tab, nf=2)
library(ca)
plot(ca(tab))
summary(ca(tab, nd=2))
library(FactoMineR)
CA(tab)
CA(tab, graph=FALSE)$eig # == summary(ca(tab))$scree[,"values"]
CA(tab, graph=FALSE)$row$contrib
library(ade4)
scatter(dudi.coa(tab, scannf=FALSE, nf=2))
In allen Fällen ist das, was wir im resultierenden Biplot lesen, im Grunde genommen (ich beschränke meine Interpretation auf die 1. Achse, die den größten Teil der Trägheit erklärt):
- die erste Achse hebt den klaren Gegensatz zwischen heller und dunkler Haarfarbe und zwischen blauen und braunen Augen hervor;
- Menschen mit blonden Haaren neigen auch dazu, blaue Augen zu haben, und Menschen mit schwarzen Haaren neigen dazu, braune Augen zu haben.
Es gibt viele zusätzliche Ressourcen zur Datenanalyse im Bioinformatiklabor in Lyon, Frankreich. Dies ist hauptsächlich auf Französisch, aber ich denke, es wäre kein allzu großes Problem für Sie. Die folgenden beiden Handouts sollten als erster Start interessant sein:
Wenn Sie eine vollständige disjonktive (Dummy-) Codierung von Variablen in Betracht ziehen , erhalten Sie schließlich die Mehrfachkorrespondenzanalyse .k