Dies ist kein spezifisches Problem für R. R verwendet eine herkömmliche Anzeige von Koeffizienten.
Wenn Sie eine solche Regressionsausgabe lesen (in einem Artikel, Lehrbuch oder einer Statistiksoftware), müssen Sie wissen, welche Variablen "kontinuierlich" und welche "kategorisch" sind:
Die "kontinuierlichen" sind explizit numerisch und ihre numerischen Werte wurden unverändert in der Regressionsanpassung verwendet.
Die "kategorialen" Variablen können von jedem Typ sein, einschließlich der numerischen! Was sie kategorisch macht, ist, dass die Software sie als "Faktoren" behandelt: Das heißt, jeder gefundene Wert wird als Indikator für etwas Besonderes angesehen.
Die meisten Programme behandeln nicht numerische Werte (z. B. Zeichenfolgen) als Faktoren. Die meisten Programme können davon überzeugt werden, auch numerische Werte als Faktoren zu behandeln. Beispielsweise sieht eine Postleitzahl (Postleitzahl in den USA) wie eine Nummer aus, ist jedoch nur eine Vorwahl für eine Reihe von Postfächern. Es würde keinen Sinn machen, Postleitzahlen mit anderen Zahlen zu addieren, zu subtrahieren und zu multiplizieren! (Diese Flexibilität ist die Ursache für einen häufigen Fehler: Wenn Sie nicht vorsichtig oder unwissend sind, behandelt Ihre Software möglicherweise eine Variable, die Sie als kategorisch betrachten, als kontinuierlich oder umgekehrt. Seien Sie vorsichtig!)
Trotzdem müssen kategoriale Variablen in irgendeiner Weise als Zahlen dargestellt werden, um die Anpassungsalgorithmen anzuwenden. Es gibt viele Möglichkeiten, sie zu codieren . Die Codes werden mit "Dummy-Variablen" erstellt. Weitere Informationen zur Dummy-Variablencodierung finden Sie auf dieser Website. Die Details spielen hier keine Rolle.
In der Frage wird uns das gesagt h
und f
es handelt sich um kategoriale ("diskrete") Werte. Standardmäßig log(d)
und a
sind fortlaufend. Das ist alles was wir wissen müssen. Das Modell ist
y= - 0,679695+ 1.791294 log ( d)+ 0,870735- 0,447570+ 0,542033+ 0,037362 a - 0,588362+ 0,816825+ 0,534440- 0,085658 a - 0,034970 a - 0,040637 a wenn h = h1 wenn h = h2 wenn h = h3 wenn f=f1 wenn f=f2 wenn f=f3 wenn h =h1 wenn h =h2 wenn h =h3
Die hier angewendeten Regeln sind:
Der Begriff "Intercept" ist, falls er erscheint, eine additive Konstante (erste Zeile).
Kontinuierliche Variablen werden durch ihren Koeffizienten multipliziert, auch in „Wechselwirkungen“ wie die h1:a
, h2:a
und h3:a
Begriffe. (Dies beantwortet die ursprüngliche Frage.)
Jede kategoriale Variable (oder jeder Faktor) ist nur in Fällen enthalten, in denen der Wert dieses Faktors angezeigt wird.
Log( d) = 2h = h3a = - 1f= f2
y^= - 0,6797 + 1,7913 × ( 2 ) + 0,5420 + 0,0374 × ( - 1 ) + 0,8168 - 0,0406 × ( - 1 ) .
h
h1h2h3( 0,870735 , - 0,447570 , 0,542033 )h
( - 0,085658 , - 0,034970 , - 0,040637 )a
h:a
Interaktion; Ebenso gilt f
in einem bestimmten Fall nur ein Koeffizient .
g1
c
kann in diesem speziellen Fall verwirrend sein, da ich zwei Buchstaben für wähle stellen g1-Ebenen dar, aber normalerweise ist es ziemlich intuitiv - und das ist reines tex, damit wir die Quelldatei danach noch bearbeiten können). Im Anhang finden Sie eine weitere Zusammenfassung, die ich geändert habe,g1
sodass es sich nun um einen vierstufigen Faktor handelt. Bei 0/1-Labels ist dies jedoch möglicherweise verwirrender .Sie können überprüfen, ob Ihre "Kontraste" die Standardeinstellungen sind
options()
und suchen nach:Wenn Ihre ungeordneten Kontraste als festgelegt sind
contr.treatment
(wie es sein sollte, sofern Sie sie nicht geändert haben), wird die erste Ebene jedes Ihrer Faktoren als Basis festgelegt. Sie erhalten nur Schätzungen für die Koeffizienten vor den Dummy-Variablen, die für andere Ebenen des Faktors erstellt wurden. Tatsächlich sind diese Koeffizienten "wie unterschiedlich die Antwortvariable auf dieser Ebene des Faktors im Durchschnitt im Vergleich zur Basislinie des Faktors ist, nachdem alles andere im Modell kontrolliert wurde".Ich vermute aus Ihrer Ausgabe, dass es ein
h0
undf0
gibt, die die Grundlinienpegel für h und f sind (es sei denn, Sie haben eine nicht standardmäßige Option für Kontraste. In diesem Fall gibt es mehrere Möglichkeiten; versuchen Sie?contr.treatment
etwas Hilfe).Ähnlich verhält es sich mit der Interaktion. Wenn mein vorheriger Absatz korrekt ist, ist die Schätzung für
a
wirklich die Steigung füra
wannh=h0
. Die in der Zusammenfassung angegebenen Schätzungen, die für die Wechselwirkungen gelten, geben an, um wie viel sich diese Steigung für verschiedene Ebenen von änderth
.Versuchen Sie in Ihrem Beispiel mit h = h1 und f = f2 Folgendes:
Oh, und Sie können
predict()
auch viele nützliche Dinge tun ... wenn Sie tatsächlich etwas vorhersagen möchten (anstatt die Gleichung für einen Bericht aufzuschreiben). Versuchen Sie?predict.lm
zu sehen, waspredict()
mit einem von erstellten Objekt geschiehtlm
.quelle
options()
. Sie müssen durch viel Müll scrollen, um zu finden, was Sie brauchen. Sie könnten versuchenoptions()$contrasts
, das nur auszugeben, was Sie wollen.