2013-04-30 66 views
22

在R中指定公式的方法有很多,有时是相互矛盾的。有没有一种全面而简洁的参考用于将概念模型映射到R语法,而不是?formular公式是否有比公式更好的参考?

我对广泛的概述,包括用于指定在非线性公式和分层模型的语法如glmlmergamearth,包括(/),用于嵌套,randomfixed在混合模型的效果,样本的ste,以及在热门贡献包中找到的其他。

回答

23

R附带了几本手册,当运行R时,可以从右上角的香草R的“帮助”菜单访问,也可以在几个地方联机。例如,

An Introduction to R”的第11章有几页公式。

我不知道它构成了一个“全面”的资源,但它涵盖了许多你需要知道的公式如何工作。

*事实上,几乎所有的东西用户也许95%将永远使用

的规范参考公式S语言可能是

钱伯斯J.M.,和黑斯蒂T.J.,编。 (1992), 统计模型在S。查普曼&霍尔,伦敦。

虽然该方法的起源来自

威尔金森G.N.和罗杰斯CE值(1973年)。 “用于分析方差的因子模型的符号描述。” 应用统计,,392-399

一些作为R新书讨论的公式,但我不知道我会打电话给任何人的全面。

也有大量的在线资源(例如here)经常会提供大量非常有用的信息。这就是说,一旦你习惯于在R中使用公式,并且有一个可以放置更多知识的上下文,那么帮助页面就会包含令人惊讶的大量信息(连同其链接的其他页面)。它有点简洁和含糊,但是一旦你有了更广泛的R知识的基础知识,它可以是非常有用的。

与R公式有关的具体问题(取决于它们的内容)很可能是StackOverflow或CrossValidated的主题 - 的确有一些相当先进的问题涉及到公式已被发现(使用[r] formula等搜索成果丰硕),并且有更多这样的问题可以帮助用户解决这些问题;如果你有具体问题,我鼓励你问。

至于'冗余'和'冲突',我想你的意思是说,有很多方法可以指定一个非拦截模型这一事实:例如,y ~ . -1y ~ . +0都可以工作,但略有不同上下文都有意义。

此外,还有一个常见的问题是必须从公式界面中分离二次和更高阶项(以使用I(x^2)作为预测因子,所以它可以通过公式接口不受伤害并且存活得足够远以被解释为代数表达式)。再次,一旦你了解到“幕后”发生的事情,似乎不那么麻烦。

我刚才提到的事情,具体的例子:

lm(dist ~ . -1, data=cars) # "remove-intercept-term" form of no-intercept 
lm(dist ~ . +0, data=cars) # "make-intercept-zero" form of no-intercept 
lm(dist ~ speed + speed^2, data=cars) # doesn't do what we want here 
lm(dist ~ speed + I(speed^2), data=cars) # gets us a quadratic term 
lm(dist ~ poly(speed,2), data=cars) # avoid potential multicollinearity 

我同意配方接口至少可以用一点点进一步的指导和更好的例子在?formula帮助。

+0

非常感谢你这个有用的答案。我对更广泛的概述感兴趣,感兴趣的内容包括嵌套变量的说明和固定与随机效果。而且,不是'x + I(x^2)'和'poly(x,2)'是否相等?你的答案表明否则。其他感兴趣的方面包括在'gam'等函数中指定样条函数(例如用's'和'te')。 – Abe 2013-05-01 17:22:47

+0

参考倒数第二段(关于bugbear),使用'I'不限于多项式项的说明 - 还需要指定其他变量变换(包括加法,乘法,对数,指数)。 – Abe 2013-05-01 17:33:02

+0

这对加法和乘法是正确的,因为它们对公式接口有意义。但是'lm(dist〜log(速度),data = cars)'应该是这样。 – 2013-05-01 22:35:57