【发布时间】:2015-06-26 13:08:38
【问题描述】:
我有一个线性回归模型 y = 50 + 10x + e,其中 e 是正态分布的。
每次拟合模型时,我都需要使用 20 对 x 和 y 值,其中 x 是 seq(from = 0.5, to = 10, by = 0.5)。
我的第一个任务是拟合模型 100 次。也就是说,生成 100 个样本,每个样本由 10 对 x 和 y 值组成。
我的第二个任务是保存 100 个模型拟合实例的截距和斜率。
我不成功的代码如下:
linear_model <- c()
intercept <- c()
slope <- c()
for (i in 1:100) {
e <- rnorm(n = 20, mean = 0, sd = 4)
x <- seq(from = 0.5, to = 10, by = 0.5)
y <- 50 + 10 * x + e
linear_model[i] <- lm(formula = y ~ x)
intercept[i] <- summary(object = linear_model[i])$coefficients[1, 1]
slope[i] <- summary(object = linear_model[i])$coefficients[2, 1]
}
【问题讨论】:
-
如果您从
linear_model <- list()开始,然后将所有linear_model[i]实例替换为linear_model[[i]],应该没问题。您不能制作线性模型的向量,但可以制作它们的列表。 -
感谢@josiber,您的解决方案有效。请随时将您的评论复制到答案中,我可以给它打勾。
标签: r