Понимание нотации lm на вкладке рабочей области RStudio

В RStudio, когда вы создаете переменную в рабочей области, она отображается на вкладке рабочей области. По большей части информация говорит сама за себя. Например, если вы создадите переменную x <- rnorm(10), она будет называться x numeric[10], что означает, что это числовой вектор длины 10. Однако, если вы соответствуете модели, например, model <- lm(y~x), в рабочей области будет указано model lm[12]. Очевидно, что в рабочей области есть объект lm с именем «модель», но что такое 12? Более того, я заметил, что разные модели (даже если все lm) могут иметь разные номера.


person gung - Reinstate Monica    schedule 14.01.2014    source источник
comment
Я могу удалить этот вопрос, если это слишком глупо, но вчера я заметил, что цифры различаются, и я понял, что понятия не имею, что они означают. С тех пор меня это беспокоит.   -  person gung - Reinstate Monica    schedule 15.01.2014
comment
Для чего стоит модель, указанная с любыми категориальными предикторами (факторами), имеет в ней элемент contrasts, поэтому получается длина 13, а не 12...   -  person Ben Bolker    schedule 15.01.2014
comment
@БенБолкер, спасибо. Вы правы, числа иногда были 12, иногда 13.   -  person gung - Reinstate Monica    schedule 15.01.2014


Ответы (1)


lmвозвращает объект списка (класса lm). В этом списке 12 элементов. Все это совершенно не зависит от количества значений, используемых в регрессии.

m <- lm(x1 ~  y1, anscombe)

names(m)
[1] "coefficients"  "residuals"     "effects"  "rank"    "fitted.values" "assign"  "qr"           
[8] "df.residual"   "xlevels"       "call"          "terms"         "model"   

Вы можете получить доступ к «внутренним» частям объекта, используя имена элементов списка, например.

m$coefficients
(Intercept)          y1 
 -0.9975311   1.3328426 

Чтобы понять, как объекты выглядят внутри, используйте функцию str, например. str(m).

person Mark Heckmann    schedule 15.01.2014
comment
Хммм, так что я думаю, тогда можно было бы сказать model list{12], если идея состоит только в том, что объект модели lm представляет собой просто список длиной 12. Спасибо за вашу помощь. - person gung - Reinstate Monica; 15.01.2014
comment
@gung, это не "simply a list", а скорее тоже список (в дополнение к линейной модели). - person Ricardo Saporta; 15.01.2014
comment
@RicardoSaporta Разделить волосы: это в первую очередь список, но также и линейная модель из-за атрибута класса. - person Roland; 15.01.2014