簡単な例を使って概念を説明しましょう。それを係数と照合します。
「A / B」ダミー変数と交互作用項の両方を含めることにより、「A」データに異なる切片(ダミーを使用)と勾配(交互作用を使用)を適合させる柔軟性を効果的にモデルに与えることに注意してください。 「B」データ。以下では、他の予測子が連続変数であるか、あなたの場合のように、別のダミー変数であるかは実際には重要ではありません。「切片」と「傾き」で言えば、「ダミーがゼロのときのレベル」、「ダミーが0から1に変わったときのレベルの変化」と解釈することもできます。バツ01
"A"のデータにモデルを嵌OLSを想定するのみであり、Yが = 12 + 5 、X及び"B"のデータに、単独で、Yは = 11 + 7 Xを。データは次のようになります。y^= 12 + 5 xy^= 11 + 7 x
今、私たちは私たちの基準レベルとして「A」を取ると仮定し、ダミー変数の使用するように、B = 1、グループBの観測のためではなく、B = 0、グループAには、データセット全体にフィットモデルでありますbb = 1b = 0
y^私= β^0+ β^1バツ私+ β^2b私+ β^3バツ私b私
グループAの観測のために我々は持っているY I = β 0 + β 1は、xは、私を、私たちが設定することにより、残差二乗それらの和を最小限に抑えることができβ 0 = 12とβ 1 = 5。グループBデータについて、Y iは = (β 0 + β 2)+ (β 1 + β 3)X Iy^私= β^0+ β^1バツ私β^0=12β^1= 5y^私= (β^0+ β^2)+ (β^1+ β^3)x私、我々が取ることによって、残差二乗それらの和を最小限に抑えることができβ 0 + β 2 = 11とβ 1β^0+ β^2= 11。それは我々が両方のグループのための合計を最小化することによって、全体的な回帰における残差二乗和を最小化することができ、これは、設定することによって達成することができることは明らかだ β 0 = 12と β 1 = 5(グループAから)と β 2 = - 1と ββ^1+ β^3= 7β^0= 12β^1= 5β^2= − 1( "B"データには切片が1つ低く、勾配が2つ高いため)。両方のグループの二乗残差の合計を一度に最小化するのに十分な柔軟性を持たせるには、交互作用項の存在がどのように必要であったかを観察します。私の適合モデルは:β^3= 2
y^私= 12 + 5 x私− 1 b私+ 2 x私b私
これをすべて切り替えて、「B」が参照レベルでありがグループAのダミー変数コーディングであることを確認します。モデルを適合させる必要があることがわかりますか?a
y^私= 11 + 7 x私+ 1 a私− 2 x私a私
117
それを出力と比較してみましょう。上記と同様の表記で、ベースライン "A"を持つ最初の近似モデルは次のとおりです。
y^私= 100.7484158 + 0.9030541 b私− 0.8693598 x私+ 0.8709116 x私b私
ベースライン "B"を持つ2番目の近似モデルは次のとおりです。
y^私= 101.651469922 - 0.903054145 A私+ 0.001551843 x私− 0.870911601 x私a私
b私= 1 − a私
y^私= 100.7484158 + 0.9030541 (1 − a私)− 0.8693598 x私+ 0.8709116 x私(1 − a私)
これにより、次のことが簡単になります。
y^私= (100.7484158 + 0.9030541 )− 0.9030541 a私+ (− 0.8693598 + 0.8709116 )x私− 0.8709116 x私a私
少し計算すると、これが2番目の近似モデルと同じであることが確認されます。さらに、どの係数が符号で入れ替わったか、どの係数が他のベースラインに単純に調整されたかが明確になります!
次に、グループ "A"と "B"で異なる近似モデルが何であるかを見てみましょう。あなたの最初のモデルはすぐに与えyの私は = 100.7484158を- 0.8693598 X Iy^私= 100.7484158 - 0.8693598 X私y^私= 101.651469922 + 0.001551843 x私b私= 1a私= 1
3番目に、他のリグレッサもダミー変数だったので、4つのカテゴリすべて( "A")の近似条件付き平均を計算することをお勧めしますx = 0x = 1x = 0x = 1バツバツy^
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")