Hauptkomponenten und Faktorenanalyse für Marketer

Die meisten Umfrageberichte und die meisten Kundendatenbanken haben dieselbe Krankheit: viel zu viele Spalten, die alle ungefähr dasselbe sagen. Vierundzwanzig Zufriedenheitsbewertungen, die sich gemeinsam bewegen, achtzehn Verhaltensvariablen, bei denen Bestellzahl und Umsatz praktisch eine Zahl sind. Hauptkomponentenanalyse und Faktorenanalyse sind die zwei Methoden, um das auf eine Handvoll Dimensionen einzukochen, die du tatsächlich benennen und in Entscheidungen übersetzen kannst. Die beiden werden ständig verwechselt und beantworten verschiedene Fragen: PCA ist Geometrie, die die Daten entlang ihrer breitesten Richtungen umschreibt, Faktorenanalyse ist ein Modell, das annimmt, dass verborgene Konstrukte das Beobachtete verursachen. In diesem Kapitel erkläre ich beide in einfachen Worten, dann die Mathematik, dann zwei Beispiele: die Gästebefragung einer kleinen Hotelgruppe, von 24 Fragen auf vier Faktoren reduziert und gegen die Weiterempfehlung gereiht, und die 18 Verhaltensvariablen meines Geschenkkorbshops, verdichtet auf drei Komponenten, die die Segmentierung zwei Kapitel später speisen. Du siehst Eigenwerte, Ladungen, Scree Plots und Rotation, und die ehrlichen Prüfungen, die entscheiden, ob eine Faktorlösung Vertrauen verdient. Das ist Teil 12 von 21 der Serie Marketing Analytics.

Vierundzwanzig Spalten mit Durchschnittswerten und keine Antwort

Jeden Herbst schicken die Seeblick Hotels, eine kleine Gruppe mit fünf Häusern an den Seen des Salzkammerguts, ihren Gästen eine Umfrage. Vierundzwanzig Fragen, jede auf einer Skala von 1 bis 10: wie herzlich der Empfang war, wie schnell das Personal Probleme gelöst hat, ob das Zimmer sauber war, wie das Frühstück geschmeckt hat, ob der Preis fair wirkte. Letzte Saison haben 1.340 Gäste geantwortet. Anna, die die Gruppe mit ihrem Bruder führt, hat mir die Tabelle mit einer einzeiligen Mail geschickt: "Alles liegt zwischen 7,6 und 8,7. Was reparieren wir zuerst, und bringt das mehr Direktbuchungen?"

Das ist das ehrliche Problem mit Umfragedaten und mit den meisten Kundendatenbanken. Du hast nicht 24 Informationen. Du hast vielleicht vier Dinge, jedes sechsmal mit leicht anderer Formulierung gemessen, plus Rauschen. Ein Gast, der dem Empfang eine 9 gibt, gibt auch "Personal hat Probleme schnell gelöst" eine 9, weil beide Fragen dasselbe abfragen: wie die Menschen ihn behandelt haben. Solange du diese zugrunde liegenden Dinge nicht findest, ist jedes Diagramm mit 24 Balken dasselbe Diagramm mit vier Balken, sechsmal übereinander gezeichnet, und die Frage, was zu reparieren ist, bleibt Geschmackssache.

Hauptkomponentenanalyse und Faktorenanalyse sind die zwei Werkzeuge für genau diese Aufgabe. Beide nehmen Dutzende korrelierte Variablen und kochen sie auf eine Handvoll Dimensionen ein, die du benennen, bewerten und in Entscheidungen übersetzen kannst. Die beiden sehen sich ähnlich, werden ständig verwechselt und beantworten verschiedene Fragen. Dieses Kapitel behandelt beide, mit Annas Umfrage und, als zweitem Beispiel, den Verhaltensdaten meines Geschenkkorbshops, die den Boden für Kapitel 14 bereiten. Die Zahlen im gesamten Text sind illustrativ.

Wo dieses Kapitel in der Serie steht

Das ist Kapitel 12 von 21 und das zweite Kapitel von Teil drei, den Interdependenztechniken (Kapitel 11 bis 14). Das vorige Kapitel, Simultane Gleichungen: wenn Marketing Umsatz treibt und Umsatz Marketing, hat Teil zwei abgeschlossen und gezeigt, was passiert, wenn zwei Variablen einander verursachen. Ab hier gibt es kein Y mehr. Wir fragen nicht länger, was den Umsatz erklärt, sondern wie Variablen zusammenhängen. Das nächste Kapitel, Segmentierung: Strategie vor Algorithmen, fragt, wozu ein Segment überhaupt da ist, bevor irgendjemand eine Clusterbibliothek öffnet, und Kapitel 14 verwendet dann die hier gebauten Komponenten als Rohmaterial.

