具有指定斜率的线性回归

bee*_*mer 6 regression r

我想将具有指定斜率的线性回归线拟合到数据集.我读了这篇关于用明确拦截做同样事情的帖子.

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")
Run Code Online (Sandbox Code Playgroud)

但是第二个abline函数只接受了model1和slope 1.5的截距.虽然我希望回归线的斜率为1.5,找到最适合数据点,然后从该回归线计算截距.

jos*_*ber 8

我想一个办法是减去1.5*xy再适合y只用截距项:

mod2 <- lm(I(y-1.5*x)~1)
plot(x, y)
abline(mod2$coefficients, 1.5)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这表示具有固定斜率1.5的最佳线性拟合.当然,这种拟合在视觉上并不十分吸引人,因为模拟斜率为1而固定斜率为1.5.


coc*_*mas 7

要找到截距的值,您实际上不需要回归.从那Y = a + b * X + ?以后E[Y - b * X] = E[a] + E[?],通过假设E[a] = aE[?] = 0,E[]期望运算符在哪里.因此,a = E[Y - b * X].

翻译成R,这意味着拦截a是:

b1 <- 1.5
a <- mean(y - b1 * x)
Run Code Online (Sandbox Code Playgroud)

这是受到这个问题的评论的启发.