我正在尝试执行线性回归,对于这样的一个模型:
Y = aX1 + bX2 + c
所以,Y ~ X1 + X2
假设我有以下响应向量:
set.seed(1)
Y <- runif(100, -1.0, 1.0)
以下是预测变量的矩阵:
X1 <- runif(100, 0.4, 1.0)
X2 <- sample(rep(0:1,each=50))
X <- cbind(X1, X2)
我希望在系数上使用以下约束条件:
a + c >= 0
c >= 0
因此,对b没有限制。
我知道glmc包可以用于应用约束条件,但我无法确定如何将其应用于我的约束条件。我还知道可以使用contr.sum使所有系数总和为0,例如,但这不是我想做的。另一个可能性是solve.QP(),其中设置meq=0
可以用于确保所有系数都大于等于0(同样,并非我的目标)。
注意:解决方案必须能够处理响应向量Y中的NA值,例如:
Y <- runif(100, -1.0, 1.0)
Y[c(2,5,17,56,37,56,34,78)] <- NA