Использование цикла в регрессии и коэффициента фильтрации - PullRequest
0 голосов
/ 27 октября 2018

Я довольно новичок в R. У меня есть набор данных с такими переменными, как y, x, c1, c2, m1, m2, m3 .... где,

**y is the key dependent variable
x is the key predictor
c1,c2,c3 are control variables and,
m1,m2,m3..mn are potential moderators( actually there are almost 150 variables in this category).
ID is the cluster

Я хочу создать модели линейной регрессии со случайным перехватом, используя lme4. Ниже приведен образец моих данных и моделей:

y <- rnorm(400, mean=10, sd=3)
x <- rnorm(400, mean=20, sd=2.1)
c1 <- rnorm(400, mean=2, sd=3)
c2 <- rnorm(400, mean=8, sd=3.1)
m1 <- rnorm(400, mean=12, sd=4.5)
m2 <- rnorm(400, mean=25, sd=4)
m3 <- rnorm(400, mean=30, sd=2)
m4 <- rnorm(400, mean=15, sd=3)
m5 <- rnorm(400, mean=12, sd=2.3)
ID <- sample( LETTERS[1:26], 400, replace=TRUE)


data <-as.data.frame(cbind(y,x,c1,c2,m1,m2,m3,m4,m5,ID))

data <- within(data, {
  y <- as.numeric(as.character(y))
  x <- as.numeric(as.character(x))
  c1 <- as.numeric(as.character(c1))
  c2 <- as.numeric(as.character(c2))
  m1 <- as.numeric(as.character(m1))
  m2 <- as.numeric(as.character(m2))
  m3 <- as.numeric(as.character(m3))
  m4 <- as.numeric(as.character(m4))
  m5 <- as.numeric(as.character(m5))
})

m1 <- lmer( y ~ c1 + c2 + x * m1 + (1|ID), data= data)
m2 <- lmer( y ~ c1 + c2 + x * m2 + (1|ID), data= data)
m3 <- lmer( y ~ c1 + c2 + x * m3 + (1|ID), data= data)
m4 <- lmer( y ~ c1 + c2 + x * m4 + (1|ID), data= data)
m5 <- lmer( y ~ c1 + c2 + x * m5 + (1|ID), data= data)

##Expected results (as table or data frame, numbers are only for reference)
Model   Var Estimates   P-value
 m1    x:m1    0.34      0.05
 m2    x:m2    0.45      0.001
 m4    x:m3   -0.45      0.968
 m4    x:m4   -0.45      0.218
 m5    x:m5    0.12      0.0001

Я хочу создать таблицу, в которой есть коэффициенты только взаимодействий и значение p взаимодействия всех моделей. Мне интересно, как сделать это с помощью цикла, потому что у меня есть более 50 моделей, которые мне нужно запустить. Любая помощь или указания о том, как сделать с помощью цикла будет принята с благодарностью. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...