Динамическая функция A lm () - R - PullRequest
0 голосов
/ 22 января 2019

Давайте предположим, что у меня есть этот фрейм данных:

N <- 50
df  <- data.frame(
  LA1 = sample(1:10, size = N, replace = TRUE), 
  LA2 = sample(1:10, size = N, replace = TRUE), 
  LA3 = sample(1:10, size = N, replace = TRUE), 
  LA4 = sample(1:10, size = N, replace = TRUE), 
  LA5 = sample(1:10, size = N, replace = TRUE),
  LA6 = sample(1:10, size = N, replace = TRUE),
  LA7 = sample(1:10, size = N, replace = TRUE),
  LA8 = sample(1:10, size = N, replace = TRUE),
  LAY = sample(1:10, size = N, replace = TRUE),

  UF1 = sample(1:10, size = N, replace = TRUE), 
  UF2 = sample(1:10, size = N, replace = TRUE), 
  UF3 = sample(1:10, size = N, replace = TRUE), 
  UF4 = sample(1:10, size = N, replace = TRUE), 
  UF5 = sample(1:10, size = N, replace = TRUE),
  UF6 = sample(1:10, size = N, replace = TRUE),
  UFY = sample(1:10, size = N, replace = TRUE),

  EK1 = sample(1:10, size = N, replace = TRUE), 
  EK2 = sample(1:10, size = N, replace = TRUE), 
  EK3 = sample(1:10, size = N, replace = TRUE), 
  EK4 = sample(1:10, size = N, replace = TRUE), 
  EK5 = sample(1:10, size = N, replace = TRUE),
  EK6 = sample(1:10, size = N, replace = TRUE), 
  EK7 = sample(1:10, size = N, replace = TRUE), 
  EK8 = sample(1:10, size = N, replace = TRUE),
  EK9 = sample(1:10, size = N, replace = TRUE), 
  EK10 = sample(1:10, size = N, replace = TRUE), 
  EK11 = sample(1:10, size = N, replace = TRUE),
  EK12 = sample(1:10, size = N, replace = TRUE),
  EKY = sample(1:10, size = N, replace = TRUE),

  Z1 = sample(1:10, size = N, replace = TRUE), 
  Z2 = sample(1:10, size = N, replace = TRUE),
  Z3 = sample(1:10, size = N, replace = TRUE)
  )

Где я хочу вычислить эти модели:

m1=lm(formula = LAY ~ LA1+LA2+LA3+LA4+LA5+LA6+LA7+LA8, data = df)
m11=step(m1,direction="both")

m2=lm(formula = UFY ~  UF1+UF2+UF3+UF4+UF5+UF6,data = df)
m22=step(m2,direction="both")

m3=lm(formula = EKY ~  EK1+EK2+EK3+EK4+EK5+EK6+EK7+EK8+EK9+EK10+EK11+EK12, data = df)
m33=step(m3,direction="both")

m8=lm(formula = Z1 ~ LAY+UFY+EKY, data = df)
m88=step(m8,direction="both")

m9=lm(formula = Z2 ~ LAY+UFY+EKY, data = df)
m99=step(m9,direction="both")

m10=lm(formula = Z3 ~ LAY+UFY+EKY, data = df)
m100=step(m10,direction="both")

Как вы можете видеть, если размерность базы данных увеличивается (увеличиваетсяколичество LA, UF или EK независимых переменных) Мне придется вручную изменить ввод для моделей).Итак, я ищу способ:

  • Учитывая определенное количество независимых переменных (может быть 5, 10, 30 или более) для данной категории (LA, UFи EK), вход для модели изменяется автоматически.

Даже если я нашел другой синтаксис для расчета моделей (например, X*Z = [(X+Z)^3]), я не могу найти способ сделатьэто вычисление более динамично.

Соображения:

  • Количество независимых переменных (LA, UF, EK) может изменяться.
  • количество зависимых переменных (LAY, UFY, EKY) никогда не меняется.
  • Из выходных данных этой модели извлекается вектор коэффициента (на всякий случай этот).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...