我是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')问题出在哪里?
任何帮助都将不胜感激。
发布于 2020-02-28 19:00:46
在公式中,*被解释为每个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)https://stackoverflow.com/questions/60450090
复制相似问题