R: переменные длины отличаются погрешностью при использовании lm - PullRequest
0 голосов
/ 28 февраля 2020

Я новичок в R и работаю над проектом, в котором нам нужно провести несколько экспериментов с генерацией моделей линейной регрессии.

Вот мой код:

# regression coefficients
beta1 = 1
beta2 = 0
beta3 = 5
beta4 = 1
beta5 = 1

# generated data
df <- data.frame(y1 = rnorm(n, mean = 50, sd = 1),
                sprem1 = rnorm(n, mean = 0, sd = 1),
                sprem2 = rnorm(n, mean = 10, sd = 2),
                sprem3 = rnorm(n, mean = 10, sd = 2),
                sprem4 = rnorm(n, mean = 20, sd = 2),
                sprem5 = rnorm(n, mean = 20, sd = 1))
fit.lm <- lm(formula = y1 ~ beta1 * sprem1 + beta2 * sprem2 + beta3 * sprem3 + beta4 * sprem4 + beta5 * sprem5, data = df)

Но я получаю ошибку:

Error in model.frame.default(formula = y1 ~ beta1 * sprem1 + beta2 * sprem2 + : variable lengths differ (found for 'beta1')

В чем проблема?

Любая помощь будет оценены.

1 Ответ

2 голосов
/ 28 февраля 2020

В формуле * интерпретируется как взаимодействие между каждым beta и слагаемыми из df. Это взаимодействие сродни поэлементному произведению, но beta являются скалярными, тогда как sprem являются векторами ... поэтому их длина различна. Трудно сказать, что вы хотите сделать, но вы, вероятно, ищете что-то вроде этого:

fit.lm <- lm(formula = y1 ~ I(beta1 * sprem1) + I(beta2 * sprem2) + I(beta3 * sprem3) + I(beta4 * sprem4) + I(beta5 * sprem5), data = df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...