2013-05-01 45 views
3

問題:我的R公式是否等於我想到的統計模型?

使用formula建立統計模型是R語言的強大和優雅的特點。 我之所以沒有使用formula的原因之一就是我的理解是語法有點混亂(例如x*y並不僅僅意味着「xy的產品」)。

問:

我正在尋找一種方法,以確保我已經正確地使用了formula語法和我進入formula真正實現了統計模型我都記在心裏。理想情況下,我希望在實際裝配模型之前進行確認。

例子:

說,我想找到的參數a並通過線性迴歸模型y = a + b*(x1*x2)b。天真,我中的R

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

我可以從lm輸出告訴,這不是我想要的東西,因爲x1x2額外係數進入這個。但在調用擬合函數之前應該可以調試公式。 (以適應這種模式的正確的方法是lm(y~x1:x2, data=df)),您可以調試公式之前運行的模型是利用formulaupdate

回答

4

方式一:

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 
相關問題