Скажем, у меня есть простое уравнение регрессии
lm(y~., newdata=df)
Я знаю, что если я хочу уменьшить перехват до 0, я пишу
lm(y+0., newdata=df)
Тем не менее, есть ли способ произвести ступенчатую регрессию, ограничивая каждый коэффициент конкретным диапазоном?Например:
step(lm(y~.>1000, newdata=df)
Вышеупомянутое не работает, но есть ли способ сказать, произвести регрессию, которая в основном производит наилучшее соответствие и заставляет каждый коэффициент быть больше 1000?Или меньше указанного диапазона.
#as per Gautam
minfunc <- function(coefs){
out <- sum(sapply(3:314, function(z) return(coefs[z]*test2[, z])))
return(out)
}
par = c(1, 1, 30) # initial value
lb = c(-1, -1, -300000) # lower bound for coefs
ub = c(30, 30, 30000) # upper bound
result <- hjkb(par = par, fn = minfunc, lower = lb, upper = ub)
Спасибо,