6

次のようなモデルに対して、線形回帰を実行しようとしています。

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 パッケージを使用して制約を適用できることは知っていますが、制約に適用する方法を特定できませんでした。また、たとえば、すべての係数の合計が 0 になるように contr.sum を使用できることも知っていますが、それは私がやりたいことではありません。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
4

1 に答える 1