R - сравнение простых моделей регрессии, которые были запущены на нескольких DV - PullRequest
1 голос
/ 28 января 2020

Скажем, у вас есть следующий код в R:

model1 <- lm(cbind(DV1, DV2, DV3) ~ IV1 + IV2, data)

Этот код должен выполнять отдельные регрессии: IV1 + IV2 на DV1, затем IV1 + IV2 на DV2 и, наконец, IV1 + IV2 на DV3.

Скажем, у нас также есть модель, которая включает взаимодействие между IV1 и IV2:

model2 <- lm(cbind(DV1, DV2, DV3) ~ IV1 * IV2, data)

Чтобы проверить, есть ли взаимодействие, я обычно использую:

anova(model1, model2)

Однако это возвращает только одно значение p, тогда как я ожидал три значения p - одно для DV1, одно для DV2 и одно для DV3. Как мне добиться того, что я пытаюсь?

1 Ответ

1 голос
/ 29 января 2020

Мы можем использовать Map, если это делается индивидуально

model1n <- lapply(c('mpg', 'disp'), function(x) 
    lm(reformulate(response = x, 'cyl + am'), data = mtcars))
model2n <- lapply(c('mpg', 'disp'), function(x) 
     lm(reformulate(response = x, 'cyl * am'), data = mtcars))
Map(anova, model1n, model2n)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...