Линейная регрессия с известным фиксированным перехватом в R - PullRequest
34 голосов
/ 07 сентября 2011

Я хочу вычислить линейную регрессию, используя функцию lm () в 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")

Спасибо за вашу помощь.

Ответы [ 3 ]

38 голосов
/ 07 сентября 2011

Вы можете вычесть явный перехват из регрессии и затем установить модель без перехвата:

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

0 + подавляет подгонку перехвата на lm.

edit Чтобы построить подгонку, используйте

> abline(intercept, coef(fit))

P.S. Переменные в вашей модели выглядят неправильно: обычно это y ~ x, а не x ~ y (т. Е. Регрессор должен идти слева, а регрессор (ы) справа).

14 голосов
/ 07 сентября 2011

Я вижу, что вы приняли решение, используя I ().Я думал, что решение на основе offset () было бы более очевидным, но вкусы меняются, и после проработки решения смещения я могу оценить экономичность решения I ():

with(lin, plot(y,x) )
lm_shift_up <- lm(x ~ y +0 + 
                       offset(rep(1, nrow(lin))), 
             data=lin)
abline(1,coef(lm_shift_up))
1 голос
/ 18 октября 2015

Я использовал оба смещения и 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")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...