首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R回归中的I(变量_1/变量_2)

R回归中的I(变量_1/变量_2)
EN

Stack Overflow用户
提问于 2019-09-11 04:52:45
回答 2查看 39关注 0票数 1
代码语言:javascript
复制
R> data("FoodExpenditure", package = "betareg")
R> fe_lm <- lm(I(food/income) ~ income + persons, data = FoodExpenditure)

据我所知,I(food/income)创建了一个新变量,即食物与收入的比率,这是正确的吗?有没有其他可能的组合(函数)?

EN

回答 2

Stack Overflow用户

发布于 2019-09-11 05:00:34

注意到这两个结果是相同的。

代码语言:javascript
复制
# transformation in formula
lm(I(food/income) ~ income + persons, data = FoodExpenditure)
# Call:
# lm(formula = I(food/income) ~ income + persons, data = FoodExpenditure)
# 
# Coefficients:
# (Intercept)       income      persons  
#    0.341740    -0.002469     0.025767  


# transformation in data
dd <- transform(FoodExpenditure, ratio=food/income)
lm(ratio ~ income + persons, data = dd)
# Call:
# lm(formula = ratio ~ income + persons, data = dd)
# 
# Coefficients:
# (Intercept)       income      persons  
#    0.341740    -0.002469     0.025767  

使用lm()的公式中的I()函数允许您执行任何您喜欢的变量函数。(只需确保函数不会更改行数,否则您将无法正确地拟合模型。)

票数 2
EN

Stack Overflow用户

发布于 2019-09-11 05:47:51

是和是。

公式?formula的文档中给出了其他可能的组合和运算符。下面的内容主要取自它。

表示术语之间的交互

*运算符表示因子交叉:‘a*b’解释为‘a+b+a:b’。

^运算符表示交叉到指定的程度。例如,‘(a+b+c)^2’与‘(a+b+c)*(a+b+c)’相同,后者又扩展为包含‘a’、‘b’和‘c’的主效应以及它们的二级相互作用的公式。%运算符中的%指示其左侧的术语嵌套在右侧的术语中。例如,‘a+b%in%a’扩展为公式‘a+a:b’。-运算符删除指定的项,以便‘(a+b+c)^2-a:b’与‘a+b+c+ b:c +a:c’相同。它还可以用来删除截距项:当拟合线性模型时,‘y~x-1’指定一条通过原点的直线。没有截距的模型也可以指定为‘y~x+0’或‘y~0+x’。

算术表达式-虽然公式通常只涉及变量和因子名称,但它们也可以涉及算术表达式。公式‘log(Y)~a+log(X)’是非常合法的。I()为了避免这种混淆,可以使用函数‘i()’将运算符在算术意义上使用的模型公式的那些部分括起来。例如,在公式‘y~a+i(b+c)’中,术语‘b+c’应解释为‘b’和‘c’之和。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57878073

复制
相关文章

相似问题

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