R语言线性回归:如何为X+Y项单独获取回归系数?
线性回归中给(X+Y)单独设置系数的解决办法
你写的lm(T ~ X + Y + (X+Y), A)出不来(X+Y)的系数,核心原因是X、Y和X+Y完全线性相关——X+Y就是X加Y的结果,R的lm()会自动删掉这种共线性的变量,不然没法求解回归系数。
给你两种简单的解决方式:
方式一:先创建新变量
先在数据框里算出X+Y的新列,再将其纳入模型:
A$XY_sum <- A$X + A$Y m9 <- lm(T ~ X + Y + XY_sum, A) summary(m9)
方式二:用I()函数包裹表达式
I()能强制R把括号里的内容当成单个独立变量,而不是拆解成模型公式的一部分:
m9 <- lm(T ~ X + Y + I(X+Y), A) summary(m9)
额外提醒
这两种方法本质逻辑一致,都是让模型识别出X+Y是独立变量。但要注意:这种模型设定需要有合理的业务或研究逻辑支撑,因为X、Y和X+Y的系数会存在线性约束(比如X的系数加上(X+Y)的系数,等于原模型中X的系数),如果没有明确的研究假设,这种设定可能没有实际统计意义。
内容的提问来源于stack exchange,提问作者Lau
相关产品推荐
相关产品推荐

