【发布时间】:2012-05-21 21:31:58
【问题描述】:
如果在 R 中我使用该行:
linear <- lm(y~x-1)
R 会找到一条经过原点的回归线。
我的问题是,原点是 x=0 还是 x 值中的最低值?
例如,如果我的 x 值为 1998 到 2011 年,拟合线将通过 1998 年或 0 年?
【问题讨论】:
-
如果你想让拟合线穿过1998,你可以试试
lm(y~I(x-1998)-1)
如果在 R 中我使用该行:
linear <- lm(y~x-1)
R 会找到一条经过原点的回归线。
我的问题是,原点是 x=0 还是 x 值中的最低值?
例如,如果我的 x 值为 1998 到 2011 年,拟合线将通过 1998 年或 0 年?
【问题讨论】:
lm(y~I(x-1998)-1)
等式中带有“-1”,斜率将通过原点。您可以通过预测 x=0 处的值来看到这一点:
x <- 1998:2011
y <- 3*x+rnorm(length(x))
fit <- lm(y~x-1)
summary(fit)
newdata <- data.frame(x=0:10)
predict(fit,newdata)
【讨论】:
正如@Marcinthebox 指出的那样,它将通过原点。以图形方式查看:
x <- seq(-5,5)
y <- 3*x+rnorm(length(x))
fit.int <- lm(y~x)
fit <- lm(y~x-1)
summary(fit)
plot(y~x,xlim=c(-.1,.1),ylim=c(-.1,.1))
abline(fit,col="red")
abline(fit.int,col="blue")
abline(h=0)
abline(v=0)
【讨论】: