3

問題:

を使用して統計モデルを構築することformulaは、R 言語の強力で洗練された機能です。必要なほど使用していない理由の 1 つはformula、構文が少しわかりにくいことです (たとえば、は単純に「とx*yの積」を意味するわけではありません)。xy

質問:

formula構文が正しく使用されていること、およびformula入力した が、考えている統計モデルを実際に実装していることを確認する方法を探しています。理想的には、実際にモデルをフィッティングする前に、この確認をしたいと思います。

例:

たとえば、線形回帰によってモデルのパラメーターaとパラメーターを見つけたいとします。素朴に、これをRに入力しますby = a + b*(x1*x2)

df <- data.frame(y=seq(5), x1=runif(5), x2=runif(5)) # toy data
lm(y~x1*x2, data=df)    # this is wrong

の出力から、lmと の余分な係数のために、これは私が望んでいたものではないことがわかりx1ますx2。ただし、フィッティング関数を呼び出す前に数式をデバッグできるはずです。(このモデルに適合する正しい方法はlm(y~x1:x2, data=df))

4

1 に答える 1

4

モデルを実行する前に数式をデバッグする方法の 1 つは、 formulaandを使用することupdateです。

f <- formula( y ~ x1*x2)
update( f , terms( f ) )
# y ~ x1 + x2 + x1:x2

f <- formula( y ~ x1:x2)
update( f , terms( f ) )
# y ~ x1:x2

a偶然にも、1 (1* a= ) を含めることでモデルの切片項 (つまり の係数) を指定することもできるaため、これは同等です。

f <- formula( y ~ 1 + x1:x2)
update( f , terms( f ) )
# y ~ x1:x2
于 2013-05-01T08:09:39.727 に答える