「Stata」または「R」の回帰不連続設計のグラフ


10

LeeとLemieuxp。31、2009)は、研究者に、回帰不連続設計分析(RDD)を実行しながらグラフを提示することを提案しています。彼らは以下の手順を提案します:

「...帯域幅がいくつかあり、カットオフ値の左側と右側にそれぞれいくつかのビンと K_1がある場合、アイデアはビン(b_kb_ {k + 1} ]、k = 1、。。。、K = K_0 + K_1、ここでb_k = c−(K_0−k + 1)\ cdot h。 "hK0K1bkbk+1k=1,...,K=K0K1bk=c(K0k+1)h.

c=cutoff point or threshold value of assignment variable
h=bandwidth or window width.

...次に、平均結果をカットオフポイントの左と右だけで比較します... "

..すべての場合において、カットオフポイントの両側で別々に推定された4次回帰モデルからの適合値も表示します...(同じ論文のp。34)

私の質問は、私たちがその手順をプログラムはどうすればよいですStataRに...シャープRDDのために(信頼区間)の割り当て変数に対して、結果変数のグラフをプロットするためのサンプル例がStata挙げられ、ここここ(rd_obsとRD置き換え)とサンプルの例Rこちらです。ただし、これらはどちらもステップ1を実装していなかったと思います。どちらも生のデータと、プロットの適合線を持っていることに注意してください。

信頼変数なしのサンプルグラフ[Lee and Lemieux、2009] ここに画像の説明を入力してください よろしくお願いします。


あなたのフラグに応じて、あなたの質問を復活させる良い方法は、それを編集して報奨金を提供することです:これはあなたの質問をぶつけて、より多くの人々がそれに興味を持つようになります。この質問がStack Overflowでより適切に処理されると思われる場合は、お知らせください。移行できます。
2013

これをStack Overflowに移行してほしい。
メトリクス

1
残念ながら、この質問は古すぎてスタックオーバーフローに移行できません。私はそれが相互検証に属していると信じていますが、スタックオーバーフローについて質問したい場合は(プログラミングの側面に重点を置き、最小限の再現可能な例を提供する)、私に知らせて、ここで閉じます。
2013

cmogramを使用する必要があります。それはあなたが必要とするすべてを行います。
Yan Song

回答:


10

次数2の2つのローカル多項式をやってから、このくらい違う、しきい値以下用とで滑らかで上記のためのものであるポイントは?以下は、スタタの例です。Ki

use votex // the election-spending data that comes with rd

tw 
(scatter lne d, mcolor(gs10) msize(tiny)) 
(lpolyci lne d if d<0, bw(0.05) deg(2) n(100) fcolor(none)) 
(lpolyci lne d if d>=0, bw(0.05) deg(2) n(100) fcolor(none)), xline(0)  legend(off)

または、を使用する代わりに、lpoly平滑化値と標準誤差を変数として保存することもできますtwoway。下はビン、は平滑化された平均、は標準誤差、とは平滑化された結果の95%信頼区間の上限と下限です。s s e u l l lxsseulll

lpoly lne d if d<0, bw(0.05) deg(2) n(100) gen(x0 s0) ci se(se0)
lpoly lne d if d>=0, bw(0.05) deg(2) n(100) gen(x1 s1) ci se(se1)

/* Get the 95% CIs */
forvalues v=0/1 {
    gen ul`v' = s`v' + 1.95*se`v' 
    gen ll`v' = s`v' - 1.95*se`v' 
};

tw 
(line ul0 ll0 s0 x0, lcolor(blue blue blue) lpattern(dash dash solid)) 
(line ul1 ll1 s1 x1, lcolor(red red red) lpattern(dash dash solid)), legend(off)  

ご覧のとおり、最初のプロットの線は2番目のプロットと同じです。


@Dimitry:ソリューションの+1。ただし、生の値を示す散布図ではなく、各ビンの平均値が必要です(上記の例のスタタを実行してください)。CIは素晴らしいです。
2013

1
どういう意味かよくわかりません。各ビンで平滑化された平均値を手動で取得する方法を示すコードを追加しました。それがあなたが探しているものではない場合は、あなたが考えていることをより詳細に説明してください。私が知る限り、これらのグラフは通常、生データと平滑化された平均を示します。
Dimitriy V. Masterov 2013

LeeとLemieuxの引用(p。31、2009):「データをグラフ化する標準的な方法は、割り当て変数(ここではd)をいくつかのビンに分割し、カットオフの両側に2つの別々のビンがあることを確認することです。ポイント(処理済みと未処理の観測値が同じビンに混在するのを避けるため)。次に、結果変数の平均値を各ビンについて計算し、ビンの中間点に対してグラフ化できます。50個のビンがあるのであれば、我々は(参照の例えば、グラフ、図6(b):質問に更新)すべての生データを、左右ではなく上だけで25のデータポイントを持つことになります
メトリック

1
今では明らかです!カーネルに同意します。しかし、それが現在0度ではないことは確かですか?これは、均等加重平均平滑化に対応します。
Dimitriy V. Masterov 2013

1
私は通常のカーネルと次数0の多項式でLPOLYにその対応を信じて
Dimitriy V. Masterov

7

これが缶詰アルゴリズムです。Calonico、Cattaneo、およびTitiunikは最近、堅牢な帯域幅選択の手順を提案しました。彼らはStataとRの両方に対して理論的な作業実装しました。また、プロットコマンドも付属しています。Rの例を次に示します。

# install.packages("rdrobust")
library(rdrobust)
set.seed(26950) # from random.org
x<-runif(1000,-1,1)
y<-5+3*x+2*(x>=0)+rnorm(1000)
rdplot(y,x)

それはあなたにこのグラフを与えます: ここに画像の説明を入力してください


こんにちは、CIを追加する方法は?
Krantz、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.