前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言建模入门:如何理解formula中y~.和y~x:z的含义?

R语言建模入门:如何理解formula中y~.和y~x:z的含义?

作者头像
拴小林
发布2020-07-10 15:46:02
7.4K0
发布2020-07-10 15:46:02
举报
文章被收录于专栏:数据驱动实践

背景:2019年的某月末日,三路人开局,兴趣所致组建了“花儿少年”:一个有组织、有纪律的R语言入门交流学习组织。自此,开启了一段小白&大师的成长史。

01

如何理解formula中y~.和y~x:z的含义?

y~. 和 y~x:z 是一个简单的formula。~和 : 是formula中的运算符,但它们与通常理解的数学运算符存在一定的差距。

公式formula中“~”符号将模型的响应变量(在~左侧)和解释变量(在~右侧)联系起来。常见于线性/一般线性模型(如lm(),glm()),树方法(如rpart())和图形表示(如coplot())以及其它一些场合(如table())。

以下是formula中其他一些运算符的含义:

  • ~ :~连接公式两侧,~的左侧是因变量,右侧是自变量。
  • + :模型中不同的项用+分隔。注意R语言中默认表达式带常数项,因此估计

只需要写y~x。

  • - :-表示从模型中移除某一项,y~x-1表示从模型中移除常数项,估计的是一个不带截距项的过原点的回归方程。此外,y~x+0或y~0+x也可以表示不带截距项的回归方程。
  • ::冒号在formula中表示交互项
  • * :*不表示乘法,

是等价的,

等价

  • ^ :

^2与

等价,所以

^2在formula中并不是

的平方的意思

如果想要在表达式中加入数学运算符,应该怎么办呢?对某一变量取对数,可以直接写log(y)~log(x),这一表达式的含义就是估计

;自然指数同样也可以直接表示为exp();但如果想要表示加减乘除和平方之类,需要用到I()这个运算符。(←是大写的i不是小写的L)

y~x+I(z^2)的含义:

y~x+z^2的含义:

(因为z没法和自己交互)

那么,y~x+w+z和y~x+I(w+z)有什么区别呢?

y~x+w+z的含义:

y~x+I(w+z)的含义:

可以发现,第二个公式将w+z作为一个整体估计这一变量的参数。

如果要估计动态面板模型,在plm包中,滞后变量(lagged variable)用运算符lag()表示,如lag(x,1)表示x滞后一期的滞后变量,lag(log(z),2)表示log(z)滞后两期的滞后变量;差分项则使用运算符diff()表示。

02

参考来源

  • 《R语言实战》
  • https://stat.ethz.ch/R-manual/R-devel/library/stats/html/formula.html
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据驱动实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档