对于这样的模型,我正在尝试执行线性回归:
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