lm(y~x*g) игнорируя одно значение для g
Я пытаюсь использовать R в первый раз.
В этом случае, y
это потребление кислорода, x
время, а g - состояние, обозначенное не более чем тремя буквами (NYF, IR, F, M или NF). Он будет запускать регрессии для каждого статуса, кроме F.
[Примечание: я также пытался выполнить это с несколькими регрессиями, используя функцию подмножества. Когда я использую
lm(O2~time,subset(data,Status=="NYF"))
на самом деле он не придерживается подмножества и дает регрессию для всего набора данных независимо от того, в какой статус я вхожу.
Как получить несколько простых линейных регрессий из одного набора данных на основе кодов в status
столбец?
2 ответа
Лм (у ~ х, подмножество (дд, г =='NYF'))
подходящий синтаксис, чтобы соответствовать строке для одного статуса (хотя другие дают вам варианты, которые будут работать). Я бы проверил, чтобы ваш фрейм данных действительно назывался "data", а ваша переменная состояния - "Status".
Ваш вопрос не ясен. Предположим, у вас есть фрейм данных, dd
с тремя столбцами: y
, x
, g
, Переменные y
а также x
являются числовыми и g
принимает значения NYF
, IR
, F
, M
, или же NF
, Чтобы выполнить простую линейную регрессию для определенного статуса, тогда:
lm(y ~ x, data=dd[dd$g=="NYF",])
#Or
lm(y ~ x, data=dd[dd$g=="IR",])
Чтобы выполнить множественную линейную регрессию, попробуйте
lm(y ~ x + g, data=dd)
где наличие или отсутствие фактора указывается двоичной переменной.