Ich versuche, die Faktorenanalyse zu lernen, und ich dachte, es wäre eine gute Idee, die Berechnung für IQ-Werte mit einem Datensatz von Dummy-Werten sehr schlecht "nachzuahmen", um "am Beispiel zu lernen".
Zunächst möchte ich Folgendes tun, und ich weiß nicht, ob diese Methode richtig ist oder nicht: Ich habe die Ladungen für diesen Faktor bestimmt. Jetzt, da ich die Ladungen habe, möchte ich eine Punktzahl für jedes der Samples generieren. Das wird mir eine Population von Werten hinterlassen, die ich dann um einen Mittelwert von 100 herum standardisieren kann. Von dort aus würde ich eine Normalverteilung zeichnen. Immer wenn ich ein neues Sample erhalte, kann ich eine Punktzahl dafür generieren und sehen, wo es in der Verteilung liegt.
Um meine Ergebnisse zu erhalten, verwende ich die Sklearn-Bibliothek von Python, insbesondere die FactorAnalysis
Klasse. Mir ist aufgefallen, dass die FactorAnalysis
Klasse eine score_samples()
Methode hat. Die Ausgabepunktzahl für jede Stichprobe ist die Log-Wahrscheinlichkeit der Stichprobe.
Hier sind einige der Fragen, die ich habe:
Ist mein Ansatz zur Generierung einer Verteilung basierend auf den Faktorwerten der Stichproben fehlerhaft? Wie machen sie das in der Praxis?
Ist die Log-Wahrscheinlichkeit einer Stichprobe überhaupt ein angemessener Wert? (Wenn nicht, welche alternativen Möglichkeiten gibt es, um eine Probe zu bewerten?)
Ich habe die Werte mit der Methode für alle Proben generiert score_samples()
, aber sie liegen zwischen -4 und -49. Gibt es einen Grund, warum sie negativ sein würden?
Wenn Sie nur nach 1 latenten Faktor suchen, ist es eine gute Praxis, die Anzahl der Faktoren auf 1 zu setzen, oder sollten Sie sie sowieso nicht angeben?
Hier sind die Belastungen, wenn ich die Anzahl der Faktoren auf 1 lasse:
Factor 1
variable 1 0.082558
variable 2 0.107940
variable 3 0.199645
variable 4 0.612495
variable 5 0.623707
Hier sind die Belastungen, wenn ich die Anzahl der Faktoren nicht angebe:
Factor 1 Factor 2 Factor 3 Factor 4 Factor 5
variable 1 0.263914 0.426346 -0.012893 -0.0 0.0
variable 2 0.297078 0.415269 -0.002193 0.0 -0.0
variable 3 0.243590 -0.005131 0.085178 -0.0 -0.0
variable 4 0.487537 -0.224135 -0.019501 -0.0 -0.0
variable 5 0.484462 -0.248173 -0.008902 0.0 0.0
Ist mein Ansatz zur Generierung einer Verteilung basierend auf den Faktorwerten der Stichproben fehlerhaft? Wie machen sie das in der Praxis?
Ich fand das etwas schwierig zu folgen. Aber im Allgemeinen sollten Sie in der Lage sein, eine Reihe von Testergebnissen unter Verwendung einer multivariaten Normalverteilung zu approximieren, wobei die Kovarianzmatrix positive Korrelationen zwischen allen Tests impliziert. Einige mögen größer und andere kleiner sein, aber die Idee ist, dass alle Fähigkeitstests korrelieren. Und die allgemeine geistige Leistungsfähigkeit kann als erster unrotierter Faktor geschätzt werden, der sich aus solchen Tests ergibt.
Ist die Log-Wahrscheinlichkeit einer Stichprobe überhaupt ein angemessener Wert? (Wenn nicht, welche alternativen Möglichkeiten gibt es, um eine Probe zu bewerten?)
Das klingt eher so, wie Sie ein Modell bewerten. ZB wie Sie faktoranalytische Lösungen auswerten. Im Allgemeinen sind die durch den Faktor gespeicherten Punktzahlen eine gewichtete Zusammensetzung der Punktzahlen der Komponententests.
In R können Sie verwendenfactanal
factanal(x, factors, data = NULL, covmat = NULL, n.obs = NA,
subset, na.action, start = NULL,
scores = c("none", "regression", "Bartlett"),
rotation = "varimax", control = NULL, ...)
Siehe die scores
Argumentation. Es gibt ein paar verschiedene Methoden.
Ich habe die Scores mit der Methode score_samples() für alle Samples generiert, aber sie liegen zwischen -4 und -49. Gibt es einen Grund, warum sie negativ sein würden?
Python kenne ich nicht. Aber im Allgemeinen werden faktorgespeicherte Scores typischerweise so quantifiziert, dass sie Z-Scores sind (z. B. Mittelwert = 0, sd = 1).
Wenn Sie nur nach 1 latenten Faktor suchen, ist es eine gute Praxis, die Anzahl der Faktoren auf 1 zu setzen, oder sollten Sie sie sowieso nicht angeben?
Sie müssen entweder nur einen Faktor extrahieren oder sicherstellen, dass Sie keine Rotation auf die Extraktionsfaktoren anwenden. Ohne Rotation entspricht der erste Faktor nur einem Faktor. Wenn Sie rotieren, wird die Variation auf die extrahierten Faktoren verteilt.
thevengefulco
Jerome Anglim
thevengefulco
Jerome Anglim
thevengefulco