Zwei Verfahren, die gleich aussehen und es nicht sind

Beide Verfahren beginnen beim selben Objekt, der Korrelationsmatrix deiner Variablen, einer quadratischen Tabelle, die sagt, wie stark sich jedes Paar gemeinsam bewegt, und beide enden mit ein paar neuen Spalten, die die vielen alten ersetzen. Die Philosophien dahinter sind verschieden, und der Unterschied zählt, wenn du das Ergebnis interpretierst.

Die Hauptkomponentenanalyse (PCA) ist Geometrie: Man nimmt die Punktwolke deiner Daten in pp Dimensionen und sucht die Richtung, in der die Wolke am breitesten ist. Das ist die erste Komponente. Dann kommt die breiteste Richtung im rechten Winkel zur ersten, die zweite Komponente, und so weiter, bis sie pp neue Achsen hat, die dieselbe Wolke beschreiben, nur gedreht. Über die Frage, warum die Variablen korrelieren, wird nichts angenommen. Es gibt keinen Fehlerterm. PCA ist eine verlustfreie Umschreibung der Daten, bei der die interessante Varianz nach vorne geschoben wird, damit du den Rest hinten abschneiden kannst.

Die Faktorenanalyse (FA) ist ein Modell, das annimmt, dass eine kleine Zahl unbeobachteter Konstrukte, die latenten Faktoren, die beobachteten Antworten verursacht. Ein Gast hat eine echte, aber unsichtbare Meinung über den Service, und diese Meinung, plus etwas fragenspezifisches Rauschen, erzeugt seine Bewertung des Empfangs, der Schnelligkeit des Personals, dessen Kenntnis der Region. Die Faktorenanalyse teilt die Varianz jeder Variable in einen gemeinsamen Teil, den die Faktoren erklären, und einen einzigartigen Teil, der nur dieser Frage gehört. PCA behält die gesamte Varianz; FA will nur den gemeinsamen Teil.

Die praktische Folge: Wenn du glaubst, dass deine Fragen Konstrukte messen, wie in einer Umfrage, ist die Faktorenanalyse das ehrliche Werkzeug. Wenn du nur korrelierte Verhaltensvariablen zu Eingaben für eine Clusteranalyse oder eine Regression verdichten willst, ist PCA schneller, stabiler und braucht weniger Annahmen. Auf vielen Datensätzen liefern beide ähnliche Ladungen, deshalb werden sie verwechselt, aber sie laufen auseinander, wenn die einzigartigen Varianzen gross sind, und das Wort, das du danach verwendest, Komponente oder Faktor, sollte verraten, was du gerechnet hast.

Die Mathematik der Hauptkomponenten

Standardisiere jede Variable auf Mittelwert null und Standardabweichung eins, damit eine Umsatzspalte in Euro nicht eine Klickrate zwischen 0 und 1 erdrückt. Die Korrelationsmatrix RR der pp standardisierten Variablen wird dann zerlegt als

R=VΛV⊤,Λ=diag(λ1,λ2,…,λp),λ1≥λ2≥⋯≥λp≥0R = V \Lambda V^{\top}, \qquad \Lambda = \mathrm{diag}(\lambda_1, \lambda_2, \dots, \lambda_p), \qquad \lambda_1 \ge \lambda_2 \ge \dots \ge \lambda_p \ge 0

Hier ist RR die pp mal pp Korrelationsmatrix, VV eine pp mal pp Matrix, deren Spalten die Eigenvektoren sind (jede Spalte enthält die Gewichte, die eine Komponente definieren), V⊤V^{\top} ihre Transponierte, und Λ\Lambda eine Diagonalmatrix der Eigenwerte, vom grössten zum kleinsten sortiert. Jeder Eigenwert ist die Varianz einer Komponente. Der Wert eines Gastes auf der kkten Komponente ist eine gewichtete Summe seiner standardisierten Werte:

zk=vk⊤x=v1k x1+v2k x2+⋯+vpk xpz_k = v_k^{\top} x = v_{1k}\, x_1 + v_{2k}\, x_2 + \dots + v_{pk}\, x_p

