Kann es jemand mit einem einfachen Beispiel erklären!
quelle
Kann es jemand mit einem einfachen Beispiel erklären!
Im Fall des Multinomials hat man keine intrinsische Ordnung; Im Gegensatz dazu besteht bei der ordinalen Regression eine Assoziation zwischen den Ebenen. Zum Beispiel , wenn Sie die Variable untersuchen , die hat , und als unabhängige Ebenen dann codiert eine multinomial Variable. Wenn Sie eine neue Variable die die Ebenen sind und eine erhöhte Dringlichkeit darstellen, definieren sie eine Ordnungsvariable.green
yellow
red
green
yellow
red
Wie würden diese Variablen codiert:
Bei einer multinomialen Variablen wird diese Variable als Indikatormatrix codiert. Die beliebige Codierung für green
kann [1 0 0]
, yellow
kann [0 1 0]
und [0 0 1]
für rot sein. Bei einer Ordnungsvariablen ist die Codierung etwas anders. Wenn Sie sich in der yellow
Stufe befinden, wird davon ausgegangen, dass Sie die green
Stufe erreicht und überschritten haben. Ebenso, wenn Sie in der red
Ebene sind, haben Sie die green
und die yellow
Ebene erreicht und jetzt sind Sie in der red
Ebene. Daher ist die Codierung für den green
Wert so etwas wie [1 0 0]
. Für die yellow
, [1 1 0]
und red
, [1 1 1]
.
Für das multinomiale mit 7 Samples würde es also ungefähr so aussehen:
während die Ordnungszahl mit 7 Abtastwerten ungefähr so aussehen würde:
Beachten Sie, dass Sie in beiden Fällen dieselben Informationen codieren. Das heißt red
, red
, yellow
, green
, green
, green
, yellow
. Wie Sie sehen, ist der Unterschied zwischen der Variablen und jetzt offensichtlich. Wenn Sie versuchen, ein Modell in dieses Modell mit ziemlicher Sicherheit nicht optimal, um vorherzusagen . Die Schätzverfahren für diese Modelle unterscheiden sich tatsächlich nicht wesentlich. Ohne ins Detail zu gehen, verlassen sich beide auf die numerische Optimierung, bei der das sogenannte Fisher-Scoring häufig verwendet wird.
Schauen wir uns ein aktuelles Beispiel mit R an. Wir definieren eine multinomiale Variable V1
und definieren damit die Ordnungsvariable V2
. Getreu einer realen Umgebung haben wir nur irrelevante Informationen, die in verschlüsselt sind GarbageInfo
. (Ich verwende die Funktion multinom
aus dem nnet
Paket, um das Multinomial anzupassen, und die Funktion polr
aus dem MASS
Paket, um das bestellte Protokoll anzupassen. Weitere Informationen erhalten Sie direkt aus der Dokumentation dieser Funktionen.)
set.seed(1234);
N = 100;
V1 = sample(c('green','yellow','red'), N, replace = TRUE)
V2 = ordered(V1, c('green', 'yellow', 'red'))
GarbageInfo = runif(N); # This is used only for illustration purposes
m1 = nnet::multinom(V1 ~ GarbageInfo)
m2 = MASS::polr(V2 ~ GarbageInfo)
Wir überprüfen dann die Modellzusammenfassungen und stellen fest, dass sie sehr interessant sind.
> summary(m1)
Call: nnet::multinom(formula = V1 ~ GarbageInfo)
Coefficients:
(Intercept) GarbageInfo
red -0.6011338 -0.1331142
yellow -0.3221203 -0.5995860
Std. Errors:
(Intercept) GarbageInfo
red 0.5164521 0.8448432
yellow 0.4932972 0.8380932
...
> summary(m2)
...
Call: MASS::polr(formula = V2 ~ GarbageInfo)
Coefficients:
Value Std. Error t value
GarbageInfo -0.2181 0.6431 -0.3391
Intercepts:
Value Std. Error t value
green|yellow -0.1541 0.3910 -0.3941
yellow|red 0.9856 0.4045 2.4364
...
Während im Fall m1
Ihrer Intercept für definiert ist red
und yellow
gegen die green
Basislinie, die Abschnitte für m2
den angegebenen Bedeutungen green|yellow
und yellow|red
, dh. Sie sind eher Schnittpunkte als einfache Abschnitte. Weiterhin Ihre GarbageInfo
variablen Koeffizienten ist üblich inm2
im gesamten Modell im Fall der ordinalen Regression, anstatt im Fall des Multinomials für jede Ebene unabhängig geschätzt zu werden. Dies liegt daran, dass Sie die Tatsache ausnutzen, dass Ihre Daten mehr Informationen enthalten und (in diesem Fall) Sie einen zusätzlichen Freiheitsgrad haben. Dies bringt uns zurück zum ersten Satz dieses Beitrags: Multinomiale und ordinale Variablen (und ihre jeweiligen) Regressionsverfahren sind unterschiedlich, weil sie unterschiedliche Informationen codieren.