簡體   English   中英

R:使用 lm 時可變長度不同的錯誤

[英]R: variable lengths differ error when using lm

我是 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')

問題出在哪兒?

任何幫助,將不勝感激。

在公式中, *被解釋為每個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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM