首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的R公式是否相当于我心目中的统计模型?

我的R公式是否相当于我心目中的统计模型?
EN

Stack Overflow用户
提问于 2013-05-01 07:54:04
回答 1查看 176关注 0票数 3

问题:

使用formula构建统计模型是R语言的一个强大而优雅的特性。我没有像我应该的那样多地使用formula的原因之一是语法有点混乱(例如,x*y并不只是指“xy的产品”)。

问题:

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

示例:

比方说,我想用线性回归的方法找出模型ab的参数y = a + b*(x1*x2)。天真地,我在R中输入了这个

代码语言:javascript
运行
复制
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))

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-01 08:09:39

在运行模型之前可以调试公式的一种方法是使用formulaupdate

代码语言:javascript
运行
复制
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

巧合的是,您还可以通过包含1 (1* a = a)来指定模型中的截距项(即用于a的系数),因此这是等价的:

代码语言:javascript
运行
复制
f <- formula( y ~ 1 + x1:x2)
update( f , terms( f ) )
# y ~ x1:x2
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16314599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档