繁体   English   中英

我的R公式是否与我想到的统计模型相当?

[英]Is my R formula equivalent to the statistical model I have in mind?

问题:

使用formula构建统计模型是R语言的强大而优雅的特征。 我没有尽可能多地使用formula的原因之一是语法有点混乱(例如x*y不仅仅意味着“ xy的乘积”)。

题:

我正在寻找一种方法来确保我正确使用了formula语法,并且我输入的formula确实实现了我想到的统计模型。 理想情况下,我希望在实际拟合模型之前得到此确认。

例:

说,我想通过线性回归找到模型y = a + b*(x1*x2)的参数ab 天真地,我在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

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM