0

1 つの従属変数 y と、2 つの独立した x (連続) および z (0 または 1 のインジケーター) を持つデータセットがあります。私が装着したいモデルは

y = a*1(z==0) + b*x*1(z==1),

言い換えると、z==0 の場合、推定値は単純に切片である必要があります。それ以外の場合、推定値は切片に b*x 部分を加えたものになります。

私が思いついた唯一のことは、2 つのステップでそれを行うことです。つまり、最初に z==0 の y の平均を取り (これは切片の推定値です)、次にこの値を残りの ys から減算します。単純な回帰を実行して勾配を推定します。

これでうまくいくと(ほぼ)確信していますが、理想的には、lmなどを使用してRのワンライナーで見積もりを取得したいと考えています。これを達成する方法はありますか?よろしくお願いします!

4

3 に答える 3

0

この問題は、次の 2 つの方法で解決できます。

za) 最初に=0 の場合と=1 の場合の 2 つのダミーを作成しzます (これがz0z1:with(mydata,ifelse (z==1,z0,z1))であるとします。モデルに両方を含め、切片なしで次のモデルを実行します。

lm(y~as.factor(z)+x-1,data=mydata)またはlm(y~z0+z1+x-1,data=mydata) #model には、ダミー変数のトラップを回避するために切片のない 2 つのダミーが含まれます

y=b0z0+b1z1+b2x

b) 2 番目にダミーを 1 つだけ含め ( z=1)、切片を使用して次のモデルを実行します。

lm(y~z1+x,data=mydata) #モデルには切片を持つダミーが 1 つ含まれています

y=intercept+b1z1+b2x#z1 の係数は、z=0 で増加する値を与えます

z1=0 のときの y の期待値は切片+ b2x であり、z1=1 のときの y の期待値は切片+ b1z1+b2x です。違いは b1z1 です。

注: これは、プログラミングというよりも統計に関連しています。したがって、 CVでこれらのタイプの質問をする方が適切です。

于 2013-08-13T13:59:15.953 に答える