我想用一个指定的斜率来拟合一个线性回归线到一个数据集。我读过this thread关于使用显式拦截进行同样操作的内容。
0+抑制了截距的拟合;坡度的对应技巧是什么?例如,为了使一条直线与斜率1.5相匹配,我尝试了以下方法
set.seed(6)
x <- runif(100, -3, 3)
y <- 2 + x + rnorm(100)
model1<-lm(y ~ x)
plot(x,y)
abline(model1,col="red")
abline(coef(model1),1.5,col="dark green")但是第二个and函数只是从model1和斜率1.5处截取。而我希望回归线有斜率1.5,找到最适合的数据点,然后计算截取从该回归线。
发布于 2015-10-23 00:34:35
我认为一种方法是从1.5*x中减去y,然后只使用一个截取项来拟合y:
mod2 <- lm(I(y-1.5*x)~1)
plot(x, y)
abline(mod2$coefficients, 1.5)

这是与固定斜率1.5的最佳线性拟合。当然,这种拟合在视觉上不是很吸引人,因为模拟的斜率是1,而固定的斜率是1.5。
发布于 2015-10-23 01:13:00
要找到截取的值,实际上不需要回归。既然是Y = a + b * X + ϵ,那么是E[Y - b * X] = E[a] + E[ϵ],假设是E[a] = a和E[ϵ] = 0,其中E[]是期望运算符。因此,a = E[Y - b * X].
转化为R,这意味着拦截a是:
b1 <- 1.5
a <- mean(y - b1 * x)这是受this question评论的启发。
https://stackoverflow.com/questions/33292969
复制相似问题