[英]Is my R formula equivalent to the statistical model I have in mind?
問題:
使用formula
構建統計模型是R語言的強大而優雅的特征。 我沒有盡可能多地使用formula
的原因之一是語法有點混亂(例如x*y
不僅僅意味着“ x
和y
的乘積”)。
題:
我正在尋找一種方法來確保我正確使用了formula
語法,並且我輸入的formula
確實實現了我想到的統計模型。 理想情況下,我希望在實際擬合模型之前得到此確認。
例:
說,我想通過線性回歸找到模型y = a + b*(x1*x2)
的參數a
和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
的輸出中看出,由於x1
和x2
的額外系數,這不是我想要的。 但是在調用擬合函數之前應該可以調試公式。 (適合此模型的正確方法是lm(y~x1:x2, data=df)
)
在運行模型之前調試公式的一種方法是使用formula
和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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.