R中具有因子的线性回归


10

我试图了解因素在R中的确切作用。假设我想使用R中的一些样本数据进行回归:

> data(CO2)
> colnames(CO2)
[1] "Plant"     "Type"      "Treatment" "conc"      "uptake"   
> levels(CO2$Type)
[1] "Quebec"      "Mississippi"
> levels(CO2$Treatment)
[1] "nonchilled" "chilled"   
> lm(uptake ~ Type + Treatment, data = CO2)

Call:
lm(formula = uptake ~ Type + Treatment, data = CO2)

Coefficients:
 (Intercept)   TypeMississippi  Treatmentchilled  
       36.97            -12.66             -6.86  

我了解这一点,TypeMississippi并将Treatmentchilled其视为布尔值:对于每一行,初始摄取为36.9712.66如果它是密西西比州的类型并且6.86是冷藏的,我们就减去它。我在理解以下内容时遇到了麻烦:

 > lm(uptake ~ Type * Treatment, data = CO2)

 Call:
 lm(formula = uptake ~ Type * Treatment, data = CO2)

 Coefficients:
                 (Intercept)                   TypeMississippi  
                      35.333                            -9.381  
            Treatmentchilled  TypeMississippi:Treatmentchilled  
                      -3.581                            -6.557  

将两个因子相乘在一起是什么意思lm

Answers:


17

要详细说明@John的答案:在R的公式中,您可以使用一些运算符来应用这些术语:“ +”仅添加它们,“:”表示您添加一个(或多个)引用它们之间的相互作用的术语(参见下文),“ *”表示两者,即:添加了“主要效果”,并且还添加了交互项。

那么这种相互作用意味着什么呢?好吧,在连续变量的情况下,确实添加了一个术语,它只是两个变量的倍数。如果您将身高和体重作为预测变量,并out ~ height * weight用作公式,则线性模型将包含三个“变量”,即体重,身高及其乘积(它也包含相互作用,但此处不那么重要)。

尽管我在上面提出了其他建议:分类变量的工作方式完全相同,但是现在“乘积”适用于每个分类变量的(一组)伪变量。假设您的身高和体重现在是分类的,每个都有三个类别(S(购物中心),M(中等)和L(大))。然后在线性模型中,这些变量中的每一个都由一组两个虚拟变量表示,它们是0或1(还有其他编码方式,但这是R中的默认方式,也是最常用的方式)。假设我们将S用作两者的参考类别,那么每次都有两个假人height.M和height.L(重量也类似)。

所以现在,模型out ~ height * weight现在包含4个虚拟变量+所有虚拟组合的所有乘积(我在这里没有明确地写出系数,这是隐含的):

(intercept) + height.M + height.L + weight.M + weight.L + height.M * weight.M + height.L * weight.M + height.M * weight.L + height.L * weight.L.

在上面的行中,“ *”现在再次表示一个简单的乘积,但这一次是虚拟的,因此每个乘积本身也为1(当所有因子为1时)或0(当至少一个不是)时。

在这种情况下,这8个“变量”在两个变量的所有组合中实现了不同的(均值)结果:现在,体重较小的人不再具有大体重的影响(对于他们来说,影响简单地由术语形成weight.L)与对于大人们(在这里,效果是weight.L + height.L * weight.L


7

为了贯彻John的答案,lm中的公式不使用算术符号,它们使用紧凑的符号符号来描述线性模型(特别是Wilkinson-Rogers符号,这里有一个很好的简短摘要http://www.physiol .ox.ac.uk /〜raac / R.shtml)。

基本上,在模型公式中包含A * B意味着您正在拟合A,B和A:B(A和B的相互作用)。如果相互作用项在统计学上有意义,则表明每种类型的治疗效果均不同。


3

在帮助中查找“公式”可能会有所帮助。您并不是在进行乘法运算,而是说您想要两个主要效果以及它们之间的相互作用。


1
(+1),但似乎更像是对我的评论。
Dmitrij Celov
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.