Как сделать линию регрессии в R, используя нормально распределенную ошибку и равномерно распределенную случайную величину - PullRequest
1 голос
/ 06 октября 2019

Я очень новичок в использовании R, и моя первая задача - попытаться найти 100 точек и установить линию регрессии , так как 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)

Я пробовал это, но у кажется пустым. Может кто-нибудь дать мне знать, как решить эту проблему? Кроме того, если кто-то может порекомендовать какие-либо ресурсы, которые могут помочь, кроме документации R, пожалуйста, дайте мне знать!

1 Ответ

0 голосов
/ 06 октября 2019

Арифметические операторы в 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)

в ваших циклах может делать то, что вы ожидали, хотя в итоге вы получите 10000 значений (как вы делаете 100 * 100 циклов).

Не могуПодумайте об альтернативе документации R с моей головы, извините ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...