2017-02-03 20 views
0

, скажем, у меня есть формула (например, myformula <- y ~ x1 + x2) и набор данных d. для диагностических целей, я хотел бы видеть, какие наблюдения в конечном итоге используются в моей линейной регрессии (r <- lm(myformula, data=d)). это в основном влечет за собой создание кадра данных с y, x1 и x2 в соответствии с d и удаление всех наблюдений, в которых отсутствуют какие-либо данные (complete.obs). или, возможно, манипулировать содержимым объекта r?показать первые несколько сообщений, использованных в заявлении lm

совет оценен.

/IAW

ответ

2

Прежде чем пытаться свернуть свой собственный, посмотрите на модель объекта (используйте str(r), чтобы получить пик на то, что там) или искать соответствующие биты в документации. От ?lm:

model, x, y, qr логические выражения. Если TRUE возвращаются соответствующие компоненты подгонки (модельная модель, модельная матрица, ответ, QR-разложение).

Поскольку model по умолчанию является истинным, все, что нам нужно сделать, это искать его в результате. Значение раздел документации описывает объект, возвращаемый:

y, если требуется, ответ используется.

x если требуется, используется матрица модели.

model если требуется (по умолчанию), используется рамка модели.

Теперь пример:

> mod = lm(mpg ~ disp + I(disp^2), data = mtcars) 
> head(mod$model) 
        mpg disp I(disp^2) 
Mazda RX4   21.0 160  25600 
Mazda RX4 Wag  21.0 160  25600 
Datsun 710  22.8 108  11664 
Hornet 4 Drive 21.4 258  66564 
Hornet Sportabout 18.7 360 129600 
Valiant   18.1 225  50625 

Обратите внимание, что это строго данные и по-прежнему data.frame. если вы хотите получить модельную матрицу, a matrix с фиктивными переменными для перехвата и любых факторов, установите x = TRUE в сообщении lm, а затем просмотрите mod$x.