wobei xx sein Vektor der pp standardisierten Variablen ist und vjkv_{jk} das Gewicht der Variable jj in Komponente kk. Weil die Spur einer Korrelationsmatrix gleich pp ist (jede Variable steuert genau eine Varianz von eins bei), summieren sich die Eigenwerte zu pp, und der Anteil der Gesamtvarianz, den Komponente kk trägt, ist einfach

Anteilk=λk∑j=1pλj=λkp\text{Anteil}_k = \frac{\lambda_k}{\sum_{j=1}^{p} \lambda_j} = \frac{\lambda_k}{p}

Daraus folgen die zwei klassischen Regeln für die Anzahl der Komponenten, die du behältst. Das Kaiser Kriterium behält jede Komponente mit einem Eigenwert über eins, mit dem Argument, dass eine Komponente, die weniger wert ist als eine einzelne Originalvariable, nichts verdichtet. Der Scree Plot zeichnet die Eigenwerte der Reihe nach und sucht den Knick, an dem die Kurve in Geröll übergeht. Ich verwende beides und lasse dann eine Parallelanalyse laufen, die Zufallsdaten derselben Grösse zerlegt und nur Komponenten behält, deren Eigenwerte das schlagen, was der Zufall allein erzeugt. Wenn die drei übereinstimmen, traue ich der Zahl. Wenn nicht, nehme ich die kleinere Zahl und sage das dazu.

Das Faktormodell

Die Faktorenanalyse schreibt jede beobachtete Variable als gewichtete Summe weniger latenter Faktoren plus ihren eigenen einzigartigen Teil:

xi=λi1f1+λi2f2+⋯+λimfm+ei,oder in Matrixformx=Λf+ex_i = \lambda_{i1} f_1 + \lambda_{i2} f_2 + \dots + \lambda_{im} f_m + e_i, \qquad \text{oder in Matrixform} \qquad \mathbf{x} = \Lambda \mathbf{f} + \mathbf{e}

Hier ist xix_i der standardisierte Wert auf Frage ii, f1f_1 bis fmf_m sind die mm latenten Faktoren (deutlich weniger als die pp Fragen), λik\lambda_{ik} ist die Ladung der Frage ii auf Faktor kk, und eie_i ist der einzigartige Teil der Frage ii, das Stück, das kein Faktor erklärt. In Matrixform enthält x\mathbf{x} alle pp Fragen, Λ\Lambda ist die pp mal mm Ladungsmatrix und e\mathbf{e} sammelt die Einzelrestvarianzen. Wenn die Faktoren unkorreliert sind und Varianz eins haben, impliziert das Modell

R=ΛΛ⊤+Ψ,hi2=∑k=1mλik2,ψi=1−hi2R = \Lambda \Lambda^{\top} + \Psi, \qquad h_i^2 = \sum_{k=1}^{m} \lambda_{ik}^2, \qquad \psi_i = 1 - h_i^2

wobei Ψ\Psi eine Diagonalmatrix der einzigartigen Varianzen ψi\psi_i ist und hi2h_i^2 die Kommunalität der Frage ii, also der Anteil ihrer Varianz, den die Faktoren erklären. Eine Frage mit Kommunalität 0,70 ist gut abgebildet; eine mit 0,25 ist überwiegend Rauschen oder misst etwas, das die Faktoren nicht abdecken, und gehört hinterfragt oder gestrichen. Geschätzt wird per Maximum Likelihood oder Hauptachsenmethode; beide iterieren, bis implizierte und beobachtete Korrelationen so gut wie möglich übereinstimmen.

Eine Sache an der Faktorenanalyse überrascht beim ersten Mal: Die Lösung ist nicht eindeutig. Jede Drehung der Faktorachsen passt genau gleich gut auf die Daten. Das ist kein Fehler, das ist eine Freiheit, und du nutzt sie, um die Drehung zu wählen, die am leichtesten zu lesen ist. Varimax hält die Faktoren im rechten Winkel und drückt jede Frage dahin, stark auf einen Faktor und schwach auf die übrigen zu laden. Oblimin erlaubt korrelierte Faktoren, was für Umfragen realistischer ist, weil ein Gast, der sich gut bedient fühlt, meist auch den Preis fairer findet. Ich beginne mit Varimax, weil die Tabelle sauberer ist, und prüfe dann mit Oblimin, ob sich die Geschichte ändert. Bei orthogonalen Faktoren ist eine Ladung einfach die Korrelation zwischen Frage und Faktor: 0,81 heisst "sehr stark dieser Faktor", 0,12 heisst "kaum".

