【发布时间】:2021-11-13 01:50:53
【问题描述】:
我正在尝试编写一个函数来运行多个回归,然后将输出存储在一个向量中。我想要的是函数从我将提供的列表中选择因变量,然后在相同的右侧变量上运行回归。不知道该怎么做。任何提示将不胜感激。
my_data <- data.frame(x1=(1:10) + rnorm(10, 3, 1.5), x2=25/3 + rnorm(10, 0, 1),
dep.var1=seq(5, 28, 2.5), dep.var2=seq(100, -20, -12.5),
dep.var3=seq(1, 25, 2.5))
## The following is a list that tells the function
dep.var <- list(dep.var1=my_data$dep.var1, dep.var2=my_data$dep.var2)
## which dependent variables to use from my_data
all_models <- function(dep.var){lm(dep.var ~ x1 + x2, data=my_data)}
model <- sapply(dep.var, all_models) ## The "sapply" here tells the function to
## take the dependent variables from the list dep.var.
我希望“模型”列表有两个对象:带有 dep.var1 的 model1 和带有 dep.var2 的 model2。然后根据需要,我将使用 summary(model#) 来查看回归输出。
我知道理论上这在使用矢量(即 p)时有效:
p <- seq(0.25, 0.95, 0.05)
s <- function(p) {1 - pnorm(35, p*1*44, sqrt(44)*sqrt(p*(1 - p)))}
f <- sapply(p, s)
但我无法按照我的回归模型的要求让整个工作正常进行。它有点工作,因为您可以运行并检查“模型”,它会向您显示两个回归输出 - 但它太可怕了。并且“模型”没有显示回归规范,即 dep.var1 ~ x1 + x2。
【问题讨论】:
标签: r function regression