【问题标题】:Extract coefficients from a list of regression results in R从 R 中的回归结果列表中提取系数
【发布时间】:2017-12-11 00:39:53
【问题描述】:

我已经从数据框数据中创建了向量并将它们存储在一个列表中。举个例子:

# Simulation data
vec2 <- c(2:20)
vec3 <- c(21:39)
vec4 <- c(31:49)
vec5 <- c(2:20)
vec6 <- c(2:20)
vec7 <- c(21:39)
vec8 <- c(31:49)
vec9 <- c(21:39)
vec10 <- c(31:49)
# Make simulated df to replicate something close to what I have
df <- data.frame(vec2,vec3,vec4,vec5,vec6,vec7,vec8,vec9,vec10)

所以我们有一个虚拟的df。接下来,我将提取回归 (y) 所需的行:

    # Extract data from df and place in a list 
var <- list()
for (i in 1:nrow(df)) {
  var[i] <- list(c(df$vec2[i],
                   df$vec3[i],
                   df$vec4[i],
                   df$vec5[i],
                   df$vec6[i],
                   df$vec7[i],
                   df$vec8[i],
                   df$vec9[i],
                   df$vec10[i]))
}

# Create x regression variable input 
log.lags <- c(2:10)

好的,现在我们应该有一个列表,就是这么长:

长度(变量) [1] 19

在两个 y,x 回归变量长度相同的情况下:

> length(var[[1]])
[1] 9

> length(log.lags)
[1] 9

现在我想对 var list 作为 y 自变量和 log.logs 作为 x,独立运行回归。

I try this with the following: 
#Initialize list
results<-vector("list", length(var)) 
# Run regression
for(i in 1:length(df)){
  results[[i]]<-lm(log(var[[i]])~log(log.lags), data = var)
}

这行得通...我怎样才能从结果列表中提取系数?

好的,想通了:

results<-vector("list", length(var)) 
coef<-vector("list", length(var)) 
for(i in 1:length(df)){
  results[[i]]<-lm(log(var[[i]])~log(log.lags), data = var)
  coef[[i]]<- coef(results[[i]])[2]
}

【问题讨论】:

  • 也许将 1:length(df) 更改为 1 : nrow(df)。另外,variancevar 一样吗?
  • 最佳实践是避免使用 R 命令名称作为用户定义的变量名称。

标签: r linear-regression


【解决方案1】:

这个怎么样?

res <- lapply(var, function(x) lm(log(x)~log(log.lags)))
coefs <- lapply(res, function(x) coef(x)[2])

【讨论】:

  • 给我一个 lm.fit 答案(它更快) lm.fit 与 log(y)~log(x) 并且我接受,我现在关闭...
  • lm.fit 需要一个矩阵输入...而我的输入是一个列表。 lm 实在是太慢了!!
  • 您可以执行以下操作.. 但是,我认为它不会更快。 ` res2
猜你喜欢
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
相关资源
最近更新 更多