Seeblick Hotels: 24 Fragen, vier Faktoren

Annas 1.340 Antworten, 24 Fragen, 24 Eigenwerte, die sich zu 24 summieren. Die ersten zwölf:

Eigenwerte der Reihe nach; der Knick nach dem vierten Balken und der Sturz unter 1,0 beim fünften zeigen beide auf vier Faktoren.

Die erste Komponente allein trägt 7,9 von 24, also 32,9 Prozent der gesamten Varianz, das ist die Tendenz "alles ist gut oder alles ist schlecht", die du in fast jeder Zufriedenheitsumfrage findest. Die zweite trägt 15,0 Prozent, die dritte 10,0, die vierte 7,1. Zusammen erklären die vier 65,0 Prozent. Der fünfte Eigenwert fällt auf 0,9, unter die Kaiser Linie, der Scree wird flach, und die Parallelanalyse auf Zufallsdaten derselben Form liefert einen vierten Eigenwert von etwa 1,25 und einen fünften von etwa 1,19, sodass der vierte echte Faktor den Zufall schlägt und der fünfte nicht. Vier sind es.

Dann die Maximum Likelihood Schätzung mit Varimax Rotation. Zwölf der 24 Fragen mit ihren rotierten Ladungen (die anderen zwölf folgen demselben Muster):

UmfragefrageServiceZimmerKüchePreiswert
Empfang war herzlich und einladend0,810,120,090,15
Personal hat Probleme schnell gelöst0,780,140,110,10
Personal kannte die Region gut0,720,080,130,06
Zimmer war bei Ankunft sauber0,110,840,070,09
Bett und Schlafqualität0,090,790,050,12
Zustand des Badezimmers0,150,760,080,11
Qualität des Frühstücks0,120,100,830,14
Qualität des Abendessens0,100,070,800,18
Regionale Produkte auf der Karte0,180,050,690,09
Preis war fair für das Gebotene0,160,130,190,79
Extras waren fair bepreist0,080,090,150,77
Würde zu diesem Preis wieder direkt buchen0,210,110,120,66

Lies es Zeile für Zeile. "Empfang war herzlich und einladend" lädt 0,81 auf den ersten Faktor und unter 0,16 auf die anderen drei. Die Kommunalität ist 0,812+0,122+0,092+0,152=0,700{,}81^2 + 0{,}12^2 + 0{,}09^2 + 0{,}15^2 = 0{,}70, die vier Faktoren erklären also 70 Prozent davon, wie Gäste den Empfang bewerten, und die übrigen 30 Prozent sind fragenspezifisch: die konkrete Rezeptionistin am konkreten Abend. Die nächsten zwei Zeilen tun dasselbe, Faktor eins handelt also von Menschen, und ich nenne ihn Service. Zeilen vier bis sechs ballen sich auf dem zweiten Faktor mit Ladungen von 0,76 bis 0,84 und nichts über 0,15 anderswo: Zimmer. Zeilen sieben bis neun definieren Küche, wobei "Regionale Produkte auf der Karte" mit 0,69 schwächer ist, was sagt, dass es teils um Essen und teils um das Interesse des Gastes an der Region überhaupt geht. Die letzten drei Zeilen bilden Preiswert. Achte auf die letzte: "Würde zu diesem Preis wieder direkt buchen" lädt 0,66 auf Preiswert, aber auch 0,21 auf Service. Diese milde Doppelladung ist informativ: Die Entscheidung wiederzukommen hängt vor allem an der Fairness und ein wenig daran, wie man behandelt wurde.

Eine Frage hat nicht überlebt. "WLAN Geschwindigkeit" lud 0,31 auf Zimmer, 0,38 auf Service und fast nichts anderswo, bei einer Kommunalität von 0,29. Die Frage misst keines der vier Konstrukte; sie ist ihr eigenes kleines Ding. Ich habe sie aus der Lösung genommen und separat berichtet, die richtige Behandlung für eine Frage, die operativ zählt, aber zu keinem Konstrukt gehört.

Die Struktur, die das Modell gefunden hat, latente Ursachen oben und beobachtete Antworten darunter:

Das Faktormodell als Bild: Vier latente Konstrukte verursachen je drei der hier gezeigten beobachteten Bewertungen; die Pfeile laufen vom Unsichtbaren zum Sichtbaren.

