簡體   English   中英

在 lm 回歸中使用偏移量 - R

[英]Use of offset in lm regression - R

我有這個代碼

dens <- read.table('DensPiu.csv', header = FALSE)
fl <- read.table('FluxPiu.csv', header = FALSE)
mydata <- data.frame(c(dens),c(fl))

dat = subset(mydata, dens>=3.15)
colnames(dat) <- c("x", "y")
attach(dat)

我想對包含在dat 中的數據進行最小二乘回歸,該函數具有以下形式

y ~ a + b*x

我希望回歸線通過一個特定的點 P(x0,y0) (它不是原點)。

我正在嘗試這樣做

 x0 <- 3.15 

 y0 <-283.56

 regression <- lm(y ~ I(x-x0)-1, offset=y0)

(我認為在這種情況下不需要 data = dat )但我收到此錯誤:

Error in model.frame.default(formula = y ~ I(x - x0) - 1, : variable
 lengths differ (found for '(offset)').

我不知道為什么。 我想我沒有正確定義偏移值,但我在網上找不到任何示例。

有人可以向我解釋偏移是如何工作的嗎?

您的偏移項必須是一個變量,例如xy ,而不是數字常量。 因此,您需要使用適當的值在數據集中創建一列。

dat$o <- 283.56
lm(y ~ I(x - x0) - 1, data=dat, offset=o)

事實上,這里的真正問題是您應該使用長度與數據的行數(或長度,如果數據由向量組成)相同的向量指定offset 以下代碼將按預期完成您的工作:

regression <- lm(y ~ I(x-x0)-1, offset = rep(y0, length(y))

對於感興趣的人,這里有一個很好的解釋: http : //rfunction.com/archives/223

暫無
暫無

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

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