获取`lm()`返回的"mlm"对象的回归系数的标准误差

Cla*_*nry 4 regression r linear-regression lm mlm

我想针对同一个回归程序运行10次回归,然后在不使用循环的情况下提取所有标准错误.

depVars <- as.matrix(data[,1:10]) # multiple dependent variables
regressor <- as.matrix([,11]) # independent variable
allModels <- lm(depVars ~ regressor) # multiple, single variable regressions

summary(allModels)[1] # Can "view" the standard error for 1st regression, but can't extract...
Run Code Online (Sandbox Code Playgroud)

allModels存储为"mlm"对象,这非常难以使用.如果我可以存储一个lm对象列表或一个感兴趣的统计数据矩阵,那就太棒了.

同样,目标是不使用循环.这是一个等效的循环:

regressor <- as.matrix([,11]) # independent variable
for(i in 1:10) { 
  tempObject <- lm(data[,i] ~ regressor) # single regressions
  table1Data[i,1] <- summary(tempObject)$coefficients[2,2] # assign std error
  rm(tempObject)
  }
Run Code Online (Sandbox Code Playgroud)

Joh*_*ohn 5

如果您将数据放在长格式中,使用lmListnlme或lme4包很容易得到一堆回归结果.输出是回归结果列表,摘要可以为您提供系数矩阵,就像您想要的那样.

library(lme4)

m <- lmList( y ~ x | group, data = dat)
summary(m)$coefficients
Run Code Online (Sandbox Code Playgroud)

那些系数是一个简单的三维数组,因此标准误差为[,2,2].