Lassen Sie mich ein einfaches Beispiel für Sie zusammenstellen, um das Konzept zu erläutern. Dann können wir es anhand Ihrer Koeffizienten überprüfen.
Beachten Sie, dass Sie Ihrem Modell durch die Einbeziehung sowohl der Dummy-Variablen "A / B" als auch des Interaktionsterms effektiv die Flexibilität geben, einen anderen Achsenabschnitt (unter Verwendung des Dummys) und eine andere Steigung (unter Verwendung der Interaktion) an die "A" -Daten und anzupassen die "B" -Daten. Im Folgenden spielt es wirklich keine Rolle, ob der andere Prädiktor eine kontinuierliche Variable oder, wie in Ihrem Fall, eine andere Dummy-Variable ist. Wenn ich von "Achsenabschnitt" und "Steigung" spreche, kann dies als "Pegel, wenn der Dummy Null ist" und "Pegeländerung, wenn der Dummy von 0 auf 1 geändert wird" interpretiert werden, wenn Sie dies bevorzugen.x01
Angenommen , die OLS angepassten Modell auf den "A" Daten allein ist y = 12 + 5 x und an den "B" Daten allein ist y = 11 + 7 x . Die Daten könnten folgendermaßen aussehen:y^=12+5xy^=11+7x
Nehmen wir nun an, wir nehmen "A" als Referenzniveau und verwenden eine Dummy-Variable so dass b = 1 für Beobachtungen in Gruppe B, aber b = 0 in Gruppe A. Das angepasste Modell für den gesamten Datensatz istbb=1b=0
y^i=β^0+β^1xi+β^2bi+β^3xibi
y^i=β^0+β^1xiβ^0=12β^1=5y^i=(β^0+β^2)+(β^1+β^3)xiβ^0+β^2=11β^1+β^3=7β^0=12β^1=5β^2=−1β^3=2
y^i=12+5xi−1bi+2xibi
a
y^i=11+7xi+1ai−2xiai
117
Vergleichen wir das mit Ihrer Ausgabe. In einer ähnlichen Notation wie oben lautet Ihr erstes angepasstes Modell mit der Grundlinie "A":
y^i=100.7484158+0.9030541bi−0.8693598xi+0.8709116xibi
Ihr zweites Modell mit der Grundlinie "B" ist:
y^i=101.651469922−0.903054145ai+0.001551843xi−0.870911601xiai
bi=1−ai
y^i=100.7484158+0.9030541(1−ai)−0.8693598xi+0.8709116xi(1−ai)
Dies vereinfacht zu:
y^i=(100.7484158+0.9030541)−0.9030541ai+(−0.8693598+0.8709116)xi−0.8709116xiai
Ein kurzes bisschen Arithmetik bestätigt, dass dies dasselbe ist wie das zweite angepasste Modell. außerdem sollte jetzt klar sein, welche Koeffizienten in Vorzeichen vertauscht wurden und welche Koeffizienten einfach an die andere Basislinie angepasst wurden!
y^i=100.7484158−0.8693598xiy^i=101.651469922+0.001551843xibi=1ai=1
x=0x=1x=0x=1xxy^
y^
#Make data set with desired conditional means
data.df <- data.frame(
x = c(0,0,0, 1,1,1, 0,0,0, 1,1,1),
b = c(0,0,0, 0,0,0, 1,1,1, 1,1,1),
y = c(11.8,12,12.2, 16.8,17,17.2, 10.8,11,11.2, 17.8,18,18.2)
)
data.df$a <- 1 - data.df$b
baselineA.lm <- lm(y ~ x * b, data.df)
summary(baselineA.lm) #check this matches y = 12 + 5x - 1b + 2xb
baselineB.lm <- lm(y ~ x * a, data.df)
summary(baselineB.lm) #check this matches y = 11 + 7x + 1a - 2xa
fitted(baselineA.lm)
fitted(baselineB.lm) #check the two models give the same fitted values for y...
with(data.df, tapply(y, interaction(x, b), mean)) #...which are the group sample means
colorSet <- c("red", "blue")
symbolSet <- c(19,17)
with(data.df, plot(x, y, yaxt="n", col=colorSet[b+1], pch=symbolSet[b+1],
main="Response y against other predictor x",
panel.first = {
axis(2, at=10:20)
abline(h = 10:20, col="gray70")
abline(v = 0:1, col="gray70")
}))
abline(lm(y ~ x, data.df[data.df$b==0,]), col=colorSet[1])
abline(lm(y ~ x, data.df[data.df$b==1,]), col=colorSet[2])
legend(0.1, 17, c("Group A", "Group B"), col = colorSet,
pch = symbolSet, bg = "gray95")