繁体   English   中英

从R中的回归结果列表中提取系数

[英]Extract coefficients from a list of regression results in R

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

# 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列表进行回归,将其作为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]
}

那这个呢?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM