[英]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)').
我不知道為什么。 我想我沒有正確定義偏移值,但我在網上找不到任何示例。
有人可以向我解釋偏移是如何工作的嗎?
您的偏移項必須是一個變量,例如x
和y
,而不是數字常量。 因此,您需要使用適當的值在數據集中創建一列。
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.