首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:使用lm时可变长度不同错误

问R:使用lm时可变长度不同错误
EN

Stack Overflow用户
提问于 2020-02-28 18:44:39
回答 1查看 141关注 0票数 0

我是R的新手,我正在做一个项目,在这个项目中,我们必须做一些生成线性回归模型的实验。

下面是我的代码:

代码语言:javascript
复制
# 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)

但我得到一个错误:

代码语言:javascript
复制
Error in model.frame.default(formula = y1 ~ beta1 * sprem1 + beta2 * sprem2 + : variable lengths differ (found for 'beta1')

问题出在哪里?

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-28 19:00:46

在公式中,*被解释为每个beta与来自df的术语之间的交互。这种交互类似于基于元素的产品,但是beta是标量的,而sprem是矢量的……所以它们的长度是不同的。很难说你想做什么,但你可能正在寻找这样的东西:

代码语言:javascript
复制
fit.lm <- lm(formula = y1 ~ I(beta1 * sprem1) + I(beta2 * sprem2) + I(beta3 * sprem3) + I(beta4 * sprem4) + I(beta5 * sprem5), data = df)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60450090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档