【问题标题】:Creating a customised results table from many linear models [duplicate]从许多线性模型创建自定义结果表 [重复]
【发布时间】:2016-04-08 01:54:15
【问题描述】:

我在一个生成大量数据的分析实验室工作。我们进行模型拟合,并对模型系数(截距、a、b)、r_squared 和残差标准误差感兴趣。多达 70 个因变量(响应)的数量相当大。我想从 mylms 生成一个表,其中行是 a 到 f 的响应,列是提到的模型参数。

我无法根据我在网上找到的解决方案来适应我的情况:

解决方案的一部分肯定是存储参数的摘要(mylms)。

这是我想找到解决方案的简化示例:

#To generate a dataset
x <- c(1:30)
x2 <- x*x
a <- x2
b <- jitter(a, factor=10)
c <- jitter(b, factor=30)
d <- jitter(c, factor=40)
e <- jitter(d, factor=50)
f <- jitter(e, factor=60)
z <- cbind(a,b,c,d,e,f)

# The matrix y are the responses of x
y <- as.matrix(z)

# Define the weights for the regression
w <- 1/x

# create linear models
mylms <- lm(y~x+x2, weights=w)

【问题讨论】:

  • 所以你有多达 70 列,其中的字段是系数?你有多少行?总是 6 (A-F)?
  • 实际上,在我的响应矩阵 y 中,列数会发生变化。它可能是 30,但也可能是 70 或 15。矩阵 y 中的列数将等于我的结果表中的行数。但结果表总是有 5 行:intercept、a、b、r_squared 和残差标准误差。
  • 当我使用glance时我得到这个错误:glance不支持多个响应我设法通过tidy函数获得系数! :)
  • Rob,能否提供解决方案的代码?

标签: r regression lm summary


【解决方案1】:

你可以这样做:

mylms$residuals

或者获取残差的范围,例如:

apply(mylms$residuals,2,range)

或获取分位数例如:

apply(mylms$residuals,2,quantile,seq(0.1,0.9,by=0.1))

【讨论】:

  • 其实我是在寻找残差标准误,而不是每个残差本身!
  • 我找到了解决方案 Rest.stabw
猜你喜欢
  • 2017-11-30
  • 2023-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多