我想要计算出一种线性回归使用的lm()function in R.另外我想要得到的斜率回归,这里我明确地得到拦截到 lm().

我发现一个例子在互联网上,我试图阅读的R-帮助"?lm"(不幸的是,我不能理解的),但是我没有成功。任何人都可以告诉我在哪里我的错误是什么吗?

lin <- data.frame(x = c(0:6), y = c(0.3, 0.1, 0.9, 3.1, 5, 4.9, 6.2))
plot (lin$x, lin$y)

regImp = lm(formula = lin$x ~ lin$y)
abline(regImp, col="blue")

# Does not work:
# Use 1 as intercept
explicitIntercept = rep(1, length(lin$x))
regExp = lm(formula = lin$x ~ lin$y + explicitIntercept)
abline(regExp, col="green")

Thanls对你有所帮助。

有帮助吗?

解决方案

你可以删减的明确拦截从regressand和再适应的拦截-免费模式:

> intercept <- 1.0
> fit <- lm(I(x - intercept) ~ 0 + y, lin)
> summary(fit)

0 + 抑制配合的拦截的 lm.

编辑 到情节的配合,使用

> abline(intercept, coef(fit))

P.S.变量在你的模特看起来是错误的方式圆:它通常 y ~ x, ,不 x ~ y (即该regressand应该去上离开和回归量(s)在右)。

其他提示

我看到您已经接受了使用I()的解决方案。我以为基于offset()的解决方案会更明显,但是口味会有所不同,在通过offset解决方案工作后,我可以体会到I()解决方案的经济性: 通用标签

我同时使用了offset和I()。我还发现偏移量更易于使用(如BondedDust),因为您可以设置截距。

假设拦截为10。

plot (lin$x, lin$y) fit <-lm(lin$y~0 +lin$x,offset=rep(10,length(lin$x))) abline(fit,col="blue")

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top