Von vier Faktoren zu einer Entscheidung

Faktoren zu benennen ist angenehm, aber keine Entscheidung. Annas Frage hatte zwei Teile: was zuerst reparieren, und bringt es Direktbuchungen. Die Umfrage hat auch gefragt "Wie wahrscheinlich empfiehlst du uns weiter" auf einer Skala von 0 bis 10, also habe ich für jeden Gast die vier Faktorwerte berechnet (standardisiert, Mittelwert null, Standardabweichung eins) und die Empfehlungsfrage darauf regressiert:

PrädiktorKoeffizientStandardfehlerLesart
Konstante8,310,04der durchschnittliche Gast bei durchschnittlichen Faktorwerten
Service0,620,05eine Standardabweichung mehr Service bringt 0,62 Punkte
Zimmer0,410,05der kleinste Hebel der vier
Küche0,550,05zählt am meisten in den zwei Häusern mit Restaurant
Preiswert0,740,06der grösste Hebel, und es ist nicht der Zimmerpreis

Das Modell erklärt 46 Prozent der Varianz der Empfehlung. Weil Varimax Faktoren unkorreliert sind, kämpfen diese Koeffizienten nicht gegeneinander wie 24 Rohfragen es täten; du kannst jeden für sich lesen. Preiswert ist der stärkste Hebel. Aber schau zurück auf die Ladungen: Der Faktor Preiswert ist ebenso aus "Extras waren fair bepreist" gebaut wie aus dem Zimmerpreis. Als wir die Extrasfrage in einer Nachbefragung in ihre Teile zerlegt haben, waren Parkplatz, Spa Zugang und Minibar die wunden Punkte, alle drei Preispolitik, die fast nichts kostet zu ändern, kein Rabatt auf das Zimmer. Zimmer, wo Anna den Grossteil des nächsten Jahresbudgets ausgeben wollte, ist für die Gäste, die sie schon hat, der schwächste der vier Hebel. Das ist der ganze Ertrag: 24 Spalten auf vier eingedampft, und die vier gegen die eine Zahl gereiht, die das Unternehmen interessiert. Ob preissensible Plattformgäste anders reagieren, ist eine Frage für das nächste Kapitel, und der Grund, warum die Faktorwerte als Spalten in der Gästetabelle bleiben, statt mit dem Bericht zu sterben.

The Gift Bow: 18 Verhaltensvariablen, drei Komponenten

Das zweite Beispiel braucht gar keine Umfrage. The Gift Bow ist mein Solidus Demoshop für Geschenkkörbe, und für jeden der rund 6.200 Kunden mit einer Bestellung in den letzten 14 Monaten kann ich 18 Verhaltensvariablen berechnen: Bestellungen, Umsatz, durchschnittlicher Bestellwert, verschiedene Kategorien, aktive Monate, Tage seit der letzten Bestellung, Anteil der Bestellungen mit Grusskarte, Anteil mit Lieferung an eine andere als die Rechnungsadresse, Dezemberanteil, ob ein Firmenname auf der Rechnung steht, Gutscheinanteil, durchschnittliche Rabatttiefe, Klickrate auf Angebotsmails, Tage zwischen Angebotsmail und nächster Bestellung, und ein paar mehr. Kapitel 14 will diese Kunden clustern. 18 korrelierte Spalten in k Means zu füttern wäre ein Fehler: Bestellungen und Umsatz korrelieren mit 0,91, der Algorithmus würde dieselbe Information also doppelt zählen, und die "Segmente" wären verkleidete Umsatzklassen.

Das ist eine Aufgabe für PCA. Ich habe keine Theorie, dass eine latente "Geschenkorientierung" den Grusskartenanteil verursacht; ich will einfach die wenigsten unkorrelierten Spalten, die den Grossteil der Information behalten. Standardisieren, zerlegen:

Die ersten zehn Eigenwerte der 18 Verhaltensvariablen; der vierte liegt knapp über 1,0 und fällt in der Parallelanalyse durch, also bleiben drei Komponenten.

Der vierte Eigenwert, 1,1, besteht das Kaiser Kriterium und fällt in der Parallelanalyse durch (Zufallsdaten dieser Form liefern einen vierten Eigenwert um 1,15). Ich behalte drei, die 10,7 von 18 tragen, also 59 Prozent der Varianz. Die rotierten Ladungen sind leicht zu benennen:

