lm()$ assign:它是什么?

时间:2016-03-25 18:33:07

标签: r glm lm s

线性模型拟合的assign属性是什么?它应该以某种方式提供响应项的位置,但在实践中它似乎枚举模型中的所有系数。我的理解是assign是来自S的遗留物,glm()不支持它。我需要提取glm的等效信息,但我不明白实现对lm的作用,也似乎无法找到源代码。 lm.fit的帮助文件无益地说:

  

非空拟合将包含与线性拟合相关的组件assigneffects和(除非未请求)qr,以供summary等提取函数使用和effects

2 个答案:

答案 0 :(得分:5)

您可以在help("model.matrix")中找到,这会创建以下值:

  

有一个属性“assign”,一个带有条目的整数向量   矩阵中的每一列给出了给出的公式中的项   上升到专栏。值0对应截距(如果有),和   term.labels给出的顺序中的正值   与对象相对应的术语结构的属性。

因此,它将设计矩阵映射到公式。

答案 1 :(得分:2)

来自$assign的数字代表相应的预测变量。如果您的预测变量分类为3级,您将在$assign来电中看到相应的数字(3-1)次。例如:

data(mpg, package = "ggplot2")
m = lm(cty ~ hwy + class,data = mpg)
m$assign 
  [1] 0 1 2 2 2 2 2 2
# Note how there is six 2's to represent the indicator variables
# for the various 'class' levels. (class has 7 levels)

您将看到定量预测变量只有一个值(上例中的hwy),因为它们在设计公式中由一个项表示。