如何使用正态分布误差和均匀分布的随机变量在R中制作回归线

问题描述 投票:0回答:1

我在使用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个回答
0
投票

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文档的替代品,对不起...

© www.soinside.com 2019 - 2024. All rights reserved.