3

Rでいくつかの通常の最小二乗線形回帰を推定しています。回帰全体で推定された係数が同じになるように制約したいと思います。たとえば、次のものがあります。

z1 ~ x + y
z2 ~ x + y

そして、最初の回帰の y の推定係数が、2 番目の x の推定係数と等しくなるようにしたいと思います。

これを行う簡単な方法はありますか?前もって感謝します。

より詳細な編集

対応する福祉関数が二次である線形需要関数のシステムを推定しようとしています。厚生関数の形式は次のとおりです。

W = 0.5*ax*(Qx^2) + 0.5*ay*(Qy^2) + 0.5*bxy*Qx*Qy + 0.5*byx*Qy*Qx + cx*Qx + cy*Qy

したがって、需要関数は次のようになります。

dW/dQx = Px = 2*0.5*ax*Qx + 0 + 0.5*bxy*Qy + 0.5*byx*Qy + 0 + cx
dW/dQx = Px = ax*Qx + 0.5*(bxy + byx)*Qy + cx

dW/dQy = Py = ay*Qy + 0.5*(byx + bxy)*Qx + cy

byx = bxy (厚生関数の外積係数) になるようにシステムを制約したいと思います。この条件が成立する場合、2 つの需要関数は次のようになります。

Px = ax*Qx + bxy*Qy + cy
Py = ay*Qy + bxy*Qy + cy

価格 (PxPy) と数量 (QxQy) のデータがありますが、本当に興味があるのは、Wデータがない福祉 ( ) です。

制約付き最小二乗のすべての行列式を計算してコーディングする方法を知っています(係数、標準誤差、適合度などを取得するにはかなりの数行のコードが必要ですlm())。lm()しかし、このすべてをコーディングする必要がないように、既存の R 関数 (つまり、関数に対して実行できるもの) が存在することを望んでいました。

4

2 に答える 2

2

指定した回帰について:

Px = ax*Qx + bxy*Qy + cy
Py = ay*Qy + bxy*Qy + cy

グループ化係数を導入できます。

id <- factor(rep.int(c("Px", "Py"), c(length(Px), length(Py))),
             levels = c("Px", "Py"))

また、データを組み合わせる必要があります。

z <- c(Px, Py)    ## response
x <- c(Qx, Qy)    ## covariate 1
y <- c(Qy, Qy)    ## covariate 2    

lm次に、式を使用して線形モデルを適合させることができます。

z ~ x + y + x:id
于 2016-09-04T15:38:55.960 に答える