【问题标题】:How to make a regression line in R using a normally distributed error and a uniformly distributed random variable如何使用正态分布的误差和均匀分布的随机变量在 R 中制作回归线
【发布时间】:2019-10-06 01:47:56
【问题描述】:

我在使用 R 方面非常陌生,我的第一个任务是尝试找到 100 个点并将 regression line 拟合为 y=5 + 3*x + e,其中 x 均匀分布,e 正态分布。我有一些使用 Python 的经验,但我在理解 R 语法方面有点困难。

xvals = runif(n = 100, min = -1, max = 1)
evals = rnorm(n = 100, mean = 0, sd = 1)
y<- c()
for (x in xvals) {
  for (e in evals) {
    append(y, 5 + 3*x + e)
  }
}

print(y)

我试过了,但 y 似乎是空的。谁能让我知道如何解决这个问题?另外,如果有人可以推荐除 R 文档之外的任何资源,请告诉我!

【问题讨论】:

    标签: r regression linear-regression


    【解决方案1】:

    R 中的算术运算符适用于向量,因此您根本不需要循环:

    y <- 5 + 3 * xvals + evals
    

    应该做的伎俩,即

    xvals <- runif(n = 100, min = -1, max = 1)
    evals <- rnorm(n = 100, mean = 0, sd = 1)
    y <- 5 + 3 * xvals + evals
    
    print(y)
    plot(xvals, y)
    

    y 在您的代码中可能为空,因为append 返回更新后的值,而不是直接更新向量。所以

    y <- append(y, 5 + 3*x + e)
    

    在您的循环中可能会达到您的预期,尽管您最终会得到 10,000 个值(因为您正在执行 100 * 100 个循环)。

    我想不出 R 文档的替代方案,抱歉...

    【讨论】:

      最近更新 更多