首页 > 解决方案 > 一个 lm() 动态函数 - R

问题描述

假设我有这个数据框:

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),UFEK将不得不手动修改模型的输入)。所以,我正在寻找一种方法:

即使我找到了不同的语法来计算模型(如X*Z = [(X+Z)^3]),我也找不到使这种计算更加动态的方法。

注意事项:

标签: rlm

解决方案


推荐阅读