KomponenteVarianzanteilVariablen mit den grössten Ladungen
1 Volumen28,3 ProzentBestellungen 0,88, Umsatz 0,86, verschiedene Kategorien 0,74, aktive Monate 0,71, Tage seit letzter Bestellung minus 0,69
2 Geschenkorientierung18,9 ProzentGrusskartenanteil 0,83, Lieferung an andere Adresse 0,81, Dezemberanteil 0,72, Firma auf Rechnung 0,58
3 Rabattsensibilität12,2 ProzentGutscheinanteil 0,85, durchschnittliche Rabatttiefe 0,79, Klickrate auf Angebote 0,66, Tage von Angebot bis Bestellung minus 0,61

Das Vorzeichen zählt hier. "Tage seit letzter Bestellung" lädt minus 0,69 auf Volumen, weil ein Kunde, der viel kauft, fast per Definition kürzlich da war; eine negative Ladung sagt, dass sich die Variable gegen die Komponente bewegt. "Tage von Angebotsmail bis Bestellung" lädt aus demselben Grund negativ auf Rabattsensibilität: Der rabattsensible Kunde bestellt an dem Tag, an dem der Gutschein ankommt. Komponente zwei ist der Ort, an dem die echte Struktur des Shops sitzt. Sie trennt den Geschenkkäufer, der Körbe mit Grusskarte an fremde Adressen schickt, vom Selbstkäufer mit gleicher Bestellzahl und gleichem Umsatz, der alles nach Hause liefern lässt. Die Komponente findet das, ohne dass ich ihr sage, was ein Geschenkkäufer ist, ein gutes Zeichen, dass die Unterscheidung in den Daten lebt und nicht nur in meinem Kopf. Drei Werte pro Kunde gehen jetzt als Clustereingaben in Kapitel 14, und weil sie unkorreliert sind, behandelt k Means jede Dimension fair, statt den Umsatz dreifach zu zählen. Das breitere Argument, warum Verhalten als Basis für Segmente die Demografie schlägt, steht in Segmentierung ist keine Demografie; das hier ist der mechanische Schritt, der es möglich macht.

Selbst durchführen

Du brauchst eine breite Tabelle, eine Zeile pro Befragtem oder Kunde, eine Spalte pro Variable, mit wenigen Lücken. Faktorenanalyse auf Umfragedaten will fünf bis zehn Antworten pro Frage und mindestens rund 200 insgesamt; 24 Fragen mit 1.340 Antworten sind bequem, 24 Fragen mit 90 Antworten sind ein Münzwurf. Verhaltensvariablen sind meist stark schief (ein paar Firmenkunden geben fünfzigmal den Median aus), also logarithmiere Zähler und Beträge vor dem Standardisieren, sonst ist die erste Komponente nur "die Wale gegen alle anderen".

In Python ist die PCA Seite ein Dutzend Zeilen:

import numpy as np, pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

X = pd.read_csv("hamper_behaviour.csv").set_index("customer_id")
X[["orders", "spend", "days_since_last"]] = np.log1p(X[["orders", "spend", "days_since_last"]])
Z = StandardScaler().fit_transform(X)            # PCA auf der Korrelationsmatrix
pca = PCA().fit(Z)
eig = pca.explained_variance_                    # die Eigenwerte, grösster zuerst
print(np.round(eig, 2), np.round(eig.cumsum() / eig.sum(), 3))
scores = PCA(n_components=3).fit_transform(Z)    # drei Spalten für Kapitel 14

Für die Umfrage bevorzuge ich R und das Paket psych, das Parallelanalyse, Rotation und Reliabilität an einem Ort hat:

library(psych)
items <- survey[, 5:28]                         # die 24 Bewertungsfragen
fa.parallel(items, fa = "fa")                   # wie viele Faktoren Zufallsdaten schlagen
fit <- fa(items, nfactors = 4, rotate = "varimax", fm = "ml")
print(fit$loadings, cutoff = 0.30)              # kleine Ladungen ausblenden
fit$communality                                 # alles unter 0.4 braucht einen Blick
scores <- fit$scores                            # eine Zeile pro Gast, vier Spalten

Zeit: Eine Faktorenanalyse einer Umfrage ist eine Woche Arbeit inklusive Bereinigung, Rotationsprüfungen und Bericht, und der Grossteil der Woche ist die Bereinigung. Eine PCA auf Verhaltensdaten dauert zwei Tage, sobald die Kundentabelle existiert, und die Kundentabelle ist der Ort, an dem die eigentliche Arbeit steckt.

