Wenn in der glm-Formel eine Faktorvariable (z. B. Geschlecht mit den Ebenen M und F) verwendet wird, werden Dummy-Variablen erstellt, die zusammen mit den zugehörigen Koeffizienten (z. B. genderM) in der glm-Modellzusammenfassung aufgeführt sind.
Wenn Sie sich nicht auf R verlassen, um den Faktor auf diese Weise aufzuteilen, wird der Faktor in einer Reihe numerischer 0/1-Variablen codiert (z. B. genderM (1 für M, 0 für F), genderF (1 für F, 0 für) M) und diese Variablen werden dann als numerische Variablen in der glm-Formel verwendet. Wäre das Koeffizientenergebnis anders?
Grundsätzlich lautet die Frage: Verwendet R eine andere Koeffizientenberechnung, wenn mit Faktorvariablen als mit numerischen Variablen gearbeitet wird?
Folgefrage (möglicherweise oben beantwortet): Gibt es neben der Effizienz, mit der R Dummy-Variablen erstellen kann, ein Problem damit, Faktoren als eine Reihe numerischer 0,1-Variablen neu zu codieren und stattdessen diese im Modell zu verwenden?
Antworten:
Kategoriale Variablen ( in R " Faktoren " genannt) müssen in mehreren Regressionsmodellen durch numerische Codes dargestellt werden. Es gibt sehr viele Möglichkeiten, numerische Codes angemessen zu erstellen (siehe diese großartige Liste auf der Hilfeseite der UCLA für Statistiken). Standardmäßig verwendet R die Codierung auf Referenzebene (die R "contr.treatment" nennt) und ist so ziemlich die Standardstatistik für die gesamte Statistik. Dies kann für alle Kontraste für Ihre gesamte R-Sitzung mithilfe von Optionen oder für bestimmte Analysen / Variablen mithilfe von Kontrasten oder C (beachten Sie das Großbuchstaben) geändert werden . Wenn Sie weitere Informationen zur Codierung auf Referenzniveau benötigen, erkläre ich dies hier: Regression, die beispielsweise auf Wochentagen basiert.
Einige Leute finden die Codierung auf Referenzniveau verwirrend, und Sie müssen sie nicht verwenden. Wenn Sie möchten, können Sie zwei Variablen für männlich und weiblich haben. Dies nennt man Level bedeutet Codierung. Wenn Sie dies tun, müssen Sie jedoch den Achsenabschnitt unterdrücken, da sonst die Modellmatrix singulär ist und die Regression nicht wie oben beschrieben und wie ich hier erläutere, angepasst werden kann: Qualitative Variablencodierung führt zu Singularitäten . Um den Achsenabschnitt zu unterdrücken, ändern Sie Ihre Formel, indem Sie Folgendes hinzufügen
-1
oder+0
mögen:y~... -1
odery~... +0
.(constant)
sexM
sexM
sexM
quelle
young F
), und die anderen Levels unterscheiden sich vom angegebenen Level von Faktor 1 w / das Referenzniveau des anderen Faktors und die Gruppe der beiden Referenzniveaus. ZBold
istold F
- `junges F, &
M` istyoung M
-young F
.R^2
Unterschied zwischen beiden Ansätzen festgestellt. Ich weiß, es ist nur eineR^2
, aber gibt es eine Erklärung dafür?Die geschätzten Koeffizienten sind unter der Bedingung gleich, dass Sie Ihre Dummy-Variablen (dh die numerischen) gemäß R erstellen. Beispiel: Erstellen Sie gefälschte Daten und passen Sie einen Poisson-glm-Faktor an. Beachten Sie, dass die
gl
Funktion eine Faktorvariable erstellt.Da das Ergebnis drei Ebenen hat, erstelle ich zwei Dummy-Variablen (Dummy.1 = 0, wenn Ergebnis = 2 und Dummy.2 = 1, wenn Ergebnis = 3) und passe mit diesen numerischen Werten um:
Wie Sie sehen können, sind die geschätzten Koeffizienten gleich. Sie müssen jedoch beim Erstellen Ihrer Dummy-Variablen vorsichtig sein, wenn Sie das gleiche Ergebnis erzielen möchten. Wenn ich zum Beispiel zwei Dummy-Variablen wie folgt erstelle (Dummy.1 = 0, wenn Ergebnis = 1 und Dummy.2 = 1, wenn Ergebnis = 2), unterscheiden sich die geschätzten Ergebnisse wie folgt:
Dies liegt daran
outcome
, dass R beim Hinzufügen einer Variablen in glm.1 standardmäßig zwei Dummy-Variablen erstellt,outcome2
und zwar undoutcome3
diese ähnlich wie indummy.1
unddummy.2
in glm.2 definiert, dh die erste Ergebnisebene ist, wenn alle anderen Dummy-Variablen (outcome2
undoutcome3
) festgelegt sind Null.quelle