F#のR
型プロバイダを使用して、回帰関係のあるR関数にアクセスしています。 回帰係数に制約があると、その加重平均が0になるように回帰を見積もりたいと思います。加重の合計は1です。以下の例は、さまざまな重みを持つ数十の係数を持つため、のみ以下のRコードを示しています。制限付き回帰式R
y1 <- runif(n = 50,min = 0.02,max=0.05)
y2 <- runif(n=50,min=0.01,max=0.03)
y <- c(x1,x2)
x1 <- c(rep(0,50),rep(1,50))
x2 <- c(rep(1,50),rep(0,50))
lm(y~x1+x2)
予想通りこれは
> lm(y~x1+x2)
Call:
lm(formula = y ~ x1 + x2)
Coefficients:
(Intercept) x1 x2
0.03468 -0.01460 NA
の出力を提供します。しかし、x1とx2に制約を設定したいので、加重平均は(0.5 * x1 + 0.5 * x2) = 0
です。その場合、切片はmean(y) = 0.02737966
になり、x1とx2の係数はこの値からのオフセットを示します(それぞれ-0.006
と+0.007
)。パッケージquadprog
とmgcv
が該当しますが、私は制約を適用できませんでした。
@ ZheyuanLiこれを見ていただきありがとうございます。すべての共変量は数値であり、合計は1になります。したがって、制約が必要です。他にも制約のない変数がいくつかありますが、ここでは省略しました。それを見ることで、[PCLC in mgcv](https://stat.ethz.ch/R-manual/R-devel/library/mgcv/html/pcls.html)はやや関連性があるように見えました。これは[クロスバリデーション](http://stats.stackexchange.com/)に適していると思いますか? – s952163
@ s952163 MLEを作成し、制約のある最適化を使用することについて考えましたか? NloptはF#で動作します。私は仕事を見て回ることもできます。 –
@professorbigglesworth実際には制約のある最適化の一形態なので、R.Hmmmのquadprogを見ていました.... NLOPTを調べる必要があります。アイデアありがとう! – s952163