Bevor ich einer Lösung traue, mache ich fünf Prüfungen. Das Kaiser Meyer Olkin Mass für die Eignung der Stichprobe sollte über 0,7 liegen; unter 0,6 teilen die Variablen zu wenig Varianz, um überhaupt faktorisiert zu werden. Cronbachs Alpha für die Fragen jedes Faktors sollte über 0,7 liegen, das sagt, dass die Fragen untereinander einig sind. Die Parallelanalyse sollte die Anzahl bestätigen. Ich teile die Stichprobe zufällig in zwei Hälften, schätze beide und vergleiche die Ladungen; wenn die Hälften uneins sind, welche Frage wohin gehört, ist die Struktur nicht stabil und ich berichte weniger Faktoren. Und ich prüfe, ob eine schiefwinklige Rotation die Geschichte ändert; wenn Oblimin sagt, dass zwei Faktoren mit 0,7 korrelieren, sind sie vielleicht einer, und das sollte ich sagen, statt saubere vier zu präsentieren, wenn die Daten drei bevorzugen.

Fallen

Der Benennungsfehler. In dem Moment, in dem du einen Faktor "Preiswert" nennst, beginnst du zu glauben, die Daten hätten Preiswürdigkeit gemessen. Haben sie nicht. Sie haben drei Fragen gemessen, die eine Rotation gruppiert hat, und dein Name ist eine Hypothese darüber, warum. Ich habe einmal einen Faktor namens "Markenliebe" gesehen, der komplett aus Fragen zur Liefergeschwindigkeit bestand. Benenne Faktoren aus ihren Fragen, lass die Fragen im Bericht neben dem Namen stehen und behandle den Namen als Arbeitstitel.

Das Kaiser Kriterium auf Autopilot. Eigenwert über eins zieht bei grossen Fragensätzen zu viele Faktoren und bei kleinen zu wenige. Bei 60 Fragen liefert es dir neun Faktoren, die Hälfte davon eine einzelne Frage, die mit sich selbst redet. Parallelanalyse und Scree Plot überstimmen es, und die Interpretierbarkeit überstimmt alle drei: Ein Faktor, den du aus seinen Fragen nicht benennen kannst, ist kein Befund.

Das Standardisieren vergessen. PCA auf Rohvariablen findet die Richtung der grössten Varianz in den Einheiten, die du zufällig verwendet hast. Umsatz in Euro hat eine Varianz in den Hunderttausenden, eine Klickrate eine Varianz von 0,02, und die erste Komponente wird Umsatz mit Rundungsfehler. Standardisieren ist nicht optional.

Der freundliche Gast. Zufriedenheitsfragen auf einer Skala von 1 bis 10 haben eine Decke, und manche Menschen geben aus Höflichkeit allem eine 8. Das erzeugt eine grosse erste unrotierte Komponente, die in Wahrheit ein Stimmungsfaktor ist, kein Konstrukt. Rotation hilft, umgekehrt formulierte Fragen helfen mehr, und diese Komponente als "Gesamtzufriedenheit" zu berichten, ohne es zu sagen, ist eine kleine Unehrlichkeit, die sich summiert.

Komponenten verdinglichen. Eine Komponente fasst einen bestimmten Datensatz in einer bestimmten Saison zusammen. Rechne die Analyse des Geschenkkorbshops nächstes Jahr mit neuen Produkten noch einmal, und die Geschenkkomponente schluckt vielleicht die Firmenvariablen oder teilt sich in zwei. Komponenten sind Werkzeuge für die Entscheidung vor dir, keine dauerhaften Fakten über deine Kunden, und Dashboards, die darauf bauen, sollten ein Datum tragen.

So mache ich das für Kunden

Was du bekommst, hängt davon ab, welches der zwei Probleme du hast, und die erste Stunde geht dafür drauf, das herauszufinden. Wenn du eine Umfrage hast oder eine willst, brauche ich die Formulierung der Fragen, die Rohantworten mit einer Zeile pro Befragtem und idealerweise ein Geschäftsergebnis pro Befragtem, etwa ob er wieder gebucht oder verlängert hat. Wenn du eine Kundendatenbank hast, brauche ich die Bestell und Ereignishistorie, damit ich die Verhaltenstabelle selbst bauen kann, weil die Variablen, die schon im CRM liegen, selten die richtigen sind.

