dHeight
ですlogical
。_ この中でmodel
因子に強制され、レベルは辞書式にソートされます (つまり、F は T の前です)。
@Hongooiの回答に記載されているように、4つのパラメーターを推定することはできないため、Rは表示される順序で用語に適合します(TRUEの前にFALSE)
R
最初に値を強制的に適合させたい場合はTRUE
、モデルを次のように適合させることができます!dHeight
lm(formula = Volume ~ Girth + cGirth:!dHeight, data = trees)
!dHeightFALSE
と同等であることに注意してくださいdHeightTRUE
また、この単純なケースでは、係数の符号を変更するだけなので、どのモデルを適合させるかは実際には問題ではないことに注意してください。
はるかに優れたアプローチを編集する
R はcGirth
とGirth
が共線であることを認識することができるため、 がa/b
展開してa + a:b
lm(formula = Volume ~ Girth + cGirth/dHeight, data = trees)
Coefficients:
(Intercept) Girth cGirth cGirth:dHeightTRUE
-27.198 4.251 NA 1.286
これにより、係数にわかりやすい名前R
が付けられ、係数を返すのに失敗する可能性があります。cGirth
R
両方とも「主効果」またはスタンドアロンの項としてのモデルである場合、共線的であることがわかりGirth
ます。cGirth
とが共線であり、論理的に適合する係数になりたいと考えると、それをフィッティングするR
ときに伝えることができるはずの方法はありません。(本当に必要な場合は、独自の数式パーサーを作成してこれを行うことができます)Girth + cGirth:dHeight
cGirth
Girth
dHeight
cGirthdHeightTRUE
必要なモデルに適合し、共線項がない別のアプローチは、使用することです
lm(formula = Volume ~ Girth + I(cGirth*dHeight), data = trees)
これはdHeight
数値 ( TRUE becomes 1
) に強制されます。
ポイントを編集して編集します。
あなたが合うとき~Girth + Girth:dHeight
あなたが言っているのは、Girth
+ の調整には主効果があるということですdHeight
。R は、因子の最初の水準を参照水準と見なします。の勾配dHeightFALSE
は単に の値であり、 (Girth:dHeightTRUE)Girth
の場合に調整します。dHeight == TRUE
When you fit ~Girth + cGirth:dHeight
--には、与えられたことがわかり、2 つの項の相互作用を当てはめたときに共線的であるマインド リーディング パーサーがありません。2 番目のレベルが参照レベルであると見なされますR
) 。cGirth
Girth
dHeight
まったく関係のない変数があると想像してくださいGirth
例えば
set.seed(1)
trees$cG <- runif(nrow(trees))
次に、フィットGirth + cG:dHeight
すると、4つのパラメーターが推定されます
lm(formula = Volume ~ Girth + cG:dHeight, data = trees)
Call:
lm(formula = Volume ~ Girth + cG:dHeight, data = trees)
Coefficients:
(Intercept) Girth cG:dHeightFALSE cG:dHeightTRUE
-31.79645 4.79435 -5.92168 0.09578
これは賢明です。
が をR
処理するGirth + cGirth:dHeight
と、(因子の最初のレベルが最初に) 展開され1 + Girth + cGirth:dHeightFALSE + cGirth:dHeightTRUE
、4 つのパラメーターすべてを推定することはできないことがわかり、最初の 3 つを推定します。