使用 R 对线性回归中的截距施加约束
Impose Constraint on Intercept in Linear Regression Using R
我有一个形式的线性回归
Y = a + b1 * X1 + b2 * X2 + b3 * X4
我想将拦截参数 a 限制为 a => 0
(即 a 应该是一个非负值)。
在 R 中有哪些可行的方法可以做到这一点?具体来说,我会对使用 caret 包的解决方案感兴趣。
感谢您的回答。
线性模型。
m0 <- lm(wt ~ qsec + hp + disp, data = mtcars)
m0
#
# Call:
# lm(formula = wt ~ qsec + hp + disp, data = mtcars)
#
# Coefficients:
# (Intercept) qsec hp disp
# -2.450047 0.201713 0.003466 0.006755
强制截距为零。
m1 <- lm(wt ~ qsec + hp + disp - 1, data = mtcars)
m1
#
# Call:
# lm(formula = wt ~ qsec + hp + disp - 1, data = mtcars)
#
# Coefficients:
# qsec hp disp
# 0.0842281 0.0002622 0.0072967
您可以使用 nls
对参数应用限制(在本例中为 较低 限制)。
m1n <- nls(wt ~ a + b1 * qsec + b2 * hp + b3 * disp,
data = mtcars,
start = list(a = 1, b1 = 1, b2 = 1, b3 = 1),
lower = c(0, -Inf, -Inf, -Inf), algorithm = "port")
m1n
# Nonlinear regression model
# model: wt ~ a + b1 * qsec + b2 * hp + b3 * disp
# data: mtcars
# a b1 b2 b3
# 0.0000000 0.0842281 0.0002622 0.0072967
# residual sum-of-squares: 4.926
#
# Algorithm "port", convergence message: relative convergence (4)
有关其他示例解决方案,请参阅 here。
我有一个形式的线性回归
Y = a + b1 * X1 + b2 * X2 + b3 * X4
我想将拦截参数 a 限制为 a => 0 (即 a 应该是一个非负值)。
在 R 中有哪些可行的方法可以做到这一点?具体来说,我会对使用 caret 包的解决方案感兴趣。
感谢您的回答。
线性模型。
m0 <- lm(wt ~ qsec + hp + disp, data = mtcars)
m0
#
# Call:
# lm(formula = wt ~ qsec + hp + disp, data = mtcars)
#
# Coefficients:
# (Intercept) qsec hp disp
# -2.450047 0.201713 0.003466 0.006755
强制截距为零。
m1 <- lm(wt ~ qsec + hp + disp - 1, data = mtcars)
m1
#
# Call:
# lm(formula = wt ~ qsec + hp + disp - 1, data = mtcars)
#
# Coefficients:
# qsec hp disp
# 0.0842281 0.0002622 0.0072967
您可以使用 nls
对参数应用限制(在本例中为 较低 限制)。
m1n <- nls(wt ~ a + b1 * qsec + b2 * hp + b3 * disp,
data = mtcars,
start = list(a = 1, b1 = 1, b2 = 1, b3 = 1),
lower = c(0, -Inf, -Inf, -Inf), algorithm = "port")
m1n
# Nonlinear regression model
# model: wt ~ a + b1 * qsec + b2 * hp + b3 * disp
# data: mtcars
# a b1 b2 b3
# 0.0000000 0.0842281 0.0002622 0.0072967
# residual sum-of-squares: 4.926
#
# Algorithm "port", convergence message: relative convergence (4)
有关其他示例解决方案,请参阅 here。