SSブログ

[R]線形回帰に非負制約を入れるやり方 [データサイエンス、統計モデル]

線形回帰で、この変数は必ず0以上の値が欲しいという場合があるかもしれません。
基本的には、この様な制約は入れない方が良いです。
というのは、最尤法や最小二乗法で推定する場合、そのパラメータが負である場合が妥当だと推定しているにもかかわらず、無理やりに0以上にしてしまうわけです。
無理に非負制約を入れた結果、どうなるかと言えば、おそらく、推定されたパラメータは0になってしまいます。

(↑)という前提で・・・

通常のlmやglmではなく、lavaanというパッケージを使って、線形回帰に非負制約を入れるやり方について。

lavaanのモデルの書き方(制約なしの場合)
目的変数: y
説明変数: x1, x2

model_1 <- "
y ~ x1 + x2
myLable1 > 0
y ~ 1
"

lavaanのモデルの書き方(制約ありの場合)
目的変数: y
説明変数: x1, x2
制約: x1 > 0

model_1 <- "
y ~ myLable1 * x1 + x2
myLable1 > 0
y ~ 1
"

myLable1 > 0
という条件を加えるとできます。

nice!(0)  コメント(0) 
共通テーマ:学問