Es beginnt mit einem kostenlosen Workshop, ein paar Stunden, in denen wir festlegen, welche Entscheidung die Analyse stützen muss und wie das Ergebnis aussehen muss, damit du danach handeln kannst. Dann zwei Wochen echte Arbeit auf meine Rechnung, bevor du dich zu irgendetwas verpflichtest. Bei einer Umfrage heisst das: die bereinigten Daten, die Faktorlösung mit Ladungen und Reliabilitäten, Faktorwerte zurückgeschrieben in deine Befragtentabelle, und ein zweiseitiges Memo, das die Faktoren gegen dein Ergebnis reiht, mit Koeffizient, Fehlermarge und dem Risiko, das ich darin sehe, danach zu handeln. Bei einer Datenbank heisst es: die Verhaltenstabelle, die Komponentenlösung und die Werte als Spalten gespeichert, die dir gehören, bereit für die Segmentierung, die folgt, plus ein Memo, das in einfachen Worten sagt, was jede Komponente bedeutet und was nicht.

Alles, was ich baue, läuft auf deinen Systemen und gehört dir; es gibt kein proprietäres Modell zu mieten. Die Seite Data Science beschreibt die Bandbreite der Arbeit, und die Preisseite beschreibt, wie ich abrechne: ein Fixpreis für die Analyse und eine Option auf Provisionsbasis, wenn aus dem Ergebnis ein Wachstumsprogramm wird. Eine verantwortliche Person, ehrliche Zahlen mit ihrer Unsicherheit dran, keine Schönwettermetriken.

Fragen, bevor du nach einer Faktorlösung handelst

  • Wie viele Befragte oder Kunden pro Variable sind eingeflossen, und waren es genug, um den Ladungen zu trauen?
  • Welche Regel hat die Anzahl der Faktoren bestimmt, und hätten Parallelanalyse oder Scree Plot eine andere Zahl ergeben?
  • Wurden die Variablen vor der Zerlegung standardisiert oder logarithmiert, und welche haben dominiert, falls nicht?
  • Welche Rotation wurde verwendet, wurde sie vor dem Blick auf die Ladungen gewählt, und ändert eine schiefwinklige Rotation die Geschichte?
  • Folgen die Faktornamen aus den Fragen in der Tabelle oder aus dem, was wir finden wollten?
  • Wurden die Faktorwerte mit einem Geschäftsergebnis verknüpft, und wie viel davon erklären sie?
  • Liegen die Werte dort, wo die nächste Analyse sie nutzen kann, mit einem Datum dran?

Diese Serie ist inspiriert von Mike Grigsbys Marketing Analytics (Kogan Page). Erklärungen, Beispiele und Zahlen hier sind meine eigenen.

Wenn du eine Umfrage mit zu vielen Fragen hast oder eine Kundentabelle mit zu vielen Spalten, und niemand dir sagen kann, welche vier Dinge wirklich zählen, schick sie mir. Ich schaue mir die Korrelationsstruktur an und sage dir ehrlich, ob eine Faktorlösung darin steckt oder ob die Daten eine andere Geschichte erzählen. Es beginnt mit einem kostenlosen Workshop, in dem wir festlegen, welche Entscheidung die Analyse stützen muss, dann zwei Wochen echte Arbeit, bevor du dich zu irgendetwas verpflichtest. Das Ergebnis gehört dir: Werte in deinen eigenen Tabellen, ein Memo mit einer Zahl und ihrer Fehlermarge, und kein Jargon, den du deiner Geschäftsführung nicht erklären kannst.

1%jeder Rechnung geht an eine Charity, die du wählst.

Eine Spende, nie Sponsoring. Du wählst das Anliegen beim Onboarding.

Die Geschichte hinter dem Versprechen →

Bleib deiner Konkurrenz voraus.

Die neuesten innovativen Produkte und Services, direkt in dein Postfach, bevor deine Mitbewerber davon hören.

Sichere dir bis zu 5% auf deine ersten sechs Monate: 1% pro gewähltem Thema, die vollen 5% wenn du alles nimmst. Limitiertes Angebot · endet am 31. Dezember 2026.

Nur für Neukunden. Es gelten die AGB.

* Bis zu 5% auf deine ersten sechs Monatsrechnungen, nur für Neukunden. Alle Bedingungen.

Fragen zu Preisen, Verträgen oder zur Zusammenarbeit?

Zu den FAQ