6

私はこのコードを持っています

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)').

どうしてか分かりません。オフセット値を正しく定義していないと思いますが、オンラインで例を見つけることができませんでした。

誰かがオフセットの仕組みを説明してくれませんか?

4

2 に答える 2

11

オフセット項は、数値定数ではなく、や などの変数でなければなりません。そのため、適切な値を使用してデータセットに列を作成する必要があります。xy

dat$o <- 283.56
lm(y ~ I(x - x0) - 1, data=dat, offset=o)
于 2013-06-04T14:45:53.593 に答える