Bitte geben Sie mir eine Idee, wie eine kategoriale Variable (Faktor) effizient in die Menge der orthogonalen Polynomkontrastvariablen umcodiert werden kann.
Für viele Arten von Kontrastvariablen (z. B. Abweichung, einfach, Helmert usw.) lautet der Durchgang:
- Stellen Sie die Kontrastkoeffizientenmatrix zusammen, die dem Typ entspricht.
- Invers oder generalize-invers, um die Codematrix zu erhalten.
Beispielsweise:
Suppose there is 3-group factor and we want to recode it into a set of deviation contrast variables.
The last group is treated as reference. Then the contrast coefficients matrix L is
Group1 Group2 Group3
var1 2/3 -1/3 -1/3
var2 -1/3 2/3 -1/3
and ginv(L) is then the sought-for coding matrix
var1 var2
Group1 1 0
Group2 0 1
Group3 -1 -1
(We might also use inv(L) instead if we add a row for constant, equal to 1/3, at the head of L.)
Gibt es den gleichen oder einen ähnlichen Weg, um Polynomkontrastvariablen zu erhalten? Wenn ja, wie würde Matrix C aussehen und wie wird sie zusammengesetzt? Wenn nein , was nach wie vor ist die Art und Weise , das Polynom Kontrastvariablen effizient (zB durch Matrizenalgebra) zu berechnen.
contrasts
polynomial
ttnphns
quelle
quelle
qr.qy()
mit den manuellen Berechnungen übereinstimmen, die auf meinem Beitragqr.Q(qr(X))
gefolgt sindQ%*%z
. Ich frage mich wirklich, ob ich etwas anderes sagen kann, um Ihre Frage ohne Doppelarbeit zu beantworten. Ich möchte wirklich keinen schlechten Job machen ... Ich habe genug von Ihren Posts gelesen, um viel Respekt vor Ihnen zu haben ... Wenn ich einen Weg finde, das Konzept ohne Code auszudrücken, nur konzeptionell durch lineare Algebra, Ich werde darauf zurückkommen. Ich bin jedoch froh, dass Sie meine Untersuchung des Themas von Wert gefunden haben. Beste Wünsche, Toni.Antworten:
Als Übergang zu meinem vorherigen Beitrag zu diesem Thema möchte ich einige vorläufige (wenn auch unvollständige) Untersuchungen der Funktionen hinter der linearen Algebra und verwandten R-Funktionen vorstellen. Dies soll in Arbeit sein.
Ein Teil der Undurchsichtigkeit der Funktionen hat mit der „Compact“ Form der Haus zu tun Zersetzung. Die Idee hinter der Householder-Zerlegung besteht darin, Vektoren über eine Hyperebene zu reflektieren, die durch einen Einheitsvektor u wie im folgenden Diagramm bestimmt wird, diese Ebene jedoch gezielt auszuwählen, um jeden Spaltenvektor der ursprünglichen Matrix A auf das e 1 zu projizieren Standardeinheitsvektor. Der normalisierte Norm-2 1 -Vektor u kann verwendet werden, um die verschiedenen Householder-Transformationen I - 2 zu berechnenQR u A e1 1 u .I−2uuTx
Die resultierende Projektion kann ausgedrückt werden als
Der Vektor repräsentiert die Differenz zwischen den Spaltenvektoren x in der Matrix A , die wir zerlegen möchten, und den Vektoren y , die der durch u bestimmten Reflexion über den Unterraum oder "Spiegel" entsprechen .v x A y u
Das Schöne an der Methode ist, dassR QR 0 R w 1 1 R
qr()$qr
Man würde annehmen, dass es in Ordnung wäre, diese Reflektoren unterhalb der Diagonale oder zu lagernw R 1 w tau
qr()$qr
können die Reflektoren alsReflektoren=ausgedrücktwerdenτ=wTw2=∥w∥2 reflectors=w/τ R QR
qr()
qr()$qr
qr()$qraux
Der gesamte Code ist hier , aber da es bei dieser Antwort um den Schnittpunkt von Codierung und linearer Algebra geht, werde ich die Ausgabe zur Vereinfachung einfügen:
Jetzt habe ich die Funktion
House()
wie folgt geschrieben:Vergleichen wir die Ausgabe mit den in R integrierten Funktionen. Zuerst die hausgemachte Funktion:
zu den R-Funktionen:
quelle